From a7c65c2bb921c8f2dde05df857016a82c8064a3b Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Fri, 25 Sep 2026 19:26:26 +0000 Subject: [PATCH 1/2] check:experimental-shelf looks at the map: paint arm with its own poisons, and settled counts Every earlier assertion counted FEATURES, and queryRenderedFeatures answers happily over a white rectangle (gospel's incident, 0574fe7f). Each map surface now also passes two looks: - COLOURS read off the map's own WebGL canvas inside its 'render' event (floor 40), so a legend or panel over the map cannot inflate the count and no per-plugin clip is needed; - FILL = the map's height over the plugin ELEMENT's (floor 70%), not canvas over container, which stayed 1.0 when a stylesheet collapsed both together. Each arm has its own self-test poison and must be the one that catches it: 'blank' (every layer's opacity 0) -> "only 1 colour(s) on its canvas ... while 12204 features still count as drawn"; 'collapse' (container squeezed to 300px) -> "fills 38% of 's height". Drawn counts are now read SETTLED (equal on two consecutive polls): a first-non-zero read took 1752 of 2107 mid-fit on Cities. The PASS line names only the surfaces that ran. Measured: 7 bundles, 60 rows PASS, 3 n/a; lowest paint across the 40 map rows 264 colours, 92%. --- internal/check-experimental-shelf.mjs | 80 +++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 5 deletions(-) diff --git a/internal/check-experimental-shelf.mjs b/internal/check-experimental-shelf.mjs index f6b683cd3..aff1ee430 100644 --- a/internal/check-experimental-shelf.mjs +++ b/internal/check-experimental-shelf.mjs @@ -18,6 +18,12 @@ * not one baked into the bundle). A MapLibre-only plugin takes no token: reported n/a * D its tab inside the Research Gallery * B and C test exactly what a partner pastes, so a broken snippet fails here too. + * Every surface with a map also gets the PAINT arm (after gospel's check-gospel-map-paints): + * distinct colours read off the map's own canvas (floor 40) and the map's height over the plugin + * element's (floor 70%). Feature counts cannot see a white rectangle; these two can. Each has its + * own self-test poison and must be the arm that catches it: 'blank' (every layer's opacity 0, + * every feature still "drawn") and 'collapse' (the container squeezed to 300px). + * Drawn counts are read SETTLED: equal on two consecutive polls, never the first non-zero read. * A surface passes when: * - the element mounted with content (its shadow tree has real nodes), * - 0 page errors and 0 failed requests (4xx/5xx; Mapbox telemetry and favicons excluded), @@ -59,6 +65,10 @@ const ONLY = arg('--only', '') ? arg('--only', '').split(',') : null const SURFACES = arg('--surfaces', 'A,B,C,D').split(',') const SELF_TEST = !argv.includes('--no-self-test') const WAIT_MS = Number(process.env.SHELF_WAIT_MS || 75000) +// the PAINT arm (after gospel's check-gospel-map-paints, 0574fe7f): every assertion above counts +// FEATURES, and queryRenderedFeatures answers happily over a white rectangle. These two look. +const MIN_COLOURS = Number(process.env.MIN_MAP_COLOURS || 40) +const MIN_FILL = Number(process.env.MIN_MAP_FILL || 0.7) const { chromium } = await import(resolve(ROOT, 'node_modules/playwright/index.mjs')) const manifest = JSON.parse(readFileSync(resolve(ROOT, `public/${TREE_NAME}/manifest.json`), 'utf8')) @@ -174,6 +184,48 @@ const PROBE = (tag) => `(() => { return { own, sized, host: !!host, busy, maps } })()`.replace('__TAG__', tag) +// ── PAINT: does each map put pixels on the screen, and does it fill its plugin? ─────────────── +// COLOURS are read off the map's OWN WebGL canvas inside its 'render' event (the drawing buffer is +// still intact there), so a legend or panel floating over the map cannot inflate the count, and +// no per-plugin clip rectangle is needed. A basemap with land, water, borders and data has hundreds +// of colours; a blank map has one. FILL is the map's height over the PLUGIN ELEMENT's height, not +// canvas over container: in gospel's incident a stylesheet collapsed the container and the canvas +// followed it, so canvas/container stayed 1.0 over a 300px strip in a 900px box. +// POISON (self-test only): 'blank' zeroes every layer's opacity (the map is white and every +// feature still counts as drawn); 'collapse' squeezes the container to 300px (the real incident). +const PAINT = (tag, poison) => `(async () => { + const acc = []; const w = (r) => { for (const el of r.querySelectorAll('*')) { acc.push(el); if (el.shadowRoot) w(el.shadowRoot) } }; w(document) + const host = acc.find(e => e.tagName === ${JSON.stringify('__TAG__')}.toUpperCase()) + const hb = host ? host.getBoundingClientRect() : null + const maps = (window.__shelfMaps || []).filter(m => { try { return m.getContainer() && m.getContainer().isConnected } catch (_) { return false } }) + const poison = ${JSON.stringify('__POISON__')} + const OPACITY = { background: ['background-opacity'], fill: ['fill-opacity'], line: ['line-opacity'], circle: ['circle-opacity', 'circle-stroke-opacity'], symbol: ['text-opacity', 'icon-opacity'], raster: ['raster-opacity'], 'fill-extrusion': ['fill-extrusion-opacity'], heatmap: ['heatmap-opacity'] } + for (const m of maps) { + if (poison === 'blank') for (const l of (m.getStyle().layers || [])) for (const k of (OPACITY[l.type] || [])) { try { m.setPaintProperty(l.id, k, 0) } catch (_) {} } + if (poison === 'collapse') { const c = m.getContainer(); c.style.position = 'relative'; c.style.inset = 'auto'; c.style.height = '300px'; c.style.flex = 'none'; m.resize() } + } + if (poison) await new Promise(r => setTimeout(r, 1200)) + const out = [] + for (const m of maps) { + const cb = m.getContainer().getBoundingClientRect() + const colours = await new Promise(res => { + const t = setTimeout(() => res(-1), 8000) + m.once('render', () => { clearTimeout(t); try { + const cv = m.getCanvas(), W = Math.min(480, cv.width), H = Math.max(1, Math.round(cv.height * W / cv.width)) + const c = document.createElement('canvas'); c.width = W; c.height = H; const x = c.getContext('2d'); x.drawImage(cv, 0, 0, W, H) + const d = x.getImageData(0, 0, W, H).data, seen = new Set() + for (let i = 0; i < d.length; i += 4) seen.add(((d[i] >> 3) << 11) | ((d[i + 1] >> 3) << 6) | ((d[i + 2] >> 3) << 1) | (d[i + 3] > 127 ? 1 : 0)) + res(seen.size) + } catch (_) { res(-2) } }) + m.triggerRepaint() + }) + let drawn = 0 + try { const st = m.getStyle(), srcs = st.sources || {}, geo = Object.keys(srcs).filter(k => srcs[k].type === 'geojson'); const layers = (st.layers || []).filter(l => geo.includes(l.source)).map(l => l.id); if (layers.length) drawn = m.queryRenderedFeatures({ layers }).length } catch (_) {} + out.push({ colours, fill: hb && hb.height ? cb.height / hb.height : 0, drawn }) + } + return out +})()`.replace('__TAG__', tag).replace('__POISON__', poison || '') + const b = await chromium.launch({ headless: true, args: ['--use-gl=swiftshader', '--enable-unsafe-swiftshader', '--ignore-gpu-blocklist', '--enable-webgl', '--no-sandbox'] }) async function measure(url, s, poisonBundle, opts = {}) { @@ -193,16 +245,21 @@ async function measure(url, s, poisonBundle, opts = {}) { const host0 = opts.frame ? await p.evaluate(() => ({ title: document.title, href: location.href, y: scrollY })) : null // B: the plugin lives in the iframe whose document comes from the tree const ctx = () => (opts.frame ? p.frames().find(f => f.url().startsWith(BASE)) : p.mainFrame()) || p.mainFrame() - let st = null + let st = null, prevDrawn = '' const t0 = Date.now() // provenance needs one tile request, not a drawn map: a fake token cannot draw anything while (Date.now() - t0 < (opts.provenanceOnly ? Math.min(WAIT_MS, 25000) : WAIT_MS)) { await p.waitForTimeout(2500) try { st = await ctx().evaluate(PROBE(s.tag)) } catch (_) { st = null; continue } - const mapsReady = st.maps.every(m => m.loaded && m.drawn > 0) + // SETTLED, not first-non-zero: the drawn counts must hold across two polls, or a count read + // mid-fit (1752 of 2107 while tiles were still arriving) passes as the answer + const drawnNow = st.maps.map(m => m.drawn).join(','), steady = drawnNow === prevDrawn; prevDrawn = drawnNow + const mapsReady = st.maps.every(m => m.loaded && m.drawn > 0) && steady if (opts.provenanceOnly ? tokens.has(FAKE_TK) : (st.own > 8 && st.sized && st.busy === 0 && mapsReady && Date.now() - t0 > 6000)) break } const host1 = opts.frame ? await p.evaluate(() => ({ title: document.title, href: location.href, y: scrollY })) : null + let paint = [] + if (!opts.provenanceOnly && st && st.maps.length) { try { paint = await ctx().evaluate(PAINT(s.tag, opts.poisonPaint)) } catch (e) { paint = [{ colours: -3, fill: 0, drawn: 0 }] } } await p.close() if (opts.provenanceOnly) { // C provenance: with a FAKE host token the tiles cannot load, so only one thing is asserted: @@ -215,11 +272,16 @@ async function measure(url, s, poisonBundle, opts = {}) { else if (st.own <= 8 || !st.sized) why.push(`<${s.tag}> mounted empty (${st.own} node(s)${st.sized ? '' : ', not sized'})`) if (st && st.busy) why.push(`${st.busy} loading label(s) left`) if (st) st.maps.forEach((m, i) => { if (!m.loaded) why.push(`map ${i + 1}: 'load' never fired`); else if (!m.drawn) why.push(`map ${i + 1}: no own data drawn (${m.geo} geojson source(s))`) }) + paint.forEach((q, i) => { + if (q.colours < 0) why.push(`map ${i + 1}: could not read its pixels (${q.colours})`) + else if (q.colours < MIN_COLOURS) why.push(`map ${i + 1}: only ${q.colours} colour(s) on its canvas, a blank map (floor ${MIN_COLOURS})${q.drawn ? `, while ${q.drawn} features still count as drawn` : ''}`) + if (q.fill < MIN_FILL) why.push(`map ${i + 1}: fills ${Math.round(q.fill * 100)}% of <${s.tag}>'s height, collapsed (floor ${Math.round(MIN_FILL * 100)}%)`) + }) if (host0 && host1 && (host0.title !== host1.title || host0.href !== host1.href || host0.y !== host1.y)) why.push(`the host page changed (title/URL/scroll): ${JSON.stringify(host0)} -> ${JSON.stringify(host1)}`) if (opts.noMapbox && mapboxReqs.length) why.push(`${mapboxReqs.length} api.mapbox.com request(s) under maplibre, e.g. ${mapboxReqs[0]}`) if (errs.length) why.push(`page error: ${errs[0]}`) if (fails.length) why.push(`failed request: ${fails[0]}`) - return { pass: !why.length, why, maps: st ? st.maps.length : 0, mapboxMaps: st ? st.maps.filter(m => m.mapbox).length : 0 } + return { pass: !why.length, why, maps: st ? st.maps.length : 0, paint, drawn: st ? st.maps.map(m => m.drawn) : [], mapboxMaps: st ? st.maps.filter(m => m.mapbox).length : 0 } } const leaf = (s, eng) => `${BASE}/${s.bundle}/${s.profile}/index.html?provider=${eng}` + (eng === 'mapbox' ? `&tk=${TK}` : '') @@ -233,6 +295,14 @@ try { const c = await measure(`${HOST}/C/${s.bundle}/maplibre`, s, s.bundle, { noMapbox: true }) if (a.pass || d.pass || c.pass) { console.error(`SELF-TEST FAILED: a deliberately broken ${s.bundle} still passed (${a.pass ? 'leaf ' : ''}${d.pass ? 'gallery ' : ''}${c.pass ? 'script-embed' : ''}). This gate cannot see a broken bundle.`); exit = 3 } else console.log(`self-test: a deliberately broken ${s.bundle} fails as it must (leaf: ${a.why[0]}; script-embed: ${c.why[0]}; gallery: ${d.why[0]})`) + // each PAINT arm gets its own poison and must be the arm that catches it: a collapse caught + // only by the colour floor (or a blank map caught only by fill) proves nothing about the other + const sm = shelf.find(x => x.isMap) + if (sm) for (const [poison, arm] of [['blank', /colour\(s\) on its canvas/], ['collapse', /of <.*>'s height, collapsed/]]) { + const r = await measure(leaf(sm, 'maplibre'), sm, null, { poisonPaint: poison }) + if (!r.why.some(w => arm.test(w))) { console.error(`SELF-TEST FAILED: a ${poison} ${sm.bundle} map was not caught by its own arm (${r.pass ? 'it passed' : r.why.join('; ')}). This gate cannot see a ${poison} map.`); exit = 3 } + else console.log(`self-test: a ${poison} ${sm.bundle} map fails as it must (${r.why.find(w => arm.test(w))})`) + } } if (exit !== 3) { for (const [k, v] of Object.entries(SEED)) if (shelf.some(s => s.bundle === k)) console.log(`SEEDED ${k}: ${v.why}`) @@ -242,7 +312,7 @@ try { // That is a fleet-wide leaf property, reported separately; C is where a partner chooses. const row = (r, s, eng, surf, t0) => { if (!r.pass) exit = 1 - console.log(`${r.pass ? 'PASS' : 'FAIL'} ${s.bundle.padEnd(24)} ${eng.padEnd(9)} ${surf.padEnd(10)} ${(r.maps ? r.maps + ' map(s)' : 'no map').padEnd(9)} ${String(Math.round((Date.now() - t0) / 1000)).padStart(3)}s${r.pass ? '' : ' — ' + r.why.join('; ')}`) + console.log(`${r.pass ? 'PASS' : 'FAIL'} ${s.bundle.padEnd(24)} ${eng.padEnd(9)} ${surf.padEnd(10)} ${(r.maps ? r.maps + ' map(s)' : 'no map').padEnd(9)} ${(r.paint && r.paint.length ? r.paint.map(q => `${q.colours}c ${Math.round(q.fill * 100)}%`).join(' ') : '').padEnd(12)} ${String(Math.round((Date.now() - t0) / 1000)).padStart(3)}s${r.pass ? '' : ' — ' + r.why.join('; ')}`) } for (const s of shelf) for (const eng of ENGINES) for (const [surf, url, opts] of [ ['A leaf', leaf(s, eng), {}], @@ -261,7 +331,7 @@ try { row(await measure(`${HOST}/C/${s.bundle}/mapbox/fake`, s, null, { provenanceOnly: true }), s, eng, 'C host-tk', t0) } } - console.log(exit ? 'EXPERIMENTAL-SHELF: FAIL' : `EXPERIMENTAL-SHELF: PASS — every experimental plugin works on its own page, iframed and script-embedded on another site, and in the Gallery, under ${ENGINES.join(' and ')}`) + console.log(exit ? 'EXPERIMENTAL-SHELF: FAIL' : `EXPERIMENTAL-SHELF: PASS — every experimental plugin works ${SURFACES.map(x => ({ A: 'on its own page', B: 'iframed on another site', C: 'script-embedded on another site', D: 'in the Gallery' })[x]).filter(Boolean).join(', ')}, and every map paints, under ${ENGINES.join(' and ')}`) } } finally { await b.close(); reap() } process.exit(exit) From 90910f32f61b928920c366cecc3adeacd51f14a3 Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Fri, 25 Sep 2026 19:54:59 +0000 Subject: [PATCH 2/2] public/ is one folder again: drop the stale doxa-maps/ bundles a rebuild re-added, and make that a hard failure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit d49b6c80 rebuilt four bundles under the OLD tree name after the rename to dx-maps (09014f8a), putting public/doxa-maps/{big-picture,doxa-research-map,research-map-plus-grid,wall-of-people-groups}.js back beside public/dx-maps/. Nothing references them (the live copies are under dx-maps/). Removed. check:public-hygiene only WARNED about a root entry outside the drop-in contract unless run --strict, so the build stayed green. public/ holding only the output folder + README.md is a Driver decision (BUILD-OUTPUT-IS-ONE-FOLDER), so it is now always a finding. Proven both ways: with the orphans the gate FAILS ('doxa-maps/ — outside the drop-in contract (dx-maps, README.md only)'); without them it passes. --- internal/public-hygiene-check.mjs | 5 +- public/doxa-maps/big-picture/big-picture.js | 38 - .../doxa-research-map/doxa-research-map.js | 1491 ----------------- .../research-map-plus-grid.js | 47 - .../wall-of-people-groups.js | 75 - 5 files changed, 4 insertions(+), 1652 deletions(-) delete mode 100644 public/doxa-maps/big-picture/big-picture.js delete mode 100644 public/doxa-maps/doxa-research-map/doxa-research-map.js delete mode 100644 public/doxa-maps/research-map-plus-grid/research-map-plus-grid.js delete mode 100644 public/doxa-maps/wall-of-people-groups/wall-of-people-groups.js diff --git a/internal/public-hygiene-check.mjs b/internal/public-hygiene-check.mjs index 34d28a7d6..829fce5f6 100644 --- a/internal/public-hygiene-check.mjs +++ b/internal/public-hygiene-check.mjs @@ -199,7 +199,10 @@ const rootEntries = [...new Set(files.map(f => f.rel.split('/')[0]))].sort() for (const e of rootEntries) { if (CONTRACT.has(e)) continue const label = files.some(f => f.rel.startsWith(`${e}/`)) ? `${e}/` : e - hit(STRICT ? findings : warnings, 'contract', label, `outside the drop-in contract (${[...CONTRACT].join(', ')} only)`) + // ALWAYS a finding, not a strict-mode warning: public/ holding ONLY the output folder + README.md is a + // Driver decision (BUILD-OUTPUT-IS-ONE-FOLDER), not a style preference. MEASURED 2026-09-25: a rebuild + // under the OLD tree name re-added public/doxa-maps/ beside public/dx-maps/, and this gate only warned. + hit(findings, 'contract', label, `outside the drop-in contract (${[...CONTRACT].join(', ')} only)`) } // inventory diff --git a/public/doxa-maps/big-picture/big-picture.js b/public/doxa-maps/big-picture/big-picture.js deleted file mode 100644 index 52b93f9ca..000000000 --- a/public/doxa-maps/big-picture/big-picture.js +++ /dev/null @@ -1,38 +0,0 @@ -(function(){"use strict";var Un=typeof document<"u"?document.currentScript:null;/** -* @vue/shared v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Bn(e){const o=Object.create(null);for(const t of e.split(","))o[t]=1;return t=>t in o}const fe={},nt=[],po=()=>{},Hs=()=>!1,Yt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Zt=e=>e.startsWith("onUpdate:"),Ae=Object.assign,jn=(e,o)=>{const t=e.indexOf(o);t>-1&&e.splice(t,1)},Wi=Object.prototype.hasOwnProperty,ce=(e,o)=>Wi.call(e,o),K=Array.isArray,Do=e=>bt(e)==="[object Map]",Jt=e=>bt(e)==="[object Set]",Ws=e=>bt(e)==="[object Date]",Y=e=>typeof e=="function",be=e=>typeof e=="string",go=e=>typeof e=="symbol",ue=e=>e!==null&&typeof e=="object",Ks=e=>(ue(e)||Y(e))&&Y(e.then)&&Y(e.catch),Xs=Object.prototype.toString,bt=e=>Xs.call(e),Ki=e=>bt(e).slice(8,-1),Qt=e=>bt(e)==="[object Object]",zn=e=>be(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,yt=Bn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),en=e=>{const o=Object.create(null);return t=>o[t]||(o[t]=e(t))},Xi=/-\w/g,qe=en(e=>e.replace(Xi,o=>o.slice(1).toUpperCase())),Yi=/\B([A-Z])/g,Ze=en(e=>e.replace(Yi,"-$1").toLowerCase()),Ys=en(e=>e.charAt(0).toUpperCase()+e.slice(1)),Vn=en(e=>e?`on${Ys(e)}`:""),$o=(e,o)=>!Object.is(e,o),qn=(e,...o)=>{for(let t=0;t{Object.defineProperty(e,o,{configurable:!0,enumerable:!1,writable:n,value:t})},Zi=e=>{const o=parseFloat(e);return isNaN(o)?e:o},Js=e=>{const o=be(e)?Number(e):NaN;return isNaN(o)?e:o};let Qs;const on=()=>Qs||(Qs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Go(e){if(K(e)){const o={};for(let t=0;t{if(t){const n=t.split(Qi);n.length>1&&(o[n[0].trim()]=n[1].trim())}}),o}function tn(e){let o="";if(be(e))o=e;else if(K(e))for(let t=0;t!!(e&&e.__v_isRef===!0),Le=e=>be(e)?e:e==null?"":K(e)||ue(e)&&(e.toString===Xs||!Y(e.toString))?ta(e)?Le(e.value):JSON.stringify(e,na,2):String(e),na=(e,o)=>ta(o)?na(e,o.value):Do(o)?{[`Map(${o.size})`]:[...o.entries()].reduce((t,[n,s],a)=>(t[Hn(n,a)+" =>"]=s,t),{})}:Jt(o)?{[`Set(${o.size})`]:[...o.values()].map(t=>Hn(t))}:go(o)?Hn(o):ue(o)&&!K(o)&&!Qt(o)?String(o):o,Hn=(e,o="")=>{var t;return go(e)?`Symbol(${(t=e.description)!=null?t:o})`:e};/** -* @vue/reactivity v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Oe;class sl{constructor(o=!1){this.detached=o,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!o&&Oe&&(Oe.active?(this.parent=Oe,this.index=(Oe.scopes||(Oe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let o,t;if(this.scopes){const n=this.scopes.slice();for(o=0,t=n.length;o0&&--this._on===0){if(Oe===this)Oe=this.prevScope;else{let o=Oe;for(;o;){if(o.prevScope===this){o.prevScope=this.prevScope;break}o=o.prevScope}}this.prevScope=void 0}}stop(o){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t0)return;if(kt){let o=kt;for(kt=void 0;o;){const t=o.next;o.next=void 0,o.flags&=-9,o=t}}let e;for(;vt;){let o=vt;for(vt=void 0;o;){const t=o.next;if(o.next=void 0,o.flags&=-9,o.flags&1)try{o.trigger()}catch(n){e||(e=n)}o=t}}if(e)throw e}function ia(e){for(let o=e.deps;o;o=o.nextDep)o.version=-1,o.prevActiveLink=o.dep.activeLink,o.dep.activeLink=o}function la(e){let o,t=e.depsTail,n=t;for(;n;){const s=n.prevDep;n.version===-1?(n===t&&(t=s),Zn(n),rl(n)):o=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=s}e.deps=o,e.depsTail=t}function Yn(e){for(let o=e.deps;o;o=o.nextDep)if(o.dep.version!==o.version||o.dep.computed&&(ca(o.dep.computed)||o.dep.version!==o.version))return!0;return!!e._dirty}function ca(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===wt)||(e.globalVersion=wt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Yn(e))))return;e.flags|=2;const o=e.dep,t=he,n=so;he=e,so=!0;try{ia(e);const s=e.fn(e._value);(o.version===0||$o(s,e._value))&&(e.flags|=128,e._value=s,o.version++)}catch(s){throw o.version++,s}finally{he=t,so=n,la(e),e.flags&=-3}}function Zn(e,o=!1){const{dep:t,prevSub:n,nextSub:s}=e;if(n&&(n.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=n,e.nextSub=void 0),t.subs===e&&(t.subs=n,!n&&t.computed)){t.computed.flags&=-5;for(let a=t.computed.deps;a;a=a.nextDep)Zn(a,!0)}!o&&!--t.sc&&t.map&&t.map.delete(t.key)}function rl(e){const{prevDep:o,nextDep:t}=e;o&&(o.nextDep=t,e.prevDep=void 0),t&&(t.prevDep=o,e.nextDep=void 0)}let so=!0;const ua=[];function fo(){ua.push(so),so=!1}function ho(){const e=ua.pop();so=e===void 0?!0:e}function pa(e){const{cleanup:o}=e;if(e.cleanup=void 0,o){const t=he;he=void 0;try{o()}finally{he=t}}}let wt=0;class il{constructor(o,t){this.sub=o,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Jn{constructor(o){this.computed=o,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(o){if(!he||!so||he===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==he)t=this.activeLink=new il(he,this),he.deps?(t.prevDep=he.depsTail,he.depsTail.nextDep=t,he.depsTail=t):he.deps=he.depsTail=t,ga(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const n=t.nextDep;n.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=n),t.prevDep=he.depsTail,t.nextDep=void 0,he.depsTail.nextDep=t,he.depsTail=t,he.deps===t&&(he.deps=n)}return t}trigger(o){this.version++,wt++,this.notify(o)}notify(o){Kn();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{Xn()}}}function ga(e){if(e.dep.sc++,e.sub.flags&4){const o=e.dep.computed;if(o&&!e.dep.subs){o.flags|=20;for(let n=o.deps;n;n=n.nextDep)ga(n)}const t=e.dep.subs;t!==e&&(e.prevSub=t,t&&(t.nextSub=e)),e.dep.subs=e}}const Qn=new WeakMap,Ko=Symbol(""),es=Symbol(""),Lt=Symbol("");function Me(e,o,t){if(so&&he){let n=Qn.get(e);n||Qn.set(e,n=new Map);let s=n.get(t);s||(n.set(t,s=new Jn),s.map=n,s.key=t),s.track()}}function Ao(e,o,t,n,s,a){const r=Qn.get(e);if(!r){wt++;return}const i=l=>{l&&l.trigger()};if(Kn(),o==="clear")r.forEach(i);else{const l=K(e),c=l&&zn(t);if(l&&t==="length"){const g=Number(n);r.forEach((h,b)=>{(b==="length"||b===Lt||!go(b)&&b>=g)&&i(h)})}else switch((t!==void 0||r.has(void 0))&&i(r.get(t)),c&&i(r.get(Lt)),o){case"add":l?c&&i(r.get("length")):(i(r.get(Ko)),Do(e)&&i(r.get(es)));break;case"delete":l||(i(r.get(Ko)),Do(e)&&i(r.get(es)));break;case"set":Do(e)&&i(r.get(Ko));break}}Xn()}function st(e){const o=ie(e);return o===e?o:(Me(o,"iterate",Lt),Je(e)?o:o.map(ao))}function sn(e){return Me(e=ie(e),"iterate",Lt),e}function mo(e,o){return xo(e)?rt(Xo(e)?ao(o):o):ao(o)}const ll={__proto__:null,[Symbol.iterator](){return os(this,Symbol.iterator,e=>mo(this,e))},concat(...e){return st(this).concat(...e.map(o=>K(o)?st(o):o))},entries(){return os(this,"entries",e=>(e[1]=mo(this,e[1]),e))},every(e,o){return Po(this,"every",e,o,void 0,arguments)},filter(e,o){return Po(this,"filter",e,o,t=>t.map(n=>mo(this,n)),arguments)},find(e,o){return Po(this,"find",e,o,t=>mo(this,t),arguments)},findIndex(e,o){return Po(this,"findIndex",e,o,void 0,arguments)},findLast(e,o){return Po(this,"findLast",e,o,t=>mo(this,t),arguments)},findLastIndex(e,o){return Po(this,"findLastIndex",e,o,void 0,arguments)},forEach(e,o){return Po(this,"forEach",e,o,void 0,arguments)},includes(...e){return ts(this,"includes",e)},indexOf(...e){return ts(this,"indexOf",e)},join(e){return st(this).join(e)},lastIndexOf(...e){return ts(this,"lastIndexOf",e)},map(e,o){return Po(this,"map",e,o,void 0,arguments)},pop(){return St(this,"pop")},push(...e){return St(this,"push",e)},reduce(e,...o){return da(this,"reduce",e,o)},reduceRight(e,...o){return da(this,"reduceRight",e,o)},shift(){return St(this,"shift")},some(e,o){return Po(this,"some",e,o,void 0,arguments)},splice(...e){return St(this,"splice",e)},toReversed(){return st(this).toReversed()},toSorted(e){return st(this).toSorted(e)},toSpliced(...e){return st(this).toSpliced(...e)},unshift(...e){return St(this,"unshift",e)},values(){return os(this,"values",e=>mo(this,e))}};function os(e,o,t){const n=sn(e),s=n[o]();return n!==e&&!Je(e)&&(s._next=s.next,s.next=()=>{const a=s._next();return a.done||(a.value=t(a.value)),a}),s}const cl=Array.prototype;function Po(e,o,t,n,s,a){const r=sn(e),i=r!==e&&!Je(e),l=r[o];if(l!==cl[o]){const h=l.apply(e,a);return i?ao(h):h}let c=t;r!==e&&(i?c=function(h,b){return t.call(this,mo(e,h),b,e)}:t.length>2&&(c=function(h,b){return t.call(this,h,b,e)}));const g=l.call(r,c,n);return i&&s?s(g):g}function da(e,o,t,n){const s=sn(e),a=s!==e&&!Je(e);let r=t,i=!1;s!==e&&(a?(i=n.length===0,r=function(c,g,h){return i&&(i=!1,c=mo(e,c)),t.call(this,c,mo(e,g),h,e)}):t.length>3&&(r=function(c,g,h){return t.call(this,c,g,h,e)}));const l=s[o](r,...n);return i?mo(e,l):l}function ts(e,o,t){const n=ie(e);Me(n,"iterate",Lt);const s=n[o](...t);return(s===-1||s===!1)&&as(t[0])?(t[0]=ie(t[0]),n[o](...t)):s}function St(e,o,t=[]){fo(),Kn();const n=ie(e)[o].apply(e,t);return Xn(),ho(),n}const ul=Bn("__proto__,__v_isRef,__isVue"),$a=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(go));function pl(e){go(e)||(e=String(e));const o=ie(this);return Me(o,"has",e),o.hasOwnProperty(e)}class fa{constructor(o=!1,t=!1){this._isReadonly=o,this._isShallow=t}get(o,t,n){if(t==="__v_skip")return o.__v_skip;const s=this._isReadonly,a=this._isShallow;if(t==="__v_isReactive")return!s;if(t==="__v_isReadonly")return s;if(t==="__v_isShallow")return a;if(t==="__v_raw")return n===(s?a?va:ya:a?ba:_a).get(o)||Object.getPrototypeOf(o)===Object.getPrototypeOf(n)?o:void 0;const r=K(o);if(!s){let l;if(r&&(l=ll[t]))return l;if(t==="hasOwnProperty")return pl}const i=Reflect.get(o,t,Fe(o)?o:n);if((go(t)?$a.has(t):ul(t))||(s||Me(o,"get",t),a))return i;if(Fe(i)){const l=r&&zn(t)?i:i.value;return s&&ue(l)?ss(l):l}return ue(i)?s?ss(i):at(i):i}}class ha extends fa{constructor(o=!1){super(!1,o)}set(o,t,n,s){let a=o[t];const r=K(o)&&zn(t);if(!this._isShallow){const c=xo(a);if(!Je(n)&&!xo(n)&&(a=ie(a),n=ie(n)),!r&&Fe(a)&&!Fe(n))return c||(a.value=n),!0}const i=r?Number(t)e,an=e=>Reflect.getPrototypeOf(e);function hl(e,o,t){return function(...n){const s=this.__v_raw,a=ie(s),r=Do(a),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=s[e](...n),g=t?ns:o?rt:ao;return!o&&Me(a,"iterate",l?es:Ko),Ae(Object.create(c),{next(){const{value:h,done:b}=c.next();return b?{value:h,done:b}:{value:i?[g(h[0]),g(h[1])]:g(h),done:b}}})}}function rn(e){return function(...o){return e==="delete"?!1:e==="clear"?void 0:this}}function ml(e,o){const t={get(s){const a=this.__v_raw,r=ie(a),i=ie(s);e||($o(s,i)&&Me(r,"get",s),Me(r,"get",i));const{has:l}=an(r),c=o?ns:e?rt:ao;if(l.call(r,s))return c(a.get(s));if(l.call(r,i))return c(a.get(i));a!==r&&a.get(s)},get size(){const s=this.__v_raw;return!e&&Me(ie(s),"iterate",Ko),s.size},has(s){const a=this.__v_raw,r=ie(a),i=ie(s);return e||($o(s,i)&&Me(r,"has",s),Me(r,"has",i)),s===i?a.has(s):a.has(s)||a.has(i)},forEach(s,a){const r=this,i=r.__v_raw,l=ie(i),c=o?ns:e?rt:ao;return!e&&Me(l,"iterate",Ko),i.forEach((g,h)=>s.call(a,c(g),c(h),r))}};return Ae(t,e?{add:rn("add"),set:rn("set"),delete:rn("delete"),clear:rn("clear")}:{add(s){const a=ie(this),r=an(a),i=ie(s),l=!o&&!Je(s)&&!xo(s)?i:s;return r.has.call(a,l)||$o(s,l)&&r.has.call(a,s)||$o(i,l)&&r.has.call(a,i)||(a.add(l),Ao(a,"add",l,l)),this},set(s,a){!o&&!Je(a)&&!xo(a)&&(a=ie(a));const r=ie(this),{has:i,get:l}=an(r);let c=i.call(r,s);c||(s=ie(s),c=i.call(r,s));const g=l.call(r,s);return r.set(s,a),c?$o(a,g)&&Ao(r,"set",s,a):Ao(r,"add",s,a),this},delete(s){const a=ie(this),{has:r,get:i}=an(a);let l=r.call(a,s);l||(s=ie(s),l=r.call(a,s)),i&&i.call(a,s);const c=a.delete(s);return l&&Ao(a,"delete",s,void 0),c},clear(){const s=ie(this),a=s.size!==0,r=s.clear();return a&&Ao(s,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(s=>{t[s]=hl(s,e,o)}),t}function ln(e,o){const t=ml(e,o);return(n,s,a)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?n:Reflect.get(ce(t,s)&&s in n?t:n,s,a)}const _l={get:ln(!1,!1)},bl={get:ln(!1,!0)},yl={get:ln(!0,!1)},vl={get:ln(!0,!0)},_a=new WeakMap,ba=new WeakMap,ya=new WeakMap,va=new WeakMap;function kl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function at(e){return xo(e)?e:cn(e,!1,gl,_l,_a)}function wl(e){return cn(e,!1,$l,bl,ba)}function ss(e){return cn(e,!0,dl,yl,ya)}function Sm(e){return cn(e,!0,fl,vl,va)}function cn(e,o,t,n,s){if(!ue(e)||e.__v_raw&&!(o&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const a=s.get(e);if(a)return a;const r=kl(Ki(e));if(r===0)return e;const i=new Proxy(e,r===2?n:t);return s.set(e,i),i}function Xo(e){return xo(e)?Xo(e.__v_raw):!!(e&&e.__v_isReactive)}function xo(e){return!!(e&&e.__v_isReadonly)}function Je(e){return!!(e&&e.__v_isShallow)}function as(e){return e?!!e.__v_raw:!1}function ie(e){const o=e&&e.__v_raw;return o?ie(o):e}function Ll(e){return!ce(e,"__v_skip")&&Object.isExtensible(e)&&Zs(e,"__v_skip",!0),e}const ao=e=>ue(e)?at(e):e,rt=e=>ue(e)?ss(e):e;function Fe(e){return e?e.__v_isRef===!0:!1}function me(e){return wa(e,!1)}function ka(e){return wa(e,!0)}function wa(e,o){return Fe(e)?e:new Sl(e,o)}class Sl{constructor(o,t){this.dep=new Jn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?o:ie(o),this._value=t?o:ao(o),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(o){const t=this._rawValue,n=this.__v_isShallow||Je(o)||xo(o);o=n?o:ie(o),$o(o,t)&&(this._rawValue=o,this._value=n?o:ao(o),this.dep.trigger())}}function At(e){return Fe(e)?e.value:e}const Al={get:(e,o,t)=>o==="__v_raw"?e:At(Reflect.get(e,o,t)),set:(e,o,t,n)=>{const s=e[o];return Fe(s)&&!Fe(t)?(s.value=t,!0):Reflect.set(e,o,t,n)}};function La(e){return Xo(e)?e:new Proxy(e,Al)}class Pl{constructor(o,t,n){this.fn=o,this.setter=t,this._value=void 0,this.dep=new Jn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=wt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&he!==this)return ra(this,!0),!0}get value(){const o=this.dep.track();return ca(this),o&&(o.version=this.dep.version),this._value}set value(o){this.setter&&this.setter(o)}}function xl(e,o,t=!1){let n,s;return Y(e)?n=e:(n=e.get,s=e.set),new Pl(n,s,t)}const un={},pn=new WeakMap;let Yo;function El(e,o=!1,t=Yo){if(t){let n=pn.get(t);n||pn.set(t,n=[]),n.push(e)}}function Cl(e,o,t=fe){const{immediate:n,deep:s,once:a,scheduler:r,augmentJob:i,call:l}=t,c=k=>s?k:Je(k)||s===!1||s===0?Uo(k,1):Uo(k);let g,h,b,L,O=!1,C=!1;if(Fe(e)?(h=()=>e.value,O=Je(e)):Xo(e)?(h=()=>c(e),O=!0):K(e)?(C=!0,O=e.some(k=>Xo(k)||Je(k)),h=()=>e.map(k=>{if(Fe(k))return k.value;if(Xo(k))return c(k);if(Y(k))return l?l(k,2):k()})):Y(e)?o?h=l?()=>l(e,2):e:h=()=>{if(b){fo();try{b()}finally{ho()}}const k=Yo;Yo=g;try{return l?l(e,3,[L]):e(L)}finally{Yo=k}}:h=po,o&&s){const k=h,E=s===!0?1/0:s;h=()=>Uo(k(),E)}const M=al(),F=()=>{g.stop(),M&&M.active&&jn(M.effects,g)};if(a&&o){const k=o;o=(...E)=>{const P=k(...E);return F(),P}}let D=C?new Array(e.length).fill(un):un;const v=k=>{if(!(!(g.flags&1)||!g.dirty&&!k))if(o){const E=g.run();if(k||s||O||(C?E.some((P,T)=>$o(P,D[T])):$o(E,D))){b&&b();const P=Yo;Yo=g;try{const T=[E,D===un?void 0:C&&D[0]===un?[]:D,L];D=E,l?l(o,3,T):o(...T)}finally{Yo=P}}}else g.run()};return i&&i(v),g=new sa(h),g.scheduler=r?()=>r(v,!1):v,L=k=>El(k,!1,g),b=g.onStop=()=>{const k=pn.get(g);if(k){if(l)l(k,4);else for(const E of k)E();pn.delete(g)}},o?n?v(!0):D=g.run():r?r(v.bind(null,!0),!0):g.run(),F.pause=g.pause.bind(g),F.resume=g.resume.bind(g),F.stop=F,F}function Uo(e,o=1/0,t){if(o<=0||!ue(e)||e.__v_skip||(t=t||new Map,(t.get(e)||0)>=o))return e;if(t.set(e,o),o--,Fe(e))Uo(e.value,o,t);else if(K(e))for(let n=0;n{Uo(n,o,t)});else if(Qt(e)){for(const n in e)Uo(e[n],o,t);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Uo(e[n],o,t)}return e}/** -* @vue/runtime-core v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const Pt=[];let rs=!1;function Am(e,...o){if(rs)return;rs=!0,fo();const t=Pt.length?Pt[Pt.length-1].component:null,n=t&&t.appContext.config.warnHandler,s=Tl();if(n)it(n,t,11,[e+o.map(a=>{var r,i;return(i=(r=a.toString)==null?void 0:r.call(a))!=null?i:JSON.stringify(a)}).join(""),t&&t.proxy,s.map(({vnode:a})=>`at <${_r(t,a.type)}>`).join(` -`),s]);else{const a=[`[Vue warn]: ${e}`,...o];s.length&&a.push(` -`,...Nl(s)),console.warn(...a)}ho(),rs=!1}function Tl(){let e=Pt[Pt.length-1];if(!e)return[];const o=[];for(;e;){const t=o[0];t&&t.vnode===e?t.recurseCount++:o.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return o}function Nl(e){const o=[];return e.forEach((t,n)=>{o.push(...n===0?[]:[` -`],...Rl(t))}),o}function Rl({vnode:e,recurseCount:o}){const t=o>0?`... (${o} recursive calls)`:"",n=e.component?e.component.parent==null:!1,s=` at <${_r(e.component,e.type,n)}`,a=">"+t;return e.props?[s,...Ol(e.props),a]:[s+a]}function Ol(e){const o=[],t=Object.keys(e);return t.slice(0,3).forEach(n=>{o.push(...Sa(n,e[n]))}),t.length>3&&o.push(" ..."),o}function Sa(e,o,t){return be(o)?(o=JSON.stringify(o),t?o:[`${e}=${o}`]):typeof o=="number"||typeof o=="boolean"||o==null?t?o:[`${e}=${o}`]:Fe(o)?(o=Sa(e,ie(o.value),!0),t?o:[`${e}=Ref<`,o,">"]):Y(o)?[`${e}=fn${o.name?`<${o.name}>`:""}`]:(o=ie(o),t?o:[`${e}=`,o])}function it(e,o,t,n){try{return n?e(...n):e()}catch(s){gn(s,o,t)}}function ro(e,o,t,n){if(Y(e)){const s=it(e,o,t,n);return s&&Ks(s)&&s.catch(a=>{gn(a,o,t)}),s}if(K(e)){const s=[];for(let a=0;a>>1,s=Ge[n],a=xt(s);a=xt(t)?Ge.push(e):Ge.splice(Il(o),0,e),e.flags|=1,Pa()}}function Pa(){dn||(dn=Aa.then(Ca))}function Ml(e){if(!K(e))Bo&&e.id===-1?Bo.splice(ct+1,0,e):e.flags&1||(lt.push(e),e.flags|=1);else for(let o=0;oxt(t)-xt(n));if(lt.length=0,Bo){for(let t=0;te.id==null?e.flags&2?-1:1/0:e.id;function Ca(e){try{for(_o=0;_o{n._d&&Ln(-1);const a=fn(o),r=Qo.length;let i;try{i=e(...s)}finally{for(let l=Qo.length;l>r;l--)pr();fn(a),n._d&&Ln(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function Zo(e,o,t,n){const s=e.dirs,a=o&&o.dirs;for(let r=0;r1)return t&&Y(o)?o.call(n&&n.proxy):o}}const Ul=Symbol.for("v-scx"),Bl=()=>Et(Ul);function jl(e,o){return ls(e,null,o)}function yo(e,o,t){return ls(e,o,t)}function ls(e,o,t=fe){const{immediate:n,deep:s,flush:a,once:r}=t,i=Ae({},t),l=o&&n||!o&&a!=="post";let c;if(Gt){if(a==="sync"){const L=Bl();c=L.__watcherHandles||(L.__watcherHandles=[])}else if(!l){const L=()=>{};return L.stop=po,L.resume=po,L.pause=po,L}}const g=Be;i.call=(L,O,C)=>ro(L,g,O,C);let h=!1;a==="post"?i.scheduler=L=>{He(L,g&&g.suspense)}:a!=="sync"&&(h=!0,i.scheduler=(L,O)=>{O?L():is(L)}),i.augmentJob=L=>{o&&(L.flags|=4),h&&(L.flags|=2,g&&(L.id=g.uid,L.i=g))};const b=Cl(e,o,i);return Gt&&(c?c.push(b):l&&b()),b}function zl(e,o,t){const n=this.proxy,s=be(e)?e.includes(".")?Na(n,e):()=>n[e]:e.bind(n,n);let a;Y(o)?a=o:(a=o.handler,t=o);const r=Dt(this),i=ls(s,a.bind(n),t);return r(),i}function Na(e,o){const t=o.split(".");return()=>{let n=e;for(let s=0;se.__isTeleport,cs=Symbol("_leaveCb");function ql(e){let o=e[0];if(e.length>1){for(const t of e)if(t.type!==Co){o=t;break}}return o}function Ra(e){if(!ps(e))return hn(e.type)&&e.children?ql(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:o,children:t}=e;if(t){if(o&16)return t[0];if(o&32&&Y(t.default))return t.default()}}function us(e,o){if(e.shapeFlag&6&&e.component){e.transition=o;const t=e.component.subTree;us(hn(t.type)&&Ra(t)||t,o)}else e.shapeFlag&128?(e.ssContent.transition=o.clone(e.ssContent),e.ssFallback.transition=o.clone(e.ssFallback)):e.transition=o}function mn(e,o){return Y(e)?Ae({name:e.name},o,{setup:e}):e}function Oa(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Fa(e,o){let t;return!!((t=Object.getOwnPropertyDescriptor(e,o))&&!t.configurable)}const _n=new WeakMap;function Ct(e,o,t,n,s=!1){if(K(e)){e.forEach((C,M)=>Ct(C,o&&(K(o)?o[M]:o),t,n,s));return}if(Tt(n)&&!s){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Ct(e,o,t,n.component.subTree);return}const a=n.shapeFlag&4?ks(n.component):n.el,r=s?null:a,{i,r:l}=e,c=o&&o.r,g=i.refs===fe?i.refs={}:i.refs,h=i.setupState,b=ie(h),L=h===fe?Hs:C=>Fa(g,C)?!1:ce(b,C),O=(C,M)=>!(M&&Fa(g,M));if(c!=null&&c!==l){if(Ia(o),be(c))g[c]=null,L(c)&&(h[c]=null);else if(Fe(c)){const C=o;O(c,C.k)&&(c.value=null),C.k&&(g[C.k]=null)}}if(Y(l))it(l,i,12,[r,g]);else{const C=be(l),M=Fe(l);if(C||M){const F=()=>{if(e.f){const D=C?L(l)?h[l]:g[l]:O()||!e.k?l.value:g[e.k];if(s)K(D)&&jn(D,a);else if(K(D))D.includes(a)||D.push(a);else if(C)g[l]=[a],L(l)&&(h[l]=g[l]);else{const v=[a];O(l,e.k)&&(l.value=v),e.k&&(g[e.k]=v)}}else C?(g[l]=r,L(l)&&(h[l]=r)):M&&(O(l,e.k)&&(l.value=r),e.k&&(g[e.k]=r))};if(r){const D=()=>{F(),_n.delete(e)};D.id=-1,_n.set(e,D),He(D,t)}else Ia(e),F()}}}function Ia(e){const o=_n.get(e);o&&(o.flags|=8,_n.delete(e))}on().requestIdleCallback,on().cancelIdleCallback;const Tt=e=>!!e.type.__asyncLoader,ps=e=>e.type.__isKeepAlive;function Hl(e,o){Ma(e,"a",o)}function Wl(e,o){Ma(e,"da",o)}function Ma(e,o,t=Be){const n=e.__wdc||(e.__wdc=()=>{let s=t;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(bn(o,n,t),t){let s=t.parent;for(;s&&s.parent;)ps(s.parent.vnode)&&Kl(n,o,t,s),s=s.parent}}function Kl(e,o,t,n){const s=bn(o,e,n,!0);gs(()=>{jn(n[o],s)},t)}function bn(e,o,t=Be,n=!1){if(t){const s=t[e]||(t[e]=[]),a=o.__weh||(o.__weh=(...r)=>{fo();const i=Dt(t),l=ro(o,t,e,r);return i(),ho(),l});return n?s.unshift(a):s.push(a),a}}const Eo=e=>(o,t=Be)=>{(!Gt||e==="sp")&&bn(e,(...n)=>o(...n),t)},Da=Eo("bm"),yn=Eo("m"),Xl=Eo("bu"),Yl=Eo("u"),Ga=Eo("bum"),gs=Eo("um"),Zl=Eo("sp"),Jl=Eo("rtg"),Ql=Eo("rtc");function ec(e,o=Be){bn("ec",e,o)}const oc=Symbol.for("v-ndc");function vn(e,o,t,n){let s;const a=t,r=K(e);if(r||be(e)){const i=r&&Xo(e);let l=!1,c=!1;i&&(l=!Je(e),c=xo(e),e=sn(e)),s=new Array(e.length);for(let g=0,h=e.length;go(i,l,void 0,a));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;le?fr(e)?ks(e):ds(e.parent):null,Nt=Ae(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ds(e.parent),$root:e=>ds(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>za(e),$forceUpdate:e=>e.f||(e.f=()=>{is(e.update)}),$nextTick:e=>e.n||(e.n=$n.bind(e.proxy)),$watch:e=>zl.bind(e)}),$s=(e,o)=>e!==fe&&!e.__isScriptSetup&&ce(e,o),tc={get({_:e},o){if(o==="__v_skip")return!0;const{ctx:t,setupState:n,data:s,props:a,accessCache:r,type:i,appContext:l}=e;if(o[0]!=="$"){const b=r[o];if(b!==void 0)switch(b){case 1:return n[o];case 2:return s[o];case 4:return t[o];case 3:return a[o]}else{if($s(n,o))return r[o]=1,n[o];if(s!==fe&&ce(s,o))return r[o]=2,s[o];if(ce(a,o))return r[o]=3,a[o];if(t!==fe&&ce(t,o))return r[o]=4,t[o];fs&&(r[o]=0)}}const c=Nt[o];let g,h;if(c)return o==="$attrs"&&Me(e.attrs,"get",""),c(e);if((g=i.__cssModules)&&(g=g[o]))return g;if(t!==fe&&ce(t,o))return r[o]=4,t[o];if(h=l.config.globalProperties,ce(h,o))return h[o]},set({_:e},o,t){const{data:n,setupState:s,ctx:a}=e;return $s(s,o)?(s[o]=t,!0):n!==fe&&ce(n,o)?(n[o]=t,!0):ce(e.props,o)||o[0]==="$"&&o.slice(1)in e?!1:(a[o]=t,!0)},has({_:{data:e,setupState:o,accessCache:t,ctx:n,appContext:s,props:a,type:r}},i){let l;return!!(t[i]||e!==fe&&i[0]!=="$"&&ce(e,i)||$s(o,i)||ce(a,i)||ce(n,i)||ce(Nt,i)||ce(s.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,o,t){return t.get!=null?e._.accessCache[o]=0:ce(t,"value")&&this.set(e,o,t.value,null),Reflect.defineProperty(e,o,t)}};function Ua(e){return K(e)?e.reduce((o,t)=>(o[t]=null,o),{}):e}let fs=!0;function nc(e){const o=za(e),t=e.proxy,n=e.ctx;fs=!1,o.beforeCreate&&Ba(o.beforeCreate,e,"bc");const{data:s,computed:a,methods:r,watch:i,provide:l,inject:c,created:g,beforeMount:h,mounted:b,beforeUpdate:L,updated:O,activated:C,deactivated:M,beforeDestroy:F,beforeUnmount:D,destroyed:v,unmounted:k,render:E,renderTracked:P,renderTriggered:T,errorCaptured:B,serverPrefetch:j,expose:Z,inheritAttrs:q,components:z,directives:X,filters:xe}=o;if(c&&sc(c,n,null),r)for(const J in r){const se=r[J];Y(se)&&(n[J]=se.bind(t))}if(s){const J=s.call(t,t);ue(J)&&(e.data=at(J))}if(fs=!0,a)for(const J in a){const se=a[J],ve=Y(se)?se.bind(t,t):Y(se.get)?se.get.bind(t,t):po,Ie=!Y(se)&&Y(se.set)?se.set.bind(t):po,ge=Q({get:ve,set:Ie});Object.defineProperty(n,J,{enumerable:!0,configurable:!0,get:()=>ge.value,set:ke=>ge.value=ke})}if(i)for(const J in i)ja(i[J],n,t,J);if(l){const J=Y(l)?l.call(t):l;Reflect.ownKeys(J).forEach(se=>{Gl(se,J[se])})}g&&Ba(g,e,"c");function ae(J,se){K(se)?se.forEach(ve=>J(ve.bind(t))):se&&J(se.bind(t))}if(ae(Da,h),ae(yn,b),ae(Xl,L),ae(Yl,O),ae(Hl,C),ae(Wl,M),ae(ec,B),ae(Ql,P),ae(Jl,T),ae(Ga,D),ae(gs,k),ae(Zl,j),K(Z))if(Z.length){const J=e.exposed||(e.exposed={});Z.forEach(se=>{Object.defineProperty(J,se,{get:()=>t[se],set:ve=>t[se]=ve,enumerable:!0})})}else e.exposed||(e.exposed={});E&&e.render===po&&(e.render=E),q!=null&&(e.inheritAttrs=q),z&&(e.components=z),X&&(e.directives=X),j&&Oa(e)}function sc(e,o,t=po){K(e)&&(e=hs(e));for(const n in e){const s=e[n];let a;ue(s)?"default"in s?a=Et(s.from||n,s.default,!0):a=Et(s.from||n):a=Et(s),Fe(a)?Object.defineProperty(o,n,{enumerable:!0,configurable:!0,get:()=>a.value,set:r=>a.value=r}):o[n]=a}}function Ba(e,o,t){ro(K(e)?e.map(n=>n.bind(o.proxy)):e.bind(o.proxy),o,t)}function ja(e,o,t,n){let s=n.includes(".")?Na(t,n):()=>t[n];if(be(e)){const a=o[e];Y(a)&&yo(s,a)}else if(Y(e))yo(s,e.bind(t));else if(ue(e))if(K(e))e.forEach(a=>ja(a,o,t,n));else{const a=Y(e.handler)?e.handler.bind(t):o[e.handler];Y(a)&&yo(s,a,e)}}function za(e){const o=e.type,{mixins:t,extends:n}=o,{mixins:s,optionsCache:a,config:{optionMergeStrategies:r}}=e.appContext,i=a.get(o);let l;return i?l=i:!s.length&&!t&&!n?l=o:(l={},s.length&&s.forEach(c=>kn(l,c,r,!0)),kn(l,o,r)),ue(o)&&a.set(o,l),l}function kn(e,o,t,n=!1){const{mixins:s,extends:a}=o;a&&kn(e,a,t,!0),s&&s.forEach(r=>kn(e,r,t,!0));for(const r in o)if(!(n&&r==="expose")){const i=ac[r]||t&&t[r];e[r]=i?i(e[r],o[r]):o[r]}return e}const ac={data:Va,props:qa,emits:qa,methods:Rt,computed:Rt,beforeCreate:Ue,created:Ue,beforeMount:Ue,mounted:Ue,beforeUpdate:Ue,updated:Ue,beforeDestroy:Ue,beforeUnmount:Ue,destroyed:Ue,unmounted:Ue,activated:Ue,deactivated:Ue,errorCaptured:Ue,serverPrefetch:Ue,components:Rt,directives:Rt,watch:ic,provide:Va,inject:rc};function Va(e,o){return o?e?function(){return Ae(Y(e)?e.call(this,this):e,Y(o)?o.call(this,this):o)}:o:e}function rc(e,o){return Rt(hs(e),hs(o))}function hs(e){if(K(e)){const o={};for(let t=0;to==="modelValue"||o==="model-value"?e.modelModifiers:e[`${o}Modifiers`]||e[`${qe(o)}Modifiers`]||e[`${Ze(o)}Modifiers`];function pc(e,o,...t){if(e.isUnmounted)return;const n=e.vnode.props||fe;let s=t;const a=o.startsWith("update:"),r=a&&uc(n,o.slice(7));r&&(r.trim&&(s=t.map(g=>be(g)?g.trim():g)),r.number&&(s=s.map(Zi)));let i,l=n[i=Vn(o)]||n[i=Vn(qe(o))];!l&&a&&(l=n[i=Vn(Ze(o))]),l&&ro(l,e,6,s);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,ro(c,e,6,s)}}const gc=new WeakMap;function Wa(e,o,t=!1){const n=t?gc:o.emitsCache,s=n.get(e);if(s!==void 0)return s;const a=e.emits;let r={},i=!1;if(!Y(e)){const l=c=>{const g=Wa(c,o,!0);g&&(i=!0,Ae(r,g))};!t&&o.mixins.length&&o.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!i?(ue(e)&&n.set(e,null),null):(K(a)?a.forEach(l=>r[l]=null):Ae(r,a),ue(e)&&n.set(e,r),r)}function wn(e,o){return!e||!Yt(o)?!1:(o=o.slice(2),o=o==="Once"?o:o.replace(/Once$/,""),ce(e,o[0].toLowerCase()+o.slice(1))||ce(e,Ze(o))||ce(e,o))}function Pm(){}function Ka(e){const{type:o,vnode:t,proxy:n,withProxy:s,propsOptions:[a],slots:r,attrs:i,emit:l,render:c,renderCache:g,props:h,data:b,setupState:L,ctx:O,inheritAttrs:C}=e,M=fn(e);let F,D;try{if(t.shapeFlag&4){const k=s||n,E=k;F=vo(c.call(E,k,g,h,L,b,O)),D=i}else{const k=o;F=vo(k.length>1?k(h,{attrs:i,slots:r,emit:l}):k(h,null)),D=o.props?i:dc(i)}}catch(k){Qo.length=0,gn(k,e,1),F=de(Co)}let v=F;if(D&&C!==!1){const k=Object.keys(D),{shapeFlag:E}=v;k.length&&E&7&&(a&&k.some(Zt)&&(D=$c(D,a)),v=pt(v,D,!1,!0))}if(t.dirs&&(v=pt(v,null,!1,!0),v.dirs=v.dirs?v.dirs.concat(t.dirs):t.dirs),t.transition){const k=hn(v.type)&&Ra(v)||v;us(k,t.transition)}return F=v,fn(M),F}const dc=e=>{let o;for(const t in e)(t==="class"||t==="style"||Yt(t))&&((o||(o={}))[t]=e[t]);return o},$c=(e,o)=>{const t={};for(const n in e)(!Zt(n)||!(n.slice(9)in o))&&(t[n]=e[n]);return t};function fc(e,o,t){const{props:n,children:s,component:a}=e,{props:r,children:i,patchFlag:l}=o,c=a.emitsOptions;if(o.dirs||o.transition)return!0;if(t&&l>=0){if(l&1024)return!0;if(l&16)return n?Xa(n,r,c):!!r;if(l&8){const g=o.dynamicProps;for(let h=0;hObject.create(Za),Qa=e=>Object.getPrototypeOf(e)===Za;function mc(e,o,t,n=!1){const s={},a=Ja();e.propsDefaults=Object.create(null),er(e,o,s,a);for(const r in e.propsOptions[0])r in s||(s[r]=void 0);t?e.props=n?s:wl(s):e.type.props?e.props=s:e.props=a,e.attrs=a}function _c(e,o,t,n){const{props:s,attrs:a,vnode:{patchFlag:r}}=e,i=ie(s),[l]=e.propsOptions;let c=!1;if((n||r>0)&&!(r&16)){if(r&8){const g=e.vnode.dynamicProps;for(let h=0;h{l=!0;const[b,L]=or(h,o,!0);Ae(r,b),L&&i.push(...L)};!t&&o.mixins.length&&o.mixins.forEach(g),e.extends&&g(e.extends),e.mixins&&e.mixins.forEach(g)}if(!a&&!l)return ue(e)&&n.set(e,nt),nt;if(K(a))for(let g=0;ge==="_"||e==="_ctx"||e==="$stable",bs=e=>K(e)?e.map(vo):[vo(e)],yc=(e,o,t)=>{if(o._n)return o;const n=Dl((...s)=>bs(o(...s)),t);return n._c=!1,n},nr=(e,o,t)=>{const n=e._ctx;for(const s in e){if(_s(s))continue;const a=e[s];if(Y(a))o[s]=yc(s,a,n);else if(a!=null){const r=bs(a);o[s]=()=>r}}},sr=(e,o)=>{const t=bs(o);e.slots.default=()=>t},ar=(e,o,t)=>{for(const n in o)(t||!_s(n))&&(e[n]=o[n])},vc=(e,o,t)=>{const n=e.slots=Ja();if(e.vnode.shapeFlag&32){const s=o._;s?(ar(n,o,t),t&&Zs(n,"_",s,!0)):nr(o,n)}else o&&sr(e,o)},kc=(e,o,t)=>{const{vnode:n,slots:s}=e;let a=!0,r=fe;if(n.shapeFlag&32){const i=o._;i?t&&i===1?a=!1:ar(s,o,t):(a=!o.$stable,nr(o,s)),r=o}else o&&(sr(e,o),r={default:1});if(a)for(const i in s)!_s(i)&&r[i]==null&&delete s[i]},He=Pc;function wc(e){return Lc(e)}function Lc(e,o){const t=on();t.__VUE__=!0;const{insert:n,remove:s,patchProp:a,createElement:r,createText:i,createComment:l,setText:c,setElementText:g,parentNode:h,nextSibling:b,setScopeId:L=po,insertStaticContent:O}=e,C=($,_,m,x=null,R=null,N=null,U=void 0,G=null,u=!!_.dynamicChildren)=>{if($===_)return;$&&!It($,_)&&(x=oo($),ke($,R,N,!0),$=null),_.patchFlag===-2&&(u=!1,_.dynamicChildren=null);const{type:p,ref:d,shapeFlag:f}=_;switch(p){case Ot:M($,_,m,x);break;case Co:F($,_,m,x);break;case vs:$==null&&D(_,m,x,U);break;case Ce:z($,_,m,x,R,N,U,G,u);break;default:f&1?E($,_,m,x,R,N,U,G,u):f&6?X($,_,m,x,R,N,U,G,u):(f&64||f&128)&&p.process($,_,m,x,R,N,U,G,u,Ve)}d!=null&&R?Ct(d,$&&$.ref,N,_||$,!_):d==null&&$&&$.ref!=null&&Ct($.ref,null,N,$,!0)},M=($,_,m,x)=>{if($==null)n(_.el=i(_.children),m,x);else{const R=_.el=$.el;_.children!==$.children&&c(R,_.children)}},F=($,_,m,x)=>{$==null?n(_.el=l(_.children||""),m,x):_.el=$.el},D=($,_,m,x)=>{[$.el,$.anchor]=O($.children,_,m,x,$.el,$.anchor)},v=({el:$,anchor:_},m,x)=>{let R;for(;$&&$!==_;)R=b($),n($,m,x),$=R;n(_,m,x)},k=({el:$,anchor:_})=>{let m;for(;$&&$!==_;)m=b($),s($),$=m;s(_)},E=($,_,m,x,R,N,U,G,u)=>{if(_.type==="svg"?U="svg":_.type==="math"&&(U="mathml"),$==null)P(_,m,x,R,N,U,G,u);else{const p=$.el&&$.el._isVueCE?$.el:null;try{p&&p._beginPatch(),j($,_,R,N,U,G,u)}finally{p&&p._endPatch()}}},P=($,_,m,x,R,N,U,G)=>{let u,p;const{props:d,shapeFlag:f,transition:S,dirs:A}=$;if(u=$.el=r($.type,N,d&&d.is,d),f&8?g(u,$.children):f&16&&B($.children,u,null,x,R,ys($,N),U,G),A&&Zo($,null,x,"created"),T(u,$,$.scopeId,U,x),d){for(const w in d)w!=="value"&&!yt(w)&&a(u,w,null,d[w],N,x);"value"in d&&a(u,"value",null,d.value,N),(p=d.onVnodeBeforeMount)&&ko(p,x,$)}A&&Zo($,null,x,"beforeMount");const y=Sc(R,S);y&&S.beforeEnter(u),n(u,_,m),((p=d&&d.onVnodeMounted)||y||A)&&He(()=>{try{p&&ko(p,x,$),y&&S.enter(u),A&&Zo($,null,x,"mounted")}finally{}},R)},T=($,_,m,x,R)=>{if(m&&L($,m),x)for(let N=0;N{for(let p=u;p<$.length;p++){const d=$[p]=G?No($[p]):vo($[p]);C(null,d,_,m,x,R,N,U,G)}},j=($,_,m,x,R,N,U)=>{const G=_.el=$.el;let{patchFlag:u,dynamicChildren:p,dirs:d}=_;u|=$.patchFlag&16;const f=$.props||fe,S=_.props||fe;let A;if(m&&Jo(m,!1),(A=S.onVnodeBeforeUpdate)&&ko(A,m,_,$),d&&Zo(_,$,m,"beforeUpdate"),m&&Jo(m,!0),p&&(!$.dynamicChildren||$.dynamicChildren.length!==p.length)&&(u=0,U=!1,p=null),(f.innerHTML&&S.innerHTML==null||f.textContent&&S.textContent==null)&&g(G,""),p?Z($.dynamicChildren,p,G,m,x,ys(_,R),N):U||se($,_,G,null,m,x,ys(_,R),N,!1),u>0){if(u&16)q(G,f,S,m,R);else if(u&2&&f.class!==S.class&&a(G,"class",null,S.class,R),u&4&&a(G,"style",f.style,S.style,R),u&8){const y=_.dynamicProps;for(let w=0;w{A&&ko(A,m,_,$),d&&Zo(_,$,m,"updated")},x)},Z=($,_,m,x,R,N,U)=>{for(let G=0;G<_.length;G++){const u=$[G],p=_[G],d=u.el&&(u.type===Ce||!It(u,p)||u.shapeFlag&198)?h(u.el):m;C(u,p,d,null,x,R,N,U,!0)}},q=($,_,m,x,R)=>{if(_!==m){if(_!==fe)for(const N in _)!yt(N)&&!(N in m)&&a($,N,_[N],null,R,x);for(const N in m){if(yt(N))continue;const U=m[N],G=_[N];U!==G&&N!=="value"&&a($,N,G,U,R,x)}"value"in m&&a($,"value",_.value,m.value,R)}},z=($,_,m,x,R,N,U,G,u)=>{const p=_.el=$?$.el:i(""),d=_.anchor=$?$.anchor:i("");let{patchFlag:f,dynamicChildren:S,slotScopeIds:A}=_;A&&(G=G?G.concat(A):A),$==null?(n(p,m,x),n(d,m,x),B(_.children||[],m,d,R,N,U,G,u)):f>0&&f&64&&S&&$.dynamicChildren&&$.dynamicChildren.length===S.length?(Z($.dynamicChildren,S,m,R,N,U,G),(_.key!=null||R&&_===R.subTree)&&rr($,_,!0)):se($,_,m,d,R,N,U,G,u)},X=($,_,m,x,R,N,U,G,u)=>{_.slotScopeIds=G,$==null?_.shapeFlag&512?R.ctx.activate(_,m,x,U,u):xe(_,m,x,R,N,U,u):Re($,_,u)},xe=($,_,m,x,R,N,U)=>{const G=$.component=Oc($,x,R);if(ps($)&&(G.ctx.renderer=Ve),Fc(G,!1,U),G.asyncDep){if(R&&R.registerDep(G,ae,U),!$.el){const u=G.subTree=de(Co);F(null,u,_,m),$.placeholder=u.el}}else ae(G,$,_,m,R,N,U)},Re=($,_,m)=>{const x=_.component=$.component;if(fc($,_,m))if(x.asyncDep&&!x.asyncResolved){J(x,_,m);return}else x.next=_,x.update();else _.el=$.el,x.vnode=_},ae=($,_,m,x,R,N,U)=>{const G=()=>{if($.isMounted){let{next:f,bu:S,u:A,parent:y,vnode:w}=$;{const _e=ir($);if(_e){f&&(f.el=w.el,J($,f,U)),_e.asyncDep.then(()=>{He(()=>{$.isUnmounted||p()},R)});return}}let I=f,H;Jo($,!1),f?(f.el=w.el,J($,f,U)):f=w,S&&qn(S),(H=f.props&&f.props.onVnodeBeforeUpdate)&&ko(H,y,f,w),Jo($,!0);const re=Ka($),we=$.subTree;$.subTree=re,C(we,re,h(we.el),oo(we),$,R,N),f.el=re.el,I===null&&hc($,re.el),A&&He(A,R),(H=f.props&&f.props.onVnodeUpdated)&&He(()=>ko(H,y,f,w),R)}else{let f;const{el:S,props:A}=_,{bm:y,m:w,parent:I,root:H,type:re}=$,we=Tt(_);Jo($,!1),y&&qn(y),!we&&(f=A&&A.onVnodeBeforeMount)&&ko(f,I,_),Jo($,!0);{H.ce&&H.ce._hasShadowRoot()&&H.ce._injectChildStyle(re,$.parent?$.parent.type:void 0);const _e=$.subTree=Ka($);C(null,_e,m,x,$,R,N),_.el=_e.el}if(w&&He(w,R),!we&&(f=A&&A.onVnodeMounted)){const _e=_;He(()=>ko(f,I,_e),R)}(_.shapeFlag&256||I&&Tt(I.vnode)&&I.vnode.shapeFlag&256)&&$.a&&He($.a,R),$.isMounted=!0,_=m=x=null}};$.scope.on();const u=$.effect=new sa(G);$.scope.off();const p=$.update=u.run.bind(u),d=$.job=u.runIfDirty.bind(u);d.i=$,d.id=$.uid,u.scheduler=()=>is(d),Jo($,!0),p()},J=($,_,m)=>{_.component=$;const x=$.vnode.props;$.vnode=_,$.next=null,_c($,_.props,x,m),kc($,_.children,m),fo(),xa($),ho()},se=($,_,m,x,R,N,U,G,u=!1)=>{const p=$&&$.children,d=$?$.shapeFlag:0,f=_.children,{patchFlag:S,shapeFlag:A}=_;if(S>0){if(S&128){Ie(p,f,m,x,R,N,U,G,u);return}else if(S&256){ve(p,f,m,x,R,N,U,G,u);return}}A&8?(d&16&&ze(p,R,N),f!==p&&g(m,f)):d&16?A&16?Ie(p,f,m,x,R,N,U,G,u):ze(p,R,N,!0):(d&8&&g(m,""),A&16&&B(f,m,x,R,N,U,G,u))},ve=($,_,m,x,R,N,U,G,u)=>{$=$||nt,_=_||nt;const p=$.length,d=_.length,f=Math.min(p,d);let S;for(S=0;Sd?ze($,R,N,!0,!1,f):B(_,m,x,R,N,U,G,u,f)},Ie=($,_,m,x,R,N,U,G,u)=>{let p=0;const d=_.length;let f=$.length-1,S=d-1;for(;p<=f&&p<=S;){const A=$[p],y=_[p]=u?No(_[p]):vo(_[p]);if(It(A,y))C(A,y,m,null,R,N,U,G,u);else break;p++}for(;p<=f&&p<=S;){const A=$[f],y=_[S]=u?No(_[S]):vo(_[S]);if(It(A,y))C(A,y,m,null,R,N,U,G,u);else break;f--,S--}if(p>f){if(p<=S){const A=S+1,y=AS)for(;p<=f;)ke($[p],R,N,!0),p++;else{const A=p,y=p,w=new Map;for(p=y;p<=S;p++){const Se=_[p]=u?No(_[p]):vo(_[p]);Se.key!=null&&w.set(Se.key,p)}let I,H=0;const re=S-y+1;let we=!1,_e=0;const to=new Array(re);for(p=0;p=re){ke(Se,R,N,!0);continue}let Ke;if(Se.key!=null)Ke=w.get(Se.key);else for(I=y;I<=S;I++)if(to[I-y]===0&&It(Se,_[I])){Ke=I;break}Ke===void 0?ke(Se,R,N,!0):(to[Ke-y]=p+1,Ke>=_e?_e=Ke:we=!0,C(Se,_[Ke],m,null,R,N,U,G,u),H++)}const no=we?Ac(to):nt;for(I=no.length-1,p=re-1;p>=0;p--){const Se=y+p,Ke=_[Se],Xt=_[Se+1],_t=Se+1{const{el:N,type:U,transition:G,children:u,shapeFlag:p}=$;if(p&6){ge($.component.subTree,_,m,x);return}if(p&128){$.suspense.move(_,m,x);return}if(p&64){U.move($,_,m,Ve);return}if(U===Ce){n(N,_,m);for(let f=0;fG.enter(N),R));else{const{leave:f,delayLeave:S,afterLeave:A}=G,y=()=>{$.ctx.isUnmounted?s(N):n(N,_,m)},w=()=>{const I=N._isLeaving||!!N[cs];N._isLeaving&&N[cs](!0),G.persisted&&!I?y():f(N,()=>{y(),A&&A()})};S?S(N,y,w):w()}else n(N,_,m)},ke=($,_,m,x=!1,R=!1)=>{const{type:N,props:U,ref:G,children:u,dynamicChildren:p,shapeFlag:d,patchFlag:f,dirs:S,cacheIndex:A,memo:y}=$;if(f===-2&&(R=!1),G!=null&&(fo(),Ct(G,null,m,$,!0),ho()),A!=null&&(_.renderCache[A]=void 0),d&256){_.ctx.deactivate($);return}const w=d&1&&S,I=!Tt($);let H;if(I&&(H=U&&U.onVnodeBeforeUnmount)&&ko(H,_,$),d&6)Ye($.component,m,x);else{if(d&128){$.suspense.unmount(m,x);return}w&&Zo($,null,_,"beforeUnmount"),d&64?$.type.remove($,_,m,Ve,x):p&&!p.hasOnce&&(N!==Ce||f>0&&f&64)?ze(p,_,m,!1,!0):(N===Ce&&f&384||!R&&d&16)&&ze(u,_,m),x&&eo($)}const re=y!=null&&A==null;(I&&(H=U&&U.onVnodeUnmounted)||w||re)&&He(()=>{H&&ko(H,_,$),w&&Zo($,null,_,"unmounted"),re&&($.el=null)},m)},eo=$=>{const{type:_,el:m,anchor:x,transition:R}=$;if(_===Ce){Ee(m,x);return}if(_===vs){k($);return}const N=()=>{s(m),R&&!R.persisted&&R.afterLeave&&R.afterLeave()};if($.shapeFlag&1&&R&&!R.persisted){const{leave:U,delayLeave:G}=R,u=()=>U(m,N);G?G($.el,N,u):u()}else N()},Ee=($,_)=>{let m;for(;$!==_;)m=b($),s($),$=m;s(_)},Ye=($,_,m)=>{const{bum:x,scope:R,job:N,subTree:U,um:G,m:u,a:p}=$;lr(u),lr(p),x&&qn(x),R.stop(),N&&(N.flags|=8,ke(U,$,_,m)),G&&He(G,_),He(()=>{$.isUnmounted=!0},_)},ze=($,_,m,x=!1,R=!1,N=0)=>{for(let U=N;U<$.length;U++)ke($[U],_,m,x,R)},oo=$=>{if($.shapeFlag&6)return oo($.component.subTree);if($.shapeFlag&128)return $.suspense.next();const _=b($.anchor||$.el),m=_&&_[Vl];return m?b(m):_};let uo=!1;const So=($,_,m)=>{let x;$==null?_._vnode&&(ke(_._vnode,null,null,!0),x=_._vnode.component):C(_._vnode||null,$,_,null,null,null,m),_._vnode=$,uo||(uo=!0,xa(x),Ea(),uo=!1)},Ve={p:C,um:ke,m:ge,r:eo,mt:xe,mc:B,pc:se,pbc:Z,n:oo,o:e};return{render:So,hydrate:void 0,createApp:cc(So)}}function ys({type:e,props:o},t){return t==="svg"&&e==="foreignObject"||t==="mathml"&&e==="annotation-xml"&&o&&o.encoding&&o.encoding.includes("html")?void 0:t}function Jo({effect:e,job:o},t){t?(e.flags|=32,o.flags|=4):(e.flags&=-33,o.flags&=-5)}function Sc(e,o){return(!e||e&&!e.pendingBranch)&&o&&!o.persisted}function rr(e,o,t=!1){const n=e.children,s=o.children;if(K(n)&&K(s))for(let a=0;a>1,e[t[i]]0&&(o[n]=t[a-1]),t[a]=n)}}for(a=t.length,r=t[a-1];a-- >0;)t[a]=r,r=o[r];return t}function ir(e){const o=e.subTree.component;if(o)return o.asyncDep&&!o.asyncResolved?o:ir(o)}function lr(e){if(e)for(let o=0;oe.__isSuspense;function Pc(e,o){o&&o.pendingBranch?K(e)?o.effects.push(...e):o.effects.push(e):Ml(e)}const Ce=Symbol.for("v-fgt"),Ot=Symbol.for("v-txt"),Co=Symbol.for("v-cmt"),vs=Symbol.for("v-stc"),Qo=[];let Xe=null;function ee(e=!1){Qo.push(Xe=e?null:[])}function pr(){Qo.pop(),Xe=Qo[Qo.length-1]||null}let Ft=1;function Ln(e,o=!1){Ft+=e,e<0&&Xe&&o&&(Xe.hasOnce=!0)}function gr(e){return e.dynamicChildren=Ft>0?Xe||nt:null,pr(),Ft>0&&Xe&&Xe.push(e),e}function te(e,o,t,n,s,a){return gr(oe(e,o,t,n,s,a,!0))}function xc(e,o,t,n,s){return gr(de(e,o,t,n,s,!0))}function Sn(e){return e?e.__v_isVNode===!0:!1}function It(e,o){return e.type===o.type&&e.key===o.key}const dr=({key:e})=>e??null,An=({ref:e,ref_key:o,ref_for:t})=>(typeof e=="number"&&(e=""+e),e!=null?be(e)||Fe(e)||Y(e)?{i:bo,r:e,k:o,f:!!t}:e:null);function oe(e,o=null,t=null,n=0,s=null,a=e===Ce?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:o,key:o&&dr(o),ref:o&&An(o),scopeId:Ta,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:bo};return i?(Pn(l,t),a&128&&e.normalize(l)):t&&(l.shapeFlag|=be(t)?8:16),Ft>0&&!r&&Xe&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&Xe.push(l),l}const de=Ec;function Ec(e,o=null,t=null,n=0,s=null,a=!1){if((!e||e===oc)&&(e=Co),Sn(e)){const i=pt(e,o,!0);return t&&Pn(i,t),Ft>0&&!a&&Xe&&(i.shapeFlag&6?Xe[Xe.indexOf(e)]=i:Xe.push(i)),i.patchFlag=-2,i}if(jc(e)&&(e=e.__vccOpts),o){o=Cc(o);let{class:i,style:l}=o;i&&!be(i)&&(o.class=tn(i)),ue(l)&&(as(l)&&!K(l)&&(l=Ae({},l)),o.style=Go(l))}const r=be(e)?1:ur(e)?128:hn(e)?64:ue(e)?4:Y(e)?2:0;return oe(e,o,t,n,s,r,a,!0)}function Cc(e){return e?as(e)||Qa(e)?Ae({},e):e:null}function pt(e,o,t=!1,n=!1){const{props:s,ref:a,patchFlag:r,children:i,transition:l}=e,c=o?Tc(s||{},o):s,g={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&dr(c),ref:o&&o.ref?t&&a?K(a)?a.concat(An(o)):[a,An(o)]:An(o):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:o&&e.type!==Ce?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&pt(e.ssContent),ssFallback:e.ssFallback&&pt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&us(g,l.clone(g)),g}function To(e=" ",o=0){return de(Ot,null,e,o)}function Te(e="",o=!1){return o?(ee(),xc(Co,null,e)):de(Co,null,e)}function vo(e){return e==null||typeof e=="boolean"?de(Co):K(e)?de(Ce,null,e.slice()):Sn(e)?No(e):de(Ot,null,String(e))}function No(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:pt(e)}function Pn(e,o){let t=0;const{shapeFlag:n}=e;if(o==null)o=null;else if(K(o))t=16;else if(typeof o=="object")if(n&65){const s=o.default;s&&(s._c&&(s._d=!1),Pn(e,s()),s._c&&(s._d=!0));return}else{t=32;const s=o._;!s&&!Qa(o)?o._ctx=bo:s===3&&bo&&(bo.slots._===1?o._=1:(o._=2,e.patchFlag|=1024))}else if(Y(o)){if(n&65){Pn(e,{default:o});return}o={default:o,_ctx:bo},t=32}else o=String(o),n&64?(t=16,o=[To(o)]):t=8;e.children=o,e.shapeFlag|=t}function Tc(...e){const o={};for(let t=0;tBe||bo;let xn,Mt;{const e=on(),o=(t,n)=>{let s;return(s=e[t])||(s=e[t]=[]),s.push(n),a=>{s.length>1?s.forEach(r=>r(a)):s[0](a)}};xn=o("__VUE_INSTANCE_SETTERS__",t=>Be=t),Mt=o("__VUE_SSR_SETTERS__",t=>Gt=t)}const Dt=e=>{const o=Be;return xn(e),e.scope.on(),()=>{e.scope.off(),xn(o)}},$r=()=>{Be&&Be.scope.off(),xn(null)};function fr(e){return e.vnode.shapeFlag&4}let Gt=!1;function Fc(e,o=!1,t=!1){o&&Mt(o);const{props:n,children:s}=e.vnode,a=fr(e);mc(e,n,a,o),vc(e,s,t||o);const r=a?Ic(e,o):void 0;return o&&Mt(!1),r}function Ic(e,o){const t=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,tc);const{setup:n}=t;if(n){fo();const s=e.setupContext=n.length>1?Dc(e):null,a=Dt(e),r=it(n,e,0,[e.props,s]),i=Ks(r);if(ho(),a(),(i||e.sp)&&!Tt(e)&&Oa(e),i){if(r.then($r,$r),o)return r.then(l=>{Mt(!0);try{hr(e,l,o)}finally{Mt(!1)}}).catch(l=>{gn(l,e,0)});e.asyncDep=r}else hr(e,r)}else mr(e)}function hr(e,o,t){Y(o)?e.type.__ssrInlineRender?e.ssrRender=o:e.render=o:ue(o)&&(e.setupState=La(o)),mr(e)}function mr(e,o,t){const n=e.type;e.render||(e.render=n.render||po);{const s=Dt(e);fo();try{nc(e)}finally{ho(),s()}}}const Mc={get(e,o){return Me(e,"get",""),e[o]}};function Dc(e){const o=t=>{e.exposed=t||{}};return{attrs:new Proxy(e.attrs,Mc),slots:e.slots,emit:e.emit,expose:o}}function ks(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(La(Ll(e.exposed)),{get(o,t){if(t in o)return o[t];if(t in Nt)return Nt[t](e)},has(o,t){return t in o||t in Nt}})):e.proxy}const Gc=/(?:^|[-_])\w/g,Uc=e=>e.replace(Gc,o=>o.toUpperCase()).replace(/[-_]/g,"");function Bc(e,o=!0){return Y(e)?e.displayName||e.name:e.name||o&&e.__name}function _r(e,o,t=!1){let n=Bc(o);if(!n&&o.__file){const s=o.__file.match(/([^/\\]+)\.\w+$/);s&&(n=s[1])}if(!n&&e){const s=a=>{for(const r in a)if(a[r]===o)return r};n=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return n?Uc(n):t?"App":"Anonymous"}function jc(e){return Y(e)&&"__vccOpts"in e}const Q=(e,o)=>xl(e,o,Gt);function br(e,o,t){try{Ln(-1);const n=arguments.length;return n===2?ue(o)&&!K(o)?Sn(o)?de(e,null,[o]):de(e,o):de(e,null,o):(n>3?t=Array.prototype.slice.call(arguments,2):n===3&&Sn(t)&&(t=[t]),de(e,o,t))}finally{Ln(1)}}const zc="3.5.42";/** -* @vue/runtime-dom v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let ws;const yr=typeof window<"u"&&window.trustedTypes;if(yr)try{ws=yr.createPolicy("vue",{createHTML:e=>e})}catch{}const vr=ws?e=>ws.createHTML(e):e=>e,Vc="http://www.w3.org/2000/svg",qc="http://www.w3.org/1998/Math/MathML",Ro=typeof document<"u"?document:null,kr=Ro&&Ro.createElement("template"),Hc={insert:(e,o,t)=>{o.insertBefore(e,t||null)},remove:e=>{const o=e.parentNode;o&&o.removeChild(e)},createElement:(e,o,t,n)=>{const s=o==="svg"?Ro.createElementNS(Vc,e):o==="mathml"?Ro.createElementNS(qc,e):t?Ro.createElement(e,{is:t}):Ro.createElement(e);return e==="select"&&n&&n.multiple!=null&&s.setAttribute("multiple",n.multiple),s},createText:e=>Ro.createTextNode(e),createComment:e=>Ro.createComment(e),setText:(e,o)=>{e.nodeValue=o},setElementText:(e,o)=>{e.textContent=o},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ro.querySelector(e),setScopeId(e,o){e.setAttribute(o,"")},insertStaticContent(e,o,t,n,s,a){const r=t?t.previousSibling:o.lastChild;if(s&&(s===a||s.nextSibling))for(;o.insertBefore(s.cloneNode(!0),t),!(s===a||!(s=s.nextSibling)););else{kr.innerHTML=vr(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=kr.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}o.insertBefore(i,t)}return[r?r.nextSibling:o.firstChild,t?t.previousSibling:o.lastChild]}},Wc=Symbol("_vtc");function Kc(e,o,t){const n=e[Wc];n&&(o=(o?[o,...n]:[...n]).join(" ")),o==null?e.removeAttribute("class"):t?e.setAttribute("class",o):e.className=o}const wr=Symbol("_vod"),Xc=Symbol("_vsh"),Yc=Symbol(""),Zc=/(?:^|;)\s*display\s*:/;function Jc(e,o,t){const n=e.style,s=be(t);let a=!1;if(t&&!s){if(o)if(be(o))for(const r of o.split(";")){const i=r.slice(0,r.indexOf(":")).trim();t[i]==null&&Ut(n,i,"")}else for(const r in o)t[r]==null&&Ut(n,r,"");for(const r in t){r==="display"&&(a=!0);const i=t[r];i!=null?eu(e,r,!be(o)&&o?o[r]:void 0,i)||Ut(n,r,i):Ut(n,r,"")}}else if(s){if(o!==t){const r=n[Yc];r&&(t+=";"+r),n.cssText=t,a=Zc.test(t)}}else o&&e.removeAttribute("style");wr in e&&(e[wr]=a?n.display:"",e[Xc]&&(n.display="none"))}const En=/\s*!important$/;function Ut(e,o,t){if(K(t))t.forEach(n=>Ut(e,o,n));else if(t==null&&(t=""),o.startsWith("--"))En.test(t)?e.setProperty(o,t.replace(En,""),"important"):e.setProperty(o,t);else{const n=Qc(e,o);En.test(t)?e.setProperty(Ze(n),t.replace(En,""),"important"):e[n]=t}}const Lr=["Webkit","Moz","ms"],Ls={};function Qc(e,o){const t=Ls[o];if(t)return t;let n=qe(o);if(n!=="filter"&&n in e)return Ls[o]=n;n=Ys(n);for(let s=0;sSs||(iu.then(()=>Ss=0),Ss=Date.now());function cu(e,o){const t=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=t.attached)return;const s=t.value;if(K(s)){const a=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{a.call(n),n._stopped=!0};const r=s.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,uu=(e,o,t,n,s,a)=>{const r=s==="svg";o==="class"?Kc(e,n,r):o==="style"?Jc(e,t,n):Yt(o)?Zt(o)||nu(e,o,t,n,a):(o[0]==="."?(o=o.slice(1),!0):o[0]==="^"?(o=o.slice(1),!1):pu(e,o,n,r))?(Pr(e,o,n),!e.tagName.includes("-")&&(o==="value"||o==="checked"||o==="selected")&&Ar(e,o,n,r,a,o!=="value")):e._isVueCE&&(gu(e,o)||e._def.__asyncLoader&&(/[A-Z]/.test(o)||!be(n)))?Pr(e,qe(o),n,a,o):(o==="true-value"?e._trueValue=n:o==="false-value"&&(e._falseValue=n),Ar(e,o,n,r))};function pu(e,o,t,n){if(n)return!!(o==="innerHTML"||o==="textContent"||o in e&&Er(o)&&Y(t));if(o==="spellcheck"||o==="draggable"||o==="translate"||o==="autocorrect"||o==="sandbox"&&e.tagName==="IFRAME"||o==="form"||o==="list"&&e.tagName==="INPUT"||o==="type"&&e.tagName==="TEXTAREA")return!1;if(o==="width"||o==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Er(o)&&be(t)?!1:o in e}function gu(e,o){const t=e._def.props;if(!t)return!1;const n=qe(o);return Array.isArray(t)?t.some(s=>qe(s)===n):Object.keys(t).some(s=>qe(s)===n)}const Cr={};function As(e,o,t){let n=mn(e,o);Qt(n)&&(n=Ae({},n,o));class s extends Ps{constructor(r){super(n,r,t)}}return s.def=n,s}const du=typeof HTMLElement<"u"?HTMLElement:class{};class Ps extends du{constructor(o,t={},n=Rr){super(),this._def=o,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==Rr?this._root=this.shadowRoot:o.shadowRoot!==!1?(this.attachShadow(Ae({},o.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let o=this;for(;o=o&&(o.assignedSlot||o.parentNode||o.host);)if(o instanceof Ps){this._parent=o;break}this._instance||(this._resolved?this._mount(this._def):o&&o._pendingResolve?this._pendingResolve=o._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(o=this._parent){o&&(this._instance.parent=o._instance,this._inheritParentContext(o))}_inheritParentContext(o=this._parent){o&&this._app&&Object.setPrototypeOf(this._app._context.provides,o._instance.provides)}disconnectedCallback(){this._connected=!1,$n(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(o){for(const t of o)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:a,styles:r}=n;let i;if(a&&!K(a))for(const l in a){const c=a[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Js(this._props[l])),(i||(i=Object.create(null)))[qe(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(r),this._mount(n)},t=this._def.__asyncLoader;if(t)return this._pendingResolve=t().then(n=>{n.configureApp=this._def.configureApp,o(this._def=n,!0)}),this._pendingResolve;o(this._def)}_mount(o){this._app=this._createApp(o),this._inheritParentContext(),o.configureApp&&o.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const t=this._instance&&this._instance.exposed;if(t)for(const n in t)ce(this,n)||Object.defineProperty(this,n,{get:()=>At(t[n])})}_resolveProps(o){const{props:t}=o,n=K(t)?t:Object.keys(t||{});for(const s of Object.keys(this))s[0]!=="_"&&n.includes(s)&&this._setProp(s,this[s]);for(const s of n.map(qe))Object.defineProperty(this,s,{get(){return this._getProp(s)},set(a){this._setProp(s,a,!0,!this._patching)}})}_setAttr(o){if(o.startsWith("data-v-"))return;const t=this.hasAttribute(o);let n=t?this.getAttribute(o):Cr;const s=qe(o);t&&this._numberProps&&this._numberProps[s]&&(n=Js(n)),this._setProp(s,n,!1,!0)}_getProp(o){return this._props[o]}_setProp(o,t,n=!0,s=!1){if(t!==this._props[o]&&(this._dirty=!0,t===Cr?delete this._props[o]:(this._props[o]=t,o==="key"&&this._app&&(this._app._ceVNode.key=t)),s&&this._instance&&this._update(),n)){const a=this._ob;a&&(this._processMutations(a.takeRecords()),a.disconnect()),t===!0?this.setAttribute(Ze(o),""):typeof t=="string"||typeof t=="number"?this.setAttribute(Ze(o),t+""):t||this.removeAttribute(Ze(o)),a&&a.observe(this,{attributes:!0})}}_update(){const o=this._createVNode();this._app&&(o.appContext=this._app._context),fu(o,this._root)}_createVNode(){const o={};this.shadowRoot||(o.onVnodeMounted=o.onVnodeUpdated=this._renderSlots.bind(this));const t=de(this._def,Ae(o,this._props));return this._instance||(t.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const s=(a,r)=>{this.dispatchEvent(new CustomEvent(a,Qt(r[0])?Ae({detail:r},r[0]):{detail:r}))};n.emit=(a,...r)=>{s(a,r),Ze(a)!==a&&s(Ze(a),r)},this._setParent()}),t}_applyStyles(o,t,n){if(!o)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}const s=this._nonce,a=this.shadowRoot,r=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(a);let i=null;for(let l=o.length-1;l>=0;l--){const c=document.createElement("style");s&&c.setAttribute("nonce",s),c.textContent=o[l],a.insertBefore(c,i||r),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),t&&this._styleAnchors.set(t,c))}}_getStyleAnchor(o){if(!o)return null;const t=this._styleAnchors.get(o);return t&&t.parentNode===this.shadowRoot?t:(t&&this._styleAnchors.delete(o),null)}_getRootStyleInsertionAnchor(o){for(let t=0;t{Nr().render(...e)},Rr=(...e)=>{const o=Nr().createApp(...e),{mount:t}=o;return o.mount=n=>{const s=mu(n);if(!s)return;const a=o._component;!Y(a)&&!a.render&&!a.template&&(a.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const r=t(s,!1,hu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),r},o};function hu(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function mu(e){return be(e)?document.querySelector(e):e}const _u={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},bu={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},yu={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف"},vu={title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},ku={research_controls:"أدوات البحث",clustering:"التجميع",filters:"عوامل التصفية",pin_dim:"خفوت النقاط",export_poster:"تصدير ملصق…",reload_data:"إعادة تحميل البيانات",off:"إيقاف",native:"أصلي",mst:"الشجرة الممتدة",network:"شبكة",off_desc:"إظهار كل نقطة على حدة",native_desc:"تجميع دوائر Mapbox (الأسرع)",mst_desc:"شبكات تقارب بالشجرة الممتدة الصغرى",network_desc:"خطوط ربط بأقرب جار",search_languages:"ابحث عن اللغات…",search_religions:"ابحث عن الأديان…",reset_all:"إعادة تعيين الكل",no_languages:"لم تُحمَّل أي لغات بعد",no_religions:"لم تُحمَّل أي أديان بعد",unadopted:"غير متبنّى",min:"الأدنى",max:"الأعلى",adopted:"متبنَّاة",adoption:"التبني",engaged:"مُخْدُومَة",engagement:"المشاركة",unengaged:"يحتاج إلى انخراط",language:"اللغة",religion:"الدين",population:"السكان",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",close:"إغلاق",clear:"مسح",map_controls:"أدوات التحكم بالخريطة"},wu={bloc:"كتلة التقارب",gospel_access:"الوصول إلى الإنجيل",people:"الشعوب",people_name:"الشعب (الاسم)",praying:"يصلّون",religion_family:"عائلة الأديان",search_language:"ابحث عن لغة",search_people:"ابحث عن شعب",search_place:"ابحث عن مكان",search_religion:"ابحث عن دين",upgs_in_scope:"الشعوب ضمن النطاق",countries_touched:"الدول المشمولة",unreached:"غير موصولين",sum_population:"مجموع السكان",sum_praying:"مجموع المصلّين",charts:"الرسوم البيانية",table:"الجدول",cluster:"المجموعة",country:"الدولة",engagement:"المشاركة",language:"اللغة",language_family:"عائلة اللغة",people_group:"الشعب",population:"السكان",prayer:"الصلاة",region:"المنطقة",religion:"الدين",status:"الحالة",adopted:"متبنَّاة",filters:"عوامل التصفية",gospel_resources:"موارد الإنجيل",map:"الخريطة",search_placeholder:"ابحث عن الشعوب والأماكن واللغات والأديان…",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",map_controls:"أدوات التحكم بالخريطة",close:"إغلاق",clear:"مسح",dashboard_title:"لوحة البحث الشاملة",align_dashboard:"محاذاة اللوحة",align_dashboard_tip:"إعادة تخطيط اللوحة إلى المحاذاة الافتراضية",selected:"المحدد",world:"العالم",vertical_legend:"مفتاح عمودي",groups_in_scope:"مجموعة ضمن النطاق",filter_by:"تصفية حسب",remove_filter:"إزالة التصفية",groups:"مجموعة",expand:"توسيع",collapse:"طيّ",place:"المكان"},Lu={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Su={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"الملاحظات التوضيحية أدناه باللغة الإنجليزية."},mode:{gap:"الفجوة",coverage:"الموارد المتوفرة"},search:{placeholder:"ابحث عن شعب أو لغة أو رمز ISO",clear:"مسح البحث",none:"لا شيء يطابق هذا الاسم أو اللغة أو الرمز.",placeholderShort:"شعب أو لغة أو رمز ISO"},legend:{title:"شعوب غير مبلَّغة ولا يوجد لها أي مورد إنجيلي",band60:"⁦60%+⁩ بلا أي مورد",band30:"⁦30–59%⁩",bandSome:"بعض الشعوب",bandAll:"كل الشعوب لديها شيء",tier2:"الكتاب المقدس والفيلم",tier1:"وُجد بعض الموارد",tier0:"لا شيء",hnr:"يمكنهم السماع، ولا يوجد نص",showAll:"عرض كل الشعوب",titleCoverage:"شعوب غير مبلَّغة ويوجد لها بعض الموارد الإنجيلية",cov80:"⁦80%+⁩ لديهم شيء",cov50:"⁦50–79%⁩",cov1:"⁦1–49%⁩",cov0:"لا شيء لأي منهم",tallyEach:"كل",tallyIs:"هو شعب واحد —",tallyOf:"منها،",tallyLink:"لديها رابط",doxa0:"لدى الجميع شيء",doxa1:"‪1–4‬ بلا شيء",doxa5:"‪5–14‬",doxa15:"‪15–39‬",doxa40:"‪40+‬",cvd1:"‪1–4‬ لديهم موارد",cvd5:"‪5–14‬",cvd15:"‪15–39‬",cvd40:"‪40+‬",onMap:"شعوب دوكسا على هذه الخريطة",notPlaced:"ضمن القائمة، بلا موقع بعد",outOfScope:"لا توجد شعوب دوكسا — غير ملوَّنة"},tabs:{groups:"أكبر الشعوب",countries:"حسب البلد",regions:"حسب المنطقة",noprayer:"لا أحد يصلّي",hnr:"يسمعون، بلا نص"},stat:{language:"اللغة",population:"عدد السكان",countries:"البلدان",peopleGroups:"الشعوب",noResource:"لا يوجد أي مورد",peopleAffected:"الأشخاص المتأثرون",haveScripture:"لديهم الكتاب المقدس",haveFilm:"لديهم الفيلم",haveAudio:"لديهم كتاب مقدس مسموع",signLanguages:"لغات الإشارة",growingUnreached:"متزايدون وغير مبلَّغين",deathsDay:"الوفيات المقدَّرة يوميًا"},sheet:{ownLanguage:"بلغتهم الأم",close:"إغلاق",loading:"جارٍ تحميل الموارد…",pray:"صلِّ من أجل",everyResource:"كل الموارد بـ",alsoSpeak:"يتحدثون أيضًا"},res:{scripture:"الكتاب المقدس",film:"الفيلم",audio:"صوتي",bibleVideo:"فيديو كتابي",bibleStories:"Open Bible Stories",gospelAudio:"صوتيات الإنجيل",gospelPresentation:"عرض للإنجيل",scriptureEarth:"Scripture Earth",training:"تدريب على التلمذة",jesusFilm:"فيلم يسوع",audioScripture:"الكتاب المقدس الصوتي",bibleStoriesPlain:"قصص الكتاب المقدس"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"},guide:{dotVsCountry:"كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",noneFoundShort:"«لا شيء» تعني غير موجود في المصادر التي بحثنا فيها — وليست دليلًا على عدم وجوده.",tapCountry:"اضغط على بلد لترى الموارد الفعلية، شعبًا شعبًا."},tables:{title:"موارد الإنجيل — البيانات",showing:"عرض",of:"من",for:"لـ",filteredTo:"مصفّى حسب",showAll:"عرض كل الموارد",t_doxa:"دوكسا — الوصول إلى الإنجيل",t_links:"كل مورد ورابطه",t_nothing:"حيث لا يوجد شيء",t_countrygap:"الفجوة حسب البلد",t_translation:"يسمعون ولا نص لديهم",t_translationcountry:"أين نترجم",t_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"},list:{noText:"بلا نص مقدس",hasScripture:"لديها الكتاب المقدس",allLanguages:"كل اللغات",peopleGroup:"شعب",peopleGroups:"شعوب",scriptureHere:"الكتاب المقدس بهذه اللغة"},columns:{"People group":"الشعب",Country:"البلد",Region:"المنطقة",Language:"اللغة",Population:"عدد السكان",Religion:"الديانة","Gospel access":"الوصول إلى الإنجيل",Resources:"الموارد",Scripture:"الكتاب المقدس","Bible video":"فيديو كتابي","Gospel presentation":"عرض للإنجيل",Countries:"البلدان","People groups":"الشعوب"},charts:{scriptureAny:"الكتاب المقدس (أي نوع)",fullBible:"الكتاب المقدس كاملاً",newTestament:"العهد الجديد",filmAny:"الفيلم (أي نوع)",nothingInPools:"لا شيء في المصادر التي جرى البحث فيها",nothingInPoolsLower:"لا شيء في المصادر التي جرى البحث فيها",noResourceInPools:"لم يُعثر على أي مورد في المصادر التي جرى البحث فيها",aResourceFound:"وُجد مورد",tabCoverage:"تغطية الموارد",tabGap:"أكبر الفجوات",keyScripture:"الكتاب المقدس",keyFilmStories:"الفيلم / القصص",keyAudioEtc:"صوتيات / عرض / تدريب",unresolvedCode:"رمز خارج ISO 639-3 — غير محسوم، لم يُقَس"}},Au={search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},Pu={title:{adoption:"تقدم التبني",affinityBlocs:"كتل القرابة",doxaRegions:"مناطق Doxa",engagement:"تقدم الانخراط",gospelResources:"موارد الإنجيل",languageFamilies:"العائلات اللغوية",prayer:"تقدم الصلاة",upg100List:"قائمة UPG 100 الخاصة بي"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"},tabInfo:{upg100Region:"المنطقة — ترتّب قوائم UPG-100 حسب منطقة العالم (أفريقيا، الهند، الشرق الأوسط، الصمّ، …). الأعداد هي مجموع UUPG والسكان لكل قائمة تحتها.",upg100Zone:"قوائم UPG-100 — كل واحدة هي قائمة صلاة للشعوب غير الموصول إليها في منطقة ما، وهي ما ترسمه الخريطة وتلوّنه. تُطبع كل قائمة ككُتيّب خاص بها.",upg100Group:"مجموعة شعبية — المجموعات غير الموصول إليها داخل القائمة، الأكثر حاجة للصلاة أولاً. كل نقطة على الخريطة هي واحدة منها."},a11y:{expandRow:"توسيع {label}",collapseRow:"طي {label}",clearSelection:"إلغاء التحديد"}},xu={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},Eu={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Cu={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Tu={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Nu={"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة بشرية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة البشرية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مُخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة بشرية غير مبشرة تتبناها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات البشرية غير المُبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة بشرية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة البشرية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعات بشرية في %country%. تحقق من الخريطة لمعرفة المجموعات البشرية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مُخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Ru={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"},upg100Placeholder:"ابحث عن شعب أو قائمة UPG-100 أو منطقة…"},Ou={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده",mapToken:"رمز الخريطة",tokenPaste:"رمز Mapbox العام (pk.…)",tokenUrlLabel:"…أو رابط خدمة الرموز",tokenApply:"استخدام",tokenClear:"مسح",tokenStoredHere:"يُحفظ في هذا المتصفح فقط.",tokenSourceYours:"يُستخدم رمزك",tokenSourceUrl:"يُستخدم رمز من {url}",tokenSourceBuilt:"يُستخدم الرمز المضمَّن في هذه الصفحة",tokenSourceNone:"لا يوجد رمز Mapbox: لا يمكن تحميل خرائط Mapbox (خرائط MapLibre لا تحتاج رمزًا)",tokenSecret:"هذا رمز سري (sk.…). الصق رمزًا عامًا (pk.…): هذه الصفحة عامة.",tokenNotPk:"يبدأ رمز Mapbox العام بـ pk.",tokenUrlFailed:"تعذّر الحصول على رمز من هذا الرابط: {why}"},Fu={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية",selectView:"اختر العرض",views:"العروض",prayerResources:"موارد الصلاة",map:"الخريطة"},Iu={kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},Mu={title:"Alle Volksgruppen",locations:"{n} Standorte (Gruppe × Land)",doxa:"DOXA-Volksgruppen",frontier:"Frontier — noch nichts begonnen",unreached:"Unerreicht — Arbeit beginnt",reached:"Erreicht — Gemeinde ist da",hint:"Zeile anklicken, um alle zu sehen · erneut klicken für alle",loading:"Alle Volksgruppen werden geladen…",loadError:"Die Karte konnte nicht geladen werden.",pray:"Für sie beten →",population:"Einw. {n}"},Du={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},Gu={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},Uu={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},Bu={research_controls:"Forschungssteuerung",clustering:"Clustering",filters:"Filter",pin_dim:"Pin-Transparenz",export_poster:"Poster exportieren…",reload_data:"Daten neu laden",off:"Aus",native:"Nativ",mst:"MST",network:"Netzwerk",off_desc:"Jeden Pin einzeln anzeigen",native_desc:"Mapbox-Kreiscluster (am schnellsten)",mst_desc:"Affinitätsnetze über minimalen Spannbaum",network_desc:"Verbindungslinien zum nächsten Nachbarn",search_languages:"Sprachen suchen…",search_religions:"Religionen suchen…",reset_all:"Alles zurücksetzen",no_languages:"Noch keine Sprachen geladen",no_religions:"Noch keine Religionen geladen",unadopted:"Nicht adoptiert",min:"min",max:"max",adopted:"Adoptiert",adoption:"Adoption",engaged:"Engagiert",engagement:"Engagement",unengaged:"Braucht Engagement",language:"Sprache",religion:"Religion",population:"Bevölkerung",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",close:"Schließen",clear:"Zurücksetzen",map_controls:"Kartensteuerung"},ju={bloc:"Affinitätsblock",gospel_access:"Zugang zum Evangelium",people:"Völker",people_name:"Volk (Name)",praying:"Betend",religion_family:"Religionsfamilie",search_language:"Sprache suchen",search_people:"Volk suchen",search_place:"Ort suchen",search_religion:"Religion suchen",upgs_in_scope:"UPGs im Bereich",countries_touched:"berührte Länder",unreached:"unerreicht",sum_population:"Σ Bevölkerung",sum_praying:"Σ Betende",charts:"Diagramme",table:"Tabelle",cluster:"Cluster",country:"Land",engagement:"Engagement",language:"Sprache",language_family:"Sprachfamilie",people_group:"Volk",population:"Bevölkerung",prayer:"Gebet",region:"Region",religion:"Religion",status:"Status",adopted:"Adoptiert",filters:"Filter",gospel_resources:"Evangeliumsressourcen",map:"Karte",search_placeholder:"Volksgruppen, Orte, Sprachen, Religionen suchen…",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",map_controls:"Kartensteuerung",close:"Schließen",clear:"Zurücksetzen",dashboard_title:"Big-Picture-Forschungsdashboard",align_dashboard:"Layout ausrichten",align_dashboard_tip:"Das Dashboard-Layout auf die Standardausrichtung zurücksetzen",selected:"Ausgewählt",world:"Welt",vertical_legend:"Vertikale Legende",groups_in_scope:"Volksgruppen im Bereich",filter_by:"Filtern nach",remove_filter:"Filter entfernen",groups:"Volksgruppen",expand:"Aufklappen",collapse:"Zuklappen",place:"Ort"},zu={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Vu={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film",audioScripture:"Audio-Bibeltext",bibleStoriesPlain:"Bibelgeschichten"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"},list:{noText:"Kein Bibeltext",hasScripture:"Hat Bibeltext",allLanguages:"Alle Sprachen",peopleGroup:"Volksgruppe",peopleGroups:"Volksgruppen",scriptureHere:"Bibeltext in dieser Sprache"},columns:{"People group":"Volksgruppe",Country:"Land",Region:"Region",Language:"Sprache",Population:"Bevölkerung",Religion:"Religion","Gospel access":"Zugang zum Evangelium",Resources:"Ressourcen",Scripture:"Bibeltext","Bible video":"Bibelvideo","Gospel presentation":"Evangeliums-Darstellung",Countries:"Länder","People groups":"Volksgruppen"},charts:{scriptureAny:"Bibeltext (beliebig)",fullBible:"Vollbibel",newTestament:"Neues Testament",filmAny:"Film (beliebig)",nothingInPools:"Nichts in den geprüften Quellen gefunden",nothingInPoolsLower:"nichts in den geprüften Quellen gefunden",noResourceInPools:"keine Ressource in den geprüften Quellen gefunden",aResourceFound:"eine Ressource gefunden",tabCoverage:"Ressourcenabdeckung",tabGap:"Größte Lücken",keyScripture:"Bibeltext",keyFilmStories:"Film / Geschichten",keyAudioEtc:"Audio / Präsentation / Schulung",unresolvedCode:"Code außerhalb ISO 639-3 — ungeklärt, nicht gemessen"}},qu={search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter."},Hu={title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"}},Wu={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},Ku={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Xu={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},Yu={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Zu={"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},Ju={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"},upg100Placeholder:"Volksgruppe, UPG-100-Liste oder Region suchen…"},Qu={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht",mapToken:"Karten-Token",tokenPaste:"Öffentlicher Mapbox-Token (pk.…)",tokenUrlLabel:"…oder die URL eines Token-Dienstes",tokenApply:"Verwenden",tokenClear:"Löschen",tokenStoredHere:"Nur in diesem Browser gespeichert.",tokenSourceYours:"Ihr Token wird verwendet",tokenSourceUrl:"Token von {url} wird verwendet",tokenSourceBuilt:"Der in diese Seite eingebaute Token wird verwendet",tokenSourceNone:"Kein Mapbox-Token: Mapbox-Karten können nicht laden (MapLibre-Karten brauchen keinen)",tokenSecret:"Das ist ein geheimer Token (sk.…). Fügen Sie einen öffentlichen ein (pk.…): Diese Seite ist öffentlich.",tokenNotPk:"Ein öffentlicher Mapbox-Token beginnt mit pk.",tokenUrlFailed:"Von dieser URL kam kein Token: {why}"},ep={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe",selectView:"Ansicht wählen",views:"Ansichten",prayerResources:"Gebetsressourcen",map:"Karte"},op={kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},tp={title:"All People Groups",locations:"{n} group–country locations",doxa:"DOXA people groups",frontier:"Frontier — nothing started",unreached:"Unreached — work beginning",reached:"Reached — church is there",hint:"Click a row to see all of them · click again for everything",loading:"Loading every people group…",loadError:"The map could not be loaded.",pray:"Pray for them →",population:"pop {n}"},np={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},sp={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},ap={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",note:"National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification."}},rp={research_controls:"Research controls",clustering:"Clustering",filters:"Filters",pin_dim:"Pin dim",export_poster:"Export poster…",reload_data:"Reload data",off:"Off",native:"Native",mst:"MST",network:"Network",off_desc:"Show every pin individually",native_desc:"Mapbox circle clusters (fastest)",mst_desc:"Minimum-spanning-tree affinity webs",network_desc:"Nearest-neighbor connection lines",search_languages:"Search languages…",search_religions:"Search religions…",reset_all:"Reset all",no_languages:"No languages loaded yet",no_religions:"No religions loaded yet",unadopted:"Unadopted",min:"min",max:"max",adopted:"Adopted",adoption:"Adoption",engaged:"Engaged",engagement:"Engagement",unengaged:"Unengaged",language:"Language",religion:"Religion",population:"Population",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",close:"Close",clear:"Clear",map_controls:"Research map controls"},ip={bloc:"Bloc",gospel_access:"Gospel Access",people:"People",people_name:"People (name)",praying:"Praying",religion_family:"Religion Family",search_language:"Search language",search_people:"Search people",search_place:"Search place",search_religion:"Search religion",upgs_in_scope:"UPGs in scope",countries_touched:"countries touched",unreached:"unreached",sum_population:"Σ population",sum_praying:"Σ praying",charts:"Charts",table:"Table",cluster:"Cluster",country:"Country",engagement:"Engagement",language:"Language",language_family:"Language Family",people_group:"People Group",population:"Population",prayer:"Prayer",region:"Region",religion:"Religion",status:"Status",adopted:"Adopted",filters:"Filters",gospel_resources:"Gospel Resources",map:"Map",search_placeholder:"Search people groups, place, language, religion…",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",map_controls:"Research map controls",close:"Close",clear:"Clear",dashboard_title:"Big Picture Research Dashboard",align_dashboard:"Align Dashboard",align_dashboard_tip:"Reset the dashboard layout to its default alignment",selected:"Selected",world:"World",vertical_legend:"Vertical Legend",groups_in_scope:"groups in scope",filter_by:"Filter by",remove_filter:"Remove filter",groups:"groups",expand:"Expand",collapse:"Collapse",place:"Place"},lp={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},cp={_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film",audioScripture:"Audio Scripture",bibleStoriesPlain:"Bible Stories"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"},list:{noText:"No text Scripture",hasScripture:"Has scripture",allLanguages:"All languages",peopleGroup:"people group",peopleGroups:"people groups",scriptureHere:"Scripture in this language"},columns:{"People group":"People group",Country:"Country",Region:"Region",Language:"Language",Population:"Population",Religion:"Religion","Gospel access":"Gospel access",Resources:"Resources",Scripture:"Scripture","Bible video":"Bible video","Gospel presentation":"Gospel presentation",Countries:"Countries","People groups":"People groups"},charts:{scriptureAny:"Scripture (any)",fullBible:"Full Bible",newTestament:"New Testament",filmAny:"Film (any)",nothingInPools:"Nothing found in pools checked",nothingInPoolsLower:"nothing found in pools checked",noResourceInPools:"no resource found in pools checked",aResourceFound:"a resource found",tabCoverage:"Resource coverage",tabGap:"Largest gaps",keyScripture:"scripture",keyFilmStories:"film / stories",keyAudioEtc:"audio / presentation / training",unresolvedCode:"code outside ISO 639-3 — unresolved, not measured"}},up={search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load More",full_profile:"Full Profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter."},pp={title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"}},gp={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them by their people group name."},dp={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},$p={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},fp={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},hp={"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},mp={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"},upg100Placeholder:"Search people group, UPG-100 list, or region…"},_p={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own",mapToken:"Map token",tokenPaste:"Mapbox public token (pk.…)",tokenUrlLabel:"…or the URL of a token service",tokenApply:"Use",tokenClear:"Clear",tokenStoredHere:"Kept in this browser only.",tokenSourceYours:"Using your token",tokenSourceUrl:"Using a token from {url}",tokenSourceBuilt:"Using the token built into this page",tokenSourceNone:"No Mapbox token: Mapbox maps cannot load (MapLibre maps need none)",tokenSecret:"That is a secret token (sk.…). Paste a public one (pk.…): this page is public.",tokenNotPk:"A Mapbox public token starts with pk.",tokenUrlFailed:"Could not get a token from that URL: {why}"},bp={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group",selectView:"Select View",views:"Views",prayerResources:"Prayer Resources",map:"Map"},yp={kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},vp={title:"Todos los grupos étnicos",locations:"{n} ubicaciones (grupo × país)",doxa:"Grupos étnicos de DOXA",frontier:"Frontera — nada iniciado",unreached:"No alcanzados — el trabajo comienza",reached:"Alcanzados — la iglesia está ahí",hint:"Haga clic en una fila para verlos todos · de nuevo para ver todo",loading:"Cargando todos los grupos étnicos…",loadError:"No se pudo cargar el mapa.",pray:"Ore por ellos →",population:"pobl. {n}"},kp={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},wp={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},Lp={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},Sp={research_controls:"Controles de investigación",clustering:"Agrupación",filters:"Filtros",pin_dim:"Atenuar puntos",export_poster:"Exportar póster…",reload_data:"Recargar datos",off:"Desactivado",native:"Nativo",mst:"MST",network:"Red",off_desc:"Mostrar cada punto por separado",native_desc:"Grupos circulares de Mapbox (lo más rápido)",mst_desc:"Redes de afinidad por árbol de expansión mínima",network_desc:"Líneas de conexión al vecino más cercano",search_languages:"Buscar idiomas…",search_religions:"Buscar religiones…",reset_all:"Restablecer todo",no_languages:"Aún no se han cargado idiomas",no_religions:"Aún no se han cargado religiones",unadopted:"No adoptado",min:"mín",max:"máx",adopted:"Adoptado",adoption:"Adopción",engaged:"Comprometido",engagement:"Compromiso",unengaged:"Necesita implicación",language:"Idioma",religion:"Religión",population:"Población",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",close:"Cerrar",clear:"Borrar",map_controls:"Controles del mapa"},Ap={bloc:"Bloque de afinidad",gospel_access:"Acceso al evangelio",people:"Pueblos",people_name:"Pueblo (nombre)",praying:"Orando",religion_family:"Familia religiosa",search_language:"Buscar idioma",search_people:"Buscar pueblo",search_place:"Buscar lugar",search_religion:"Buscar religión",upgs_in_scope:"UPG en el ámbito",countries_touched:"países alcanzados",unreached:"no alcanzados",sum_population:"Σ población",sum_praying:"Σ orando",charts:"Gráficos",table:"Tabla",cluster:"Clúster",country:"País",engagement:"Compromiso",language:"Idioma",language_family:"Familia lingüística",people_group:"Pueblo",population:"Población",prayer:"Oración",region:"Región",religion:"Religión",status:"Estado",adopted:"Adoptado",filters:"Filtros",gospel_resources:"Recursos del Evangelio",map:"Mapa",search_placeholder:"Buscar pueblos, lugares, idiomas, religiones…",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",map_controls:"Controles del mapa",close:"Cerrar",clear:"Borrar",dashboard_title:"Panel de investigación general",align_dashboard:"Alinear panel",align_dashboard_tip:"Restablecer la disposición del panel a su alineación predeterminada",selected:"Seleccionado",world:"Mundo",vertical_legend:"Leyenda vertical",groups_in_scope:"pueblos en el ámbito",filter_by:"Filtrar por",remove_filter:"Quitar filtro",groups:"pueblos",expand:"Expandir",collapse:"Contraer",place:"Lugar"},Pp={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},xp={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS",audioScripture:"Escrituras en audio",bibleStoriesPlain:"Historias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"},list:{noText:"Sin texto bíblico",hasScripture:"Tiene Escrituras",allLanguages:"Todos los idiomas",peopleGroup:"pueblo",peopleGroups:"pueblos",scriptureHere:"Escrituras en este idioma"},columns:{"People group":"Pueblo",Country:"País",Region:"Región",Language:"Idioma",Population:"Población",Religion:"Religión","Gospel access":"Acceso al evangelio",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Video bíblico","Gospel presentation":"Presentación del evangelio",Countries:"Países","People groups":"Pueblos"},charts:{scriptureAny:"Escrituras (cualquiera)",fullBible:"Biblia completa",newTestament:"Nuevo Testamento",filmAny:"Película (cualquiera)",nothingInPools:"No se encontró nada en las fuentes consultadas",nothingInPoolsLower:"no se encontró nada en las fuentes consultadas",noResourceInPools:"no se encontró ningún recurso en las fuentes consultadas",aResourceFound:"se encontró un recurso",tabCoverage:"Cobertura de recursos",tabGap:"Mayores brechas",keyScripture:"escrituras",keyFilmStories:"película / historias",keyAudioEtc:"audio / presentación / formación",unresolvedCode:"código fuera de ISO 639-3 — sin resolver, no medido"}},Ep={search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro."},Cp={title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"}},Tp={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo."},Np={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Rp={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},Op={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},Fp={"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},Ip={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"},upg100Placeholder:"Buscar pueblo, lista UPG-100 o región…"},Mp={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado",mapToken:"Token del mapa",tokenPaste:"Token público de Mapbox (pk.…)",tokenUrlLabel:"…o la URL de un servicio de tokens",tokenApply:"Usar",tokenClear:"Borrar",tokenStoredHere:"Se guarda solo en este navegador.",tokenSourceYours:"Usando tu token",tokenSourceUrl:"Usando un token de {url}",tokenSourceBuilt:"Usando el token integrado en esta página",tokenSourceNone:"Sin token de Mapbox: los mapas de Mapbox no cargan (los de MapLibre no lo necesitan)",tokenSecret:"Ese es un token secreto (sk.…). Pega uno público (pk.…): esta página es pública.",tokenNotPk:"Un token público de Mapbox empieza por pk.",tokenUrlFailed:"No se pudo obtener un token de esa URL: {why}"},Dp={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Seleccionar vista",views:"Vistas",prayerResources:"Recursos de oración",map:"Mapa"},Gp={kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},Up={title:"Tous les groupes ethniques",locations:"{n} emplacements (groupe × pays)",doxa:"Groupes ethniques DOXA",frontier:"Frontière — rien n’a commencé",unreached:"Non atteints — le travail commence",reached:"Atteints — l’Église est là",hint:"Cliquez sur une ligne pour les voir tous · recliquez pour tout voir",loading:"Chargement de tous les groupes ethniques…",loadError:"La carte n’a pas pu être chargée.",pray:"Priez pour eux →",population:"pop. {n}"},Bp={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende"},jp={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},zp={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},Vp={research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},qp={bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu"},Hp={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Wp={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS",audioScripture:"Écritures en audio",bibleStoriesPlain:"Histoires bibliques"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"},list:{noText:"Pas de texte biblique",hasScripture:"A les Écritures",allLanguages:"Toutes les langues",peopleGroup:"peuple",peopleGroups:"peuples",scriptureHere:"Écritures dans cette langue"},columns:{"People group":"Peuple",Country:"Pays",Region:"Région",Language:"Langue",Population:"Population",Religion:"Religion","Gospel access":"Accès à l'Évangile",Resources:"Ressources",Scripture:"Écritures","Bible video":"Vidéo biblique","Gospel presentation":"Présentation de l'Évangile",Countries:"Pays","People groups":"Peuples"},charts:{scriptureAny:"Écritures (toutes)",fullBible:"Bible complète",newTestament:"Nouveau Testament",filmAny:"Film (tous)",nothingInPools:"Rien trouvé dans les sources consultées",nothingInPoolsLower:"rien trouvé dans les sources consultées",noResourceInPools:"aucune ressource trouvée dans les sources consultées",aResourceFound:"une ressource trouvée",tabCoverage:"Couverture des ressources",tabGap:"Plus grands écarts",keyScripture:"écritures",keyFilmStories:"film / histoires",keyAudioEtc:"audio / présentation / formation",unresolvedCode:"code hors ISO 639-3 — non résolu, non mesuré"}},Kp={search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre."},Xp={title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"}},Yp={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple."},Zp={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Jp={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Qp={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},eg={"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},og={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"},upg100Placeholder:"Rechercher un peuple, une liste UPG-100 ou une région…"},tg={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule",mapToken:"Jeton de carte",tokenPaste:"Jeton public Mapbox (pk.…)",tokenUrlLabel:"…ou l’URL d’un service de jetons",tokenApply:"Utiliser",tokenClear:"Effacer",tokenStoredHere:"Conservé dans ce navigateur uniquement.",tokenSourceYours:"Votre jeton est utilisé",tokenSourceUrl:"Jeton obtenu de {url}",tokenSourceBuilt:"Jeton intégré à cette page",tokenSourceNone:"Aucun jeton Mapbox : les cartes Mapbox ne peuvent pas charger (MapLibre n’en a pas besoin)",tokenSecret:"C’est un jeton secret (sk.…). Collez un jeton public (pk.…) : cette page est publique.",tokenNotPk:"Un jeton public Mapbox commence par pk.",tokenUrlFailed:"Impossible d’obtenir un jeton depuis cette URL : {why}"},ng={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples",selectView:"Choisir la vue",views:"Vues",prayerResources:"Ressources de prière",map:"Carte"},sg={kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},ag={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},rg={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},ig={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},lg={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},cg={research_controls:"शोध नियंत्रण",clustering:"क्लस्टरिंग",filters:"फ़िल्टर",pin_dim:"पिन धुंधलापन",export_poster:"पोस्टर निर्यात करें…",reload_data:"डेटा फिर से लोड करें",off:"बंद",native:"नेटिव",mst:"MST",network:"नेटवर्क",off_desc:"हर पिन अलग-अलग दिखाएँ",native_desc:"Mapbox वृत्त क्लस्टर (सबसे तेज़)",mst_desc:"न्यूनतम स्पैनिंग ट्री आधारित जाल",network_desc:"निकटतम पड़ोसी को जोड़ने वाली रेखाएँ",search_languages:"भाषाएँ खोजें…",search_religions:"धर्म खोजें…",reset_all:"सब रीसेट करें",no_languages:"अभी कोई भाषा लोड नहीं हुई",no_religions:"अभी कोई धर्म लोड नहीं हुआ",unadopted:"अ-गोद लिया",min:"न्यून",max:"अधि",adopted:"गोद लिया गया",adoption:"गोद लेना",engaged:"संपर्कित",engagement:"सहभागिता",unengaged:"सहभागिता चाहिए",language:"भाषा",religion:"धर्म",population:"जनसंख्या",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",close:"बंद करें",clear:"साफ़ करें",map_controls:"मानचित्र नियंत्रण"},ug={bloc:"समानता समूह",gospel_access:"सुसमाचार पहुँच",people:"जनसमूह",people_name:"जनसमूह (नाम)",praying:"प्रार्थना कर रहे",religion_family:"धर्म परिवार",search_language:"भाषा खोजें",search_people:"जनसमूह खोजें",search_place:"स्थान खोजें",search_religion:"धर्म खोजें",upgs_in_scope:"दायरे में UPG",countries_touched:"छुए गए देश",unreached:"अनपहुँचे",sum_population:"Σ जनसंख्या",sum_praying:"Σ प्रार्थना",charts:"चार्ट",table:"तालिका",cluster:"क्लस्टर",country:"देश",engagement:"सहभागिता",language:"भाषा",language_family:"भाषा परिवार",people_group:"जनसमूह",population:"जनसंख्या",prayer:"प्रार्थना",region:"क्षेत्र",religion:"धर्म",status:"स्थिति",adopted:"गोद लिया गया",filters:"फ़िल्टर",gospel_resources:"सुसमाचार संसाधन",map:"नक्शा",search_placeholder:"जनसमूह, स्थान, भाषा, धर्म खोजें…",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",map_controls:"मानचित्र नियंत्रण",close:"बंद करें",clear:"साफ़ करें",dashboard_title:"बिग पिक्चर शोध डैशबोर्ड",align_dashboard:"डैशबोर्ड संरेखित करें",align_dashboard_tip:"डैशबोर्ड लेआउट को डिफ़ॉल्ट संरेखण पर लौटाएँ",selected:"चयनित",world:"विश्व",vertical_legend:"लंबवत लेजेंड",groups_in_scope:"दायरे में जनसमूह",filter_by:"इससे फ़िल्टर करें",remove_filter:"फ़िल्टर हटाएँ",groups:"जनसमूह",expand:"विस्तार करें",collapse:"संक्षिप्त करें",place:"स्थान"},pg={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},gg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म",audioScripture:"ऑडियो पवित्र शास्त्र",bibleStoriesPlain:"बाइबल की कहानियाँ"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"},list:{noText:"कोई लिखित शास्त्र नहीं",hasScripture:"शास्त्र उपलब्ध",allLanguages:"सभी भाषाएँ",peopleGroup:"जनसमूह",peopleGroups:"जनसमूह",scriptureHere:"इस भाषा में पवित्र शास्त्र"},columns:{"People group":"जनसमूह",Country:"देश",Region:"क्षेत्र",Language:"भाषा",Population:"जनसंख्या",Religion:"धर्म","Gospel access":"सुसमाचार पहुँच",Resources:"संसाधन",Scripture:"पवित्र शास्त्र","Bible video":"बाइबल वीडियो","Gospel presentation":"सुसमाचार प्रस्तुति",Countries:"देश","People groups":"जनसमूह"},charts:{scriptureAny:"पवित्र शास्त्र (कोई भी)",fullBible:"पूरी बाइबल",newTestament:"नया नियम",filmAny:"फ़िल्म (कोई भी)",nothingInPools:"जाँचे गए स्रोतों में कुछ नहीं मिला",nothingInPoolsLower:"जाँचे गए स्रोतों में कुछ नहीं मिला",noResourceInPools:"जाँचे गए स्रोतों में कोई संसाधन नहीं मिला",aResourceFound:"एक संसाधन मिला",tabCoverage:"संसाधन कवरेज",tabGap:"सबसे बड़े अंतराल",keyScripture:"पवित्र शास्त्र",keyFilmStories:"फ़िल्म / कहानियाँ",keyAudioEtc:"ऑडियो / प्रस्तुति / प्रशिक्षण",unresolvedCode:"ISO 639-3 से बाहर कोड — अनसुलझा, मापा नहीं गया"}},dg={search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},$g={title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"}},fg={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},hg={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},mg={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},_g={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},bg={"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},yg={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"},upg100Placeholder:"जनसमूह, UPG-100 सूची या क्षेत्र खोजें…"},vg={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं",mapToken:"मानचित्र टोकन",tokenPaste:"Mapbox सार्वजनिक टोकन (pk.…)",tokenUrlLabel:"…या किसी टोकन सेवा का URL",tokenApply:"उपयोग करें",tokenClear:"साफ़ करें",tokenStoredHere:"केवल इसी ब्राउज़र में रखा जाता है।",tokenSourceYours:"आपका टोकन उपयोग हो रहा है",tokenSourceUrl:"{url} से टोकन उपयोग हो रहा है",tokenSourceBuilt:"इस पेज में बना टोकन उपयोग हो रहा है",tokenSourceNone:"कोई Mapbox टोकन नहीं: Mapbox मानचित्र लोड नहीं हो सकते (MapLibre को इसकी ज़रूरत नहीं)",tokenSecret:"यह एक गुप्त टोकन है (sk.…)। सार्वजनिक टोकन (pk.…) चिपकाएँ: यह पेज सार्वजनिक है।",tokenNotPk:"Mapbox सार्वजनिक टोकन pk. से शुरू होता है",tokenUrlFailed:"उस URL से टोकन नहीं मिल सका: {why}"},kg={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह",selectView:"दृश्य चुनें",views:"दृश्य",prayerResources:"प्रार्थना संसाधन",map:"मानचित्र"},wg={kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},Lg={title:"Tutti i gruppi etnici",locations:"{n} località (gruppo × paese)",doxa:"Gruppi etnici DOXA",frontier:"Frontiera — non è iniziato nulla",unreached:"Non raggiunti — il lavoro inizia",reached:"Raggiunti — la chiesa c’è",hint:"Fai clic su una riga per vederli tutti · di nuovo per vedere tutto",loading:"Caricamento di tutti i gruppi etnici…",loadError:"Impossibile caricare la mappa.",pray:"Prega per loro →",population:"pop. {n}"},Sg={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},Ag={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},Pg={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},xg={research_controls:"Controlli di ricerca",clustering:"Raggruppamento",filters:"Filtri",pin_dim:"Opacità dei punti",export_poster:"Esporta poster…",reload_data:"Ricarica i dati",off:"Disattivato",native:"Nativo",mst:"MST",network:"Rete",off_desc:"Mostra ogni punto singolarmente",native_desc:"Cluster circolari Mapbox (il più veloce)",mst_desc:"Reti di affinità ad albero ricoprente minimo",network_desc:"Linee verso il vicino più prossimo",search_languages:"Cerca lingue…",search_religions:"Cerca religioni…",reset_all:"Reimposta tutto",no_languages:"Nessuna lingua ancora caricata",no_religions:"Nessuna religione ancora caricata",unadopted:"Non adottato",min:"min",max:"max",adopted:"Adottato",adoption:"Adozione",engaged:"Coinvolto",engagement:"Impegno",unengaged:"Necessita impegno",language:"Lingua",religion:"Religione",population:"Popolazione",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",close:"Chiudi",clear:"Cancella",map_controls:"Controlli della mappa"},Eg={bloc:"Blocco di affinità",gospel_access:"Accesso al vangelo",people:"Popoli",people_name:"Popolo (nome)",praying:"In preghiera",religion_family:"Famiglia religiosa",search_language:"Cerca lingua",search_people:"Cerca popolo",search_place:"Cerca luogo",search_religion:"Cerca religione",upgs_in_scope:"UPG nell’ambito",countries_touched:"paesi toccati",unreached:"non raggiunti",sum_population:"Σ popolazione",sum_praying:"Σ in preghiera",charts:"Grafici",table:"Tabella",cluster:"Cluster",country:"Paese",engagement:"Impegno",language:"Lingua",language_family:"Famiglia linguistica",people_group:"Popolo",population:"Popolazione",prayer:"Preghiera",region:"Regione",religion:"Religione",status:"Stato",adopted:"Adottato",filters:"Filtri",gospel_resources:"Risorse del Vangelo",map:"Mappa",search_placeholder:"Cerca popoli, luoghi, lingue, religioni…",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",map_controls:"Controlli della mappa",close:"Chiudi",clear:"Cancella",dashboard_title:"Cruscotto di ricerca generale",align_dashboard:"Allinea cruscotto",align_dashboard_tip:"Ripristina la disposizione predefinita del cruscotto",selected:"Selezionato",world:"Mondo",vertical_legend:"Legenda verticale",groups_in_scope:"popoli nell’ambito",filter_by:"Filtra per",remove_filter:"Rimuovi filtro",groups:"popoli",expand:"Espandi",collapse:"Comprimi",place:"Luogo"},Cg={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Tg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ",audioScripture:"Scritture in audio",bibleStoriesPlain:"Storie bibliche"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"},list:{noText:"Nessun testo biblico",hasScripture:"Ha le Scritture",allLanguages:"Tutte le lingue",peopleGroup:"popolo",peopleGroups:"popoli",scriptureHere:"Scritture in questa lingua"},columns:{"People group":"Popolo",Country:"Paese",Region:"Regione",Language:"Lingua",Population:"Popolazione",Religion:"Religione","Gospel access":"Accesso al Vangelo",Resources:"Risorse",Scripture:"Scritture","Bible video":"Video biblico","Gospel presentation":"Presentazione del Vangelo",Countries:"Paesi","People groups":"Popoli"},charts:{scriptureAny:"Scritture (qualsiasi)",fullBible:"Bibbia completa",newTestament:"Nuovo Testamento",filmAny:"Film (qualsiasi)",nothingInPools:"Nulla trovato nelle fonti controllate",nothingInPoolsLower:"nulla trovato nelle fonti controllate",noResourceInPools:"nessuna risorsa trovata nelle fonti controllate",aResourceFound:"una risorsa trovata",tabCoverage:"Copertura delle risorse",tabGap:"Lacune maggiori",keyScripture:"scritture",keyFilmStories:"film / storie",keyAudioEtc:"audio / presentazione / formazione",unresolvedCode:"codice fuori ISO 639-3 — non risolto, non misurato"}},Ng={search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro."},Rg={title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"}},Og={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo."},Fg={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Ig={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},Mg={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Dg={"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},Gg={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"},upg100Placeholder:"Cerca popolo, elenco UPG-100 o regione…"},Ug={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola",mapToken:"Token mappa",tokenPaste:"Token pubblico Mapbox (pk.…)",tokenUrlLabel:"…o l’URL di un servizio di token",tokenApply:"Usa",tokenClear:"Cancella",tokenStoredHere:"Conservato solo in questo browser.",tokenSourceYours:"Uso il tuo token",tokenSourceUrl:"Uso un token da {url}",tokenSourceBuilt:"Uso il token integrato in questa pagina",tokenSourceNone:"Nessun token Mapbox: le mappe Mapbox non si caricano (MapLibre non ne ha bisogno)",tokenSecret:"Questo è un token segreto (sk.…). Incolla un token pubblico (pk.…): questa pagina è pubblica.",tokenNotPk:"Un token pubblico Mapbox inizia con pk.",tokenUrlFailed:"Impossibile ottenere un token da quell’URL: {why}"},Bg={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico",selectView:"Seleziona vista",views:"Viste",prayerResources:"Risorse di preghiera",map:"Mappa"},jg={kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},zg={title:"Todos os grupos étnicos",locations:"{n} locais (grupo × país)",doxa:"Grupos étnicos da DOXA",frontier:"Fronteira — nada iniciado",unreached:"Não alcançados — o trabalho começa",reached:"Alcançados — a igreja está lá",hint:"Clique em uma linha para ver todos · clique de novo para ver tudo",loading:"Carregando todos os grupos étnicos…",loadError:"Não foi possível carregar o mapa.",pray:"Ore por eles →",population:"pop. {n}"},Vg={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},qg={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},Hg={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},Wg={research_controls:"Controlos de pesquisa",clustering:"Agrupamento",filters:"Filtros",pin_dim:"Esbater pontos",export_poster:"Exportar cartaz…",reload_data:"Recarregar dados",off:"Desligado",native:"Nativo",mst:"MST",network:"Rede",off_desc:"Mostrar cada ponto individualmente",native_desc:"Grupos circulares Mapbox (mais rápido)",mst_desc:"Redes de afinidade por árvore geradora mínima",network_desc:"Linhas para o vizinho mais próximo",search_languages:"Pesquisar idiomas…",search_religions:"Pesquisar religiões…",reset_all:"Repor tudo",no_languages:"Ainda não há idiomas carregados",no_religions:"Ainda não há religiões carregadas",unadopted:"Não adotado",min:"mín",max:"máx",adopted:"Adotado",adoption:"Adoção",engaged:"Engajado",engagement:"Engajamento",unengaged:"Precisa de envolvimento",language:"Idioma",religion:"Religião",population:"População",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",close:"Fechar",clear:"Limpar",map_controls:"Controlos do mapa"},Kg={bloc:"Bloco de afinidade",gospel_access:"Acesso ao evangelho",people:"Povos",people_name:"Povo (nome)",praying:"A orar",religion_family:"Família religiosa",search_language:"Pesquisar idioma",search_people:"Pesquisar povo",search_place:"Pesquisar lugar",search_religion:"Pesquisar religião",upgs_in_scope:"UPG no âmbito",countries_touched:"países alcançados",unreached:"não alcançados",sum_population:"Σ população",sum_praying:"Σ a orar",charts:"Gráficos",table:"Tabela",cluster:"Agrupamento",country:"País",engagement:"Engajamento",language:"Idioma",language_family:"Família linguística",people_group:"Povo",population:"População",prayer:"Oração",region:"Região",religion:"Religião",status:"Status",adopted:"Adotado",filters:"Filtros",gospel_resources:"Recursos do Evangelho",map:"Mapa",search_placeholder:"Pesquisar povos, lugares, idiomas, religiões…",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",map_controls:"Controlos do mapa",close:"Fechar",clear:"Limpar",dashboard_title:"Painel de pesquisa geral",align_dashboard:"Alinhar painel",align_dashboard_tip:"Repor a disposição do painel para o alinhamento predefinido",selected:"Selecionado",world:"Mundo",vertical_legend:"Legenda vertical",groups_in_scope:"povos no âmbito",filter_by:"Filtrar por",remove_filter:"Remover filtro",groups:"povos",expand:"Expandir",collapse:"Recolher",place:"Lugar"},Xg={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},Yg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS",audioScripture:"Escrituras em áudio",bibleStoriesPlain:"Histórias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"},list:{noText:"Sem texto bíblico",hasScripture:"Tem Escrituras",allLanguages:"Todos os idiomas",peopleGroup:"povo",peopleGroups:"povos",scriptureHere:"Escrituras neste idioma"},columns:{"People group":"Povo",Country:"País",Region:"Região",Language:"Idioma",Population:"População",Religion:"Religião","Gospel access":"Acesso ao evangelho",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Vídeo bíblico","Gospel presentation":"Apresentação do evangelho",Countries:"Países","People groups":"Povos"},charts:{scriptureAny:"Escrituras (qualquer)",fullBible:"Bíblia completa",newTestament:"Novo Testamento",filmAny:"Filme (qualquer)",nothingInPools:"Nada encontrado nas fontes consultadas",nothingInPoolsLower:"nada encontrado nas fontes consultadas",noResourceInPools:"nenhum recurso encontrado nas fontes consultadas",aResourceFound:"um recurso encontrado",tabCoverage:"Cobertura de recursos",tabGap:"Maiores lacunas",keyScripture:"escrituras",keyFilmStories:"filme / histórias",keyAudioEtc:"áudio / apresentação / treinamento",unresolvedCode:"código fora da ISO 639-3 — não resolvido, não medido"}},Zg={search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro."},Jg={title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"}},Qg={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo."},ed={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},od={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},td={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},nd={"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},sd={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"},upg100Placeholder:"Procurar povo, lista UPG-100 ou região…"},ad={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente",mapToken:"Token do mapa",tokenPaste:"Token público do Mapbox (pk.…)",tokenUrlLabel:"…ou o URL de um serviço de tokens",tokenApply:"Usar",tokenClear:"Limpar",tokenStoredHere:"Guardado apenas neste navegador.",tokenSourceYours:"A usar o seu token",tokenSourceUrl:"A usar um token de {url}",tokenSourceBuilt:"A usar o token incorporado nesta página",tokenSourceNone:"Sem token do Mapbox: os mapas Mapbox não carregam (os MapLibre não precisam)",tokenSecret:"Esse é um token secreto (sk.…). Cole um público (pk.…): esta página é pública.",tokenNotPk:"Um token público do Mapbox começa por pk.",tokenUrlFailed:"Não foi possível obter um token desse URL: {why}"},rd={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Selecionar vista",views:"Vistas",prayerResources:"Recursos de oração",map:"Mapa"},id={kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},ld={title:"Toate grupurile etnice",locations:"{n} locații (grup × țară)",doxa:"Grupuri etnice DOXA",frontier:"Frontieră — nimic început",unreached:"Neatinse — lucrarea începe",reached:"Atinse — biserica este acolo",hint:"Faceți clic pe un rând pentru a le vedea pe toate · din nou pentru tot",loading:"Se încarcă toate grupurile etnice…",loadError:"Harta nu a putut fi încărcată.",pray:"Rugați-vă pentru ei →",population:"pop. {n}"},cd={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},ud={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},pd={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},gd={research_controls:"Comenzi de cercetare",clustering:"Grupare",filters:"Filtre",pin_dim:"Estompare puncte",export_poster:"Exportă posterul…",reload_data:"Reîncarcă datele",off:"Oprit",native:"Nativ",mst:"MST",network:"Rețea",off_desc:"Arată fiecare punct separat",native_desc:"Grupuri circulare Mapbox (cel mai rapid)",mst_desc:"Rețele de afinitate prin arbore minim de acoperire",network_desc:"Linii către cel mai apropiat vecin",search_languages:"Caută limbi…",search_religions:"Caută religii…",reset_all:"Resetează tot",no_languages:"Nicio limbă încărcată încă",no_religions:"Nicio religie încărcată încă",unadopted:"Neadoptat",min:"min",max:"max",adopted:"Adoptat",adoption:"Adopție",engaged:"Implicat",engagement:"Implicare",unengaged:"Necesită implicare",language:"Limbă",religion:"Religie",population:"Populație",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",close:"Închide",clear:"Șterge",map_controls:"Comenzile hărții"},dd={bloc:"Bloc de afinitate",gospel_access:"Acces la Evanghelie",people:"Popoare",people_name:"Popor (nume)",praying:"Se roagă",religion_family:"Familie religioasă",search_language:"Caută limbă",search_people:"Caută popor",search_place:"Caută loc",search_religion:"Caută religie",upgs_in_scope:"UPG în domeniu",countries_touched:"țări atinse",unreached:"neatinși",sum_population:"Σ populație",sum_praying:"Σ se roagă",charts:"Grafice",table:"Tabel",cluster:"Grup",country:"Țară",engagement:"Implicare",language:"Limbă",language_family:"Familie de limbi",people_group:"Popor",population:"Populație",prayer:"Rugăciune",region:"Regiune",religion:"Religie",status:"Stare",adopted:"Adoptat",filters:"Filtre",gospel_resources:"Resurse ale Evangheliei",map:"Hartă",search_placeholder:"Caută popoare, locuri, limbi, religii…",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",map_controls:"Comenzile hărții",close:"Închide",clear:"Șterge",dashboard_title:"Tablou de bord de cercetare general",align_dashboard:"Aliniază tabloul",align_dashboard_tip:"Readu aranjarea tabloului la alinierea implicită",selected:"Selectat",world:"Lume",vertical_legend:"Legendă verticală",groups_in_scope:"popoare în domeniu",filter_by:"Filtrează după",remove_filter:"Elimină filtrul",groups:"popoare",expand:"Extinde",collapse:"Restrânge",place:"Loc"},$d={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},fd={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS",audioScripture:"Scripturi audio",bibleStoriesPlain:"Povestiri biblice"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"},list:{noText:"Fără text biblic",hasScripture:"Are Scripturi",allLanguages:"Toate limbile",peopleGroup:"popor",peopleGroups:"popoare",scriptureHere:"Scripturi în această limbă"},columns:{"People group":"Popor",Country:"Țară",Region:"Regiune",Language:"Limbă",Population:"Populație",Religion:"Religie","Gospel access":"Acces la Evanghelie",Resources:"Resurse",Scripture:"Scripturi","Bible video":"Video biblic","Gospel presentation":"Prezentarea Evangheliei",Countries:"Țări","People groups":"Popoare"},charts:{scriptureAny:"Scripturi (oricare)",fullBible:"Biblia completă",newTestament:"Noul Testament",filmAny:"Film (oricare)",nothingInPools:"Nimic găsit în sursele verificate",nothingInPoolsLower:"nimic găsit în sursele verificate",noResourceInPools:"nicio resursă găsită în sursele verificate",aResourceFound:"o resursă găsită",tabCoverage:"Acoperirea resurselor",tabGap:"Cele mai mari lacune",keyScripture:"scripturi",keyFilmStories:"film / povestiri",keyAudioEtc:"audio / prezentare / instruire",unresolvedCode:"cod în afara ISO 639-3 — nerezolvat, nemăsurat"}},hd={search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului."},md={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"}},_d={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor."},bd={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},yd={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},vd={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},kd={"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},wd={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"},upg100Placeholder:"Caută popor, listă UPG-100 sau regiune…"},Ld={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat",mapToken:"Token hartă",tokenPaste:"Token public Mapbox (pk.…)",tokenUrlLabel:"…sau adresa URL a unui serviciu de tokenuri",tokenApply:"Folosește",tokenClear:"Șterge",tokenStoredHere:"Păstrat doar în acest browser.",tokenSourceYours:"Se folosește tokenul tău",tokenSourceUrl:"Se folosește un token de la {url}",tokenSourceBuilt:"Se folosește tokenul inclus în această pagină",tokenSourceNone:"Niciun token Mapbox: hărțile Mapbox nu se pot încărca (MapLibre nu are nevoie)",tokenSecret:"Acesta este un token secret (sk.…). Lipește unul public (pk.…): pagina este publică.",tokenNotPk:"Un token public Mapbox începe cu pk.",tokenUrlFailed:"Nu s-a putut obține un token de la acea adresă: {why}"},Sd={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic",selectView:"Alege vizualizarea",views:"Vizualizări",prayerResources:"Resurse de rugăciune",map:"Hartă"},Ad={kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},Pd={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},xd={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},Ed={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},Cd={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},Td={research_controls:"Инструменты исследования",clustering:"Кластеризация",filters:"Фильтры",pin_dim:"Прозрачность точек",export_poster:"Экспорт постера…",reload_data:"Обновить данные",off:"Выкл.",native:"Встроенная",mst:"MST",network:"Сеть",off_desc:"Показывать каждую точку отдельно",native_desc:"Круговые кластеры Mapbox (быстрее всего)",mst_desc:"Сети родства по минимальному остовному дереву",network_desc:"Линии до ближайшего соседа",search_languages:"Поиск языков…",search_religions:"Поиск религий…",reset_all:"Сбросить всё",no_languages:"Языки ещё не загружены",no_religions:"Религии ещё не загружены",unadopted:"Не усыновлён",min:"мин",max:"макс",adopted:"Ответственность взята",adoption:"Усыновление",engaged:"Вовлечён",engagement:"Вовлечённость",unengaged:"Нуждается в вовлечённости",language:"Язык",religion:"Религия",population:"Население",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",close:"Закрыть",clear:"Очистить",map_controls:"Элементы управления картой"},Nd={bloc:"Блок родства",gospel_access:"Доступ к Евангелию",people:"Народы",people_name:"Народ (название)",praying:"Молятся",religion_family:"Семья религий",search_language:"Поиск языка",search_people:"Поиск народа",search_place:"Поиск места",search_religion:"Поиск религии",upgs_in_scope:"UPG в выборке",countries_touched:"затронутых стран",unreached:"неохваченные",sum_population:"Σ население",sum_praying:"Σ молящихся",charts:"Графики",table:"Таблица",cluster:"Кластер",country:"Страна",engagement:"Вовлечённость",language:"Язык",language_family:"Языковая семья",people_group:"Народ",population:"Население",prayer:"Молитва",region:"Регион",religion:"Религия",status:"Статус",adopted:"Ответственность взята",filters:"Фильтры",gospel_resources:"Евангельские ресурсы",map:"Карта",search_placeholder:"Поиск народов, мест, языков, религий…",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",map_controls:"Элементы управления картой",close:"Закрыть",clear:"Очистить",dashboard_title:"Обзорная исследовательская панель",align_dashboard:"Выровнять панель",align_dashboard_tip:"Вернуть расположение панели к виду по умолчанию",selected:"Выбрано",world:"Мир",vertical_legend:"Вертикальная легенда",groups_in_scope:"народов в выборке",filter_by:"Фильтровать по",remove_filter:"Убрать фильтр",groups:"народов",expand:"Развернуть",collapse:"Свернуть",place:"Место"},Rd={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},Od={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»",audioScripture:"Аудио с Писанием",bibleStoriesPlain:"Библейские истории"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"},list:{noText:"Нет текста Писания",hasScripture:"Есть Писание",allLanguages:"Все языки",peopleGroup:"народ",peopleGroups:"народов",scriptureHere:"Писание на этом языке"},columns:{"People group":"Народ",Country:"Страна",Region:"Регион",Language:"Язык",Population:"Численность",Religion:"Религия","Gospel access":"Доступ к Евангелию",Resources:"Ресурсы",Scripture:"Писание","Bible video":"Библейское видео","Gospel presentation":"Изложение Евангелия",Countries:"Страны","People groups":"Народы"},charts:{scriptureAny:"Писание (любое)",fullBible:"Полная Библия",newTestament:"Новый Завет",filmAny:"Фильм (любой)",nothingInPools:"Ничего не найдено в проверенных источниках",nothingInPoolsLower:"ничего не найдено в проверенных источниках",noResourceInPools:"ни одного ресурса не найдено в проверенных источниках",aResourceFound:"ресурс найден",tabCoverage:"Охват ресурсами",tabGap:"Наибольшие пробелы",keyScripture:"писание",keyFilmStories:"фильм / истории",keyAudioEtc:"аудио / презентация / обучение",unresolvedCode:"код вне ISO 639-3 — не определён, не измерен"}},Fd={search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},Id={title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"}},Md={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},Dd={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Gd={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},Ud={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},Bd={"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},jd={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"},upg100Placeholder:"Поиск народа, списка UPG-100 или региона…"},zd={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно",mapToken:"Токен карты",tokenPaste:"Публичный токен Mapbox (pk.…)",tokenUrlLabel:"…или адрес службы токенов",tokenApply:"Применить",tokenClear:"Очистить",tokenStoredHere:"Хранится только в этом браузере.",tokenSourceYours:"Используется ваш токен",tokenSourceUrl:"Используется токен с {url}",tokenSourceBuilt:"Используется токен, встроенный в страницу",tokenSourceNone:"Нет токена Mapbox: карты Mapbox не загрузятся (MapLibre он не нужен)",tokenSecret:"Это секретный токен (sk.…). Вставьте публичный (pk.…): эта страница общедоступна.",tokenNotPk:"Публичный токен Mapbox начинается с pk.",tokenUrlFailed:"Не удалось получить токен по этому адресу: {why}"},Vd={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ",selectView:"Выбрать вид",views:"Виды",prayerResources:"Молитвенные ресурсы",map:"Карта"},qd={kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},Hd={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},Wd={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},Kd={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},Xd={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},Yd={research_controls:"研究控件",clustering:"聚类",filters:"筛选",pin_dim:"圆点淡化",export_poster:"导出海报…",reload_data:"重新加载数据",off:"关闭",native:"原生",mst:"MST",network:"网络",off_desc:"逐个显示每个圆点",native_desc:"Mapbox 圆形聚类(最快)",mst_desc:"最小生成树亲缘网络",network_desc:"最近邻连接线",search_languages:"搜索语言…",search_religions:"搜索宗教…",reset_all:"全部重置",no_languages:"尚未加载语言",no_religions:"尚未加载宗教",unadopted:"未认领",min:"最小",max:"最大",adopted:"已认领",adoption:"认领",engaged:"已参与",engagement:"参与",unengaged:"需要参与",language:"语言",religion:"宗教",population:"人口",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",close:"关闭",clear:"清除",map_controls:"地图控件"},Zd={bloc:"亲缘板块",gospel_access:"福音可及性",people:"民族",people_name:"民族(名称)",praying:"正在代祷",religion_family:"宗教族系",search_language:"搜索语言",search_people:"搜索民族",search_place:"搜索地点",search_religion:"搜索宗教",upgs_in_scope:"范围内的 UPG",countries_touched:"涉及国家",unreached:"未得之民",sum_population:"Σ 人口",sum_praying:"Σ 代祷",charts:"图表",table:"表格",cluster:"民族群",country:"國家",engagement:"参与",language:"语言",language_family:"语系",people_group:"民族",population:"人口",prayer:"祷告",region:"区域",religion:"宗教",status:"状态",adopted:"已认领",filters:"筛选",gospel_resources:"福音资源",map:"地图",search_placeholder:"搜索民族、地点、语言、宗教…",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",map_controls:"地图控件",close:"关闭",clear:"清除",dashboard_title:"全局研究仪表板",align_dashboard:"对齐仪表板",align_dashboard_tip:"将仪表板布局恢复为默认对齐",selected:"已选择",world:"世界",vertical_legend:"垂直图例",groups_in_scope:"个民族在范围内",filter_by:"筛选",remove_filter:"移除筛选",groups:"个民族",expand:"展开",collapse:"收起",place:"地点"},Jd={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},Qd={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》",audioScripture:"音频圣经",bibleStoriesPlain:"圣经故事"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"},list:{noText:"没有文字圣经",hasScripture:"有圣经",allLanguages:"全部语言",peopleGroup:"个族群",peopleGroups:"个族群",scriptureHere:"本语言的圣经"},columns:{"People group":"族群",Country:"国家",Region:"地区",Language:"语言",Population:"人口",Religion:"宗教","Gospel access":"福音可及性",Resources:"资源",Scripture:"圣经","Bible video":"圣经视频","Gospel presentation":"福音简介",Countries:"国家","People groups":"族群"},charts:{scriptureAny:"圣经(任意)",fullBible:"全本圣经",newTestament:"新约",filmAny:"影片(任意)",nothingInPools:"在已检索的资源库中一无所获",nothingInPoolsLower:"在已检索的资源库中一无所获",noResourceInPools:"在已检索的资源库中未找到资源",aResourceFound:"找到资源",tabCoverage:"资源覆盖",tabGap:"最大缺口",keyScripture:"圣经",keyFilmStories:"影片 / 故事",keyAudioEtc:"音频 / 简介 / 训练",unresolvedCode:"ISO 639-3 之外的代码 — 未确定,未测量"}},e$={search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。"},o$={title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"}},t$={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},n$={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},s$={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},a$={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},r$={"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},i$={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"},upg100Placeholder:"搜索民族、UPG-100 名单或区域…"},l$={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布",mapToken:"地图令牌",tokenPaste:"Mapbox 公开令牌 (pk.…)",tokenUrlLabel:"…或令牌服务的网址",tokenApply:"使用",tokenClear:"清除",tokenStoredHere:"仅保存在此浏览器中。",tokenSourceYours:"正在使用您的令牌",tokenSourceUrl:"正在使用来自 {url} 的令牌",tokenSourceBuilt:"正在使用此页面内置的令牌",tokenSourceNone:"没有 Mapbox 令牌:Mapbox 地图无法加载(MapLibre 地图不需要)",tokenSecret:"这是秘密令牌 (sk.…)。请粘贴公开令牌 (pk.…):此页面是公开的。",tokenNotPk:"Mapbox 公开令牌以 pk. 开头",tokenUrlFailed:"无法从该网址获取令牌:{why}"},c$={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群",selectView:"選擇檢視",views:"檢視",prayerResources:"禱告資源",map:"地圖"},u$={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*! - * shared v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */function p$(e,o){typeof console<"u"&&(console.warn("[intlify] "+e),o&&console.warn(o.stack))}const Or=typeof window<"u",et=(e,o=!1)=>o?Symbol.for(e):Symbol(e),g$=(e,o,t)=>d$({l:e,k:o,s:t}),d$=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ne=e=>typeof e=="number"&&isFinite(e),$$=e=>Gr(e)==="[object Date]",dt=e=>Gr(e)==="[object RegExp]",Cn=e=>ne(e)&&Object.keys(e).length===0,De=Object.assign,f$=Object.create,pe=(e=null)=>f$(e);let Fr;const Oo=()=>Fr||(Fr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:pe());function Ir(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Mr(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function h$(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,s,a)=>`${s}="${Mr(a)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,s,a)=>`${s}='${Mr(a)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const m$=Object.prototype.hasOwnProperty;function io(e,o){return m$.call(e,o)}const Pe=Array.isArray,ye=e=>typeof e=="function",V=e=>typeof e=="string",$e=e=>typeof e=="boolean",le=e=>e!==null&&typeof e=="object",_$=e=>le(e)&&ye(e.then)&&ye(e.catch),Dr=Object.prototype.toString,Gr=e=>Dr.call(e),ne=e=>{if(!le(e))return!1;const o=Object.getPrototypeOf(e);return o===null||o.constructor===Object},b$=e=>e==null?"":Pe(e)||ne(e)&&e.toString===Dr?JSON.stringify(e,null,2):String(e);function y$(e,o=""){return e.reduce((t,n,s)=>s===0?t+n:t+o+n,"")}function Tn(e){let o=e;return()=>++o}const Nn=e=>!le(e)||Pe(e);function Rn(e,o){if(Nn(e)||Nn(o))throw new Error("Invalid value");const t=[{src:e,des:o}];for(;t.length;){const{src:n,des:s}=t.pop();Object.keys(n).forEach(a=>{a!=="__proto__"&&(le(n[a])&&!le(s[a])&&(s[a]=Array.isArray(n[a])?[]:pe()),Nn(s[a])||Nn(n[a])?s[a]=n[a]:t.push({src:n[a],des:s[a]}))})}}/*! - * message-compiler v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */function v$(e,o,t){return{line:e,column:o,offset:t}}function On(e,o,t){return{start:e,end:o}}const k$=/\{([0-9a-zA-Z]+)\}/g;function Ur(e,...o){return o.length===1&&w$(o[0])&&(o=o[0]),(!o||!o.hasOwnProperty)&&(o={}),e.replace(k$,(t,n)=>o.hasOwnProperty(n)?o[n]:"")}const Br=Object.assign,jr=e=>typeof e=="string",w$=e=>e!==null&&typeof e=="object";function zr(e,o=""){return e.reduce((t,n,s)=>s===0?t+n:t+o+n,"")}const xs={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},L$={[xs.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function S$(e,o,...t){const n=Ur(L$[e],...t||[]),s={message:String(n),code:e};return o&&(s.location=o),s}const W={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},A$={[W.EXPECTED_TOKEN]:"Expected token: '{0}'",[W.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[W.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[W.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[W.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[W.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[W.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[W.EMPTY_PLACEHOLDER]:"Empty placeholder",[W.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[W.INVALID_LINKED_FORMAT]:"Invalid linked format",[W.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[W.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[W.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[W.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[W.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[W.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function $t(e,o,t={}){const{domain:n,messages:s,args:a}=t,r=Ur((s||A$)[e]||"",...a||[]),i=new SyntaxError(String(r));return i.code=e,o&&(i.location=o),i.domain=n,i}function P$(e){throw e}const Fo=" ",x$="\r",je=` -`,E$="\u2028",C$="\u2029";function T$(e){const o=e;let t=0,n=1,s=1,a=0;const r=T=>o[T]===x$&&o[T+1]===je,i=T=>o[T]===je,l=T=>o[T]===C$,c=T=>o[T]===E$,g=T=>r(T)||i(T)||l(T)||c(T),h=()=>t,b=()=>n,L=()=>s,O=()=>a,C=T=>r(T)||l(T)||c(T)?je:o[T],M=()=>C(t),F=()=>C(t+a);function D(){return a=0,g(t)&&(n++,s=0),r(t)&&t++,t++,s++,o[t]}function v(){return r(t+a)&&a++,a++,o[t+a]}function k(){t=0,n=1,s=1,a=0}function E(T=0){a=T}function P(){const T=t+a;for(;T!==t;)D();a=0}return{index:h,line:b,column:L,peekOffset:O,charAt:C,currentChar:M,currentPeek:F,next:D,peek:v,reset:k,resetPeek:E,skipToPeek:P}}const jo=void 0,N$=".",Vr="'",R$="tokenizer";function O$(e,o={}){const t=o.location!==!1,n=T$(e),s=()=>n.index(),a=()=>v$(n.line(),n.column(),n.index()),r=a(),i=s(),l={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:g}=o;function h(u,p,d,...f){const S=c();if(p.column+=d,p.offset+=d,g){const A=t?On(S.startLoc,p):null,y=$t(u,A,{domain:R$,args:f});g(y)}}function b(u,p,d){u.endLoc=a(),u.currentType=p;const f={type:p};return t&&(f.loc=On(u.startLoc,u.endLoc)),d!=null&&(f.value=d),f}const L=u=>b(u,14);function O(u,p){return u.currentChar()===p?(u.next(),p):(h(W.EXPECTED_TOKEN,a(),0,p),"")}function C(u){let p="";for(;u.currentPeek()===Fo||u.currentPeek()===je;)p+=u.currentPeek(),u.peek();return p}function M(u){const p=C(u);return u.skipToPeek(),p}function F(u){if(u===jo)return!1;const p=u.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p===95}function D(u){if(u===jo)return!1;const p=u.charCodeAt(0);return p>=48&&p<=57}function v(u,p){const{currentType:d}=p;if(d!==2)return!1;C(u);const f=F(u.currentPeek());return u.resetPeek(),f}function k(u,p){const{currentType:d}=p;if(d!==2)return!1;C(u);const f=u.currentPeek()==="-"?u.peek():u.currentPeek(),S=D(f);return u.resetPeek(),S}function E(u,p){const{currentType:d}=p;if(d!==2)return!1;C(u);const f=u.currentPeek()===Vr;return u.resetPeek(),f}function P(u,p){const{currentType:d}=p;if(d!==8)return!1;C(u);const f=u.currentPeek()===".";return u.resetPeek(),f}function T(u,p){const{currentType:d}=p;if(d!==9)return!1;C(u);const f=F(u.currentPeek());return u.resetPeek(),f}function B(u,p){const{currentType:d}=p;if(!(d===8||d===12))return!1;C(u);const f=u.currentPeek()===":";return u.resetPeek(),f}function j(u,p){const{currentType:d}=p;if(d!==10)return!1;const f=()=>{const A=u.currentPeek();return A==="{"?F(u.peek()):A==="@"||A==="%"||A==="|"||A===":"||A==="."||A===Fo||!A?!1:A===je?(u.peek(),f()):z(u,!1)},S=f();return u.resetPeek(),S}function Z(u){C(u);const p=u.currentPeek()==="|";return u.resetPeek(),p}function q(u){const p=C(u),d=u.currentPeek()==="%"&&u.peek()==="{";return u.resetPeek(),{isModulo:d,hasSpace:p.length>0}}function z(u,p=!0){const d=(S=!1,A="",y=!1)=>{const w=u.currentPeek();return w==="{"?A==="%"?!1:S:w==="@"||!w?A==="%"?!0:S:w==="%"?(u.peek(),d(S,"%",!0)):w==="|"?A==="%"||y?!0:!(A===Fo||A===je):w===Fo?(u.peek(),d(!0,Fo,y)):w===je?(u.peek(),d(!0,je,y)):!0},f=d();return p&&u.resetPeek(),f}function X(u,p){const d=u.currentChar();return d===jo?jo:p(d)?(u.next(),d):null}function xe(u){const p=u.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36}function Re(u){return X(u,xe)}function ae(u){const p=u.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36||p===45}function J(u){return X(u,ae)}function se(u){const p=u.charCodeAt(0);return p>=48&&p<=57}function ve(u){return X(u,se)}function Ie(u){const p=u.charCodeAt(0);return p>=48&&p<=57||p>=65&&p<=70||p>=97&&p<=102}function ge(u){return X(u,Ie)}function ke(u){let p="",d="";for(;p=ve(u);)d+=p;return d}function eo(u){M(u);const p=u.currentChar();return p!=="%"&&h(W.EXPECTED_TOKEN,a(),0,p),u.next(),"%"}function Ee(u){let p="";for(;;){const d=u.currentChar();if(d==="{"||d==="}"||d==="@"||d==="|"||!d)break;if(d==="%")if(z(u))p+=d,u.next();else break;else if(d===Fo||d===je)if(z(u))p+=d,u.next();else{if(Z(u))break;p+=d,u.next()}else p+=d,u.next()}return p}function Ye(u){M(u);let p="",d="";for(;p=J(u);)d+=p;return u.currentChar()===jo&&h(W.UNTERMINATED_CLOSING_BRACE,a(),0),d}function ze(u){M(u);let p="";return u.currentChar()==="-"?(u.next(),p+=`-${ke(u)}`):p+=ke(u),u.currentChar()===jo&&h(W.UNTERMINATED_CLOSING_BRACE,a(),0),p}function oo(u){return u!==Vr&&u!==je}function uo(u){M(u),O(u,"'");let p="",d="";for(;p=X(u,oo);)p==="\\"?d+=So(u):d+=p;const f=u.currentChar();return f===je||f===jo?(h(W.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,a(),0),f===je&&(u.next(),O(u,"'")),d):(O(u,"'"),d)}function So(u){const p=u.currentChar();switch(p){case"\\":case"'":return u.next(),`\\${p}`;case"u":return Ve(u,p,4);case"U":return Ve(u,p,6);default:return h(W.UNKNOWN_ESCAPE_SEQUENCE,a(),0,p),""}}function Ve(u,p,d){O(u,p);let f="";for(let S=0;S{const f=u.currentChar();return f==="{"||f==="%"||f==="@"||f==="|"||f==="("||f===")"||!f||f===Fo?d:(d+=f,u.next(),p(d))};return p("")}function x(u){M(u);const p=O(u,"|");return M(u),p}function R(u,p){let d=null;switch(u.currentChar()){case"{":return p.braceNest>=1&&h(W.NOT_ALLOW_NEST_PLACEHOLDER,a(),0),u.next(),d=b(p,2,"{"),M(u),p.braceNest++,d;case"}":return p.braceNest>0&&p.currentType===2&&h(W.EMPTY_PLACEHOLDER,a(),0),u.next(),d=b(p,3,"}"),p.braceNest--,p.braceNest>0&&M(u),p.inLinked&&p.braceNest===0&&(p.inLinked=!1),d;case"@":return p.braceNest>0&&h(W.UNTERMINATED_CLOSING_BRACE,a(),0),d=N(u,p)||L(p),p.braceNest=0,d;default:{let S=!0,A=!0,y=!0;if(Z(u))return p.braceNest>0&&h(W.UNTERMINATED_CLOSING_BRACE,a(),0),d=b(p,1,x(u)),p.braceNest=0,p.inLinked=!1,d;if(p.braceNest>0&&(p.currentType===5||p.currentType===6||p.currentType===7))return h(W.UNTERMINATED_CLOSING_BRACE,a(),0),p.braceNest=0,U(u,p);if(S=v(u,p))return d=b(p,5,Ye(u)),M(u),d;if(A=k(u,p))return d=b(p,6,ze(u)),M(u),d;if(y=E(u,p))return d=b(p,7,uo(u)),M(u),d;if(!S&&!A&&!y)return d=b(p,13,$(u)),h(W.INVALID_TOKEN_IN_PLACEHOLDER,a(),0,d.value),M(u),d;break}}return d}function N(u,p){const{currentType:d}=p;let f=null;const S=u.currentChar();switch((d===8||d===9||d===12||d===10)&&(S===je||S===Fo)&&h(W.INVALID_LINKED_FORMAT,a(),0),S){case"@":return u.next(),f=b(p,8,"@"),p.inLinked=!0,f;case".":return M(u),u.next(),b(p,9,".");case":":return M(u),u.next(),b(p,10,":");default:return Z(u)?(f=b(p,1,x(u)),p.braceNest=0,p.inLinked=!1,f):P(u,p)||B(u,p)?(M(u),N(u,p)):T(u,p)?(M(u),b(p,12,_(u))):j(u,p)?(M(u),S==="{"?R(u,p)||f:b(p,11,m(u))):(d===8&&h(W.INVALID_LINKED_FORMAT,a(),0),p.braceNest=0,p.inLinked=!1,U(u,p))}}function U(u,p){let d={type:14};if(p.braceNest>0)return R(u,p)||L(p);if(p.inLinked)return N(u,p)||L(p);switch(u.currentChar()){case"{":return R(u,p)||L(p);case"}":return h(W.UNBALANCED_CLOSING_BRACE,a(),0),u.next(),b(p,3,"}");case"@":return N(u,p)||L(p);default:{if(Z(u))return d=b(p,1,x(u)),p.braceNest=0,p.inLinked=!1,d;const{isModulo:S,hasSpace:A}=q(u);if(S)return A?b(p,0,Ee(u)):b(p,4,eo(u));if(z(u))return b(p,0,Ee(u));break}}return d}function G(){const{currentType:u,offset:p,startLoc:d,endLoc:f}=l;return l.lastType=u,l.lastOffset=p,l.lastStartLoc=d,l.lastEndLoc=f,l.offset=s(),l.startLoc=a(),n.currentChar()===jo?b(l,14):U(n,l)}return{nextToken:G,currentOffset:s,currentPosition:a,context:c}}const F$="parser",I$=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function M$(e,o,t){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(o||t,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function D$(e={}){const o=e.location!==!1,{onError:t,onWarn:n}=e;function s(v,k,E,P,...T){const B=v.currentPosition();if(B.offset+=P,B.column+=P,t){const j=o?On(E,B):null,Z=$t(k,j,{domain:F$,args:T});t(Z)}}function a(v,k,E,P,...T){const B=v.currentPosition();if(B.offset+=P,B.column+=P,n){const j=o?On(E,B):null;n(S$(k,j,T))}}function r(v,k,E){const P={type:v};return o&&(P.start=k,P.end=k,P.loc={start:E,end:E}),P}function i(v,k,E,P){o&&(v.end=k,v.loc&&(v.loc.end=E))}function l(v,k){const E=v.context(),P=r(3,E.offset,E.startLoc);return P.value=k,i(P,v.currentOffset(),v.currentPosition()),P}function c(v,k){const E=v.context(),{lastOffset:P,lastStartLoc:T}=E,B=r(5,P,T);return B.index=parseInt(k,10),v.nextToken(),i(B,v.currentOffset(),v.currentPosition()),B}function g(v,k,E){const P=v.context(),{lastOffset:T,lastStartLoc:B}=P,j=r(4,T,B);return j.key=k,E===!0&&(j.modulo=!0),v.nextToken(),i(j,v.currentOffset(),v.currentPosition()),j}function h(v,k){const E=v.context(),{lastOffset:P,lastStartLoc:T}=E,B=r(9,P,T);return B.value=k.replace(I$,M$),v.nextToken(),i(B,v.currentOffset(),v.currentPosition()),B}function b(v){const k=v.nextToken(),E=v.context(),{lastOffset:P,lastStartLoc:T}=E,B=r(8,P,T);return k.type!==12?(s(v,W.UNEXPECTED_EMPTY_LINKED_MODIFIER,E.lastStartLoc,0),B.value="",i(B,P,T),{nextConsumeToken:k,node:B}):(k.value==null&&s(v,W.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,lo(k)),B.value=k.value||"",i(B,v.currentOffset(),v.currentPosition()),{node:B})}function L(v,k){const E=v.context(),P=r(7,E.offset,E.startLoc);return P.value=k,i(P,v.currentOffset(),v.currentPosition()),P}function O(v){const k=v.context(),E=r(6,k.offset,k.startLoc);let P=v.nextToken();if(P.type===9){const T=b(v);E.modifier=T.node,P=T.nextConsumeToken||v.nextToken()}switch(P.type!==10&&s(v,W.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,lo(P)),P=v.nextToken(),P.type===2&&(P=v.nextToken()),P.type){case 11:P.value==null&&s(v,W.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,lo(P)),E.key=L(v,P.value||"");break;case 5:P.value==null&&s(v,W.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,lo(P)),E.key=g(v,P.value||"");break;case 6:P.value==null&&s(v,W.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,lo(P)),E.key=c(v,P.value||"");break;case 7:P.value==null&&s(v,W.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,lo(P)),E.key=h(v,P.value||"");break;default:{s(v,W.UNEXPECTED_EMPTY_LINKED_KEY,k.lastStartLoc,0);const T=v.context(),B=r(7,T.offset,T.startLoc);return B.value="",i(B,T.offset,T.startLoc),E.key=B,i(E,T.offset,T.startLoc),{nextConsumeToken:P,node:E}}}return i(E,v.currentOffset(),v.currentPosition()),{node:E}}function C(v){const k=v.context(),E=k.currentType===1?v.currentOffset():k.offset,P=k.currentType===1?k.endLoc:k.startLoc,T=r(2,E,P);T.items=[];let B=null,j=null;do{const z=B||v.nextToken();switch(B=null,z.type){case 0:z.value==null&&s(v,W.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,lo(z)),T.items.push(l(v,z.value||""));break;case 6:z.value==null&&s(v,W.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,lo(z)),T.items.push(c(v,z.value||""));break;case 4:j=!0;break;case 5:z.value==null&&s(v,W.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,lo(z)),T.items.push(g(v,z.value||"",!!j)),j&&(a(v,xs.USE_MODULO_SYNTAX,k.lastStartLoc,0,lo(z)),j=null);break;case 7:z.value==null&&s(v,W.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,lo(z)),T.items.push(h(v,z.value||""));break;case 8:{const X=O(v);T.items.push(X.node),B=X.nextConsumeToken||null;break}}}while(k.currentType!==14&&k.currentType!==1);const Z=k.currentType===1?k.lastOffset:v.currentOffset(),q=k.currentType===1?k.lastEndLoc:v.currentPosition();return i(T,Z,q),T}function M(v,k,E,P){const T=v.context();let B=P.items.length===0;const j=r(1,k,E);j.cases=[],j.cases.push(P);do{const Z=C(v);B||(B=Z.items.length===0),j.cases.push(Z)}while(T.currentType!==14);return B&&s(v,W.MUST_HAVE_MESSAGES_IN_PLURAL,E,0),i(j,v.currentOffset(),v.currentPosition()),j}function F(v){const k=v.context(),{offset:E,startLoc:P}=k,T=C(v);return k.currentType===14?T:M(v,E,P,T)}function D(v){const k=O$(v,Br({},e)),E=k.context(),P=r(0,E.offset,E.startLoc);return o&&P.loc&&(P.loc.source=v),P.body=F(k),e.onCacheKey&&(P.cacheKey=e.onCacheKey(v)),E.currentType!==14&&s(k,W.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,v[E.offset]||""),i(P,k.currentOffset(),k.currentPosition()),P}return{parse:D}}function lo(e){if(e.type===14)return"EOF";const o=(e.value||"").replace(/\r?\n/gu,"\\n");return o.length>10?o.slice(0,9)+"…":o}function G$(e,o={}){const t={ast:e,helpers:new Set};return{context:()=>t,helper:a=>(t.helpers.add(a),a)}}function qr(e,o){for(let t=0;tHr(t)),e}function Hr(e){if(e.items.length===1){const o=e.items[0];(o.type===3||o.type===9)&&(e.static=o.value,delete o.value)}else{const o=[];for(let t=0;tr;function l(C,M){r.code+=C}function c(C,M=!0){const F=M?n:"";l(s?F+" ".repeat(C):F)}function g(C=!0){const M=++r.indentLevel;C&&c(M)}function h(C=!0){const M=--r.indentLevel;C&&c(M)}function b(){c(r.indentLevel)}return{context:i,push:l,indent:g,deindent:h,newline:b,helper:C=>`_${C}`,needIndent:()=>r.needIndent}}function q$(e,o){const{helper:t}=e;e.push(`${t("linked")}(`),ht(e,o.key),o.modifier?(e.push(", "),ht(e,o.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function H$(e,o){const{helper:t,needIndent:n}=e;e.push(`${t("normalize")}([`),e.indent(n());const s=o.items.length;for(let a=0;a1){e.push(`${t("plural")}([`),e.indent(n());const s=o.cases.length;for(let a=0;a{const t=jr(o.mode)?o.mode:"normal",n=jr(o.filename)?o.filename:"message.intl";o.sourceMap;const s=o.breakLineCode!=null?o.breakLineCode:t==="arrow"?";":` -`,a=o.needIndent?o.needIndent:t!=="arrow",r=e.helpers||[],i=V$(e,{filename:n,breakLineCode:s,needIndent:a});i.push(t==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(a),r.length>0&&(i.push(`const { ${zr(r.map(g=>`${g}: _${g}`),", ")} } = ctx`),i.newline()),i.push("return "),ht(i,e),i.deindent(a),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function Y$(e,o={}){const t=Br({},o),n=!!t.jit,s=!!t.minify,a=t.optimize==null?!0:t.optimize,i=D$(t).parse(e);return n?(a&&B$(i),s&&ft(i),{ast:i,code:""}):(U$(i,t),X$(i,t))}/*! - * core-base v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */function Z$(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Oo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Oo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Oo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function wo(e){return le(e)&&Cs(e)===0&&(io(e,"b")||io(e,"body"))}const Wr=["b","body"];function J$(e){return zo(e,Wr)}const Kr=["c","cases"];function Q$(e){return zo(e,Kr,[])}const Xr=["s","static"];function ef(e){return zo(e,Xr)}const Yr=["i","items"];function of(e){return zo(e,Yr,[])}const Zr=["t","type"];function Cs(e){return zo(e,Zr)}const Jr=["v","value"];function Fn(e,o){const t=zo(e,Jr);if(t!=null)return t;throw Bt(o)}const Qr=["m","modifier"];function tf(e){return zo(e,Qr)}const ei=["k","key"];function nf(e){const o=zo(e,ei);if(o)return o;throw Bt(6)}function zo(e,o,t){for(let n=0;n{r===void 0?r=i:r+=i},b[1]=()=>{r!==void 0&&(o.push(r),r=void 0)},b[2]=()=>{b[0](),s++},b[3]=()=>{if(s>0)s--,n=4,b[0]();else{if(s=0,r===void 0||(r=cf(r),r===!1))return!1;b[1]()}};function L(){const O=e[t+1];if(n===5&&O==="'"||n===6&&O==='"')return t++,i="\\"+O,b[0](),!0}for(;n!==null;)if(t++,a=e[t],!(a==="\\"&&L())){if(l=lf(a),h=Vo[n],c=h[l]||h.l||8,c===8||(n=c[0],c[1]!==void 0&&(g=b[c[1]],g&&(i=a,g()===!1))))return;if(n===7)return o}}const ti=new Map;function pf(e,o){return le(e)?e[o]:null}function gf(e,o){if(!le(e))return null;let t=ti.get(o);if(t||(t=uf(o),t&&ti.set(o,t)),!t)return null;const n=t.length;let s=e,a=0;for(;ae,$f=e=>"",ff="text",hf=e=>e.length===0?"":y$(e),mf=b$;function ni(e,o){return e=Math.abs(e),o===2?e?e>1?1:0:1:e?Math.min(e,2):0}function _f(e){const o=Ne(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ne(e.named.count)||Ne(e.named.n))?Ne(e.named.count)?e.named.count:Ne(e.named.n)?e.named.n:o:o}function bf(e,o){o.count||(o.count=e),o.n||(o.n=e)}function yf(e={}){const o=e.locale,t=_f(e),n=le(e.pluralRules)&&V(o)&&ye(e.pluralRules[o])?e.pluralRules[o]:ni,s=le(e.pluralRules)&&V(o)&&ye(e.pluralRules[o])?ni:void 0,a=F=>F[n(t,F.length,s)],r=e.list||[],i=F=>r[F],l=e.named||pe();Ne(e.pluralIndex)&&bf(t,l);const c=F=>l[F];function g(F){const D=ye(e.messages)?e.messages(F):le(e.messages)?e.messages[F]:!1;return D||(e.parent?e.parent.message(F):$f)}const h=F=>e.modifiers?e.modifiers[F]:df,b=ne(e.processor)&&ye(e.processor.normalize)?e.processor.normalize:hf,L=ne(e.processor)&&ye(e.processor.interpolate)?e.processor.interpolate:mf,O=ne(e.processor)&&V(e.processor.type)?e.processor.type:ff,M={list:i,named:c,plural:a,linked:(F,...D)=>{const[v,k]=D;let E="text",P="";D.length===1?le(v)?(P=v.modifier||P,E=v.type||E):V(v)&&(P=v||P):D.length===2&&(V(v)&&(P=v||P),V(k)&&(E=k||E));const T=g(F)(M),B=E==="vnode"&&Pe(T)&&P?T[0]:T;return P?h(P)(B,E):B},message:g,type:O,interpolate:L,normalize:b,values:De(pe(),r,l)};return M}let jt=null;function vf(e){jt=e}function kf(e,o,t){jt&&jt.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:o,meta:t})}const wf=Lf("function:translate");function Lf(e){return o=>jt&&jt.emit(e,o)}const Sf=xs.__EXTEND_POINT__,ot=Tn(Sf),Af={FALLBACK_TO_TRANSLATE:ot(),CANNOT_FORMAT_NUMBER:ot(),FALLBACK_TO_NUMBER_FORMAT:ot(),CANNOT_FORMAT_DATE:ot(),FALLBACK_TO_DATE_FORMAT:ot(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:ot(),__EXTEND_POINT__:ot()},si=W.__EXTEND_POINT__,tt=Tn(si),co={INVALID_ARGUMENT:si,INVALID_DATE_ARGUMENT:tt(),INVALID_ISO_DATE_ARGUMENT:tt(),NOT_SUPPORT_NON_STRING_MESSAGE:tt(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:tt(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:tt(),NOT_SUPPORT_LOCALE_TYPE:tt(),__EXTEND_POINT__:tt()};function Lo(e){return $t(e,null,void 0)}function Ts(e,o){return o.locale!=null?ai(o.locale):ai(e.locale)}let Ns;function ai(e){if(V(e))return e;if(ye(e)){if(e.resolvedOnce&&Ns!=null)return Ns;if(e.constructor.name==="Function"){const o=e();if(_$(o))throw Lo(co.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Ns=o}else throw Lo(co.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Lo(co.NOT_SUPPORT_LOCALE_TYPE)}function Pf(e,o,t){return[...new Set([t,...Pe(o)?o:le(o)?Object.keys(o):V(o)?[o]:[t]])]}function ri(e,o,t){const n=V(t)?t:zt,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let a=s.__localeChainCache.get(n);if(!a){a=[];let r=[t];for(;Pe(r);)r=ii(a,r,o);const i=Pe(o)||!ne(o)?o:o.default?o.default:null;r=V(i)?[i]:i,Pe(r)&&ii(a,r,!1),s.__localeChainCache.set(n,a)}return a}function ii(e,o,t){let n=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Tf(){return{upper:(e,o)=>o==="text"&&V(e)?e.toUpperCase():o==="vnode"&&le(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,o)=>o==="text"&&V(e)?e.toLowerCase():o==="vnode"&&le(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,o)=>o==="text"&&V(e)?ci(e):o==="vnode"&&le(e)&&"__v_isVNode"in e?ci(e.children):e}}let ui;function pi(e){ui=e}let gi;function Nf(e){gi=e}let di;function Rf(e){di=e}let $i=null;const Of=e=>{$i=e},Ff=()=>$i;let fi=null;const hi=e=>{fi=e},If=()=>fi;let mi=0;function Mf(e={}){const o=ye(e.onWarn)?e.onWarn:p$,t=V(e.version)?e.version:Cf,n=V(e.locale)||ye(e.locale)?e.locale:zt,s=ye(n)?zt:n,a=Pe(e.fallbackLocale)||ne(e.fallbackLocale)||V(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,r=ne(e.messages)?e.messages:Rs(s),i=ne(e.datetimeFormats)?e.datetimeFormats:Rs(s),l=ne(e.numberFormats)?e.numberFormats:Rs(s),c=De(pe(),e.modifiers,Tf()),g=e.pluralRules||pe(),h=ye(e.missing)?e.missing:null,b=$e(e.missingWarn)||dt(e.missingWarn)?e.missingWarn:!0,L=$e(e.fallbackWarn)||dt(e.fallbackWarn)?e.fallbackWarn:!0,O=!!e.fallbackFormat,C=!!e.unresolving,M=ye(e.postTranslation)?e.postTranslation:null,F=ne(e.processor)?e.processor:null,D=$e(e.warnHtmlMessage)?e.warnHtmlMessage:!0,v=!!e.escapeParameter,k=ye(e.messageCompiler)?e.messageCompiler:ui,E=ye(e.messageResolver)?e.messageResolver:gi||pf,P=ye(e.localeFallbacker)?e.localeFallbacker:di||Pf,T=le(e.fallbackContext)?e.fallbackContext:void 0,B=e,j=le(B.__datetimeFormatters)?B.__datetimeFormatters:new Map,Z=le(B.__numberFormatters)?B.__numberFormatters:new Map,q=le(B.__meta)?B.__meta:{};mi++;const z={version:t,cid:mi,locale:n,fallbackLocale:a,messages:r,modifiers:c,pluralRules:g,missing:h,missingWarn:b,fallbackWarn:L,fallbackFormat:O,unresolving:C,postTranslation:M,processor:F,warnHtmlMessage:D,escapeParameter:v,messageCompiler:k,messageResolver:E,localeFallbacker:P,fallbackContext:T,onWarn:o,__meta:q};return z.datetimeFormats=i,z.numberFormats=l,z.__datetimeFormatters=j,z.__numberFormatters=Z,__INTLIFY_PROD_DEVTOOLS__&&kf(z,t,q),z}const Rs=e=>({[e]:pe()});function Os(e,o,t,n,s){const{missing:a,onWarn:r}=e;if(a!==null){const i=a(e,t,o,s);return V(i)?i:o}else return o}function Vt(e,o,t){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,t,o)}function Df(e,o){return e===o?!1:e.split("-")[0]===o.split("-")[0]}function Gf(e,o){const t=o.indexOf(e);if(t===-1)return!1;for(let n=t+1;nUf(t,e)}function Uf(e,o){const t=J$(o);if(t==null)throw Bt(0);if(Cs(t)===1){const a=Q$(t);return e.plural(a.reduce((r,i)=>[...r,_i(e,i)],[]))}else return _i(e,t)}function _i(e,o){const t=ef(o);if(t!=null)return e.type==="text"?t:e.normalize([t]);{const n=of(o).reduce((s,a)=>[...s,Is(e,a)],[]);return e.normalize(n)}}function Is(e,o){const t=Cs(o);switch(t){case 3:return Fn(o,t);case 9:return Fn(o,t);case 4:{const n=o;if(io(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(io(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Bt(t)}case 5:{const n=o;if(io(n,"i")&&Ne(n.i))return e.interpolate(e.list(n.i));if(io(n,"index")&&Ne(n.index))return e.interpolate(e.list(n.index));throw Bt(t)}case 6:{const n=o,s=tf(n),a=nf(n);return e.linked(Is(e,a),s?Is(e,s):void 0,e.type)}case 7:return Fn(o,t);case 8:return Fn(o,t);default:throw new Error(`unhandled node on format message part: ${t}`)}}const bi=e=>e;let mt=pe();function yi(e,o={}){let t=!1;const n=o.onError||P$;return o.onError=s=>{t=!0,n(s)},{...Y$(e,o),detectError:t}}const Bf=(e,o)=>{if(!V(e))throw Lo(co.NOT_SUPPORT_NON_STRING_MESSAGE);{$e(o.warnHtmlMessage)&&o.warnHtmlMessage;const n=(o.onCacheKey||bi)(e),s=mt[n];if(s)return s;const{code:a,detectError:r}=yi(e,o),i=new Function(`return ${a}`)();return r?i:mt[n]=i}};function jf(e,o){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&V(e)){$e(o.warnHtmlMessage)&&o.warnHtmlMessage;const n=(o.onCacheKey||bi)(e),s=mt[n];if(s)return s;const{ast:a,detectError:r}=yi(e,{...o,location:!1,jit:!0}),i=Fs(a);return r?i:mt[n]=i}else{const t=e.cacheKey;if(t){const n=mt[t];return n||(mt[t]=Fs(e))}else return Fs(e)}}const vi=()=>"",Qe=e=>ye(e);function ki(e,...o){const{fallbackFormat:t,postTranslation:n,unresolving:s,messageCompiler:a,fallbackLocale:r,messages:i}=e,[l,c]=Ms(...o),g=$e(c.missingWarn)?c.missingWarn:e.missingWarn,h=$e(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,b=$e(c.escapeParameter)?c.escapeParameter:e.escapeParameter,L=!!c.resolvedMessage,O=V(c.default)||$e(c.default)?$e(c.default)?a?l:()=>l:c.default:t?a?l:()=>l:"",C=t||O!=="",M=Ts(e,c);b&&zf(c);let[F,D,v]=L?[l,M,i[M]||pe()]:wi(e,l,M,r,h,g),k=F,E=l;if(!L&&!(V(k)||wo(k)||Qe(k))&&C&&(k=O,E=k),!L&&(!(V(k)||wo(k)||Qe(k))||!V(D)))return s?In:l;let P=!1;const T=()=>{P=!0},B=Qe(k)?k:Li(e,l,D,k,E,T);if(P)return k;const j=Hf(e,D,v,c),Z=yf(j),q=Vf(e,B,Z);let z=n?n(q,l):q;if(b&&V(z)&&(z=h$(z)),__INTLIFY_PROD_DEVTOOLS__){const X={timestamp:Date.now(),key:V(l)?l:Qe(k)?k.key:"",locale:D||(Qe(k)?k.locale:""),format:V(k)?k:Qe(k)?k.source:"",message:z};X.meta=De({},e.__meta,Ff()||{}),wf(X)}return z}function zf(e){Pe(e.list)?e.list=e.list.map(o=>V(o)?Ir(o):o):le(e.named)&&Object.keys(e.named).forEach(o=>{V(e.named[o])&&(e.named[o]=Ir(e.named[o]))})}function wi(e,o,t,n,s,a){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,g=c(e,n,t);let h=pe(),b,L=null;const O="translate";for(let C=0;Cn;return c.locale=t,c.key=o,c}const l=r(n,qf(e,t,s,n,i,a));return l.locale=t,l.key=o,l.source=n,l}function Vf(e,o,t){return o(t)}function Ms(...e){const[o,t,n]=e,s=pe();if(!V(o)&&!Ne(o)&&!Qe(o)&&!wo(o))throw Lo(co.INVALID_ARGUMENT);const a=Ne(o)?String(o):(Qe(o),o);return Ne(t)?s.plural=t:V(t)?s.default=t:ne(t)&&!Cn(t)?s.named=t:Pe(t)&&(s.list=t),Ne(n)?s.plural=n:V(n)?s.default=n:ne(n)&&De(s,n),[a,s]}function qf(e,o,t,n,s,a){return{locale:o,key:t,warnHtmlMessage:s,onError:r=>{throw a&&a(r),r},onCacheKey:r=>g$(o,t,r)}}function Hf(e,o,t,n){const{modifiers:s,pluralRules:a,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:g}=e,b={locale:o,modifiers:s,pluralRules:a,messages:L=>{let O=r(t,L);if(O==null&&g){const[,,C]=wi(g,L,o,i,l,c);O=r(C,L)}if(V(O)||wo(O)){let C=!1;const F=Li(e,L,o,O,L,()=>{C=!0});return C?vi:F}else return Qe(O)?O:vi}};return e.processor&&(b.processor=e.processor),n.list&&(b.list=n.list),n.named&&(b.named=n.named),Ne(n.plural)&&(b.pluralIndex=n.plural),b}function Si(e,...o){const{datetimeFormats:t,unresolving:n,fallbackLocale:s,onWarn:a,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,g,h]=Ds(...o),b=$e(g.missingWarn)?g.missingWarn:e.missingWarn;$e(g.fallbackWarn)?g.fallbackWarn:e.fallbackWarn;const L=!!g.part,O=Ts(e,g),C=r(e,s,O);if(!V(l)||l==="")return new Intl.DateTimeFormat(O,h).format(c);let M={},F,D=null;const v="datetime format";for(let P=0;P{Ai.includes(l)?r[l]=t[l]:a[l]=t[l]}),V(n)?a.locale=n:ne(n)&&(r=n),ne(s)&&(r=s),[a.key||"",i,a,r]}function Pi(e,o,t){const n=e;for(const s in t){const a=`${o}__${s}`;n.__datetimeFormatters.has(a)&&n.__datetimeFormatters.delete(a)}}function xi(e,...o){const{numberFormats:t,unresolving:n,fallbackLocale:s,onWarn:a,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,g,h]=Gs(...o),b=$e(g.missingWarn)?g.missingWarn:e.missingWarn;$e(g.fallbackWarn)?g.fallbackWarn:e.fallbackWarn;const L=!!g.part,O=Ts(e,g),C=r(e,s,O);if(!V(l)||l==="")return new Intl.NumberFormat(O,h).format(c);let M={},F,D=null;const v="number format";for(let P=0;P{Ei.includes(l)?r[l]=t[l]:a[l]=t[l]}),V(n)?a.locale=n:ne(n)&&(r=n),ne(s)&&(r=s),[a.key||"",i,a,r]}function Ci(e,o,t){const n=e;for(const s in t){const a=`${o}__${s}`;n.__numberFormatters.has(a)&&n.__numberFormatters.delete(a)}}Z$();/*! - * vue-i18n v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */const Wf="9.14.5";function Kf(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Oo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Oo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Oo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Oo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Oo().__INTLIFY_PROD_DEVTOOLS__=!1)}const Xf=Af.__EXTEND_POINT__,Io=Tn(Xf);Io(),Io(),Io(),Io(),Io(),Io(),Io(),Io(),Io();const Ti=co.__EXTEND_POINT__,We=Tn(Ti),Mo={UNEXPECTED_RETURN_TYPE:Ti,INVALID_ARGUMENT:We(),MUST_BE_CALL_SETUP_TOP:We(),NOT_INSTALLED:We(),NOT_AVAILABLE_IN_LEGACY_MODE:We(),REQUIRED_VALUE:We(),INVALID_VALUE:We(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:We(),NOT_INSTALLED_WITH_PROVIDE:We(),UNEXPECTED_ERROR:We(),NOT_COMPATIBLE_LEGACY_VUE_I18N:We(),BRIDGE_SUPPORT_VUE_2_ONLY:We(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:We(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:We(),__EXTEND_POINT__:We()};function qo(e,...o){return $t(e,null,void 0)}const Us=et("__translateVNode"),Bs=et("__datetimeParts"),js=et("__numberParts"),Yf=et("__setPluralRules"),Ni=et("__injectWithOption"),zs=et("__dispose");function qt(e){if(!le(e)||wo(e))return e;for(const o in e)if(io(e,o))if(!o.includes("."))le(e[o])&&qt(e[o]);else{const t=o.split("."),n=t.length-1;let s=e,a=!1;for(let r=0;r{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(r[l]=r[l]||pe(),Rn(c,r[l])):Rn(c,r)}else V(i)&&Rn(JSON.parse(i),r)}),s==null&&a)for(const i in r)io(r,i)&&qt(r[i]);return r}function Ri(e){return e.type}function Zf(e,o,t){let n=le(o.messages)?o.messages:pe();"__i18nGlobal"in t&&(n=Vs(e.locale.value,{messages:n,__i18n:t.__i18nGlobal}));const s=Object.keys(n);s.length&&s.forEach(a=>{e.mergeLocaleMessage(a,n[a])});{if(le(o.datetimeFormats)){const a=Object.keys(o.datetimeFormats);a.length&&a.forEach(r=>{e.mergeDateTimeFormat(r,o.datetimeFormats[r])})}if(le(o.numberFormats)){const a=Object.keys(o.numberFormats);a.length&&a.forEach(r=>{e.mergeNumberFormat(r,o.numberFormats[r])})}}}function Oi(e){return de(Ot,null,e,0)}const Fi="__INTLIFY_META__",Ii=()=>[],Jf=()=>!1;let Mi=0;function Di(e){return(o,t,n,s)=>e(t,n,gt()||void 0,s)}const Qf=()=>{const e=gt();let o=null;return e&&(o=Ri(e)[Fi])?{[Fi]:o}:null};function eh(e={},o){const{__root:t,__injectWithOption:n}=e,s=t===void 0,a=e.flatJson,r=Or?me:ka,i=!!e.translateExistCompatible;let l=$e(e.inheritLocale)?e.inheritLocale:!0;const c=r(t&&l?t.locale.value:V(e.locale)?e.locale:zt),g=r(t&&l?t.fallbackLocale.value:V(e.fallbackLocale)||Pe(e.fallbackLocale)||ne(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),h=r(Vs(c.value,e)),b=r(ne(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),L=r(ne(e.numberFormats)?e.numberFormats:{[c.value]:{}});let O=t?t.missingWarn:$e(e.missingWarn)||dt(e.missingWarn)?e.missingWarn:!0,C=t?t.fallbackWarn:$e(e.fallbackWarn)||dt(e.fallbackWarn)?e.fallbackWarn:!0,M=t?t.fallbackRoot:$e(e.fallbackRoot)?e.fallbackRoot:!0,F=!!e.fallbackFormat,D=ye(e.missing)?e.missing:null,v=ye(e.missing)?Di(e.missing):null,k=ye(e.postTranslation)?e.postTranslation:null,E=t?t.warnHtmlMessage:$e(e.warnHtmlMessage)?e.warnHtmlMessage:!0,P=!!e.escapeParameter;const T=t?t.modifiers:ne(e.modifiers)?e.modifiers:{};let B=e.pluralRules||t&&t.pluralRules,j;j=(()=>{s&&hi(null);const y={version:Wf,locale:c.value,fallbackLocale:g.value,messages:h.value,modifiers:T,pluralRules:B,missing:v===null?void 0:v,missingWarn:O,fallbackWarn:C,fallbackFormat:F,unresolving:!0,postTranslation:k===null?void 0:k,warnHtmlMessage:E,escapeParameter:P,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};y.datetimeFormats=b.value,y.numberFormats=L.value,y.__datetimeFormatters=ne(j)?j.__datetimeFormatters:void 0,y.__numberFormatters=ne(j)?j.__numberFormatters:void 0;const w=Mf(y);return s&&hi(w),w})(),Vt(j,c.value,g.value);function q(){return[c.value,g.value,h.value,b.value,L.value]}const z=Q({get:()=>c.value,set:y=>{c.value=y,j.locale=c.value}}),X=Q({get:()=>g.value,set:y=>{g.value=y,j.fallbackLocale=g.value,Vt(j,c.value,y)}}),xe=Q(()=>h.value),Re=Q(()=>b.value),ae=Q(()=>L.value);function J(){return ye(k)?k:null}function se(y){k=y,j.postTranslation=y}function ve(){return D}function Ie(y){y!==null&&(v=Di(y)),D=y,j.missing=v}const ge=(y,w,I,H,re,we)=>{q();let _e;try{__INTLIFY_PROD_DEVTOOLS__,s||(j.fallbackContext=t?If():void 0),_e=y(j)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(j.fallbackContext=void 0)}if(I!=="translate exists"&&Ne(_e)&&_e===In||I==="translate exists"&&!_e){const[to,no]=w();return t&&M?H(t):re(to)}else{if(we(_e))return _e;throw qo(Mo.UNEXPECTED_RETURN_TYPE)}};function ke(...y){return ge(w=>Reflect.apply(ki,null,[w,...y]),()=>Ms(...y),"translate",w=>Reflect.apply(w.t,w,[...y]),w=>w,w=>V(w))}function eo(...y){const[w,I,H]=y;if(H&&!le(H))throw qo(Mo.INVALID_ARGUMENT);return ke(w,I,De({resolvedMessage:!0},H||{}))}function Ee(...y){return ge(w=>Reflect.apply(Si,null,[w,...y]),()=>Ds(...y),"datetime format",w=>Reflect.apply(w.d,w,[...y]),()=>li,w=>V(w))}function Ye(...y){return ge(w=>Reflect.apply(xi,null,[w,...y]),()=>Gs(...y),"number format",w=>Reflect.apply(w.n,w,[...y]),()=>li,w=>V(w))}function ze(y){return y.map(w=>V(w)||Ne(w)||$e(w)?Oi(String(w)):w)}const uo={normalize:ze,interpolate:y=>y,type:"vnode"};function So(...y){return ge(w=>{let I;const H=w;try{H.processor=uo,I=Reflect.apply(ki,null,[H,...y])}finally{H.processor=null}return I},()=>Ms(...y),"translate",w=>w[Us](...y),w=>[Oi(w)],w=>Pe(w))}function Ve(...y){return ge(w=>Reflect.apply(xi,null,[w,...y]),()=>Gs(...y),"number format",w=>w[js](...y),Ii,w=>V(w)||Pe(w))}function Wo(...y){return ge(w=>Reflect.apply(Si,null,[w,...y]),()=>Ds(...y),"datetime format",w=>w[Bs](...y),Ii,w=>V(w)||Pe(w))}function $(y){B=y,j.pluralRules=B}function _(y,w){return ge(()=>{if(!y)return!1;const I=V(w)?w:c.value,H=R(I),re=j.messageResolver(H,y);return i?re!=null:wo(re)||Qe(re)||V(re)},()=>[y],"translate exists",I=>Reflect.apply(I.te,I,[y,w]),Jf,I=>$e(I))}function m(y){let w=null;const I=ri(j,g.value,c.value);for(let H=0;H{l&&(c.value=y,j.locale=y,Vt(j,c.value,g.value))}),yo(t.fallbackLocale,y=>{l&&(g.value=y,j.fallbackLocale=y,Vt(j,c.value,g.value))}));const A={id:Mi,locale:z,fallbackLocale:X,get inheritLocale(){return l},set inheritLocale(y){l=y,y&&t&&(c.value=t.locale.value,g.value=t.fallbackLocale.value,Vt(j,c.value,g.value))},get availableLocales(){return Object.keys(h.value).sort()},messages:xe,get modifiers(){return T},get pluralRules(){return B||{}},get isGlobal(){return s},get missingWarn(){return O},set missingWarn(y){O=y,j.missingWarn=O},get fallbackWarn(){return C},set fallbackWarn(y){C=y,j.fallbackWarn=C},get fallbackRoot(){return M},set fallbackRoot(y){M=y},get fallbackFormat(){return F},set fallbackFormat(y){F=y,j.fallbackFormat=F},get warnHtmlMessage(){return E},set warnHtmlMessage(y){E=y,j.warnHtmlMessage=y},get escapeParameter(){return P},set escapeParameter(y){P=y,j.escapeParameter=y},t:ke,getLocaleMessage:R,setLocaleMessage:N,mergeLocaleMessage:U,getPostTranslationHandler:J,setPostTranslationHandler:se,getMissingHandler:ve,setMissingHandler:Ie,[Yf]:$};return A.datetimeFormats=Re,A.numberFormats=ae,A.rt=eo,A.te=_,A.tm=x,A.d=Ee,A.n=Ye,A.getDateTimeFormat=G,A.setDateTimeFormat=u,A.mergeDateTimeFormat=p,A.getNumberFormat=d,A.setNumberFormat=f,A.mergeNumberFormat=S,A[Ni]=n,A[Us]=So,A[Bs]=Wo,A[js]=Ve,A}const qs={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function oh({slots:e},o){return o.length===1&&o[0]==="default"?(e.default?e.default():[]).reduce((n,s)=>[...n,...s.type===Ce?s.children:[s]],[]):o.reduce((t,n)=>{const s=e[n];return s&&(t[n]=s()),t},pe())}function Gi(e){return Ce}De({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ne(e)||!isNaN(e)}},qs);function th(e){return Pe(e)&&!V(e[0])}function Ui(e,o,t,n){const{slots:s,attrs:a}=o;return()=>{const r={part:!0};let i=pe();e.locale&&(r.locale=e.locale),V(e.format)?r.key=e.format:le(e.format)&&(V(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((b,L)=>t.includes(L)?De(pe(),b,{[L]:e.format[L]}):b,pe()));const l=n(e.value,r,i);let c=[r.key];Pe(l)?c=l.map((b,L)=>{const O=s[b.type],C=O?O({[b.type]:b.value,index:L,parts:l}):[b.value];return th(C)&&(C[0].key=`${b.type}-${L}`),C}):V(l)&&(c=[l]);const g=De(pe(),a),h=V(e.tag)||le(e.tag)?e.tag:Gi();return br(h,g,c)}}De({value:{type:Number,required:!0},format:{type:[String,Object]}},qs),De({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},qs);const nh=et("global-vue-i18n");function Mn(e={}){const o=gt();if(o==null)throw qo(Mo.MUST_BE_CALL_SETUP_TOP);if(!o.isCE&&o.appContext.app!=null&&!o.appContext.app.__VUE_I18N_SYMBOL__)throw qo(Mo.NOT_INSTALLED);const t=sh(o),n=rh(t),s=Ri(o),a=ah(e,s);if(__VUE_I18N_LEGACY_API__&&t.mode==="legacy"&&!e.__useComponent){if(!t.allowComposition)throw qo(Mo.NOT_AVAILABLE_IN_LEGACY_MODE);return uh(o,a,n,e)}if(a==="global")return Zf(n,e,s),n;if(a==="parent"){let l=ih(t,o,e.__useComponent);return l==null&&(l=n),l}const r=t;let i=r.__getInstance(o);if(i==null){const l=De({},e);"__i18n"in s&&(l.__i18n=s.__i18n),n&&(l.__root=n),i=eh(l),r.__composerExtend&&(i[zs]=r.__composerExtend(i)),ch(r,o,i),r.__setInstance(o,i)}return i}function sh(e){{const o=Et(e.isCE?nh:e.appContext.app.__VUE_I18N_SYMBOL__);if(!o)throw qo(e.isCE?Mo.NOT_INSTALLED_WITH_PROVIDE:Mo.UNEXPECTED_ERROR);return o}}function ah(e,o){return Cn(e)?"__i18n"in o?"local":"global":e.useScope?e.useScope:"local"}function rh(e){return e.mode==="composition"?e.global:e.global.__composer}function ih(e,o,t=!1){let n=null;const s=o.root;let a=lh(o,t);for(;a!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(a);else if(__VUE_I18N_LEGACY_API__){const i=r.__getInstance(a);i!=null&&(n=i.__composer,t&&n&&!n[Ni]&&(n=null))}if(n!=null||s===a)break;a=a.parent}return n}function lh(e,o=!1){return e==null?null:o&&e.vnode.ctx||e.parent}function ch(e,o,t){yn(()=>{},o),gs(()=>{const n=t;e.__deleteInstance(o);const s=n[zs];s&&(s(),delete n[zs])},o)}function uh(e,o,t,n={}){const s=o==="local",a=ka(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw qo(Mo.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=$e(n.inheritLocale)?n.inheritLocale:!V(n.locale),i=me(!s||r?t.locale.value:V(n.locale)?n.locale:zt),l=me(!s||r?t.fallbackLocale.value:V(n.fallbackLocale)||Pe(n.fallbackLocale)||ne(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=me(Vs(i.value,n)),g=me(ne(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),h=me(ne(n.numberFormats)?n.numberFormats:{[i.value]:{}}),b=s?t.missingWarn:$e(n.missingWarn)||dt(n.missingWarn)?n.missingWarn:!0,L=s?t.fallbackWarn:$e(n.fallbackWarn)||dt(n.fallbackWarn)?n.fallbackWarn:!0,O=s?t.fallbackRoot:$e(n.fallbackRoot)?n.fallbackRoot:!0,C=!!n.fallbackFormat,M=ye(n.missing)?n.missing:null,F=ye(n.postTranslation)?n.postTranslation:null,D=s?t.warnHtmlMessage:$e(n.warnHtmlMessage)?n.warnHtmlMessage:!0,v=!!n.escapeParameter,k=s?t.modifiers:ne(n.modifiers)?n.modifiers:{},E=n.pluralRules||s&&t.pluralRules;function P(){return[i.value,l.value,c.value,g.value,h.value]}const T=Q({get:()=>a.value?a.value.locale.value:i.value,set:m=>{a.value&&(a.value.locale.value=m),i.value=m}}),B=Q({get:()=>a.value?a.value.fallbackLocale.value:l.value,set:m=>{a.value&&(a.value.fallbackLocale.value=m),l.value=m}}),j=Q(()=>a.value?a.value.messages.value:c.value),Z=Q(()=>g.value),q=Q(()=>h.value);function z(){return a.value?a.value.getPostTranslationHandler():F}function X(m){a.value&&a.value.setPostTranslationHandler(m)}function xe(){return a.value?a.value.getMissingHandler():M}function Re(m){a.value&&a.value.setMissingHandler(m)}function ae(m){return P(),m()}function J(...m){return a.value?ae(()=>Reflect.apply(a.value.t,null,[...m])):ae(()=>"")}function se(...m){return a.value?Reflect.apply(a.value.rt,null,[...m]):""}function ve(...m){return a.value?ae(()=>Reflect.apply(a.value.d,null,[...m])):ae(()=>"")}function Ie(...m){return a.value?ae(()=>Reflect.apply(a.value.n,null,[...m])):ae(()=>"")}function ge(m){return a.value?a.value.tm(m):{}}function ke(m,x){return a.value?a.value.te(m,x):!1}function eo(m){return a.value?a.value.getLocaleMessage(m):{}}function Ee(m,x){a.value&&(a.value.setLocaleMessage(m,x),c.value[m]=x)}function Ye(m,x){a.value&&a.value.mergeLocaleMessage(m,x)}function ze(m){return a.value?a.value.getDateTimeFormat(m):{}}function oo(m,x){a.value&&(a.value.setDateTimeFormat(m,x),g.value[m]=x)}function uo(m,x){a.value&&a.value.mergeDateTimeFormat(m,x)}function So(m){return a.value?a.value.getNumberFormat(m):{}}function Ve(m,x){a.value&&(a.value.setNumberFormat(m,x),h.value[m]=x)}function Wo(m,x){a.value&&a.value.mergeNumberFormat(m,x)}const $={get id(){return a.value?a.value.id:-1},locale:T,fallbackLocale:B,messages:j,datetimeFormats:Z,numberFormats:q,get inheritLocale(){return a.value?a.value.inheritLocale:r},set inheritLocale(m){a.value&&(a.value.inheritLocale=m)},get availableLocales(){return a.value?a.value.availableLocales:Object.keys(c.value)},get modifiers(){return a.value?a.value.modifiers:k},get pluralRules(){return a.value?a.value.pluralRules:E},get isGlobal(){return a.value?a.value.isGlobal:!1},get missingWarn(){return a.value?a.value.missingWarn:b},set missingWarn(m){a.value&&(a.value.missingWarn=m)},get fallbackWarn(){return a.value?a.value.fallbackWarn:L},set fallbackWarn(m){a.value&&(a.value.missingWarn=m)},get fallbackRoot(){return a.value?a.value.fallbackRoot:O},set fallbackRoot(m){a.value&&(a.value.fallbackRoot=m)},get fallbackFormat(){return a.value?a.value.fallbackFormat:C},set fallbackFormat(m){a.value&&(a.value.fallbackFormat=m)},get warnHtmlMessage(){return a.value?a.value.warnHtmlMessage:D},set warnHtmlMessage(m){a.value&&(a.value.warnHtmlMessage=m)},get escapeParameter(){return a.value?a.value.escapeParameter:v},set escapeParameter(m){a.value&&(a.value.escapeParameter=m)},t:J,getPostTranslationHandler:z,setPostTranslationHandler:X,getMissingHandler:xe,setMissingHandler:Re,rt:se,d:ve,n:Ie,tm:ge,te:ke,getLocaleMessage:eo,setLocaleMessage:Ee,mergeLocaleMessage:Ye,getDateTimeFormat:ze,setDateTimeFormat:oo,mergeDateTimeFormat:uo,getNumberFormat:So,setNumberFormat:Ve,mergeNumberFormat:Wo};function _(m){m.locale.value=i.value,m.fallbackLocale.value=l.value,Object.keys(c.value).forEach(x=>{m.mergeLocaleMessage(x,c.value[x])}),Object.keys(g.value).forEach(x=>{m.mergeDateTimeFormat(x,g.value[x])}),Object.keys(h.value).forEach(x=>{m.mergeNumberFormat(x,h.value[x])}),m.escapeParameter=v,m.fallbackFormat=C,m.fallbackRoot=O,m.fallbackWarn=L,m.missingWarn=b,m.warnHtmlMessage=D}return Da(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw qo(Mo.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const m=a.value=e.proxy.$i18n.__composer;o==="global"?(i.value=m.locale.value,l.value=m.fallbackLocale.value,c.value=m.messages.value,g.value=m.datetimeFormats.value,h.value=m.numberFormats.value):s&&_(m)}),$}if(Kf(),__INTLIFY_JIT_COMPILATION__?pi(jf):pi(Bf),Nf(gf),Rf(ri),__INTLIFY_PROD_DEVTOOLS__){const e=Oo();e.__INTLIFY__=!0,vf(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const ph=Object.assign({"./locales/ar/allPeopleGroups.json":_u,"./locales/ar/aria.json":bu,"./locales/ar/buttons.json":yu,"./locales/ar/connectivity.json":vu,"./locales/ar/controls.json":ku,"./locales/ar/dashboard.json":wu,"./locales/ar/detail.json":Lu,"./locales/ar/gospel.json":Su,"./locales/ar/grid.json":Au,"./locales/ar/legend.json":Pu,"./locales/ar/messages.json":xu,"./locales/ar/options.json":Eu,"./locales/ar/popup.json":Cu,"./locales/ar/prayerLaps.json":Tu,"./locales/ar/regions.json":Nu,"./locales/ar/search.json":Ru,"./locales/ar/studio.json":Ou,"./locales/ar/tabs.json":Fu,"./locales/ar/vision.json":Iu,"./locales/de/allPeopleGroups.json":Mu,"./locales/de/aria.json":Du,"./locales/de/buttons.json":Gu,"./locales/de/connectivity.json":Uu,"./locales/de/controls.json":Bu,"./locales/de/dashboard.json":ju,"./locales/de/detail.json":zu,"./locales/de/gospel.json":Vu,"./locales/de/grid.json":qu,"./locales/de/legend.json":Hu,"./locales/de/messages.json":Wu,"./locales/de/options.json":Ku,"./locales/de/popup.json":Xu,"./locales/de/prayerLaps.json":Yu,"./locales/de/regions.json":Zu,"./locales/de/search.json":Ju,"./locales/de/studio.json":Qu,"./locales/de/tabs.json":ep,"./locales/de/vision.json":op,"./locales/en/allPeopleGroups.json":tp,"./locales/en/aria.json":np,"./locales/en/buttons.json":sp,"./locales/en/connectivity.json":ap,"./locales/en/controls.json":rp,"./locales/en/dashboard.json":ip,"./locales/en/detail.json":lp,"./locales/en/gospel.json":cp,"./locales/en/grid.json":up,"./locales/en/legend.json":pp,"./locales/en/messages.json":gp,"./locales/en/options.json":dp,"./locales/en/popup.json":$p,"./locales/en/prayerLaps.json":fp,"./locales/en/regions.json":hp,"./locales/en/search.json":mp,"./locales/en/studio.json":_p,"./locales/en/tabs.json":bp,"./locales/en/vision.json":yp,"./locales/es/allPeopleGroups.json":vp,"./locales/es/aria.json":kp,"./locales/es/buttons.json":wp,"./locales/es/connectivity.json":Lp,"./locales/es/controls.json":Sp,"./locales/es/dashboard.json":Ap,"./locales/es/detail.json":Pp,"./locales/es/gospel.json":xp,"./locales/es/grid.json":Ep,"./locales/es/legend.json":Cp,"./locales/es/messages.json":Tp,"./locales/es/options.json":Np,"./locales/es/popup.json":Rp,"./locales/es/prayerLaps.json":Op,"./locales/es/regions.json":Fp,"./locales/es/search.json":Ip,"./locales/es/studio.json":Mp,"./locales/es/tabs.json":Dp,"./locales/es/vision.json":Gp,"./locales/fr/allPeopleGroups.json":Up,"./locales/fr/aria.json":Bp,"./locales/fr/buttons.json":jp,"./locales/fr/connectivity.json":zp,"./locales/fr/controls.json":Vp,"./locales/fr/dashboard.json":qp,"./locales/fr/detail.json":Hp,"./locales/fr/gospel.json":Wp,"./locales/fr/grid.json":Kp,"./locales/fr/legend.json":Xp,"./locales/fr/messages.json":Yp,"./locales/fr/options.json":Zp,"./locales/fr/popup.json":Jp,"./locales/fr/prayerLaps.json":Qp,"./locales/fr/regions.json":eg,"./locales/fr/search.json":og,"./locales/fr/studio.json":tg,"./locales/fr/tabs.json":ng,"./locales/fr/vision.json":sg,"./locales/hi/allPeopleGroups.json":ag,"./locales/hi/aria.json":rg,"./locales/hi/buttons.json":ig,"./locales/hi/connectivity.json":lg,"./locales/hi/controls.json":cg,"./locales/hi/dashboard.json":ug,"./locales/hi/detail.json":pg,"./locales/hi/gospel.json":gg,"./locales/hi/grid.json":dg,"./locales/hi/legend.json":$g,"./locales/hi/messages.json":fg,"./locales/hi/options.json":hg,"./locales/hi/popup.json":mg,"./locales/hi/prayerLaps.json":_g,"./locales/hi/regions.json":bg,"./locales/hi/search.json":yg,"./locales/hi/studio.json":vg,"./locales/hi/tabs.json":kg,"./locales/hi/vision.json":wg,"./locales/it/allPeopleGroups.json":Lg,"./locales/it/aria.json":Sg,"./locales/it/buttons.json":Ag,"./locales/it/connectivity.json":Pg,"./locales/it/controls.json":xg,"./locales/it/dashboard.json":Eg,"./locales/it/detail.json":Cg,"./locales/it/gospel.json":Tg,"./locales/it/grid.json":Ng,"./locales/it/legend.json":Rg,"./locales/it/messages.json":Og,"./locales/it/options.json":Fg,"./locales/it/popup.json":Ig,"./locales/it/prayerLaps.json":Mg,"./locales/it/regions.json":Dg,"./locales/it/search.json":Gg,"./locales/it/studio.json":Ug,"./locales/it/tabs.json":Bg,"./locales/it/vision.json":jg,"./locales/pt/allPeopleGroups.json":zg,"./locales/pt/aria.json":Vg,"./locales/pt/buttons.json":qg,"./locales/pt/connectivity.json":Hg,"./locales/pt/controls.json":Wg,"./locales/pt/dashboard.json":Kg,"./locales/pt/detail.json":Xg,"./locales/pt/gospel.json":Yg,"./locales/pt/grid.json":Zg,"./locales/pt/legend.json":Jg,"./locales/pt/messages.json":Qg,"./locales/pt/options.json":ed,"./locales/pt/popup.json":od,"./locales/pt/prayerLaps.json":td,"./locales/pt/regions.json":nd,"./locales/pt/search.json":sd,"./locales/pt/studio.json":ad,"./locales/pt/tabs.json":rd,"./locales/pt/vision.json":id,"./locales/ro/allPeopleGroups.json":ld,"./locales/ro/aria.json":cd,"./locales/ro/buttons.json":ud,"./locales/ro/connectivity.json":pd,"./locales/ro/controls.json":gd,"./locales/ro/dashboard.json":dd,"./locales/ro/detail.json":$d,"./locales/ro/gospel.json":fd,"./locales/ro/grid.json":hd,"./locales/ro/legend.json":md,"./locales/ro/messages.json":_d,"./locales/ro/options.json":bd,"./locales/ro/popup.json":yd,"./locales/ro/prayerLaps.json":vd,"./locales/ro/regions.json":kd,"./locales/ro/search.json":wd,"./locales/ro/studio.json":Ld,"./locales/ro/tabs.json":Sd,"./locales/ro/vision.json":Ad,"./locales/ru/allPeopleGroups.json":Pd,"./locales/ru/aria.json":xd,"./locales/ru/buttons.json":Ed,"./locales/ru/connectivity.json":Cd,"./locales/ru/controls.json":Td,"./locales/ru/dashboard.json":Nd,"./locales/ru/detail.json":Rd,"./locales/ru/gospel.json":Od,"./locales/ru/grid.json":Fd,"./locales/ru/legend.json":Id,"./locales/ru/messages.json":Md,"./locales/ru/options.json":Dd,"./locales/ru/popup.json":Gd,"./locales/ru/prayerLaps.json":Ud,"./locales/ru/regions.json":Bd,"./locales/ru/search.json":jd,"./locales/ru/studio.json":zd,"./locales/ru/tabs.json":Vd,"./locales/ru/vision.json":qd,"./locales/zh/allPeopleGroups.json":Hd,"./locales/zh/aria.json":Wd,"./locales/zh/buttons.json":Kd,"./locales/zh/connectivity.json":Xd,"./locales/zh/controls.json":Yd,"./locales/zh/dashboard.json":Zd,"./locales/zh/detail.json":Jd,"./locales/zh/gospel.json":Qd,"./locales/zh/grid.json":e$,"./locales/zh/legend.json":o$,"./locales/zh/messages.json":t$,"./locales/zh/options.json":n$,"./locales/zh/popup.json":s$,"./locales/zh/prayerLaps.json":a$,"./locales/zh/regions.json":r$,"./locales/zh/search.json":i$,"./locales/zh/studio.json":l$,"./locales/zh/tabs.json":c$,"./locales/zh/vision.json":u$}),Ht={};for(const[e,o]of Object.entries(ph)){const t=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!t)continue;const[,n,s]=t;Ht[n]??(Ht[n]={}),Ht[n][s]=o}const Dn=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function gh(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function dh(){var n;const e=gh();if(Dn.includes(e))return e;const t=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Dn.includes(t)?t:"en"}const Bi="__DOXA_PAGE_LOCALE";function $h(e){const o=String(e||"").split("-")[0].toLowerCase();if(Dn.includes(o))try{typeof window<"u"&&(window[Bi]=o)}catch{}}function fh(){try{return typeof window<"u"&&window[Bi]||""}catch{return""}}function hh(e,o){const t=s=>{let a=Ht[s];for(const r of String(e).split(".")){if(!a||typeof a!="object")return;a=a[r]}return typeof a=="string"?a:void 0},n=o||fh()||dh();return t(n)??t("en")}const mh=".search-box{position:relative;display:flex;align-items:center;margin:0 auto;width:100%;color:var(--dx-muted, #6d766e)}.search-box .search-icon{position:absolute;left:12px;pointer-events:none}.search-box input{width:100%;padding:10px 12px 10px 38px;font-size:.95rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:10px;outline:none;box-sizing:border-box}.search-box input:focus{border-color:var(--dx-accent, #92b195);box-shadow:0 0 0 2px var(--dx-accent-weak, rgba(146, 177, 149, .18))}",Wt=(e,o)=>{const t=e.__vccOpts||e;for(const[n,s]of o)t[n]=s;return t},_h=["value","placeholder","aria-label"],ji=Wt({__name:"SearchBar",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"Search…"},ariaLabel:{type:String,default:"Search"},maxWidth:{type:String,default:""}},emits:["update:modelValue","search"],setup(e,{emit:o}){const t=e,n=o,s=Q(()=>t.maxWidth?{maxWidth:t.maxWidth}:{});function a(r){const i=r.target.value??"";n("update:modelValue",i),n("search",{value:i})}return(r,i)=>(ee(),te("div",{class:"search-box",style:Go(s.value)},[i[0]||(i[0]=oe("svg",{class:"search-icon",width:"18",height:"18",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[oe("circle",{cx:"11",cy:"11",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"}),oe("line",{x1:"16.5",y1:"16.5",x2:"21",y2:"21",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),oe("input",{type:"search",value:e.modelValue,placeholder:e.placeholder,"aria-label":e.ariaLabel,onInput:a},null,40,_h)],4))}},[["styles",[mh]]]),bh=".filter-dropdown{position:relative;flex:0 0 auto;width:var(--dx-filter-w, 128px);min-width:var(--dx-filter-w, 128px);max-width:var(--dx-filter-w, 128px)}@media (max-width: 576px){.filter-dropdown{width:var(--dx-filter-w-sm, 108px);min-width:var(--dx-filter-w-sm, 108px);max-width:var(--dx-filter-w-sm, 108px)}}.filter-dropdown__trigger{width:100%;padding:var(--dx-filter-pad-y, 4px) var(--dx-filter-pad-x, 8px);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:var(--dx-text, #3b463d);text-align:start;background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:var(--dx-accent, #92b195)}.filter-dropdown__trigger[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--dx-accent, #92b195)}.filter-dropdown__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown__chevron{flex-shrink:0;transition:transform .2s ease}.filter-dropdown.is-open .filter-dropdown__chevron{transform:rotate(180deg)}.filter-dropdown__menu{position:fixed;z-index:2147483000;background-color:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;box-shadow:0 4px 12px #0000001f;overflow:hidden;display:flex;flex-direction:column;min-width:160px}.filter-dropdown__search{border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:var(--dx-muted, #6d766e)}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);padding:6px 12px;font-size:.875rem;color:var(--dx-text, #3b463d);cursor:pointer;text-align:start;text-decoration:underline;text-decoration-color:var(--dx-accent, #92b195);text-underline-offset:3px}.filter-dropdown__clear:hover{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__options{flex:1 1 auto;min-height:0;max-height:250px;overflow-y:auto}.filter-dropdown__search,.filter-dropdown__clear{flex:0 0 auto}.filter-dropdown__option{padding:5px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;transition:background-color .1s ease}.filter-dropdown__option[data-selected]{font-weight:700;color:var(--dx-text, #3b463d);box-shadow:inset 3px 0 0 var(--dx-accent, #92b195)}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__count{color:var(--dx-muted, #6d766e);font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:var(--dx-muted, #6d766e);text-align:center}",yh=["data-active","aria-expanded"],vh={class:"filter-dropdown__label"},kh=["value","placeholder"],wh={class:"filter-dropdown__options"},Lh={key:0,class:"filter-dropdown__no-options"},Sh=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],Ah={class:"filter-dropdown__count"},Ho=Wt({__name:"FilterDropdown",props:{label:{type:String,required:!0},name:{type:String,required:!0},options:{type:Array,default:()=>[]},value:{type:String,default:""},placeholder:{type:String,default:"Type to search..."}},emits:["filter-change","filter-clear"],setup(e,{emit:o}){const t=e,n={"buttons.clearSelection":"Clear selection","buttons.noOptions":"No options found"};let s=q=>n[q]||q;try{s=Mn().t}catch{}const a=o,r=me(!1),i=me(""),l=me(-1),c=me(null),g=me(null),h=me(null),b=me({});function L(q){const z=q.ownerDocument,X=z.createElement("div");X.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",(q.parentElement||q.getRootNode().body||z.body).appendChild(X);const Re=X.getBoundingClientRect();return X.remove(),{x:Re.left,y:Re.top}}function O(){const q=h.value;if(!q)return;const z=q.getBoundingClientRect(),X=window.innerWidth,xe=window.innerHeight,Re=320,ae=4,J=8,ve=Math.round(Math.min(Math.max(z.width,240),X-J*2)),Ie=z.right>J&&z.leftX-J?ge=Math.round(Math.max(z.right-ve,J)):ge=Math.round(Math.max(z.left,J)):ge=Math.round(Math.min(Math.max(z.left,J),X-ve-J));const ke=xe-z.bottom,eo=ke<180&&z.top>ke,Ee=L(q),Ye=Math.round(ge-Ee.x);b.value=eo?{top:"auto",bottom:`${Math.round(xe-z.top+ae+Ee.y)}px`,left:`${Ye}px`,width:`${ve}px`,maxHeight:`${Math.round(Math.min(Re,z.top-ae-J))}px`}:{top:`${Math.round(z.bottom+ae-Ee.y)}px`,bottom:"auto",left:`${Ye}px`,width:`${ve}px`,maxHeight:`${Math.round(Math.min(Re,ke-ae-J))}px`}}function C(){r.value&&O()}const M=Q(()=>{if(!i.value)return t.options;const q=i.value.toLowerCase();return t.options.filter(z=>z.label.toLowerCase().includes(q))}),F=Q(()=>t.options.find(q=>q.value===t.value));function D(q){var X;const z=((X=q.composedPath)==null?void 0:X.call(q))??[];c.value&&!z.includes(c.value)&&E()}function v(){r.value?E():k()}function k(){r.value=!0,i.value="",l.value=-1,O(),document.addEventListener("click",D),window.addEventListener("scroll",C,!0),window.addEventListener("resize",C),$n(()=>{var q;O(),(q=g.value)==null||q.focus()})}function E(){r.value=!1,i.value="",l.value=-1,document.removeEventListener("click",D),window.removeEventListener("scroll",C,!0),window.removeEventListener("resize",C)}function P(q){i.value=q.target.value,l.value=-1}function T(q){const z=M.value;switch(q.key){case"ArrowDown":q.preventDefault(),l.value=Math.min(l.value+1,z.length-1),B();break;case"ArrowUp":q.preventDefault(),l.value=Math.max(l.value-1,0),B();break;case"Enter":{q.preventDefault();const X=z[l.value];X&&j(X);break}case"Escape":q.preventDefault(),E();break}}function B(){$n(()=>{var z;const q=(z=c.value)==null?void 0:z.querySelector(".filter-dropdown__option[data-highlighted]");q==null||q.scrollIntoView({block:"nearest"})})}function j(q){a("filter-change",{name:t.name,value:q.value,label:q.label,type:q.type}),E()}function Z(){a("filter-clear",{name:t.name}),E()}return Ga(()=>{document.removeEventListener("click",D),window.removeEventListener("scroll",C,!0),window.removeEventListener("resize",C)}),(q,z)=>(ee(),te("div",{ref_key:"rootRef",ref:c,class:tn(["filter-dropdown",{"is-open":r.value}])},[oe("button",{ref_key:"triggerRef",ref:h,class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:v},[oe("span",vh,[F.value?(ee(),te(Ce,{key:0},[To(Le(e.label)+": ",1),oe("strong",null,Le(F.value.label),1)],64)):(ee(),te(Ce,{key:1},[To(Le(e.label),1)],64))]),z[0]||(z[0]=oe("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[oe("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,yh),r.value?(ee(),te("div",{key:0,class:"filter-dropdown__menu",role:"listbox",style:Go(b.value)},[oe("input",{ref_key:"searchInputRef",ref:g,class:"filter-dropdown__search",type:"text",value:i.value,placeholder:e.placeholder,onInput:P,onKeydown:T},null,40,kh),e.value?(ee(),te("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:Z},Le(At(s)("buttons.clearSelection")),1)):Te("",!0),oe("div",wh,[M.value.length===0?(ee(),te("div",Lh,Le(At(s)("buttons.noOptions")),1)):(ee(!0),te(Ce,{key:1},vn(M.value,(X,xe)=>(ee(),te("div",{key:X.value,class:"filter-dropdown__option",role:"option","data-highlighted":xe===l.value?"":void 0,"data-selected":X.value===e.value?"":void 0,"aria-selected":X.value===e.value,onClick:Re=>j(X),onMouseenter:Re=>l.value=xe},[oe("span",null,Le(X.label),1),oe("span",Ah,Le(X.count),1)],40,Sh))),128))])],4)):Te("",!0)],2))}},[["styles",[bh]]]),Ph=".rh-root{width:100%;box-sizing:border-box;padding:14px 16px;background:#111827;color:#e5e7eb;border-bottom:1px solid #1f2937;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;display:flex;flex-direction:column;gap:12px}.rh-title{display:flex;align-items:center;gap:10px}.rh-title h1{font-size:17px;font-weight:700;letter-spacing:-.01em}.rh-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}.rh-count{margin-left:auto;font:700 12px/1 ui-monospace,monospace;color:var(--accent)}.rh-search{display:flex}.rh-controls{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px}.rh-reset{padding:8px 12px;background:transparent;border:1px solid #1f2937;border-radius:8px;color:#94a3b8;font-size:13px;cursor:pointer}.rh-reset:hover{border-color:var(--accent);color:#e5e7eb}",xh={class:"rh-title"},Eh={key:0,class:"rh-count",role:"status","aria-live":"polite"},Ch={class:"rh-search"},Th={class:"rh-controls"},zi=Wt({__name:"BpResearchHeader",props:{count:{type:[Number,String],default:null},title:{type:String,default:"Unified Research Dashboard"},accent:{type:String,default:"#8b5cf6"},prayBaseUrl:{type:String,default:""},languageCode:{type:String,default:""}},emits:["research-filter"],setup(e,{emit:o}){const t=e,n=o,s=Q(()=>t.prayBaseUrl||"https://pray.doxa.life"),a=Q(()=>t.languageCode||""),r=me(""),i=at({wagf_region:"",wagf_block:"",rop1:"",religion:""}),l=at({wagf_region:[],wagf_block:[],rop1:[],religion:[]}),c=Q(()=>!!(r.value||i.wagf_region||i.wagf_block||i.rop1||i.religion)),g=gt();function h(){var k,E;const v=((k=g==null?void 0:g.vnode)==null?void 0:k.el)||((E=g==null?void 0:g.proxy)==null?void 0:E.$el);try{const P=v&&v.getRootNode&&v.getRootNode();if(P&&P.host)return P.host}catch{}return v}function b(){const v={query:r.value,wagfRegion:i.wagf_region,wagfBlock:i.wagf_block,rop1:i.rop1,religion:i.religion};n("research-filter",v);const k=h();k&&typeof k.dispatchEvent=="function"&&k.dispatchEvent(new CustomEvent("research-filter",{detail:v,bubbles:!0,composed:!0}))}yo([r,()=>i.wagf_region,()=>i.wagf_block,()=>i.rop1,()=>i.religion],b,{immediate:!0});function L(v){r.value=(v==null?void 0:v.value)??""}function O(v){(v==null?void 0:v.name)in i&&(i[v.name]=v.value)}function C(v){(v==null?void 0:v.name)in i&&(i[v.name]="")}function M(){r.value="",i.wagf_region="",i.wagf_block="",i.rop1="",i.religion=""}function F(v,k){const E=new Map;for(const P of v){const T=P[k];if(!(T!=null&&T.value))continue;const B=E.get(T.value);B?B.count++:E.set(T.value,{label:T.label,count:1})}return Array.from(E.entries()).map(([P,{label:T,count:B}])=>({value:P,label:T,count:B})).sort((P,T)=>P.label.localeCompare(T.label))}async function D(){const v=`${s.value}/api/people-groups/list?fields=name,slug,wagf_region,wagf_block,country_code,rop1,religion&lang=${a.value}`;try{const E=await(await fetch(v)).json(),P=Array.isArray(E.posts)?E.posts:[];l.wagf_region=F(P,"wagf_region"),l.wagf_block=F(P,"wagf_block"),l.rop1=F(P,"rop1"),l.religion=F(P,"religion")}catch(k){console.error("[bp-research-header] options fetch error:",k)}}return yn(D),(v,k)=>(ee(),te("div",{class:"rh-root",role:"banner",style:Go({"--accent":e.accent})},[oe("div",xh,[k[0]||(k[0]=oe("span",{class:"rh-dot","aria-hidden":"true"},null,-1)),oe("h1",null,Le(e.title),1),e.count!==null&&e.count!==""?(ee(),te("span",Eh,Le(e.count)+" shown",1)):Te("",!0)]),oe("div",Ch,[de(ji,{"model-value":r.value,placeholder:"Search people groups or countries…","aria-label":"Search people groups",onSearch:L},null,8,["model-value"])]),oe("div",Th,[de(Ho,{label:"Region",name:"wagf_region",options:l.wagf_region,value:i.wagf_region,onFilterChange:O,onFilterClear:C},null,8,["options","value"]),de(Ho,{label:"Bloc",name:"wagf_block",options:l.wagf_block,value:i.wagf_block,onFilterChange:O,onFilterClear:C},null,8,["options","value"]),de(Ho,{label:"People Group",name:"rop1",options:l.rop1,value:i.rop1,onFilterChange:O,onFilterClear:C},null,8,["options","value"]),de(Ho,{label:"Religion",name:"religion",options:l.religion,value:i.religion,onFilterChange:O,onFilterClear:C},null,8,["options","value"]),c.value?(ee(),te("button",{key:0,class:"rh-reset",type:"button","aria-label":"Reset all filters and search",onClick:M},"Reset")):Te("",!0)])],4))}},[["styles",[Ph]]]);function Gn(e,o){if(!o.includes("."))return e==null?void 0:e[o];const[t,...n]=o.split(".");let s=e==null?void 0:e[t];for(const a of n)s=s==null?void 0:s[a];return s}function Nh(e,o){const t=e.toLowerCase(),n=o.toLowerCase(),s=[];let a=0,r=t.indexOf(n,a);for(;r!==-1;)s.push([r,r+n.length-1]),a=r+n.length,r=t.indexOf(n,a);return s}function Rh(e,o,t){const n=e.toLowerCase(),s=o.toLowerCase(),a=s.length;if(!a||!n.length)return null;const r=Math.min(2,Math.floor(t*a));if(r<=0)return null;let i=new Array(n.length+1).fill(0),l=new Array(n.length+1);for(let b=1;b<=a;b++){l[0]=b;for(let L=1;L<=n.length;L++){const O=i[L-1]+(s[b-1]===n[L-1]?0:1);l[L]=Math.min(O,i[L]+1,l[L-1]+1)}[i,l]=[l,i]}let c=1/0,g=-1;for(let b=1;b<=n.length;b++)i[b]r?null:[[Math.max(0,g-a),g-1]]}function Oh(e,o,{threshold:t=.4}={}){const n=String(e??"").trim().toLowerCase();if(!n)return[];const s=Math.min(2,Math.floor(t*n.length)),a=[];for(const i of o){if(!i)continue;const l=String(i).toLowerCase();if(Math.abs(l.length-n.length)>s)continue;const c=Fh(l,n,s);c<=s&&a.push({value:i,distance:c})}if(!a.length)return[];const r=Math.min(...a.map(i=>i.distance));return a.filter(i=>i.distance===r).map(i=>i.value)}function Fh(e,o,t){if(e===o)return 0;let n=Array.from({length:o.length+1},(a,r)=>r);const s=new Array(o.length+1);for(let a=1;a<=e.length;a++){s[0]=a;let r=a;for(let i=1;i<=o.length;i++)s[i]=Math.min(n[i-1]+(e[a-1]===o[i-1]?0:1),n[i]+1,s[i-1]+1),s[i]t)return t+1;for(let i=0;i<=o.length;i++)n[i]=s[i]}return n[o.length]}class Ih{constructor(o,t={}){this.list=Array.isArray(o)?o:[],this.keys=t.keys||[],this.threshold=typeof t.threshold=="number"?t.threshold:.4,this.minMatchCharLength=t.minMatchCharLength||1}search(o){const t=String(o||"").trim();if(!t)return this.list.map(c=>({item:c,matches:[]}));if(t.lengthString(e||"").trim().replace(/\/+$/,"");function Dh(){try{const o=String(Mh||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!o||o[2]!==o[3]?null:o[1]||null}catch{return null}}function Gh(e){const o=e==null?void 0:e.assetsBase;if(typeof o=="string"&&o.trim()){const n=Kt(o);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const t=Kt((e==null?void 0:e.treeBase)||"")||Kt(Dh()||"");if(t)try{const n=typeof document<"u"?document.baseURI:void 0;return Kt(new URL(t+"/assets",n).href)}catch{return Kt(t+"/assets")}return"./assets"}function Uh(e,o){return String(o||e||"").trim().toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}const Vi={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Bh={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},jh=(()=>{const e=t=>String(t||"").toLowerCase().trim(),o={};for(const t of Object.keys(Bh))o[e(t)]=t;return o})(),zh={"tai-kadai":"Kra-Dai",none:"Unknown"};function qi(e){if(!e)return"Unknown";const o=String(e).trim(),t=o.toLowerCase();return zh[t]||jh[t]||o}const Vh={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"},qh=":host{display:block;width:100%;--dx-surface: #f3f3f1;--dx-elevated: #ffffff;--dx-text: #3b463d;--dx-muted: #6d766e;--dx-line: #d1d4cd;--dx-accent: #92b195;--dx-accent-weak: rgba(146, 177, 149, .18);--dx-accent-soft: rgba(146, 177, 149, .1);--dx-accent-strong: #657967}.pgg-root{--brand: var(--dx-accent, #92b195);--ink: var(--dx-text, #3b463d);--mut: var(--dx-muted, #6d766e);--line: var(--dx-line, #d1d4cd);--card: var(--dx-elevated, #fff);--bg: var(--dx-surface, #f3f3f1);width:100%;box-sizing:border-box;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;padding:16px}.filters{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;padding-block:18px 8px;min-height:190px}.pgg-search{display:flex;justify-content:center}.pgg-search--repel{gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between;width:100%;max-width:600px;margin-inline:auto}.pgg-search--repel>:first-child{flex:1 1 320px;min-width:0}.pgg-exact{flex:none}.filters__toggle{background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--dx-text, #3b463d);padding:7px 12px;display:inline-flex;align-items:center;gap:7px;margin-inline:auto;transition:background-color .15s ease,border-color .15s ease}.filters__toggle:hover{background:var(--dx-accent-weak, rgba(146,177,149,.18));border-color:var(--dx-accent, #92b195)}.filters__toggle:focus-visible{outline:2px solid var(--dx-accent, #92b195);outline-offset:2px}.filters__toggle-icon{color:var(--dx-accent, #92b195);flex:none}.filters__toggle-count{background:var(--dx-accent, #92b195);color:#fff;border-radius:999px;min-width:18px;padding:0 5px;font-size:.75rem;line-height:18px;text-align:center}.filters__toggle[aria-expanded=true] svg{transform:rotate(180deg)}.filters__panel{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:flex-start}.filter-toggle{padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;transition:border-color .15s ease,background .15s ease}.filter-toggle:hover{border-color:var(--brand)}.filter-toggle[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--brand);color:var(--ink)}.filters__active{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}.filter-chip{display:inline-flex;gap:6px;align-items:center;background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));color:var(--ink);border:1px solid var(--line);border-radius:100px;padding:4px 12px;font-size:.85rem}.filter-chip__remove{background:none;border:none;cursor:pointer;font-size:1.1em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.filter-chip__remove:hover{opacity:.7}.filters__clear-all{background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--ink);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}.repel{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.font-size-sm{font-size:.875rem;color:var(--mut)}.grid.uupgs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.card.uupg__card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #0000000a}.uupg__image{width:100%;aspect-ratio:1 / 1;object-fit:cover;background:var(--line)}.uupg__header{padding:12px 14px 6px}.uupg__name{font-size:1rem;font-weight:700;line-height:1.2;margin:0 0 4px}.uupg__country{font-size:.85rem;color:var(--mut);margin:0}.uupg__country-link{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--brand);text-decoration-thickness:1px;text-underline-offset:2px}.uupg__country-link:hover{text-decoration-thickness:2px}.uupg__match{font-size:.8rem;color:var(--mut);margin:4px 0 0}.uupg__content{padding:0 14px;font-size:.85rem;color:var(--mut)}.uupg__more-button{margin:12px 14px 14px;padding:8px 12px;text-align:center;font-size:.85rem;font-weight:700;color:var(--dx-elevated, #fff);background:var(--dx-accent-strong, #657967);border-radius:8px;text-decoration:none}.uupg__more-button:hover{background:var(--dx-text, #3b463d)}.search-highlight{background:#fde68a;border-radius:2px;padding:0 1px}.loading,.pgg-empty{grid-column:1 / -1;padding:28px;text-align:center;color:var(--mut);font-size:.9rem}.pgg-failed{font-weight:600;border-top:1px solid var(--bd, #d1d4cd)}.pgg-loadmore{display:block;margin:20px auto 0;padding:8px 18px;font-size:.9rem;cursor:pointer;color:var(--ink);background:var(--card);border:1px solid var(--brand);border-radius:8px}.pgg-loadmore:hover{background:var(--dx-accent-soft, rgba(146, 177, 149, .1))}",Hh={class:"pgg-root"},Wh={key:0,class:"pgg-search pgg-search--repel"},Kh=["data-active"],Xh=["aria-expanded"],Yh={key:0,class:"filters__toggle-count"},Zh={key:2,class:"filters__panel"},Jh={key:3,class:"filters__active"},Qh=["onClick"],em={class:"pgg-body"},om={key:0,class:"repel"},tm={class:"font-size-sm"},nm={key:1},sm={id:"results",class:"grid uupgs-list"},am=["src","alt"],rm={class:"uupg__header"},im=["innerHTML"],lm={key:0,class:"uupg__country"},cm=["href"],um=["innerHTML"],pm=["innerHTML"],gm=["innerHTML"],dm={key:1,class:"uupg__content"},$m=["href"],fm={key:0,class:"loading"},hm={key:1,class:"pgg-empty pgg-failed",role:"status"},mm={key:2,class:"pgg-empty"},Hi=Wt(Object.assign({inheritAttrs:!1},{__name:"people-groups-grid",props:{profileConfig:{type:String,default:""},prayBaseUrl:{type:String,default:""},languageCode:{type:String,default:""},researchUrl:{type:String,default:""},selectUrl:{type:String,default:""},t:{type:Object,default:()=>({})},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},showTotal:{type:[Boolean,String],default:!0},query:{type:String,default:""},wagfRegion:{type:String,default:""},wagfBlock:{type:String,default:""},rop1:{type:String,default:""},religion:{type:String,default:""},countryCode:{type:String,default:""},primaryLanguage:{type:String,default:""},cluster:{type:String,default:""},peopleGroup:{type:String,default:""},engagementStatus:{type:String,default:""},gospelAccess:{type:String,default:""},religionFamily:{type:String,default:""},languageFamily:{type:String,default:""},perPage:{type:Number,default:24},morePerPage:{type:Number,default:0}},emits:["groups-filtered"],setup(e,{emit:o}){const t=e,n=o,s=Q(()=>{if(!t.profileConfig)return{};try{return JSON.parse(t.profileConfig)||{}}catch{return{}}}),a=Q(()=>!h.value&&!b.value?null:{backgroundImage:`url(${Gh(s.value)}/images/worldmap.svg)`,backgroundSize:"60%",backgroundPosition:"top center",backgroundRepeat:"no-repeat"}),r=Q(()=>t.prayBaseUrl||s.value.prayBaseUrl||"https://pray.doxa.life"),i=Q(()=>t.languageCode||s.value.languageCode||""),l=Q(()=>t.researchUrl||s.value.researchUrl||(typeof window<"u"&&window.DOXA_SITE_URL||"https://doxa.life").replace(/\/+$/,"")+"/research/"),c=Q(()=>{const d={...s.value.t||{},...t.t||{}},f=s.value.locale||s.value.lang||void 0;return new Proxy(d,{get(S,A){if(A in S)return S[A];if(typeof A=="string")return hh("grid."+A,f)}})}),g=d=>!(d===!1||d==="false"||d==="0"||d===0),h=Q(()=>g(t.showSearch)),b=Q(()=>g(t.showFilters)),L=Q(()=>g(t.showTotal)),O=me([]),C=me([]),M=me(0),F=me(1),D=me(!0),v=me(!1),k=me(!0),E=me({}),P=me(""),T=me({}),B=Q(()=>h.value?P.value:t.query||""),j=Q(()=>{const d={},f=S=>S;return t.wagfRegion&&(d.wagf_region={value:t.wagfRegion,label:f(t.wagfRegion)}),t.wagfBlock&&(d.wagf_block={value:t.wagfBlock,label:f(t.wagfBlock)}),t.rop1&&(d.rop1={value:t.rop1,label:f(t.rop1)}),t.religion&&(d.religion={value:t.religion,label:f(t.religion)}),t.countryCode&&(d.country_code={value:t.countryCode,label:f(t.countryCode)}),t.primaryLanguage&&(d.primary_language={value:t.primaryLanguage,label:f(t.primaryLanguage)}),t.engagementStatus&&(d.engagement_status={value:t.engagementStatus,label:f(t.engagementStatus)}),t.cluster&&(d.imb_reg_of_people_2={value:t.cluster,label:f(t.cluster)}),t.peopleGroup&&(d.imb_reg_of_people_25={value:t.peopleGroup,label:f(t.peopleGroup)}),t.gospelAccess&&(d.imb_gsec={value:t.gospelAccess,label:f(t.gospelAccess)}),t.religionFamily&&(d.__religion_family={value:t.religionFamily,label:f(t.religionFamily)}),t.languageFamily&&(d.__language_family={value:t.languageFamily,label:f(t.languageFamily)}),d}),Z=Q(()=>b.value?T.value:j.value);yo(()=>t.wagfRegion,d=>{if(!b.value)return;const f=T.value.wagf_region;if(d){if(f&&f.value===d)return;const S=(E.value&&E.value.wagf_region||[]).find(A=>A.value===d);T.value={...T.value,wagf_region:{value:d,label:S&&S.label||d}}}else if(f){const S={...T.value};delete S.wagf_region,T.value=S}}),yo(()=>t.religionFamily,d=>{if(!b.value)return;const f=T.value.__religion_family;if(d){if(f&&Ee(f.value)===Ee(d))return;T.value={...T.value,__religion_family:{value:d,label:d}}}else if(f){const S={...T.value};delete S.__religion_family,T.value=S}}),yo(()=>t.primaryLanguage,d=>{if(!b.value)return;const f=T.value.primary_language;if(d){if(f&&Ee(f.value)===Ee(d))return;T.value={...T.value,primary_language:{value:d,label:d}}}else if(f){const S={...T.value};delete S.primary_language,T.value=S}});const q=Q(()=>Object.values(Z.value||{}).filter(d=>d&&d.value!==""&&d.value!=null).length),z=Q(()=>Object.keys(Z.value).length),X=Q(()=>q.value>0||!!(B.value||"").trim());function xe(d){return d.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Re(d,f=500){let S;return(...A)=>{clearTimeout(S),S=setTimeout(()=>d(...A),f)}}const ae=Re(()=>{D.value=!0,F.value=1,$()},500);function J(d){P.value=(d==null?void 0:d.value)??"",ae()}function se(){k.value=!k.value}function ve(d){T.value={...T.value,[d.name]:{value:d.value,label:d.label}},F.value=1,$()}function Ie(d){ge(d.name)}function ge(d){const f={...T.value};delete f[d],T.value=f,F.value=1,$()}function ke(){T.value={},F.value=1,$()}function eo(){if(T.value.exact)return ge("exact");T.value={...T.value,exact:{value:"yes",label:c.value.exact_filter||"Exact"}},F.value=1,$()}const Ee=d=>String(d??"").toLowerCase().replace(/[\s_&-]+/g,""),Ye={__religion_family:d=>{const f=d.religion&&typeof d.religion=="object"?d.religion.value:d.religion,S=String(f||"").charAt(0).toUpperCase(),A=S&&Vi[S]?Vi[S]:"";return A?{value:A,label:A}:null},__language_family:d=>{const f=d.imb_language_family,S=f&&typeof f=="object"?f.label||f.value:f;let A="";if(S)A=qi(S);else{const y=d.primary_language&&typeof d.primary_language=="object"?d.primary_language.value:null,w=y&&Vh[y];A=w?qi(w):""}return A?{value:A,label:A}:null}},ze=(d,f)=>Ye[f]?Ye[f](d):d[f];function oo(d,f){if(!d)return!1;const S=Ee(f==null?void 0:f.value);return S?Ee(d.value)===S||Ee(d.label)===S:!1}function uo(d){let f=d;for(const[S,A]of Object.entries(Z.value))S==="exact"?f=f:f=f.filter(y=>oo(ze(y,S),A));return f}function So(){const d=f=>{const S=new Map;for(const A of O.value){const y=A[f];if(!(y!=null&&y.value))continue;const w=S.get(y.value);w?w.count++:S.set(y.value,{label:y.label,count:1})}return Array.from(S.entries()).map(([A,{label:y,count:w}])=>({value:A,label:y,count:w})).sort((A,y)=>A.label.localeCompare(y.label))};E.value={wagf_region:d("wagf_region"),wagf_block:d("wagf_block"),rop1:d("rop1"),religion:d("religion")}}function Ve(){const d=Object.keys(E.value),f={};for(const S of d){const A={};for(const[I,H]of Object.entries(Z.value))I!==S&&(A[I]=H);const y=Wo(A,O.value),w=new Map;for(const I of y){const H=I[S];H!=null&&H.value&&w.set(H.value,(w.get(H.value)??0)+1)}f[S]=(E.value[S]??[]).map(I=>({...I,count:w.get(I.value)??0}))}E.value=f}function Wo(d,f){let S=f;for(const[A,y]of Object.entries(d))A!=="exact"&&(S=S.filter(w=>oo(ze(w,A),y)));return S}function $(){O.value=O.value.map(w=>(w.matches=[],w.country_label="",w.rop1_label="",w));const f=Object.keys(Z.value).length>0?uo(O.value):O.value,S=B.value;if(!S){C.value=f,M.value=C.value.length,D.value=!1,Ve(),x();return}const y=new Ih(f,{includeMatches:!0,ignoreLocation:!0,minMatchCharLength:3,threshold:Z.value.exact?0:.4,keys:["name","imb_alternate_name","country_code.label","rop1.label","religion.label","wagf_region.label","wagf_block.label"]}).search(S);C.value=y.map(w=>{var H;const I={...w.item};if(!w.matches)return I;I.matches=[];for(const re of w.matches){const we=re.key;if(!we)continue;let _e="";if(String(we).includes(".")){const[to,no]=String(we).split(".");_e=(H=I[to])==null?void 0:H[no]}else _e=I[String(we)];if(_e&&typeof _e=="string"){let to=0,no="";if(re.indices.forEach((Se,Ke)=>{const Xt=Se[0],_t=Se[1],wm=re.indices.length-1===Ke;no+=xe(_e.slice(to,Xt))+`${xe(_e.slice(Xt,_t+1))}`+(wm?xe(_e.slice(_t+1)):""),to=_t+1}),String(we).includes("imb_alternate_name"))I.matches.push({key:c.value.alternate_name??"Also known as",label:no});else if(String(we).includes(".")){const[Se]=String(we).split("."),Ke={religion:c.value.religion,country_code:c.value.country,rop1:c.value.rop1,wagf_region:c.value.wagf_region,wagf_block:c.value.wagf_block};Se==="rop1"?I.rop1_label=no:Se==="country_code"?I.country_label=no:Se==="wagf_region"||I.matches.push({key:Ke[Se]??Se,label:no})}else I[String(we)]=no}}return I}),M.value=C.value.length,D.value=!1,Ve(),x()}const _=gt();function m(){var f,S;const d=((f=_==null?void 0:_.vnode)==null?void 0:f.el)||((S=_==null?void 0:_.proxy)==null?void 0:S.$el);try{const A=d&&d.getRootNode&&d.getRootNode();if(A&&A.host)return A.host}catch{}return d}function x(){const d={query:B.value,activeFilters:Z.value,total:M.value,slugs:C.value.map(S=>S.slug)};n("groups-filtered",d);const f=m();f&&typeof f.dispatchEvent=="function"&&f.dispatchEvent(new CustomEvent("groups-filtered",{detail:d,bubbles:!0,composed:!0}))}function R(){return t.morePerPage>0?M.value>t.perPage+(F.value-1)*t.morePerPage&&!D.value&&C.value.length>0:M.value>F.value*t.perPage&&!D.value&&C.value.length>0}function N(){F.value=F.value+1}const U=Q(()=>t.morePerPage>0?C.value.slice(0,t.perPage+(F.value-1)*t.morePerPage):C.value.slice(0,F.value*t.perPage)),G=Q(()=>R());async function u(){const d=`${r.value}/api/people-groups/list?fields=name,slug,wagf_region,wagf_block,country_code,rop1,religion,has_photo,image_url,adopted_by_churches,imb_alternate_name,engagement_status,people_committed,primary_language,imb_reg_of_people_2,imb_reg_of_people_25,imb_gsec,imb_language_family&lang=${i.value}`;D.value=!0,v.value=!1;try{const f=await fetch(d);if(!f.ok)throw new Error(`HTTP ${f.status}`);const S=await f.json();M.value=S.total,O.value=Array.isArray(S.posts)?S.posts:[],So(),$()}catch(f){console.error("[people-groups-grid] fetch error:",f),v.value=!0,O.value=[],D.value=!1}}yo(()=>[t.query,j.value,h.value,b.value],()=>{F.value=1,$()});function p(d){const f=new Set;for(const S of O.value||[]){const A=ze(S,d),y=A&&typeof A=="object"?A.label:A;typeof y=="string"&&y&&f.add(y)}return[...f].sort()}return yn(()=>{const d=m();d&&(d.__vocabulary=p),typeof window<"u"&&(window.__peopleGroupsGridVocabulary=p),u()}),(d,f)=>{var S,A,y,w;return ee(),te("div",Hh,[h.value||b.value?(ee(),te("div",{key:0,id:"filters",class:"filters",style:Go(a.value)},[h.value?(ee(),te("div",Wh,[de(ji,{"model-value":P.value,placeholder:c.value.search||"Search people groups…","aria-label":c.value.search||"Search people groups","max-width":"480px",onSearch:J},null,8,["model-value","placeholder","aria-label"]),b.value?(ee(),te("button",{key:0,class:"filter-toggle pgg-exact",type:"button","data-active":Z.value.exact?"":void 0,onClick:eo},Le(c.value.exact_filter||"Exact"),9,Kh)):Te("",!0)])):Te("",!0),b.value?(ee(),te("button",{key:1,class:"filters__toggle",type:"button","aria-expanded":k.value,onClick:se},[f[0]||(f[0]=oe("svg",{class:"filters__toggle-icon",width:"13",height:"13",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[oe("path",{d:"M1.5 2.5h9M3 6h6M4.5 9.5h3",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"})],-1)),To(" "+Le(k.value?c.value.hide_filters||"Hide Filters":c.value.show_filters||"Show Filters")+" ",1),q.value?(ee(),te("span",Yh,Le(q.value),1)):Te("",!0),f[1]||(f[1]=oe("svg",{width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[oe("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Xh)):Te("",!0),b.value&&k.value?(ee(),te("div",Zh,[de(Ho,{label:c.value.wagf_region||"Region",name:"wagf_region",options:E.value.wagf_region||[],value:((S=Z.value.wagf_region)==null?void 0:S.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:ve,onFilterClear:Ie},null,8,["label","options","value","placeholder"]),de(Ho,{label:c.value.wagf_block||"Bloc",name:"wagf_block",options:E.value.wagf_block||[],value:((A=Z.value.wagf_block)==null?void 0:A.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:ve,onFilterClear:Ie},null,8,["label","options","value","placeholder"]),de(Ho,{label:c.value.rop1||"People Group",name:"rop1",options:E.value.rop1||[],value:((y=Z.value.rop1)==null?void 0:y.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:ve,onFilterClear:Ie},null,8,["label","options","value","placeholder"]),de(Ho,{label:c.value.religion||"Religion",name:"religion",options:E.value.religion||[],value:((w=Z.value.religion)==null?void 0:w.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:ve,onFilterClear:Ie},null,8,["label","options","value","placeholder"])])):Te("",!0),b.value&&z.value>0?(ee(),te("div",Jh,[(ee(!0),te(Ce,null,vn(Z.value,(I,H)=>(ee(),te("span",{key:H,class:"filter-chip"},[To(Le(I.label)+" ",1),oe("button",{class:"filter-chip__remove",type:"button",onClick:re=>ge(String(H))},"×",8,Qh)]))),128)),oe("button",{class:"filters__clear-all",type:"button",onClick:ke},Le(c.value.clear_all||"Clear All"),1)])):Te("",!0)],4)):Te("",!0),oe("div",em,[L.value||X.value?(ee(),te("div",om,[oe("div",tm,[D.value?(ee(),te("span",nm," ")):(ee(),te(Ce,{key:0},[To(Le(X.value&&!L.value?(c.value.showing||"Showing")+" "+M.value.toLocaleString("en-US"):(c.value.total||"Total")+": "+M.value.toLocaleString("en-US")),1)],64))])])):Te("",!0),oe("div",sm,[(ee(!0),te(Ce,null,vn(U.value,I=>(ee(),te("div",{key:I.slug,class:"card uupg__card"},[I.image_url?(ee(),te("img",{key:0,class:"uupg__image",src:I.image_url,alt:I.name},null,8,am)):Te("",!0),oe("div",rm,[oe("h3",{class:"uupg__name",innerHTML:I.name},null,8,im),I.country_code?(ee(),te("p",lm,[oe("a",{class:"uupg__country-link",href:`${l.value}../countries/${At(Uh)(I.country_code.value,I.country_code.label)}`},[oe("span",{innerHTML:I.country_label?I.country_label:I.country_code.label},null,8,um)],8,cm),I.rop1?(ee(),te(Ce,{key:0},[f[2]||(f[2]=To(" (",-1)),oe("span",{innerHTML:I.rop1_label?I.rop1_label:I.rop1.label},null,8,pm),f[3]||(f[3]=To(")",-1))],64)):Te("",!0)])):Te("",!0),I.matches?(ee(!0),te(Ce,{key:1},vn(I.matches,(H,re)=>(ee(),te("p",{key:re,class:"uupg__match"},[oe("strong",null,Le(H.key),1),f[4]||(f[4]=To(": ",-1)),oe("span",{innerHTML:H.label},null,8,gm)]))),128)):Te("",!0)]),I.location_description?(ee(),te("p",dm,Le(I.location_description),1)):Te("",!0),oe("a",{class:"uupg__more-button",href:`${l.value}${I.slug}`},Le(c.value.full_profile||"Full Profile"),9,$m)]))),128)),D.value?(ee(),te("div",fm,Le(c.value.loading||"Loading…"),1)):v.value?(ee(),te("div",hm,Le(c.value.load_failed||"People-group data could not be loaded. This is a connection problem, not your filter."),1)):U.value.length?Te("",!0):(ee(),te("div",mm,Le(c.value.no_results||"No people groups match this filter."),1))]),G.value?(ee(),te("button",{key:1,class:"pgg-loadmore",type:"button",onClick:N},Le(c.value.load_more||"Load More"),1)):Te("",!0)])])}}}),[["styles",[qh]]]),_m=":host{display:block;width:100%;height:100%}.bp-root{--bg: #f3f3f1;--line: #d1d4cd;--ink: #3b463d;--mut: #6d766e;display:flex;flex-direction:column;width:100%;height:100%;min-height:480px;overflow:hidden;background:var(--bg);color:var(--ink);box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}.bp-body{flex:1;min-height:0;position:relative;overflow:auto}.bp-foot{flex:none;padding:8px 12px;font-size:11px;color:var(--mut);text-align:center;border-top:1px solid var(--line)}",bm={class:"bp-body"},ym=As(Wt({__name:"big-picture",props:{profileConfig:{type:String,default:""}},setup(e){const o=e,t=Q(()=>{if(!o.profileConfig)return{};try{return JSON.parse(o.profileConfig)||{}}catch{return{}}}),n=Q(()=>t.value.accent||"#8b5cf6"),s=Q(()=>t.value.title||"Big Picture — Unified Research Dashboard"),a=Q(()=>{const b=String(t.value.locale||t.value.lang||"").split("-")[0].toLowerCase();return Dn.includes(b)?b:""});jl(()=>{a.value&&$h(a.value)});const r=Q(()=>t.value.prayBaseUrl||""),i=Q(()=>t.value.languageCode||""),l=at({query:"",wagfRegion:"",wagfBlock:"",rop1:"",religion:""}),c=me(null);function g(b){const L=b&&typeof b=="object"?b:{};l.query=L.query||"",l.wagfRegion=L.wagfRegion||"",l.wagfBlock=L.wagfBlock||"",l.rop1=L.rop1||"",l.religion=L.religion||""}function h(b){const L=b&&typeof b=="object"?b:{};c.value=typeof L.total=="number"?L.total:null}return(b,L)=>(ee(),te("div",{class:"bp-root",style:Go({"--accent":n.value})},[de(zi,{title:s.value,accent:n.value,count:c.value,"pray-base-url":r.value,"language-code":i.value,onResearchFilter:g},null,8,["title","accent","count","pray-base-url","language-code"]),oe("div",bm,[de(Hi,{query:l.query,"wagf-region":l.wagfRegion,"wagf-block":l.wagfBlock,rop1:l.rop1,religion:l.religion,"show-search":!1,"show-filters":!1,"show-total":!1,"pray-base-url":r.value,"language-code":i.value,onGroupsFiltered:h},null,8,["query","wagf-region","wagf-block","rop1","religion","pray-base-url","language-code"])]),L[0]||(L[0]=oe("footer",{class:"bp-foot"}," Search and filter the world's people groups · least-reached shown first ",-1))],4))}},[["styles",[_m]]])),vm=As(zi),km=As(Hi);typeof customElements<"u"&&(customElements.get("bp-big-picture")||customElements.define("bp-big-picture",ym),customElements.get("bp-research-header")||customElements.define("bp-research-header",vm),customElements.get("people-groups-grid")||customElements.define("people-groups-grid",km))})(); diff --git a/public/doxa-maps/doxa-research-map/doxa-research-map.js b/public/doxa-maps/doxa-research-map/doxa-research-map.js deleted file mode 100644 index 63d2ed1c1..000000000 --- a/public/doxa-maps/doxa-research-map/doxa-research-map.js +++ /dev/null @@ -1,1491 +0,0 @@ -(function(){"use strict";var zg;var En=typeof document<"u"?document.currentScript:null;const DP="modulepreload",BP=function(e){return"/"+e},GP={},oo=function(t,o,n){let a=Promise.resolve();function s(r){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=r,window.dispatchEvent(i),!i.defaultPrevented)throw r}return a.then(r=>{for(const i of r||[])i.status==="rejected"&&s(i.reason);return t().catch(s)})},br="affinityBlock",Tn="#95a5a6",Eo={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf",A018:"Tibetan Peoples",A019:"Himalayan Peoples"},Qa={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000",A018:"#6C3483",A019:"#A569BD"},Ko=Qa,El=Object.entries(Eo).reduce((e,[t,o])=>(e[o]=t,e),{}),$r=Object.entries(Eo).reduce((e,[t,o])=>(e[o]=Ko[t],e),{}),Tl=Eo;function yr(e){return Eo[e]||"Unknown"}function _r(e){return Ko[e]||Tn}function Nl(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?Ko[e]||Tn:$r[e]||Tn:Tn}function Rl(){return Object.entries(Eo).map(([e,t])=>({code:e,name:t,color:Ko[e]}))}function Ml(e){return{code:e,name:Eo[e]||"Unknown",color:Ko[e]||Tn}}function Fl(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return _r(t)}function Il(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return yr(t)}function vr(){const e=["match",["get",br]];return Object.entries(Ko).forEach(([t,o])=>{e.push(t,o)}),e.push(Tn),e}const Ol=vr,lf=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:Ko,AFFINITY_BLOCK_COLORS_BY_NAME:$r,AFFINITY_BLOCK_NAMES:Eo,AFFINITY_BLOCK_NAME_TO_CODE:El,NAMES:Tl,PALETTE:Qa,PROPERTY_KEY:br,affinityBlockCodeLookup:Eo,affinityBlockCodeToColor:Ko,affinityBlockCodeToName:Eo,affinityBlockColors:$r,affinityBlockNameToCode:El,applyColor:vr,buildColorExpression:Ol,default:{name:"Affinity Block",propertyKey:br,palette:Qa,colors:Qa,names:Tl,getColor:Fl,applyColor:vr,buildColorExpression:Ol,getName:Il,getAffinityBlockName:yr,getAffinityBlockColor:Nl,getAffinityBlockColorByCode:_r,getAffinityBlocksArray:Rl,getAffinityBlockData:Ml},getAffinityBlockColor:Nl,getAffinityBlockColorByCode:_r,getAffinityBlockData:Ml,getAffinityBlockName:yr,getAffinityBlocksArray:Rl,getColor:Fl,getName:Il},Symbol.toStringTag,{value:"Module"}));function cf(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(wr),e}const jl=Sr,pf=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:uf,PALETTE:es,PROPERTY_KEY:kr,REGION_COLOR_ALIASES:Lr,SLUG_PALETTE:ts,applyColor:Sr,buildColorExpression:jl,default:{name:"DOXA Region",propertyKey:kr,palette:es,colors:es,slugColors:ts,aliases:Lr,fallback:wr,getColor:Gl,applyColor:Sr,buildColorExpression:jl,getRegionColor:Bl,getRegionColorBySlug:xr},getColor:Gl,getRegionColor:Bl,getRegionColorBySlug:xr},Symbol.toStringTag,{value:"Module"})),Ul="resourceType",qo={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},df=qo,la=["bible","jesusFilm","radio","gospel","audio","stories"],Ar={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},gf=Ar;function ca(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function zl(e){var t;for(const o of la)if((e[o]||((t=e._raw)==null?void 0:t[ca(o)]))==="Available")return qo.hasResources;return qo.noResources}function Hl(e){var t;for(const o of la)if((e[o]||((t=e._raw)==null?void 0:t[ca(o)]))==="Available")return!0;return!1}function Vl(e){var t;for(const o of la)if((e[o]||((t=e._raw)==null?void 0:t[ca(o)]))==="Available")return o;return"noResources"}function Pr(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],qo.hasResources,qo.noResources]}const Kl=Pr,ff=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Ar,PALETTE:qo,PROPERTY_KEY:Ul,RESOURCE_COLORS:df,RESOURCE_NAMES:gf,RESOURCE_PRIORITY:la,applyColor:Pr,buildColorExpression:Kl,default:{name:"Gospel Resources",propertyKey:Ul,palette:qo,colors:qo,names:Ar,priority:la,getColor:zl,applyColor:Pr,buildColorExpression:Kl,hasAnyResource:Hl,getResourceType:Vl,getCSVColumn:ca},getCSVColumn:ca,getColor:zl,getResourceType:Vl,hasAnyResource:Hl},Symbol.toStringTag,{value:"Module"}));/** -* @vue/shared v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Cr(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const st={},Nn=[],po=()=>{},ql=()=>!1,os=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ns=e=>e.startsWith("onUpdate:"),mt=Object.assign,Er=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},hf=Object.prototype.hasOwnProperty,Ze=(e,t)=>hf.call(e,t),Me=Array.isArray,Wo=e=>ua(e)==="[object Map]",as=e=>ua(e)==="[object Set]",Wl=e=>ua(e)==="[object Date]",De=e=>typeof e=="function",it=e=>typeof e=="string",Ht=e=>typeof e=="symbol",Je=e=>e!==null&&typeof e=="object",Yl=e=>(Je(e)||De(e))&&De(e.then)&&De(e.catch),Xl=Object.prototype.toString,ua=e=>Xl.call(e),mf=e=>ua(e).slice(8,-1),ss=e=>ua(e)==="[object Object]",rs=e=>it(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,pa=Cr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),is=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},bf=/-\w/g,xt=is(e=>e.replace(bf,t=>t.slice(1).toUpperCase())),$f=/\B([A-Z])/g,Yt=is(e=>e.replace($f,"-$1").toLowerCase()),ls=is(e=>e.charAt(0).toUpperCase()+e.slice(1)),Tr=is(e=>e?`on${ls(e)}`:""),go=(e,t)=>!Object.is(e,t),cs=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},Nr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Jl=e=>{const t=it(e)?Number(e):NaN;return isNaN(t)?e:t};let Ql;const us=()=>Ql||(Ql=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function dt(e){if(Me(e)){const t={};for(let o=0;o{if(o){const n=o.split(_f);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Re(e){let t="";if(it(e))t=e;else if(Me(e))for(let o=0;o!!(e&&e.__v_isRef===!0),ye=e=>it(e)?e:e==null?"":Me(e)||Je(e)&&(e.toString===Xl||!De(e.toString))?oc(e)?ye(e.value):JSON.stringify(e,nc,2):String(e),nc=(e,t)=>oc(t)?nc(e,t.value):Wo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],s)=>(o[Rr(n,s)+" =>"]=a,o),{})}:as(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Rr(o))}:Ht(t)?Rr(t):Je(t)&&!Me(t)&&!ss(t)?String(t):t,Rr=(e,t="")=>{var o;return Ht(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** -* @vue/reactivity v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let _t;class ac{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&_t&&(_t.active?(this.parent=_t,this.index=(_t.scopes||(_t.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(_t===this)_t=this.prevScope;else{let t=_t;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(ga){let t=ga;for(ga=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;da;){let t=da;for(da=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function cc(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function uc(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),Br(n),Sf(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function Dr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(pc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function pc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===fa)||(e.globalVersion=fa,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Dr(e))))return;e.flags|=2;const t=e.dep,o=lt,n=no;lt=e,no=!0;try{cc(e);const a=e.fn(e._value);(t.version===0||go(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{lt=o,no=n,uc(e),e.flags&=-3}}function Br(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let s=o.computed.deps;s;s=s.nextDep)Br(s,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Sf(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let no=!0;const dc=[];function fo(){dc.push(no),no=!1}function ho(){const e=dc.pop();no=e===void 0?!0:e}function gc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=lt;lt=void 0;try{t()}finally{lt=o}}}let fa=0;class Af{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Gr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!lt||!no||lt===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==lt)o=this.activeLink=new Af(lt,this),lt.deps?(o.prevDep=lt.depsTail,lt.depsTail.nextDep=o,lt.depsTail=o):lt.deps=lt.depsTail=o,fc(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=lt.depsTail,o.nextDep=void 0,lt.depsTail.nextDep=o,lt.depsTail=o,lt.deps===o&&(lt.deps=n)}return o}trigger(t){this.version++,fa++,this.notify(t)}notify(t){Ir();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Or()}}}function fc(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)fc(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const ds=new WeakMap,cn=Symbol(""),jr=Symbol(""),ha=Symbol("");function Nt(e,t,o){if(no&<){let n=ds.get(e);n||ds.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new Gr),a.map=n,a.key=o),a.track()}}function To(e,t,o,n,a,s){const r=ds.get(e);if(!r){fa++;return}const i=l=>{l&&l.trigger()};if(Ir(),t==="clear")r.forEach(i);else{const l=Me(e),c=l&&rs(o);if(l&&o==="length"){const u=Number(n);r.forEach((p,f)=>{(f==="length"||f===ha||!Ht(f)&&f>=u)&&i(p)})}else switch((o!==void 0||r.has(void 0))&&i(r.get(o)),c&&i(r.get(ha)),t){case"add":l?c&&i(r.get("length")):(i(r.get(cn)),Wo(e)&&i(r.get(jr)));break;case"delete":l||(i(r.get(cn)),Wo(e)&&i(r.get(jr)));break;case"set":Wo(e)&&i(r.get(cn));break}}Or()}function Pf(e,t){const o=ds.get(e);return o&&o.get(t)}function Rn(e){const t=Ke(e);return t===e?t:(Nt(t,"iterate",ha),Vt(e)?t:t.map(ao))}function gs(e){return Nt(e=Ke(e),"iterate",ha),e}function mo(e,t){return Mo(e)?In(Ro(e)?ao(t):t):ao(t)}const Cf={__proto__:null,[Symbol.iterator](){return Ur(this,Symbol.iterator,e=>mo(this,e))},concat(...e){return Rn(this).concat(...e.map(t=>Me(t)?Rn(t):t))},entries(){return Ur(this,"entries",e=>(e[1]=mo(this,e[1]),e))},every(e,t){return No(this,"every",e,t,void 0,arguments)},filter(e,t){return No(this,"filter",e,t,o=>o.map(n=>mo(this,n)),arguments)},find(e,t){return No(this,"find",e,t,o=>mo(this,o),arguments)},findIndex(e,t){return No(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return No(this,"findLast",e,t,o=>mo(this,o),arguments)},findLastIndex(e,t){return No(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return No(this,"forEach",e,t,void 0,arguments)},includes(...e){return zr(this,"includes",e)},indexOf(...e){return zr(this,"indexOf",e)},join(e){return Rn(this).join(e)},lastIndexOf(...e){return zr(this,"lastIndexOf",e)},map(e,t){return No(this,"map",e,t,void 0,arguments)},pop(){return ma(this,"pop")},push(...e){return ma(this,"push",e)},reduce(e,...t){return hc(this,"reduce",e,t)},reduceRight(e,...t){return hc(this,"reduceRight",e,t)},shift(){return ma(this,"shift")},some(e,t){return No(this,"some",e,t,void 0,arguments)},splice(...e){return ma(this,"splice",e)},toReversed(){return Rn(this).toReversed()},toSorted(e){return Rn(this).toSorted(e)},toSpliced(...e){return Rn(this).toSpliced(...e)},unshift(...e){return ma(this,"unshift",e)},values(){return Ur(this,"values",e=>mo(this,e))}};function Ur(e,t,o){const n=gs(e),a=n[t]();return n!==e&&!Vt(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=o(s.value)),s}),a}const Ef=Array.prototype;function No(e,t,o,n,a,s){const r=gs(e),i=r!==e&&!Vt(e),l=r[t];if(l!==Ef[t]){const p=l.apply(e,s);return i?ao(p):p}let c=o;r!==e&&(i?c=function(p,f){return o.call(this,mo(e,p),f,e)}:o.length>2&&(c=function(p,f){return o.call(this,p,f,e)}));const u=l.call(r,c,n);return i&&a?a(u):u}function hc(e,t,o,n){const a=gs(e),s=a!==e&&!Vt(e);let r=o,i=!1;a!==e&&(s?(i=n.length===0,r=function(c,u,p){return i&&(i=!1,c=mo(e,c)),o.call(this,c,mo(e,u),p,e)}):o.length>3&&(r=function(c,u,p){return o.call(this,c,u,p,e)}));const l=a[t](r,...n);return i?mo(e,l):l}function zr(e,t,o){const n=Ke(e);Nt(n,"iterate",ha);const a=n[t](...o);return(a===-1||a===!1)&&$s(o[0])?(o[0]=Ke(o[0]),n[t](...o)):a}function ma(e,t,o=[]){fo(),Ir();const n=Ke(e)[t].apply(e,o);return Or(),ho(),n}const Tf=Cr("__proto__,__v_isRef,__isVue"),mc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ht));function Nf(e){Ht(e)||(e=String(e));const t=Ke(this);return Nt(t,"has",e),t.hasOwnProperty(e)}class bc{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,s=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return s;if(o==="__v_raw")return n===(a?s?wc:kc:s?vc:_c).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Me(t);if(!a){let l;if(r&&(l=Cf[o]))return l;if(o==="hasOwnProperty")return Nf}const i=Reflect.get(t,o,ut(t)?t:n);if((Ht(o)?mc.has(o):Tf(o))||(a||Nt(t,"get",o),s))return i;if(ut(i)){const l=r&&rs(o)?i:i.value;return a&&Je(l)?un(l):l}return Je(i)?a?un(i):Mn(i):i}}class $c extends bc{constructor(t=!1){super(!1,t)}set(t,o,n,a){let s=t[o];const r=Me(t)&&rs(o);if(!this._isShallow){const c=Mo(s);if(!Vt(n)&&!Mo(n)&&(s=Ke(s),n=Ke(n)),!r&&ut(s)&&!ut(n))return c||(s.value=n),!0}const i=r?Number(o)e,fs=e=>Reflect.getPrototypeOf(e);function Of(e,t,o){return function(...n){const a=this.__v_raw,s=Ke(a),r=Wo(s),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=a[e](...n),u=o?Hr:t?In:ao;return!t&&Nt(s,"iterate",l?jr:cn),mt(Object.create(c),{next(){const{value:p,done:f}=c.next();return f?{value:p,done:f}:{value:i?[u(p[0]),u(p[1])]:u(p),done:f}}})}}function hs(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Df(e,t){const o={get(a){const s=this.__v_raw,r=Ke(s),i=Ke(a);e||(go(a,i)&&Nt(r,"get",a),Nt(r,"get",i));const{has:l}=fs(r),c=t?Hr:e?In:ao;if(l.call(r,a))return c(s.get(a));if(l.call(r,i))return c(s.get(i));s!==r&&s.get(a)},get size(){const a=this.__v_raw;return!e&&Nt(Ke(a),"iterate",cn),a.size},has(a){const s=this.__v_raw,r=Ke(s),i=Ke(a);return e||(go(a,i)&&Nt(r,"has",a),Nt(r,"has",i)),a===i?s.has(a):s.has(a)||s.has(i)},forEach(a,s){const r=this,i=r.__v_raw,l=Ke(i),c=t?Hr:e?In:ao;return!e&&Nt(l,"iterate",cn),i.forEach((u,p)=>a.call(s,c(u),c(p),r))}};return mt(o,e?{add:hs("add"),set:hs("set"),delete:hs("delete"),clear:hs("clear")}:{add(a){const s=Ke(this),r=fs(s),i=Ke(a),l=!t&&!Vt(a)&&!Mo(a)?i:a;return r.has.call(s,l)||go(a,l)&&r.has.call(s,a)||go(i,l)&&r.has.call(s,i)||(s.add(l),To(s,"add",l,l)),this},set(a,s){!t&&!Vt(s)&&!Mo(s)&&(s=Ke(s));const r=Ke(this),{has:i,get:l}=fs(r);let c=i.call(r,a);c||(a=Ke(a),c=i.call(r,a));const u=l.call(r,a);return r.set(a,s),c?go(s,u)&&To(r,"set",a,s):To(r,"add",a,s),this},delete(a){const s=Ke(this),{has:r,get:i}=fs(s);let l=r.call(s,a);l||(a=Ke(a),l=r.call(s,a)),i&&i.call(s,a);const c=s.delete(a);return l&&To(s,"delete",a,void 0),c},clear(){const a=Ke(this),s=a.size!==0,r=a.clear();return s&&To(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=Of(a,e,t)}),o}function ms(e,t){const o=Df(e,t);return(n,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Ze(o,a)&&a in n?o:n,a,s)}const Bf={get:ms(!1,!1)},Gf={get:ms(!1,!0)},jf={get:ms(!0,!1)},Uf={get:ms(!0,!0)},_c=new WeakMap,vc=new WeakMap,kc=new WeakMap,wc=new WeakMap;function zf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Mn(e){return Mo(e)?e:bs(e,!1,Rf,Bf,_c)}function Hf(e){return bs(e,!1,Ff,Gf,vc)}function un(e){return bs(e,!0,Mf,jf,kc)}function XP(e){return bs(e,!0,If,Uf,wc)}function bs(e,t,o,n,a){if(!Je(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=a.get(e);if(s)return s;const r=zf(mf(e));if(r===0)return e;const i=new Proxy(e,r===2?n:o);return a.set(e,i),i}function Ro(e){return Mo(e)?Ro(e.__v_raw):!!(e&&e.__v_isReactive)}function Mo(e){return!!(e&&e.__v_isReadonly)}function Vt(e){return!!(e&&e.__v_isShallow)}function $s(e){return e?!!e.__v_raw:!1}function Ke(e){const t=e&&e.__v_raw;return t?Ke(t):e}function Fn(e){return!Ze(e,"__v_skip")&&Object.isExtensible(e)&&Zl(e,"__v_skip",!0),e}const ao=e=>Je(e)?Mn(e):e,In=e=>Je(e)?un(e):e;function ut(e){return e?e.__v_isRef===!0:!1}function he(e){return xc(e,!1)}function ba(e){return xc(e,!0)}function xc(e,t){return ut(e)?e:new Vf(e,t)}class Vf{constructor(t,o){this.dep=new Gr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Ke(t),this._value=o?t:ao(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||Vt(t)||Mo(t);t=n?t:Ke(t),go(t,o)&&(this._rawValue=t,this._value=n?t:ao(t),this.dep.trigger())}}function ge(e){return ut(e)?e.value:e}const Kf={get:(e,t,o)=>t==="__v_raw"?e:ge(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return ut(a)&&!ut(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function Lc(e){return Ro(e)?e:new Proxy(e,Kf)}function qf(e){const t=Me(e)?new Array(e.length):{};for(const o in e)t[o]=Sc(e,o);return t}class Wf{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Ht(o)?o:String(o),this._raw=Ke(t);let a=!0,s=t;if(!Me(t)||Ht(this._key)||!rs(this._key))do a=!$s(s)||Vt(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=ge(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ut(this._raw[this._key])){const o=this._object[this._key];if(ut(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return Pf(this._raw,this._key)}}class Yf{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function ys(e,t,o){return ut(e)?e:De(e)?new Yf(e):Je(e)&&arguments.length>1?Sc(e,t,o):he(e)}function Sc(e,t,o){return new Wf(e,t,o)}class Xf{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Gr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=fa-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&<!==this)return lc(this,!0),!0}get value(){const t=this.dep.track();return pc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Zf(e,t,o=!1){let n,a;return De(e)?n=e:(n=e.get,a=e.set),new Xf(n,a,o)}const _s={},vs=new WeakMap;let pn;function Jf(e,t=!1,o=pn){if(o){let n=vs.get(o);n||vs.set(o,n=[]),n.push(e)}}function Qf(e,t,o=st){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:i,call:l}=o,c=w=>a?w:Vt(w)||a===!1||a===0?Fo(w,1):Fo(w);let u,p,f,A,v=!1,b=!1;if(ut(e)?(p=()=>e.value,v=Vt(e)):Ro(e)?(p=()=>c(e),v=!0):Me(e)?(b=!0,v=e.some(w=>Ro(w)||Vt(w)),p=()=>e.map(w=>{if(ut(w))return w.value;if(Ro(w))return c(w);if(De(w))return l?l(w,2):w()})):De(e)?t?p=l?()=>l(e,2):e:p=()=>{if(f){fo();try{f()}finally{ho()}}const w=pn;pn=u;try{return l?l(e,3,[A]):e(A)}finally{pn=w}}:p=po,t&&a){const w=p,g=a===!0?1/0:a;p=()=>Fo(w(),g)}const _=sc(),$=()=>{u.stop(),_&&_.active&&Er(_.effects,u)};if(s&&t){const w=t;t=(...g)=>{const P=w(...g);return $(),P}}let h=b?new Array(e.length).fill(_s):_s;const m=w=>{if(!(!(u.flags&1)||!u.dirty&&!w))if(t){const g=u.run();if(w||a||v||(b?g.some((P,d)=>go(P,h[d])):go(g,h))){f&&f();const P=pn;pn=u;try{const d=[g,h===_s?void 0:b&&h[0]===_s?[]:h,A];h=g,l?l(t,3,d):t(...d)}finally{pn=P}}}else u.run()};return i&&i(m),u=new rc(p),u.scheduler=r?()=>r(m,!1):m,A=w=>Jf(w,!1,u),f=u.onStop=()=>{const w=vs.get(u);if(w){if(l)l(w,4);else for(const g of w)g();vs.delete(u)}},t?n?m(!0):h=u.run():r?r(m.bind(null,!0),!0):u.run(),$.pause=u.pause.bind(u),$.resume=u.resume.bind(u),$.stop=$,$}function Fo(e,t=1/0,o){if(t<=0||!Je(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,ut(e))Fo(e.value,t,o);else if(Me(e))for(let n=0;n{Fo(n,t,o)});else if(ss(e)){for(const n in e)Fo(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Fo(e[n],t,o)}return e}/** -* @vue/runtime-core v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const $a=[];let Vr=!1;function ZP(e,...t){if(Vr)return;Vr=!0,fo();const o=$a.length?$a[$a.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=eh();if(n)On(n,o,11,[e+t.map(s=>{var r,i;return(i=(r=s.toString)==null?void 0:r.call(s))!=null?i:JSON.stringify(s)}).join(""),o&&o.proxy,a.map(({vnode:s})=>`at <${Lu(o,s.type)}>`).join(` -`),a]);else{const s=[`[Vue warn]: ${e}`,...t];a.length&&s.push(` -`,...th(a)),console.warn(...s)}ho(),Vr=!1}function eh(){let e=$a[$a.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function th(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` -`],...oh(o))}),t}function oh({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Lu(e.component,e.type,n)}`,s=">"+o;return e.props?[a,...nh(e.props),s]:[a+s]}function nh(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Ac(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Ac(e,t,o){return it(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:ut(t)?(t=Ac(e,Ke(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):De(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Ke(t),o?t:[`${e}=`,t])}function On(e,t,o,n){try{return n?e(...n):e()}catch(a){ya(a,t,o)}}function so(e,t,o,n){if(De(e)){const a=On(e,t,o,n);return a&&Yl(a)&&a.catch(s=>{ya(s,t,o)}),a}if(Me(e)){const a=[];for(let s=0;s>>1,a=Ft[n],s=_a(a);s=_a(o)?Ft.push(e):Ft.splice(sh(t),0,e),e.flags|=1,Cc()}}function Cc(){ks||(ks=Pc.then(Nc))}function rh(e){if(!Me(e))Yo&&e.id===-1?Yo.splice(Bn+1,0,e):e.flags&1||(Dn.push(e),e.flags|=1);else for(let t=0;t_a(o)-_a(n));if(Dn.length=0,Yo){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Nc(e){try{for(bo=0;bo{n._d&&Ms(-1);const s=ws(t),r=Oo.length;let i;try{i=e(...a)}finally{for(let l=Oo.length;l>r;l--)ci();ws(s),n._d&&Ms(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function qr(e,t){if(At===null)return e;const o=Ds(At),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&De(t)?t.call(n&&n.proxy):t}}function ih(){return!!(ko()||hn)}const lh=Symbol.for("v-scx"),ch=()=>Ne(lh);function uh(e,t){return Wr(e,null,t)}function Fe(e,t,o){return Wr(e,t,o)}function Wr(e,t,o=st){const{immediate:n,deep:a,flush:s,once:r}=o,i=mt({},o),l=t&&n||!t&&s!=="post";let c;if(Un){if(s==="sync"){const A=ch();c=A.__watcherHandles||(A.__watcherHandles=[])}else if(!l){const A=()=>{};return A.stop=po,A.resume=po,A.pause=po,A}}const u=Ct;i.call=(A,v,b)=>so(A,u,v,b);let p=!1;s==="post"?i.scheduler=A=>{Dt(A,u&&u.suspense)}:s!=="sync"&&(p=!0,i.scheduler=(A,v)=>{v?A():Kr(A)}),i.augmentJob=A=>{t&&(A.flags|=4),p&&(A.flags|=2,u&&(A.id=u.uid,A.i=u))};const f=Qf(e,t,i);return Un&&(c?c.push(f):l&&f()),f}function ph(e,t,o){const n=this.proxy,a=it(e)?e.includes(".")?Mc(n,e):()=>n[e]:e.bind(n,n);let s;De(t)?s=t:(s=t.handler,o=t);const r=Ta(this),i=Wr(a,s.bind(n),o);return r(),i}function Mc(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,gn=e=>e&&(e.disabled||e.disabled===""),dh=e=>e&&(e.defer||e.defer===""),Ic=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Oc=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Yr=(e,t)=>{const o=e&&e.to;return it(o)?t?t(o):null:o},gh={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,s,r,i,l,c){const{mc:u,pc:p,pbc:f,o:{insert:A,querySelector:v,createText:b,createComment:_,parentNode:$}}=c,h=gn(t.props);let{dynamicChildren:m}=t;const w=(d,C,S)=>{d.shapeFlag&16&&u(d.children,C,S,a,s,r,i,l)},g=(d=t)=>{const C=gn(d.props),S=d.target=Yr(d.props,v),G=Xr(S,d,b,A);S&&(r!=="svg"&&Ic(S)?r="svg":r!=="mathml"&&Oc(S)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(S),C||(w(d,S,G),va(d,!1)))},P=d=>{const C=()=>{if(Xo.get(d)===C){if(Xo.delete(d),gn(d.props)){const S=$(d.el)||o;w(d,S,d.anchor),va(d,!0)}g(d)}};Xo.set(d,C),Dt(C,s)};if(e==null){const d=t.el=b(""),C=t.anchor=b("");if(A(d,o,n),A(C,o,n),dh(t.props)||s&&s.pendingBranch){P(t);return}h&&(w(t,o,C),va(t,!0)),g()}else{t.el=e.el;const d=t.anchor=e.anchor,C=Xo.get(e);if(C){C.flags|=8,Xo.delete(e),P(t);return}t.targetStart=e.targetStart;const S=t.target=e.target,G=t.targetAnchor=e.targetAnchor,H=gn(e.props),J=H?o:S,U=H?d:G;if(r==="svg"||Ic(S)?r="svg":(r==="mathml"||Oc(S))&&(r="mathml"),m?(f(e.dynamicChildren,m,J,a,s,r,i),li(e,t,!0)):l||p(e,t,J,U,a,s,r,i,!1),h)H?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ls(t,o,d,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const D=Yr(t.props,v);D&&(t.target=D,Ls(t,D,null,c,0))}else H&&Ls(t,S,G,c,1);va(t,h)}},remove(e,t,o,{um:n,o:{remove:a}},s){const{shapeFlag:r,children:i,anchor:l,targetStart:c,targetAnchor:u,target:p,props:f}=e,A=gn(f),v=s||!A,b=Xo.get(e);if(b&&(b.flags|=8,Xo.delete(e)),p&&(a(c),a(u)),s&&a(l),!b&&(A||p)&&r&16)for(let _=0;_1){for(const o of e)if(o.type!==yo){t=o;break}}return t}function Dc(e){if(!Ps(e))return xs(e.type)&&e.children?mh(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&De(o.default))return o.default()}}function Jr(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Jr(xs(o.type)&&Dc(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ka(e,t){return De(e)?mt({name:e.name},t,{setup:e}):e}function Qr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Bc(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const Ss=new WeakMap;function wa(e,t,o,n,a=!1){if(Me(e)){e.forEach((b,_)=>wa(b,t&&(Me(t)?t[_]:t),o,n,a));return}if(Gn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&wa(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?Ds(n.component):n.el,r=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===st?i.refs={}:i.refs,p=i.setupState,f=Ke(p),A=p===st?ql:b=>Bc(u,b)?!1:Ze(f,b),v=(b,_)=>!(_&&Bc(u,_));if(c!=null&&c!==l){if(Gc(t),it(c))u[c]=null,A(c)&&(p[c]=null);else if(ut(c)){const b=t;v(c,b.k)&&(c.value=null),b.k&&(u[b.k]=null)}}if(De(l))On(l,i,12,[r,u]);else{const b=it(l),_=ut(l);if(b||_){const $=()=>{if(e.f){const h=b?A(l)?p[l]:u[l]:v()||!e.k?l.value:u[e.k];if(a)Me(h)&&Er(h,s);else if(Me(h))h.includes(s)||h.push(s);else if(b)u[l]=[s],A(l)&&(p[l]=u[l]);else{const m=[s];v(l,e.k)&&(l.value=m),e.k&&(u[e.k]=m)}}else b?(u[l]=r,A(l)&&(p[l]=r)):_&&(v(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const h=()=>{$(),Ss.delete(e)};h.id=-1,Ss.set(e,h),Dt(h,o)}else Gc(e),$()}}}function Gc(e){const t=Ss.get(e);t&&(t.flags|=8,Ss.delete(e))}const jc=e=>e.nodeType===8;us().requestIdleCallback,us().cancelIdleCallback;function bh(e,t){if(jc(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(jc(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const Gn=e=>!!e.type.__asyncLoader;function $h(e){De(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:s,timeout:r,suspensible:i=!0,onError:l}=e;let c=null,u,p=0;const f=()=>(p++,c=null,A()),A=()=>{let v;return c||(v=c=t().catch(b=>{if(b=b instanceof Error?b:new Error(String(b)),l)return new Promise((_,$)=>{l(b,()=>_(f()),()=>$(b),p+1)});throw b}).then(b=>v!==c&&c?c:(b&&(b.__esModule||b[Symbol.toStringTag]==="Module")&&(b=b.default),u=b,b)))};return ka({name:"AsyncComponentWrapper",__asyncLoader:A,__asyncHydrate(v,b,_){const $=v.isConnected;let h=!1;(b.bu||(b.bu=[])).push(()=>h=!0);const m=()=>{h||!v.parentNode||$&&!v.isConnected||_()},w=s?()=>{const g=s(m,P=>bh(v,P));g&&(b.bum||(b.bum=[])).push(g)}:m;u?w():A().then(()=>!b.isUnmounted&&w())},get __asyncResolved(){return u},setup(){const v=Ct;if(Qr(v),u)return()=>As(u,v);const b=g=>{c=null,ya(g,v,13,!n)};if(i&&v.suspense||Un)return A().then(g=>()=>As(g,v)).catch(g=>(b(g),()=>n?tt(n,{error:g}):null));const _=he(!1),$=he(),h=he(!!a);let m,w;return Es(()=>{m!=null&&clearTimeout(m),w!=null&&clearTimeout(w)}),a&&(w=setTimeout(()=>{v.isUnmounted||(h.value=!1)},a)),r!=null&&(m=setTimeout(()=>{if(!v.isUnmounted&&!_.value&&!$.value){const g=new Error(`Async component timed out after ${r}ms.`);b(g),$.value=g}},r)),A().then(()=>{v.isUnmounted||(_.value=!0,v.parent&&Ps(v.parent.vnode)&&v.parent.update())}).catch(g=>{if(v.isUnmounted){c=null;return}b(g),$.value=g}),()=>{if(_.value&&u)return As(u,v);if($.value&&n)return tt(n,{error:$.value});if(o&&!h.value)return As(o,v)}}})}function As(e,t){const{ref:o,props:n,children:a,ce:s}=t.vnode,r=tt(e,n,a);return r.ref=o,r.ce=s,delete t.vnode.ce,r}const Ps=e=>e.type.__isKeepAlive;function yh(e,t){Uc(e,"a",t)}function _h(e,t){Uc(e,"da",t)}function Uc(e,t,o=Ct){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Cs(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Ps(a.parent.vnode)&&vh(n,t,o,a),a=a.parent}}function vh(e,t,o,n){const a=Cs(t,e,n,!0);Es(()=>{Er(n[t],a)},o)}function Cs(e,t,o=Ct,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{fo();const i=Ta(o),l=so(t,o,e,r);return i(),ho(),l});return n?a.unshift(s):a.push(s),s}}const Io=e=>(t,o=Ct)=>{(!Un||e==="sp")&&Cs(e,(...n)=>t(...n),o)},zc=Io("bm"),$o=Io("m"),kh=Io("bu"),wh=Io("u"),Xt=Io("bum"),Es=Io("um"),xh=Io("sp"),Lh=Io("rtg"),Sh=Io("rtc");function Ah(e,t=Ct){Cs("ec",e,t)}const Ph="components",Hc=Symbol.for("v-ndc");function Vc(e){return it(e)?Ch(Ph,e,!1)||e:e||Hc}function Ch(e,t,o=!0,n=!1){const a=At||Ct;if(a){const s=a.type;{const i=xu(s,!1);if(i&&(i===t||i===xt(t)||i===ls(xt(t))))return s}const r=Kc(a[e]||s[e],t)||Kc(a.appContext[e],t);return!r&&n?s:r}}function Kc(e,t){return e&&(e[t]||e[xt(t)]||e[ls(xt(t))])}function Rt(e,t,o,n){let a;const s=o,r=Me(e);if(r||it(e)){const i=r&&Ro(e);let l=!1,c=!1;i&&(l=!Vt(e),c=Mo(e),e=gs(e)),a=new Array(e.length);for(let u=0,p=e.length;ut(i,l,void 0,s));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l0;return t!=="default"&&(c.name=t),ae(),et(ze,null,[tt("slot",c,n)],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const i=Oo.length;ae();let l;try{const c=r&&qc(r(o)),u=o.key||s||c&&c.key;l=et(ze,{key:(u&&!Ht(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=Oo.length;u>i;u--)ci();throw c}finally{r&&r._c&&(r._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function qc(e){return e.some(t=>Pa(t)?!(t.type===yo||t.type===ze&&!qc(t.children)):!0)?e:null}const ei=e=>e?vu(e)?Ds(e):ei(e.parent):null,xa=mt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ei(e.parent),$root:e=>ei(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Zc(e),$forceUpdate:e=>e.f||(e.f=()=>{Kr(e.update)}),$nextTick:e=>e.n||(e.n=It.bind(e.proxy)),$watch:e=>ph.bind(e)}),ti=(e,t)=>e!==st&&!e.__isScriptSetup&&Ze(e,t),Eh={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:s,accessCache:r,type:i,appContext:l}=e;if(t[0]!=="$"){const f=r[t];if(f!==void 0)switch(f){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return s[t]}else{if(ti(n,t))return r[t]=1,n[t];if(a!==st&&Ze(a,t))return r[t]=2,a[t];if(Ze(s,t))return r[t]=3,s[t];if(o!==st&&Ze(o,t))return r[t]=4,o[t];oi&&(r[t]=0)}}const c=xa[t];let u,p;if(c)return t==="$attrs"&&Nt(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==st&&Ze(o,t))return r[t]=4,o[t];if(p=l.config.globalProperties,Ze(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return ti(a,t)?(a[t]=o,!0):n!==st&&Ze(n,t)?(n[t]=o,!0):Ze(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:s,type:r}},i){let l;return!!(o[i]||e!==st&&i[0]!=="$"&&Ze(e,i)||ti(t,i)||Ze(s,i)||Ze(n,i)||Ze(xa,i)||Ze(a.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Ze(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Wc(e){return Me(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let oi=!0;function Th(e){const t=Zc(e),o=e.proxy,n=e.ctx;oi=!1,t.beforeCreate&&Yc(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:p,mounted:f,beforeUpdate:A,updated:v,activated:b,deactivated:_,beforeDestroy:$,beforeUnmount:h,destroyed:m,unmounted:w,render:g,renderTracked:P,renderTriggered:d,errorCaptured:C,serverPrefetch:S,expose:G,inheritAttrs:H,components:J,directives:U,filters:D}=t;if(c&&Nh(c,n,null),r)for(const R in r){const z=r[R];De(z)&&(n[R]=z.bind(o))}if(a){const R=a.call(o,o);Je(R)&&(e.data=Mn(R))}if(oi=!0,s)for(const R in s){const z=s[R],K=De(z)?z.bind(o,o):De(z.get)?z.get.bind(o,o):po,Q=!De(z)&&De(z.set)?z.set.bind(o):po,ie=oe({get:K,set:Q});Object.defineProperty(n,R,{enumerable:!0,configurable:!0,get:()=>ie.value,set:j=>ie.value=j})}if(i)for(const R in i)Xc(i[R],n,o,R);if(l){const R=De(l)?l.call(o):l;Reflect.ownKeys(R).forEach(z=>{vt(z,R[z])})}u&&Yc(u,e,"c");function y(R,z){Me(z)?z.forEach(K=>R(K.bind(o))):z&&R(z.bind(o))}if(y(zc,p),y($o,f),y(kh,A),y(wh,v),y(yh,b),y(_h,_),y(Ah,C),y(Sh,P),y(Lh,d),y(Xt,h),y(Es,w),y(xh,S),Me(G))if(G.length){const R=e.exposed||(e.exposed={});G.forEach(z=>{Object.defineProperty(R,z,{get:()=>o[z],set:K=>o[z]=K,enumerable:!0})})}else e.exposed||(e.exposed={});g&&e.render===po&&(e.render=g),H!=null&&(e.inheritAttrs=H),J&&(e.components=J),U&&(e.directives=U),S&&Qr(e)}function Nh(e,t,o=po){Me(e)&&(e=ni(e));for(const n in e){const a=e[n];let s;Je(a)?"default"in a?s=Ne(a.from||n,a.default,!0):s=Ne(a.from||n):s=Ne(a),ut(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function Yc(e,t,o){so(Me(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Xc(e,t,o,n){let a=n.includes(".")?Mc(o,n):()=>o[n];if(it(e)){const s=t[e];De(s)&&Fe(a,s)}else if(De(e))Fe(a,e.bind(o));else if(Je(e))if(Me(e))e.forEach(s=>Xc(s,t,o,n));else{const s=De(e.handler)?e.handler.bind(o):t[e.handler];De(s)&&Fe(a,s,e)}}function Zc(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:s,config:{optionMergeStrategies:r}}=e.appContext,i=s.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>Ts(l,c,r,!0)),Ts(l,t,r)),Je(t)&&s.set(t,l),l}function Ts(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Ts(e,s,o,!0),a&&a.forEach(r=>Ts(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const i=Rh[r]||o&&o[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const Rh={data:Jc,props:Qc,emits:Qc,methods:La,computed:La,beforeCreate:Ot,created:Ot,beforeMount:Ot,mounted:Ot,beforeUpdate:Ot,updated:Ot,beforeDestroy:Ot,beforeUnmount:Ot,destroyed:Ot,unmounted:Ot,activated:Ot,deactivated:Ot,errorCaptured:Ot,serverPrefetch:Ot,components:La,directives:La,watch:Fh,provide:Jc,inject:Mh};function Jc(e,t){return t?e?function(){return mt(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function Mh(e,t){return La(ni(e),ni(t))}function ni(e){if(Me(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${Yt(t)}Modifiers`];function Bh(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||st;let a=o;const s=t.startsWith("update:"),r=s&&Dh(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>it(u)?u.trim():u)),r.number&&(a=a.map(Nr)));let i,l=n[i=Tr(t)]||n[i=Tr(xt(t))];!l&&s&&(l=n[i=Tr(Yt(t))]),l&&so(l,e,6,a);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,so(c,e,6,a)}}const Gh=new WeakMap;function tu(e,t,o=!1){const n=o?Gh:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},i=!1;if(!De(e)){const l=c=>{const u=tu(c,t,!0);u&&(i=!0,mt(r,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(Je(e)&&n.set(e,null),null):(Me(s)?s.forEach(l=>r[l]=null):mt(r,s),Je(e)&&n.set(e,r),r)}function Ns(e,t){return!e||!os(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Ze(e,t[0].toLowerCase()+t.slice(1))||Ze(e,Yt(t))||Ze(e,t))}function JP(){}function ou(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:p,data:f,setupState:A,ctx:v,inheritAttrs:b}=e,_=ws(e);let $,h;try{if(o.shapeFlag&4){const w=a||n,g=w;$=_o(c.call(g,w,u,p,A,f,v)),h=i}else{const w=t;$=_o(w.length>1?w(p,{attrs:i,slots:r,emit:l}):w(p,null)),h=t.props?i:jh(i)}}catch(w){Oo.length=0,ya(w,e,1),$=tt(yo)}let m=$;if(h&&b!==!1){const w=Object.keys(h),{shapeFlag:g}=m;w.length&&g&7&&(s&&w.some(ns)&&(h=Uh(h,s)),m=jn(m,h,!1,!0))}if(o.dirs&&(m=jn(m,null,!1,!0),m.dirs=m.dirs?m.dirs.concat(o.dirs):o.dirs),o.transition){const w=xs(m.type)&&Dc(m)||m;Jr(w,o.transition)}return $=m,ws(_),$}const jh=e=>{let t;for(const o in e)(o==="class"||o==="style"||os(o))&&((t||(t={}))[o]=e[o]);return t},Uh=(e,t)=>{const o={};for(const n in e)(!ns(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function zh(e,t,o){const{props:n,children:a,component:s}=e,{props:r,children:i,patchFlag:l}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?nu(n,r,c):!!r;if(l&8){const u=t.dynamicProps;for(let p=0;pObject.create(su),iu=e=>Object.getPrototypeOf(e)===su;function Vh(e,t,o,n=!1){const a={},s=ru();e.propsDefaults=Object.create(null),lu(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:Hf(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function Kh(e,t,o,n){const{props:a,attrs:s,vnode:{patchFlag:r}}=e,i=Ke(a),[l]=e.propsOptions;let c=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let p=0;p{l=!0;const[f,A]=cu(p,t,!0);mt(r,f),A&&i.push(...A)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return Je(e)&&n.set(e,Nn),Nn;if(Me(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",ri=e=>Me(e)?e.map(_o):[_o(e)],Wh=(e,t,o)=>{if(t._n)return t;const n=jt((...a)=>ri(t(...a)),o);return n._c=!1,n},pu=(e,t,o)=>{const n=e._ctx;for(const a in e){if(si(a))continue;const s=e[a];if(De(s))t[a]=Wh(a,s,n);else if(s!=null){const r=ri(s);t[a]=()=>r}}},du=(e,t)=>{const o=ri(t);e.slots.default=()=>o},gu=(e,t,o)=>{for(const n in t)(o||!si(n))&&(e[n]=t[n])},Yh=(e,t,o)=>{const n=e.slots=ru();if(e.vnode.shapeFlag&32){const a=t._;a?(gu(n,t,o),o&&Zl(n,"_",a,!0)):pu(t,n)}else t&&du(e,t)},Xh=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=st;if(n.shapeFlag&32){const i=t._;i?o&&i===1?s=!1:gu(a,t,o):(s=!t.$stable,pu(t,a)),r=t}else t&&(du(e,t),r={default:1});if(s)for(const i in a)!si(i)&&r[i]==null&&delete a[i]},Dt=tm;function Zh(e){return Jh(e)}function Jh(e,t){const o=us();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:p,nextSibling:f,setScopeId:A=po,insertStaticContent:v}=e,b=(T,F,I,W=null,Y=null,O=null,ue=void 0,ee=null,k=!!F.dynamicChildren)=>{if(T===F)return;T&&!Ca(T,F)&&(W=$e(T),j(T,Y,O,!0),T=null),F.patchFlag===-2&&(k=!1,F.dynamicChildren=null);const{type:x,ref:B,shapeFlag:X}=F;switch(x){case Sa:_(T,F,I,W);break;case yo:$(T,F,I,W);break;case Rs:T==null&&h(F,I,W,ue);break;case ze:J(T,F,I,W,Y,O,ue,ee,k);break;default:X&1?g(T,F,I,W,Y,O,ue,ee,k):X&6?U(T,F,I,W,Y,O,ue,ee,k):(X&64||X&128)&&x.process(T,F,I,W,Y,O,ue,ee,k,de)}B!=null&&Y?wa(B,T&&T.ref,O,F||T,!F):B==null&&T&&T.ref!=null&&wa(T.ref,null,O,T,!0)},_=(T,F,I,W)=>{if(T==null)n(F.el=i(F.children),I,W);else{const Y=F.el=T.el;F.children!==T.children&&c(Y,F.children)}},$=(T,F,I,W)=>{T==null?n(F.el=l(F.children||""),I,W):F.el=T.el},h=(T,F,I,W)=>{[T.el,T.anchor]=v(T.children,F,I,W,T.el,T.anchor)},m=({el:T,anchor:F},I,W)=>{let Y;for(;T&&T!==F;)Y=f(T),n(T,I,W),T=Y;n(F,I,W)},w=({el:T,anchor:F})=>{let I;for(;T&&T!==F;)I=f(T),a(T),T=I;a(F)},g=(T,F,I,W,Y,O,ue,ee,k)=>{if(F.type==="svg"?ue="svg":F.type==="math"&&(ue="mathml"),T==null)P(F,I,W,Y,O,ue,ee,k);else{const x=T.el&&T.el._isVueCE?T.el:null;try{x&&x._beginPatch(),S(T,F,Y,O,ue,ee,k)}finally{x&&x._endPatch()}}},P=(T,F,I,W,Y,O,ue,ee)=>{let k,x;const{props:B,shapeFlag:X,transition:me,dirs:ce}=T;if(k=T.el=r(T.type,O,B&&B.is,B),X&8?u(k,T.children):X&16&&C(T.children,k,null,W,Y,ii(T,O),ue,ee),ce&&dn(T,null,W,"created"),d(k,T,T.scopeId,ue,W),B){for(const le in B)le!=="value"&&!pa(le)&&s(k,le,null,B[le],O,W);"value"in B&&s(k,"value",null,B.value,O),(x=B.onVnodeBeforeMount)&&vo(x,W,T)}ce&&dn(T,null,W,"beforeMount");const Z=Qh(Y,me);Z&&me.beforeEnter(k),n(k,F,I),((x=B&&B.onVnodeMounted)||Z||ce)&&Dt(()=>{try{x&&vo(x,W,T),Z&&me.enter(k),ce&&dn(T,null,W,"mounted")}finally{}},Y)},d=(T,F,I,W,Y)=>{if(I&&A(T,I),W)for(let O=0;O{for(let x=k;x{const ee=F.el=T.el;let{patchFlag:k,dynamicChildren:x,dirs:B}=F;k|=T.patchFlag&16;const X=T.props||st,me=F.props||st;let ce;if(I&&mn(I,!1),(ce=me.onVnodeBeforeUpdate)&&vo(ce,I,F,T),B&&dn(F,T,I,"beforeUpdate"),I&&mn(I,!0),x&&(!T.dynamicChildren||T.dynamicChildren.length!==x.length)&&(k=0,ue=!1,x=null),(X.innerHTML&&me.innerHTML==null||X.textContent&&me.textContent==null)&&u(ee,""),x?G(T.dynamicChildren,x,ee,I,W,ii(F,Y),O):ue||z(T,F,ee,null,I,W,ii(F,Y),O,!1),k>0){if(k&16)H(ee,X,me,I,Y);else if(k&2&&X.class!==me.class&&s(ee,"class",null,me.class,Y),k&4&&s(ee,"style",X.style,me.style,Y),k&8){const Z=F.dynamicProps;for(let le=0;le{ce&&vo(ce,I,F,T),B&&dn(F,T,I,"updated")},W)},G=(T,F,I,W,Y,O,ue)=>{for(let ee=0;ee{if(F!==I){if(F!==st)for(const O in F)!pa(O)&&!(O in I)&&s(T,O,F[O],null,Y,W);for(const O in I){if(pa(O))continue;const ue=I[O],ee=F[O];ue!==ee&&O!=="value"&&s(T,O,ee,ue,Y,W)}"value"in I&&s(T,"value",F.value,I.value,Y)}},J=(T,F,I,W,Y,O,ue,ee,k)=>{const x=F.el=T?T.el:i(""),B=F.anchor=T?T.anchor:i("");let{patchFlag:X,dynamicChildren:me,slotScopeIds:ce}=F;ce&&(ee=ee?ee.concat(ce):ce),T==null?(n(x,I,W),n(B,I,W),C(F.children||[],I,B,Y,O,ue,ee,k)):X>0&&X&64&&me&&T.dynamicChildren&&T.dynamicChildren.length===me.length?(G(T.dynamicChildren,me,I,Y,O,ue,ee),(F.key!=null||Y&&F===Y.subTree)&&li(T,F,!0)):z(T,F,I,B,Y,O,ue,ee,k)},U=(T,F,I,W,Y,O,ue,ee,k)=>{F.slotScopeIds=ee,T==null?F.shapeFlag&512?Y.ctx.activate(F,I,W,ue,k):D(F,I,W,Y,O,ue,k):L(T,F,k)},D=(T,F,I,W,Y,O,ue)=>{const ee=T.component=lm(T,W,Y);if(Ps(T)&&(ee.ctx.renderer=de),cm(ee,!1,ue),ee.asyncDep){if(Y&&Y.registerDep(ee,y,ue),!T.el){const k=ee.subTree=tt(yo);$(null,k,F,I),T.placeholder=k.el}}else y(ee,T,F,I,Y,O,ue)},L=(T,F,I)=>{const W=F.component=T.component;if(zh(T,F,I))if(W.asyncDep&&!W.asyncResolved){R(W,F,I);return}else W.next=F,W.update();else F.el=T.el,W.vnode=F},y=(T,F,I,W,Y,O,ue)=>{const ee=()=>{if(T.isMounted){let{next:X,bu:me,u:ce,parent:Z,vnode:le}=T;{const Qe=fu(T);if(Qe){X&&(X.el=le.el,R(T,X,ue)),Qe.asyncDep.then(()=>{Dt(()=>{T.isUnmounted||x()},Y)});return}}let Ce=X,Te;mn(T,!1),X?(X.el=le.el,R(T,X,ue)):X=le,me&&cs(me),(Te=X.props&&X.props.onVnodeBeforeUpdate)&&vo(Te,Z,X,le),mn(T,!0);const qe=ou(T),nt=T.subTree;T.subTree=qe,b(nt,qe,p(nt.el),$e(nt),T,Y,O),X.el=qe.el,Ce===null&&Hh(T,qe.el),ce&&Dt(ce,Y),(Te=X.props&&X.props.onVnodeUpdated)&&Dt(()=>vo(Te,Z,X,le),Y)}else{let X;const{el:me,props:ce}=F,{bm:Z,m:le,parent:Ce,root:Te,type:qe}=T,nt=Gn(F);mn(T,!1),Z&&cs(Z),!nt&&(X=ce&&ce.onVnodeBeforeMount)&&vo(X,Ce,F),mn(T,!0);{Te.ce&&Te.ce._hasShadowRoot()&&Te.ce._injectChildStyle(qe,T.parent?T.parent.type:void 0);const Qe=T.subTree=ou(T);b(null,Qe,I,W,T,Y,O),F.el=Qe.el}if(le&&Dt(le,Y),!nt&&(X=ce&&ce.onVnodeMounted)){const Qe=F;Dt(()=>vo(X,Ce,Qe),Y)}(F.shapeFlag&256||Ce&&Gn(Ce.vnode)&&Ce.vnode.shapeFlag&256)&&T.a&&Dt(T.a,Y),T.isMounted=!0,F=I=W=null}};T.scope.on();const k=T.effect=new rc(ee);T.scope.off();const x=T.update=k.run.bind(k),B=T.job=k.runIfDirty.bind(k);B.i=T,B.id=T.uid,k.scheduler=()=>Kr(B),mn(T,!0),x()},R=(T,F,I)=>{F.component=T;const W=T.vnode.props;T.vnode=F,T.next=null,Kh(T,F.props,W,I),Xh(T,F.children,I),fo(),Ec(T),ho()},z=(T,F,I,W,Y,O,ue,ee,k=!1)=>{const x=T&&T.children,B=T?T.shapeFlag:0,X=F.children,{patchFlag:me,shapeFlag:ce}=F;if(me>0){if(me&128){Q(x,X,I,W,Y,O,ue,ee,k);return}else if(me&256){K(x,X,I,W,Y,O,ue,ee,k);return}}ce&8?(B&16&&ke(x,Y,O),X!==x&&u(I,X)):B&16?ce&16?Q(x,X,I,W,Y,O,ue,ee,k):ke(x,Y,O,!0):(B&8&&u(I,""),ce&16&&C(X,I,W,Y,O,ue,ee,k))},K=(T,F,I,W,Y,O,ue,ee,k)=>{T=T||Nn,F=F||Nn;const x=T.length,B=F.length,X=Math.min(x,B);let me;for(me=0;meB?ke(T,Y,O,!0,!1,X):C(F,I,W,Y,O,ue,ee,k,X)},Q=(T,F,I,W,Y,O,ue,ee,k)=>{let x=0;const B=F.length;let X=T.length-1,me=B-1;for(;x<=X&&x<=me;){const ce=T[x],Z=F[x]=k?Do(F[x]):_o(F[x]);if(Ca(ce,Z))b(ce,Z,I,null,Y,O,ue,ee,k);else break;x++}for(;x<=X&&x<=me;){const ce=T[X],Z=F[me]=k?Do(F[me]):_o(F[me]);if(Ca(ce,Z))b(ce,Z,I,null,Y,O,ue,ee,k);else break;X--,me--}if(x>X){if(x<=me){const ce=me+1,Z=ceme)for(;x<=X;)j(T[x],Y,O,!0),x++;else{const ce=x,Z=x,le=new Map;for(x=Z;x<=me;x++){const ve=F[x]=k?Do(F[x]):_o(F[x]);ve.key!=null&&le.set(ve.key,x)}let Ce,Te=0;const qe=me-Z+1;let nt=!1,Qe=0;const V=new Array(qe);for(x=0;x=qe){j(ve,Y,O,!0);continue}let Se;if(ve.key!=null)Se=le.get(ve.key);else for(Ce=Z;Ce<=me;Ce++)if(V[Ce-Z]===0&&Ca(ve,F[Ce])){Se=Ce;break}Se===void 0?j(ve,Y,O,!0):(V[Se-Z]=x+1,Se>=Qe?Qe=Se:nt=!0,b(ve,F[Se],I,null,Y,O,ue,ee,k),Te++)}const se=nt?em(V):Nn;for(Ce=se.length-1,x=qe-1;x>=0;x--){const ve=Z+x,Se=F[ve],Ie=F[ve+1],rt=ve+1{const{el:O,type:ue,transition:ee,children:k,shapeFlag:x}=T;if(x&6){ie(T.component.subTree,F,I,W);return}if(x&128){T.suspense.move(F,I,W);return}if(x&64){ue.move(T,F,I,de);return}if(ue===ze){n(O,F,I);for(let X=0;Xee.enter(O),Y));else{const{leave:X,delayLeave:me,afterLeave:ce}=ee,Z=()=>{T.ctx.isUnmounted?a(O):n(O,F,I)},le=()=>{const Ce=O._isLeaving||!!O[Zr];O._isLeaving&&O[Zr](!0),ee.persisted&&!Ce?Z():X(O,()=>{Z(),ce&&ce()})};me?me(O,Z,le):le()}else n(O,F,I)},j=(T,F,I,W=!1,Y=!1)=>{const{type:O,props:ue,ref:ee,children:k,dynamicChildren:x,shapeFlag:B,patchFlag:X,dirs:me,cacheIndex:ce,memo:Z}=T;if(X===-2&&(Y=!1),ee!=null&&(fo(),wa(ee,null,I,T,!0),ho()),ce!=null&&(F.renderCache[ce]=void 0),B&256){F.ctx.deactivate(T);return}const le=B&1&&me,Ce=!Gn(T);let Te;if(Ce&&(Te=ue&&ue.onVnodeBeforeUnmount)&&vo(Te,F,T),B&6)fe(T.component,I,W);else{if(B&128){T.suspense.unmount(I,W);return}le&&dn(T,null,F,"beforeUnmount"),B&64?T.type.remove(T,F,I,de,W):x&&!x.hasOnce&&(O!==ze||X>0&&X&64)?ke(x,F,I,!1,!0):(O===ze&&X&384||!Y&&B&16)&&ke(k,F,I),W&&be(T)}const qe=Z!=null&&ce==null;(Ce&&(Te=ue&&ue.onVnodeUnmounted)||le||qe)&&Dt(()=>{Te&&vo(Te,F,T),le&&dn(T,null,F,"unmounted"),qe&&(T.el=null)},I)},be=T=>{const{type:F,el:I,anchor:W,transition:Y}=T;if(F===ze){xe(I,W);return}if(F===Rs){w(T);return}const O=()=>{a(I),Y&&!Y.persisted&&Y.afterLeave&&Y.afterLeave()};if(T.shapeFlag&1&&Y&&!Y.persisted){const{leave:ue,delayLeave:ee}=Y,k=()=>ue(I,O);ee?ee(T.el,O,k):k()}else O()},xe=(T,F)=>{let I;for(;T!==F;)I=f(T),a(T),T=I;a(F)},fe=(T,F,I)=>{const{bum:W,scope:Y,job:O,subTree:ue,um:ee,m:k,a:x}=T;hu(k),hu(x),W&&cs(W),Y.stop(),O&&(O.flags|=8,j(ue,T,F,I)),ee&&Dt(ee,F),Dt(()=>{T.isUnmounted=!0},F)},ke=(T,F,I,W=!1,Y=!1,O=0)=>{for(let ue=O;ue{if(T.shapeFlag&6)return $e(T.component.subTree);if(T.shapeFlag&128)return T.suspense.next();const F=f(T.anchor||T.el),I=F&&F[Fc];return I?f(I):F};let ne=!1;const te=(T,F,I)=>{let W;T==null?F._vnode&&(j(F._vnode,null,null,!0),W=F._vnode.component):b(F._vnode||null,T,F,null,null,null,I),F._vnode=T,ne||(ne=!0,Ec(W),Tc(),ne=!1)},de={p:b,um:j,m:ie,r:be,mt:D,mc:C,pc:z,pbc:G,n:$e,o:e};return{render:te,hydrate:void 0,createApp:Oh(te)}}function ii({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function mn({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Qh(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function li(e,t,o=!1){const n=e.children,a=t.children;if(Me(n)&&Me(a))for(let s=0;s>1,e[o[i]]0&&(t[n]=o[s-1]),o[s]=n)}}for(s=o.length,r=o[s-1];s-- >0;)o[s]=r,r=t[r];return o}function fu(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:fu(t)}function hu(e){if(e)for(let t=0;te.__isSuspense;function tm(e,t){t&&t.pendingBranch?Me(e)?t.effects.push(...e):t.effects.push(e):rh(e)}const ze=Symbol.for("v-fgt"),Sa=Symbol.for("v-txt"),yo=Symbol.for("v-cmt"),Rs=Symbol.for("v-stc"),Oo=[];let Kt=null;function ae(e=!1){Oo.push(Kt=e?null:[])}function ci(){Oo.pop(),Kt=Oo[Oo.length-1]||null}let Aa=1;function Ms(e,t=!1){Aa+=e,e<0&&Kt&&t&&(Kt.hasOnce=!0)}function $u(e){return e.dynamicChildren=Aa>0?Kt||Nn:null,ci(),Aa>0&&Kt&&Kt.push(e),e}function pe(e,t,o,n,a,s){return $u(M(e,t,o,n,a,s,!0))}function et(e,t,o,n,a){return $u(tt(e,t,o,n,a,!0))}function Pa(e){return e?e.__v_isVNode===!0:!1}function Ca(e,t){return e.type===t.type&&e.key===t.key}const yu=({key:e})=>e??null,Fs=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?it(e)||ut(e)||De(e)?{i:At,r:e,k:t,f:!!o}:e:null);function M(e,t=null,o=null,n=0,a=null,s=e===ze?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&yu(t),ref:t&&Fs(t),scopeId:Rc,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:At};return i?(Is(l,o),s&128&&e.normalize(l)):o&&(l.shapeFlag|=it(o)?8:16),Aa>0&&!r&&Kt&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Kt.push(l),l}const tt=om;function om(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===Hc)&&(e=yo),Pa(e)){const i=jn(e,t,!0);return o&&Is(i,o),Aa>0&&!s&&Kt&&(i.shapeFlag&6?Kt[Kt.indexOf(e)]=i:Kt.push(i)),i.patchFlag=-2,i}if(hm(e)&&(e=e.__vccOpts),t){t=nm(t);let{class:i,style:l}=t;i&&!it(i)&&(t.class=Re(i)),Je(l)&&($s(l)&&!Me(l)&&(l=mt({},l)),t.style=dt(l))}const r=it(e)?1:bu(e)?128:xs(e)?64:Je(e)?4:De(e)?2:0;return M(e,t,o,n,a,r,s,!0)}function nm(e){return e?$s(e)||iu(e)?mt({},e):e:null}function jn(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=t?sm(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&yu(c),ref:t&&t.ref?o&&s?Me(s)?s.concat(Fs(t)):[s,Fs(t)]:Fs(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ze?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&jn(e.ssContent),ssFallback:e.ssFallback&&jn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Jr(u,l.clone(u)),u}function Pt(e=" ",t=0){return tt(Sa,null,e,t)}function am(e,t){const o=tt(Rs,null,e);return o.staticCount=t,o}function Le(e="",t=!1){return t?(ae(),et(yo,null,e)):tt(yo,null,e)}function _o(e){return e==null||typeof e=="boolean"?tt(yo):Me(e)?tt(ze,null,e.slice()):Pa(e)?Do(e):tt(Sa,null,String(e))}function Do(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:jn(e)}function Is(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Me(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Is(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!iu(t)?t._ctx=At:a===3&&At&&(At.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(De(t)){if(n&65){Is(e,{default:t});return}t={default:t,_ctx:At},o=32}else t=String(t),n&64?(o=16,t=[Pt(t)]):o=8;e.children=t,e.shapeFlag|=o}function sm(...e){const t={};for(let o=0;oCt||At;let Os,Ea;{const e=us(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),s=>{a.length>1?a.forEach(r=>r(s)):a[0](s)}};Os=t("__VUE_INSTANCE_SETTERS__",o=>Ct=o),Ea=t("__VUE_SSR_SETTERS__",o=>Un=o)}const Ta=e=>{const t=Ct;return Os(e),e.scope.on(),()=>{e.scope.off(),Os(t)}},_u=()=>{Ct&&Ct.scope.off(),Os(null)};function vu(e){return e.vnode.shapeFlag&4}let Un=!1;function cm(e,t=!1,o=!1){t&&Ea(t);const{props:n,children:a}=e.vnode,s=vu(e);Vh(e,n,s,t),Yh(e,a,o||t);const r=s?um(e,t):void 0;return t&&Ea(!1),r}function um(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Eh);const{setup:n}=o;if(n){fo();const a=e.setupContext=n.length>1?dm(e):null,s=Ta(e),r=On(n,e,0,[e.props,a]),i=Yl(r);if(ho(),s(),(i||e.sp)&&!Gn(e)&&Qr(e),i){if(r.then(_u,_u),t)return r.then(l=>{Ea(!0);try{ku(e,l,t)}finally{Ea(!1)}}).catch(l=>{ya(l,e,0)});e.asyncDep=r}else ku(e,r)}else wu(e)}function ku(e,t,o){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Je(t)&&(e.setupState=Lc(t)),wu(e)}function wu(e,t,o){const n=e.type;e.render||(e.render=n.render||po);{const a=Ta(e);fo();try{Th(e)}finally{ho(),a()}}}const pm={get(e,t){return Nt(e,"get",""),e[t]}};function dm(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,pm),slots:e.slots,emit:e.emit,expose:t}}function Ds(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Lc(Fn(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in xa)return xa[o](e)},has(t,o){return o in t||o in xa}})):e.proxy}const gm=/(?:^|[-_])\w/g,fm=e=>e.replace(gm,t=>t.toUpperCase()).replace(/[-_]/g,"");function xu(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function Lu(e,t,o=!1){let n=xu(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=s=>{for(const r in s)if(s[r]===t)return r};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?fm(n):o?"App":"Anonymous"}function hm(e){return De(e)&&"__vccOpts"in e}const oe=(e,t)=>Zf(e,t,Un);function Su(e,t,o){try{Ms(-1);const n=arguments.length;return n===2?Je(t)&&!Me(t)?Pa(t)?tt(e,null,[t]):tt(e,t):tt(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Pa(o)&&(o=[o]),tt(e,t,o))}finally{Ms(1)}}const mm="3.5.42";/** -* @vue/runtime-dom v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let ui;const Au=typeof window<"u"&&window.trustedTypes;if(Au)try{ui=Au.createPolicy("vue",{createHTML:e=>e})}catch{}const Pu=ui?e=>ui.createHTML(e):e=>e,bm="http://www.w3.org/2000/svg",$m="http://www.w3.org/1998/Math/MathML",Bo=typeof document<"u"?document:null,Cu=Bo&&Bo.createElement("template"),ym={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?Bo.createElementNS(bm,e):t==="mathml"?Bo.createElementNS($m,e):o?Bo.createElement(e,{is:o}):Bo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>Bo.createTextNode(e),createComment:e=>Bo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Bo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,s){const r=o?o.previousSibling:t.lastChild;if(a&&(a===s||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===s||!(a=a.nextSibling)););else{Cu.innerHTML=Pu(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Cu.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[r?r.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},_m=Symbol("_vtc");function vm(e,t,o){const n=e[_m];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const Bs=Symbol("_vod"),Eu=Symbol("_vsh"),km={name:"show",beforeMount(e,{value:t},{transition:o}){e[Bs]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Na(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),Na(e,!0),n.enter(e)):n.leave(e,()=>{Na(e,!1)}):Na(e,t))},beforeUnmount(e,{value:t}){Na(e,t)}};function Na(e,t){e.style.display=t?e[Bs]:"none",e[Eu]=!t}const wm=Symbol(""),xm=/(?:^|;)\s*display\s*:/;function Lm(e,t,o){const n=e.style,a=it(o);let s=!1;if(o&&!a){if(t)if(it(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();o[i]==null&&Ra(n,i,"")}else for(const r in t)o[r]==null&&Ra(n,r,"");for(const r in o){r==="display"&&(s=!0);const i=o[r];i!=null?Am(e,r,!it(t)&&t?t[r]:void 0,i)||Ra(n,r,i):Ra(n,r,"")}}else if(a){if(t!==o){const r=n[wm];r&&(o+=";"+r),n.cssText=o,s=xm.test(o)}}else t&&e.removeAttribute("style");Bs in e&&(e[Bs]=s?n.display:"",e[Eu]&&(n.display="none"))}const Gs=/\s*!important$/;function Ra(e,t,o){if(Me(o))o.forEach(n=>Ra(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Gs.test(o)?e.setProperty(t,o.replace(Gs,""),"important"):e.setProperty(t,o);else{const n=Sm(e,t);Gs.test(o)?e.setProperty(Yt(n),o.replace(Gs,""),"important"):e[n]=o}}const Tu=["Webkit","Moz","ms"],pi={};function Sm(e,t){const o=pi[t];if(o)return o;let n=xt(t);if(n!=="filter"&&n in e)return pi[t]=n;n=ls(n);for(let a=0;adi||(Rm.then(()=>di=0),di=Date.now());function Fm(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Me(a)){const s=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{s.call(n),n._stopped=!0};const r=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Im=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?vm(e,n,r):t==="style"?Lm(e,o,n):os(t)?ns(t)||Cm(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Om(e,t,n,r))?(Mu(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ru(e,t,n,r,s,t!=="value")):e._isVueCE&&(Dm(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!it(n)))?Mu(e,xt(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Ru(e,t,n,r))};function Om(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Iu(t)&&De(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return Iu(t)&&it(o)?!1:t in e}function Dm(e,t){const o=e._def.props;if(!o)return!1;const n=xt(t);return Array.isArray(o)?o.some(a=>xt(a)===n):Object.keys(o).some(a=>xt(a)===n)}const Ou={};function Bm(e,t,o){let n=ka(e,t);ss(n)&&(n=mt({},n,t));class a extends gi{constructor(r){super(n,r,o)}}return a.def=n,a}const Gm=typeof HTMLElement<"u"?HTMLElement:class{};class gi extends Gm{constructor(t,o={},n=zu){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==zu?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(mt({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof gi){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,It(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:s,styles:r}=n;let i;if(s&&!Me(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Jl(this._props[l])),(i||(i=Object.create(null)))[xt(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(r),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)Ze(this,n)||Object.defineProperty(this,n,{get:()=>ge(o[n])})}_resolveProps(t){const{props:o}=t,n=Me(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(xt))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(s){this._setProp(a,s,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):Ou;const a=xt(t);o&&this._numberProps&&this._numberProps[a]&&(n=Jl(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===Ou?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const s=this._ob;s&&(this._processMutations(s.takeRecords()),s.disconnect()),o===!0?this.setAttribute(Yt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Yt(t),o+""):o||this.removeAttribute(Yt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Vm(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=tt(this._def,mt(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(s,r)=>{this.dispatchEvent(new CustomEvent(s,ss(r[0])?mt({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Yt(s)!==s&&a(Yt(s),r)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,s=this.shadowRoot,r=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(s);let i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[l],s.insertBefore(c,i||r),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),o&&this._styleAnchors.set(o,c))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{const t=e.props["onUpdate:modelValue"]||!1;return Me(t)?o=>cs(t,o):t};function jm(e){e.target.composing=!0}function Bu(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const js=Symbol("_assign"),Us=Symbol("_initialValue");function fi(e,t,o){return t&&(e=e.trim()),o&&(e=Nr(e)),e}const Gu={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[Us]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Us]=e.defaultValue.replace(/\r\n?/g,` -`))),e[js]=Du(a);const s=n||a.props&&a.props.type==="number";zn(e,t?"change":"input",r=>{r.target.composing||e[js](fi(e.value,o,s))}),(o||s)&&zn(e,"change",()=>{e.value=fi(e.value,o,s)}),t||(zn(e,"compositionstart",jm),zn(e,"compositionend",Bu),zn(e,"change",Bu))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",s=e[Us];delete e[Us],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[js](fi(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:s}},r){if(e[js]=Du(r),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?Nr(e.value):e.value,l=t??"";if(i===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(n&&t===o||a&&e.value.trim()===l)||(e.value=l)}},Um=["ctrl","shift","alt","meta"],zm={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Um.some(o=>e[`${o}Key`]&&!t.includes(o))},gt=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...s)=>{for(let r=0;r{Uu().render(...e)},zu=(...e)=>{const t=Uu().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=qm(n);if(!a)return;const s=t._component;!De(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=o(a,!1,Km(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function Km(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function qm(e){return it(e)?document.querySelector(e):e}/*! - * pinia v2.3.1 - * (c) 2025 Eduardo San Martin Morote - * @license MIT - */let Hu;const zs=e=>Hu=e,Vu=Symbol();function hi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Ma;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Ma||(Ma={}));function Wm(){const e=Mr(!0),t=e.run(()=>he({}));let o=[],n=[];const a=Fn({install(s){zs(a),a._a=s,s.provide(Vu,a),s.config.globalProperties.$pinia=a,n.forEach(r=>o.push(r)),n=[]},use(s){return this._a?o.push(s):n.push(s),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const Ku=()=>{};function qu(e,t,o,n=Ku){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!o&&sc()&&Lf(a),a}function Hn(e,...t){e.slice().forEach(o=>{o(...t)})}const Ym=e=>e(),Wu=Symbol(),mi=Symbol();function bi(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];hi(a)&&hi(n)&&e.hasOwnProperty(o)&&!ut(n)&&!Ro(n)?e[o]=bi(a,n):e[o]=n}return e}const Xm=Symbol();function Zm(e){return!hi(e)||!e.hasOwnProperty(Xm)}const{assign:Zo}=Object;function Jm(e){return!!(ut(e)&&e.effect)}function Qm(e,t,o,n){const{state:a,actions:s,getters:r}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=qf(o.state.value[e]);return Zo(u,s,Object.keys(r||{}).reduce((p,f)=>(p[f]=Fn(oe(()=>{zs(o);const A=o._s.get(e);return r[f].call(A,A)})),p),{}))}return l=Yu(e,c,t,o,n,!0),l}function Yu(e,t,o={},n,a,s){let r;const i=Zo({actions:{}},o),l={deep:!0};let c,u,p=[],f=[],A;const v=n.state.value[e];!s&&!v&&(n.state.value[e]={});let b;function _(C){let S;c=u=!1,typeof C=="function"?(C(n.state.value[e]),S={type:Ma.patchFunction,storeId:e,events:A}):(bi(n.state.value[e],C),S={type:Ma.patchObject,payload:C,storeId:e,events:A});const G=b=Symbol();It().then(()=>{b===G&&(c=!0)}),u=!0,Hn(p,S,n.state.value[e])}const $=s?function(){const{state:S}=o,G=S?S():{};this.$patch(H=>{Zo(H,G)})}:Ku;function h(){r.stop(),p=[],f=[],n._s.delete(e)}const m=(C,S="")=>{if(Wu in C)return C[mi]=S,C;const G=function(){zs(n);const H=Array.from(arguments),J=[],U=[];function D(R){J.push(R)}function L(R){U.push(R)}Hn(f,{args:H,name:G[mi],store:g,after:D,onError:L});let y;try{y=C.apply(this&&this.$id===e?this:g,H)}catch(R){throw Hn(U,R),R}return y instanceof Promise?y.then(R=>(Hn(J,R),R)).catch(R=>(Hn(U,R),Promise.reject(R))):(Hn(J,y),y)};return G[Wu]=!0,G[mi]=S,G},w={_p:n,$id:e,$onAction:qu.bind(null,f),$patch:_,$reset:$,$subscribe(C,S={}){const G=qu(p,C,S.detached,()=>H()),H=r.run(()=>Fe(()=>n.state.value[e],J=>{(S.flush==="sync"?u:c)&&C({storeId:e,type:Ma.direct,events:A},J)},Zo({},l,S)));return G},$dispose:h},g=Mn(w);n._s.set(e,g);const d=(n._a&&n._a.runWithContext||Ym)(()=>n._e.run(()=>(r=Mr()).run(()=>t({action:m}))));for(const C in d){const S=d[C];if(ut(S)&&!Jm(S)||Ro(S))s||(v&&Zm(S)&&(ut(S)?S.value=v[C]:bi(S,v[C])),n.state.value[e][C]=S);else if(typeof S=="function"){const G=m(S,C);d[C]=G,i.actions[C]=S}}return Zo(g,d),Zo(Ke(g),d),Object.defineProperty(g,"$state",{get:()=>n.state.value[e],set:C=>{_(S=>{Zo(S,C)})}}),n._p.forEach(C=>{Zo(g,r.run(()=>C({store:g,app:n._a,pinia:n,options:i})))}),v&&s&&o.hydrate&&o.hydrate(g.$state,v),c=!0,u=!0,g}/*! #__NO_SIDE_EFFECTS__ */function $i(e,t,o){let n,a;const s=typeof t=="function";typeof e=="string"?(n=e,a=s?o:t):(a=e,n=e.id);function r(i,l){const c=ih();return i=i||(c?Ne(Vu,null):null),i&&zs(i),i=Hu,i._s.has(n)||(s?Yu(n,t,a,i):Qm(n,a,i)),i._s.get(n)}return r.$id=n,r}const yi="__doxaMapToken",_i="doxa:map-token",Xu="__doxaMapTokenBridge",Vn=()=>{if(typeof window>"u")return"";const e=window[yi];return typeof e=="string"?e:""};function Zu(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===Vn())return Vn();window[yi]=t;try{window.dispatchEvent(new CustomEvent(_i,{detail:t}))}catch{}return t}function eb(){if(typeof window>"u"||window[Xu])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Vn()&&(window[yi]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Vn()},set(t){Zu(t)}}),window[Xu]=!0}catch{}}function tb(){eb();const e=he(Vn());if(typeof window<"u"){const t=()=>{e.value=Vn()};window.addEventListener(_i,t);try{Xt(()=>window.removeEventListener(_i,t))}catch{}}return e}function Hs(e){return $h({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const ob={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},nb={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},ab={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف"},sb={title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},rb={research_controls:"أدوات البحث",clustering:"التجميع",filters:"عوامل التصفية",pin_dim:"خفوت النقاط",export_poster:"تصدير ملصق…",reload_data:"إعادة تحميل البيانات",off:"إيقاف",native:"أصلي",mst:"الشجرة الممتدة",network:"شبكة",off_desc:"إظهار كل نقطة على حدة",native_desc:"تجميع دوائر Mapbox (الأسرع)",mst_desc:"شبكات تقارب بالشجرة الممتدة الصغرى",network_desc:"خطوط ربط بأقرب جار",search_languages:"ابحث عن اللغات…",search_religions:"ابحث عن الأديان…",reset_all:"إعادة تعيين الكل",no_languages:"لم تُحمَّل أي لغات بعد",no_religions:"لم تُحمَّل أي أديان بعد",unadopted:"غير متبنّى",min:"الأدنى",max:"الأعلى",adopted:"متبنَّاة",adoption:"التبني",engaged:"مُخْدُومَة",engagement:"المشاركة",unengaged:"يحتاج إلى انخراط",language:"اللغة",religion:"الدين",population:"السكان",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",close:"إغلاق",clear:"مسح",map_controls:"أدوات التحكم بالخريطة"},ib={bloc:"كتلة التقارب",gospel_access:"الوصول إلى الإنجيل",people:"الشعوب",people_name:"الشعب (الاسم)",praying:"يصلّون",religion_family:"عائلة الأديان",search_language:"ابحث عن لغة",search_people:"ابحث عن شعب",search_place:"ابحث عن مكان",search_religion:"ابحث عن دين",upgs_in_scope:"الشعوب ضمن النطاق",countries_touched:"الدول المشمولة",unreached:"غير موصولين",sum_population:"مجموع السكان",sum_praying:"مجموع المصلّين",charts:"الرسوم البيانية",table:"الجدول",cluster:"المجموعة",country:"الدولة",engagement:"المشاركة",language:"اللغة",language_family:"عائلة اللغة",people_group:"الشعب",population:"السكان",prayer:"الصلاة",region:"المنطقة",religion:"الدين",status:"الحالة",adopted:"متبنَّاة",filters:"عوامل التصفية",gospel_resources:"موارد الإنجيل",map:"الخريطة",search_placeholder:"ابحث عن الشعوب والأماكن واللغات والأديان…",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",map_controls:"أدوات التحكم بالخريطة",close:"إغلاق",clear:"مسح",dashboard_title:"لوحة البحث الشاملة",align_dashboard:"محاذاة اللوحة",align_dashboard_tip:"إعادة تخطيط اللوحة إلى المحاذاة الافتراضية",selected:"المحدد",world:"العالم",vertical_legend:"مفتاح عمودي",groups_in_scope:"مجموعة ضمن النطاق",filter_by:"تصفية حسب",remove_filter:"إزالة التصفية",groups:"مجموعة",expand:"توسيع",collapse:"طيّ",place:"المكان"},lb={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},cb={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"الملاحظات التوضيحية أدناه باللغة الإنجليزية."},mode:{gap:"الفجوة",coverage:"الموارد المتوفرة"},search:{placeholder:"ابحث عن شعب أو لغة أو رمز ISO",clear:"مسح البحث",none:"لا شيء يطابق هذا الاسم أو اللغة أو الرمز.",placeholderShort:"شعب أو لغة أو رمز ISO"},legend:{title:"شعوب غير مبلَّغة ولا يوجد لها أي مورد إنجيلي",band60:"⁦60%+⁩ بلا أي مورد",band30:"⁦30–59%⁩",bandSome:"بعض الشعوب",bandAll:"كل الشعوب لديها شيء",tier2:"الكتاب المقدس والفيلم",tier1:"وُجد بعض الموارد",tier0:"لا شيء",hnr:"يمكنهم السماع، ولا يوجد نص",showAll:"عرض كل الشعوب",titleCoverage:"شعوب غير مبلَّغة ويوجد لها بعض الموارد الإنجيلية",cov80:"⁦80%+⁩ لديهم شيء",cov50:"⁦50–79%⁩",cov1:"⁦1–49%⁩",cov0:"لا شيء لأي منهم",tallyEach:"كل",tallyIs:"هو شعب واحد —",tallyOf:"منها،",tallyLink:"لديها رابط",doxa0:"لدى الجميع شيء",doxa1:"‪1–4‬ بلا شيء",doxa5:"‪5–14‬",doxa15:"‪15–39‬",doxa40:"‪40+‬",cvd1:"‪1–4‬ لديهم موارد",cvd5:"‪5–14‬",cvd15:"‪15–39‬",cvd40:"‪40+‬",onMap:"شعوب دوكسا على هذه الخريطة",notPlaced:"ضمن القائمة، بلا موقع بعد",outOfScope:"لا توجد شعوب دوكسا — غير ملوَّنة"},tabs:{groups:"أكبر الشعوب",countries:"حسب البلد",regions:"حسب المنطقة",noprayer:"لا أحد يصلّي",hnr:"يسمعون، بلا نص"},stat:{language:"اللغة",population:"عدد السكان",countries:"البلدان",peopleGroups:"الشعوب",noResource:"لا يوجد أي مورد",peopleAffected:"الأشخاص المتأثرون",haveScripture:"لديهم الكتاب المقدس",haveFilm:"لديهم الفيلم",haveAudio:"لديهم كتاب مقدس مسموع",signLanguages:"لغات الإشارة",growingUnreached:"متزايدون وغير مبلَّغين",deathsDay:"الوفيات المقدَّرة يوميًا"},sheet:{ownLanguage:"بلغتهم الأم",close:"إغلاق",loading:"جارٍ تحميل الموارد…",pray:"صلِّ من أجل",everyResource:"كل الموارد بـ",alsoSpeak:"يتحدثون أيضًا"},res:{scripture:"الكتاب المقدس",film:"الفيلم",audio:"صوتي",bibleVideo:"فيديو كتابي",bibleStories:"Open Bible Stories",gospelAudio:"صوتيات الإنجيل",gospelPresentation:"عرض للإنجيل",scriptureEarth:"Scripture Earth",training:"تدريب على التلمذة",jesusFilm:"فيلم يسوع",audioScripture:"الكتاب المقدس الصوتي",bibleStoriesPlain:"قصص الكتاب المقدس"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"},guide:{dotVsCountry:"كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",noneFoundShort:"«لا شيء» تعني غير موجود في المصادر التي بحثنا فيها — وليست دليلًا على عدم وجوده.",tapCountry:"اضغط على بلد لترى الموارد الفعلية، شعبًا شعبًا."},tables:{title:"موارد الإنجيل — البيانات",showing:"عرض",of:"من",for:"لـ",filteredTo:"مصفّى حسب",showAll:"عرض كل الموارد",t_doxa:"دوكسا — الوصول إلى الإنجيل",t_links:"كل مورد ورابطه",t_nothing:"حيث لا يوجد شيء",t_countrygap:"الفجوة حسب البلد",t_translation:"يسمعون ولا نص لديهم",t_translationcountry:"أين نترجم",t_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"},list:{noText:"بلا نص مقدس",hasScripture:"لديها الكتاب المقدس",allLanguages:"كل اللغات",peopleGroup:"شعب",peopleGroups:"شعوب",scriptureHere:"الكتاب المقدس بهذه اللغة"},columns:{"People group":"الشعب",Country:"البلد",Region:"المنطقة",Language:"اللغة",Population:"عدد السكان",Religion:"الديانة","Gospel access":"الوصول إلى الإنجيل",Resources:"الموارد",Scripture:"الكتاب المقدس","Bible video":"فيديو كتابي","Gospel presentation":"عرض للإنجيل",Countries:"البلدان","People groups":"الشعوب"},charts:{scriptureAny:"الكتاب المقدس (أي نوع)",fullBible:"الكتاب المقدس كاملاً",newTestament:"العهد الجديد",filmAny:"الفيلم (أي نوع)",nothingInPools:"لا شيء في المصادر التي جرى البحث فيها",nothingInPoolsLower:"لا شيء في المصادر التي جرى البحث فيها",noResourceInPools:"لم يُعثر على أي مورد في المصادر التي جرى البحث فيها",aResourceFound:"وُجد مورد",tabCoverage:"تغطية الموارد",tabGap:"أكبر الفجوات",keyScripture:"الكتاب المقدس",keyFilmStories:"الفيلم / القصص",keyAudioEtc:"صوتيات / عرض / تدريب",unresolvedCode:"رمز خارج ISO 639-3 — غير محسوم، لم يُقَس"}},ub={search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},pb={title:{adoption:"تقدم التبني",affinityBlocs:"كتل القرابة",doxaRegions:"مناطق Doxa",engagement:"تقدم الانخراط",gospelResources:"موارد الإنجيل",languageFamilies:"العائلات اللغوية",prayer:"تقدم الصلاة",upg100List:"قائمة UPG 100 الخاصة بي"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"},tabInfo:{upg100Region:"المنطقة — ترتّب قوائم UPG-100 حسب منطقة العالم (أفريقيا، الهند، الشرق الأوسط، الصمّ، …). الأعداد هي مجموع UUPG والسكان لكل قائمة تحتها.",upg100Zone:"قوائم UPG-100 — كل واحدة هي قائمة صلاة للشعوب غير الموصول إليها في منطقة ما، وهي ما ترسمه الخريطة وتلوّنه. تُطبع كل قائمة ككُتيّب خاص بها.",upg100Group:"مجموعة شعبية — المجموعات غير الموصول إليها داخل القائمة، الأكثر حاجة للصلاة أولاً. كل نقطة على الخريطة هي واحدة منها."},a11y:{expandRow:"توسيع {label}",collapseRow:"طي {label}",clearSelection:"إلغاء التحديد"}},db={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},gb={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},fb={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},hb={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},mb={"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة بشرية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة البشرية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مُخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة بشرية غير مبشرة تتبناها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات البشرية غير المُبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة بشرية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة البشرية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعات بشرية في %country%. تحقق من الخريطة لمعرفة المجموعات البشرية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مُخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},bb={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"},upg100Placeholder:"ابحث عن شعب أو قائمة UPG-100 أو منطقة…"},$b={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده",mapToken:"رمز الخريطة",tokenPaste:"رمز Mapbox العام (pk.…)",tokenUrlLabel:"…أو رابط خدمة الرموز",tokenApply:"استخدام",tokenClear:"مسح",tokenStoredHere:"يُحفظ في هذا المتصفح فقط.",tokenSourceYours:"يُستخدم رمزك",tokenSourceUrl:"يُستخدم رمز من {url}",tokenSourceBuilt:"يُستخدم الرمز المضمَّن في هذه الصفحة",tokenSourceNone:"لا يوجد رمز Mapbox: لا يمكن تحميل خرائط Mapbox (خرائط MapLibre لا تحتاج رمزًا)",tokenSecret:"هذا رمز سري (sk.…). الصق رمزًا عامًا (pk.…): هذه الصفحة عامة.",tokenNotPk:"يبدأ رمز Mapbox العام بـ pk.",tokenUrlFailed:"تعذّر الحصول على رمز من هذا الرابط: {why}"},yb={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية",selectView:"اختر العرض",views:"العروض",prayerResources:"موارد الصلاة",map:"الخريطة"},_b={kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},vb={title:"Alle Volksgruppen",locations:"{n} Standorte (Gruppe × Land)",doxa:"DOXA-Volksgruppen",frontier:"Frontier — noch nichts begonnen",unreached:"Unerreicht — Arbeit beginnt",reached:"Erreicht — Gemeinde ist da",hint:"Zeile anklicken, um alle zu sehen · erneut klicken für alle",loading:"Alle Volksgruppen werden geladen…",loadError:"Die Karte konnte nicht geladen werden.",pray:"Für sie beten →",population:"Einw. {n}"},kb={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},wb={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},xb={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},Lb={research_controls:"Forschungssteuerung",clustering:"Clustering",filters:"Filter",pin_dim:"Pin-Transparenz",export_poster:"Poster exportieren…",reload_data:"Daten neu laden",off:"Aus",native:"Nativ",mst:"MST",network:"Netzwerk",off_desc:"Jeden Pin einzeln anzeigen",native_desc:"Mapbox-Kreiscluster (am schnellsten)",mst_desc:"Affinitätsnetze über minimalen Spannbaum",network_desc:"Verbindungslinien zum nächsten Nachbarn",search_languages:"Sprachen suchen…",search_religions:"Religionen suchen…",reset_all:"Alles zurücksetzen",no_languages:"Noch keine Sprachen geladen",no_religions:"Noch keine Religionen geladen",unadopted:"Nicht adoptiert",min:"min",max:"max",adopted:"Adoptiert",adoption:"Adoption",engaged:"Engagiert",engagement:"Engagement",unengaged:"Braucht Engagement",language:"Sprache",religion:"Religion",population:"Bevölkerung",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",close:"Schließen",clear:"Zurücksetzen",map_controls:"Kartensteuerung"},Sb={bloc:"Affinitätsblock",gospel_access:"Zugang zum Evangelium",people:"Völker",people_name:"Volk (Name)",praying:"Betend",religion_family:"Religionsfamilie",search_language:"Sprache suchen",search_people:"Volk suchen",search_place:"Ort suchen",search_religion:"Religion suchen",upgs_in_scope:"UPGs im Bereich",countries_touched:"berührte Länder",unreached:"unerreicht",sum_population:"Σ Bevölkerung",sum_praying:"Σ Betende",charts:"Diagramme",table:"Tabelle",cluster:"Cluster",country:"Land",engagement:"Engagement",language:"Sprache",language_family:"Sprachfamilie",people_group:"Volk",population:"Bevölkerung",prayer:"Gebet",region:"Region",religion:"Religion",status:"Status",adopted:"Adoptiert",filters:"Filter",gospel_resources:"Evangeliumsressourcen",map:"Karte",search_placeholder:"Volksgruppen, Orte, Sprachen, Religionen suchen…",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",map_controls:"Kartensteuerung",close:"Schließen",clear:"Zurücksetzen",dashboard_title:"Big-Picture-Forschungsdashboard",align_dashboard:"Layout ausrichten",align_dashboard_tip:"Das Dashboard-Layout auf die Standardausrichtung zurücksetzen",selected:"Ausgewählt",world:"Welt",vertical_legend:"Vertikale Legende",groups_in_scope:"Volksgruppen im Bereich",filter_by:"Filtern nach",remove_filter:"Filter entfernen",groups:"Volksgruppen",expand:"Aufklappen",collapse:"Zuklappen",place:"Ort"},Ab={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Pb={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film",audioScripture:"Audio-Bibeltext",bibleStoriesPlain:"Bibelgeschichten"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"},list:{noText:"Kein Bibeltext",hasScripture:"Hat Bibeltext",allLanguages:"Alle Sprachen",peopleGroup:"Volksgruppe",peopleGroups:"Volksgruppen",scriptureHere:"Bibeltext in dieser Sprache"},columns:{"People group":"Volksgruppe",Country:"Land",Region:"Region",Language:"Sprache",Population:"Bevölkerung",Religion:"Religion","Gospel access":"Zugang zum Evangelium",Resources:"Ressourcen",Scripture:"Bibeltext","Bible video":"Bibelvideo","Gospel presentation":"Evangeliums-Darstellung",Countries:"Länder","People groups":"Volksgruppen"},charts:{scriptureAny:"Bibeltext (beliebig)",fullBible:"Vollbibel",newTestament:"Neues Testament",filmAny:"Film (beliebig)",nothingInPools:"Nichts in den geprüften Quellen gefunden",nothingInPoolsLower:"nichts in den geprüften Quellen gefunden",noResourceInPools:"keine Ressource in den geprüften Quellen gefunden",aResourceFound:"eine Ressource gefunden",tabCoverage:"Ressourcenabdeckung",tabGap:"Größte Lücken",keyScripture:"Bibeltext",keyFilmStories:"Film / Geschichten",keyAudioEtc:"Audio / Präsentation / Schulung",unresolvedCode:"Code außerhalb ISO 639-3 — ungeklärt, nicht gemessen"}},Cb={search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter."},Eb={title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"}},Tb={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},Nb={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Rb={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},Mb={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Fb={"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},Ib={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"},upg100Placeholder:"Volksgruppe, UPG-100-Liste oder Region suchen…"},Ob={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht",mapToken:"Karten-Token",tokenPaste:"Öffentlicher Mapbox-Token (pk.…)",tokenUrlLabel:"…oder die URL eines Token-Dienstes",tokenApply:"Verwenden",tokenClear:"Löschen",tokenStoredHere:"Nur in diesem Browser gespeichert.",tokenSourceYours:"Ihr Token wird verwendet",tokenSourceUrl:"Token von {url} wird verwendet",tokenSourceBuilt:"Der in diese Seite eingebaute Token wird verwendet",tokenSourceNone:"Kein Mapbox-Token: Mapbox-Karten können nicht laden (MapLibre-Karten brauchen keinen)",tokenSecret:"Das ist ein geheimer Token (sk.…). Fügen Sie einen öffentlichen ein (pk.…): Diese Seite ist öffentlich.",tokenNotPk:"Ein öffentlicher Mapbox-Token beginnt mit pk.",tokenUrlFailed:"Von dieser URL kam kein Token: {why}"},Db={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe",selectView:"Ansicht wählen",views:"Ansichten",prayerResources:"Gebetsressourcen",map:"Karte"},Bb={kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},Gb={title:"All People Groups",locations:"{n} group–country locations",doxa:"DOXA people groups",frontier:"Frontier — nothing started",unreached:"Unreached — work beginning",reached:"Reached — church is there",hint:"Click a row to see all of them · click again for everything",loading:"Loading every people group…",loadError:"The map could not be loaded.",pray:"Pray for them →",population:"pop {n}"},jb={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},Ub={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},zb={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",note:"National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification."}},Hb={research_controls:"Research controls",clustering:"Clustering",filters:"Filters",pin_dim:"Pin dim",export_poster:"Export poster…",reload_data:"Reload data",off:"Off",native:"Native",mst:"MST",network:"Network",off_desc:"Show every pin individually",native_desc:"Mapbox circle clusters (fastest)",mst_desc:"Minimum-spanning-tree affinity webs",network_desc:"Nearest-neighbor connection lines",search_languages:"Search languages…",search_religions:"Search religions…",reset_all:"Reset all",no_languages:"No languages loaded yet",no_religions:"No religions loaded yet",unadopted:"Unadopted",min:"min",max:"max",adopted:"Adopted",adoption:"Adoption",engaged:"Engaged",engagement:"Engagement",unengaged:"Unengaged",language:"Language",religion:"Religion",population:"Population",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",close:"Close",clear:"Clear",map_controls:"Research map controls"},Vb={bloc:"Bloc",gospel_access:"Gospel Access",people:"People",people_name:"People (name)",praying:"Praying",religion_family:"Religion Family",search_language:"Search language",search_people:"Search people",search_place:"Search place",search_religion:"Search religion",upgs_in_scope:"UPGs in scope",countries_touched:"countries touched",unreached:"unreached",sum_population:"Σ population",sum_praying:"Σ praying",charts:"Charts",table:"Table",cluster:"Cluster",country:"Country",engagement:"Engagement",language:"Language",language_family:"Language Family",people_group:"People Group",population:"Population",prayer:"Prayer",region:"Region",religion:"Religion",status:"Status",adopted:"Adopted",filters:"Filters",gospel_resources:"Gospel Resources",map:"Map",search_placeholder:"Search people groups, place, language, religion…",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",map_controls:"Research map controls",close:"Close",clear:"Clear",dashboard_title:"Big Picture Research Dashboard",align_dashboard:"Align Dashboard",align_dashboard_tip:"Reset the dashboard layout to its default alignment",selected:"Selected",world:"World",vertical_legend:"Vertical Legend",groups_in_scope:"groups in scope",filter_by:"Filter by",remove_filter:"Remove filter",groups:"groups",expand:"Expand",collapse:"Collapse",place:"Place"},Kb={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},qb={_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film",audioScripture:"Audio Scripture",bibleStoriesPlain:"Bible Stories"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"},list:{noText:"No text Scripture",hasScripture:"Has scripture",allLanguages:"All languages",peopleGroup:"people group",peopleGroups:"people groups",scriptureHere:"Scripture in this language"},columns:{"People group":"People group",Country:"Country",Region:"Region",Language:"Language",Population:"Population",Religion:"Religion","Gospel access":"Gospel access",Resources:"Resources",Scripture:"Scripture","Bible video":"Bible video","Gospel presentation":"Gospel presentation",Countries:"Countries","People groups":"People groups"},charts:{scriptureAny:"Scripture (any)",fullBible:"Full Bible",newTestament:"New Testament",filmAny:"Film (any)",nothingInPools:"Nothing found in pools checked",nothingInPoolsLower:"nothing found in pools checked",noResourceInPools:"no resource found in pools checked",aResourceFound:"a resource found",tabCoverage:"Resource coverage",tabGap:"Largest gaps",keyScripture:"scripture",keyFilmStories:"film / stories",keyAudioEtc:"audio / presentation / training",unresolvedCode:"code outside ISO 639-3 — unresolved, not measured"}},Wb={search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load More",full_profile:"Full Profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter."},Yb={title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"}},Xb={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them by their people group name."},Zb={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Jb={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Qb={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},e$={"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},t$={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"},upg100Placeholder:"Search people group, UPG-100 list, or region…"},o$={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own",mapToken:"Map token",tokenPaste:"Mapbox public token (pk.…)",tokenUrlLabel:"…or the URL of a token service",tokenApply:"Use",tokenClear:"Clear",tokenStoredHere:"Kept in this browser only.",tokenSourceYours:"Using your token",tokenSourceUrl:"Using a token from {url}",tokenSourceBuilt:"Using the token built into this page",tokenSourceNone:"No Mapbox token: Mapbox maps cannot load (MapLibre maps need none)",tokenSecret:"That is a secret token (sk.…). Paste a public one (pk.…): this page is public.",tokenNotPk:"A Mapbox public token starts with pk.",tokenUrlFailed:"Could not get a token from that URL: {why}"},n$={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group",selectView:"Select View",views:"Views",prayerResources:"Prayer Resources",map:"Map"},a$={kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},s$={title:"Todos los grupos étnicos",locations:"{n} ubicaciones (grupo × país)",doxa:"Grupos étnicos de DOXA",frontier:"Frontera — nada iniciado",unreached:"No alcanzados — el trabajo comienza",reached:"Alcanzados — la iglesia está ahí",hint:"Haga clic en una fila para verlos todos · de nuevo para ver todo",loading:"Cargando todos los grupos étnicos…",loadError:"No se pudo cargar el mapa.",pray:"Ore por ellos →",population:"pobl. {n}"},r$={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},i$={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},l$={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},c$={research_controls:"Controles de investigación",clustering:"Agrupación",filters:"Filtros",pin_dim:"Atenuar puntos",export_poster:"Exportar póster…",reload_data:"Recargar datos",off:"Desactivado",native:"Nativo",mst:"MST",network:"Red",off_desc:"Mostrar cada punto por separado",native_desc:"Grupos circulares de Mapbox (lo más rápido)",mst_desc:"Redes de afinidad por árbol de expansión mínima",network_desc:"Líneas de conexión al vecino más cercano",search_languages:"Buscar idiomas…",search_religions:"Buscar religiones…",reset_all:"Restablecer todo",no_languages:"Aún no se han cargado idiomas",no_religions:"Aún no se han cargado religiones",unadopted:"No adoptado",min:"mín",max:"máx",adopted:"Adoptado",adoption:"Adopción",engaged:"Comprometido",engagement:"Compromiso",unengaged:"Necesita implicación",language:"Idioma",religion:"Religión",population:"Población",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",close:"Cerrar",clear:"Borrar",map_controls:"Controles del mapa"},u$={bloc:"Bloque de afinidad",gospel_access:"Acceso al evangelio",people:"Pueblos",people_name:"Pueblo (nombre)",praying:"Orando",religion_family:"Familia religiosa",search_language:"Buscar idioma",search_people:"Buscar pueblo",search_place:"Buscar lugar",search_religion:"Buscar religión",upgs_in_scope:"UPG en el ámbito",countries_touched:"países alcanzados",unreached:"no alcanzados",sum_population:"Σ población",sum_praying:"Σ orando",charts:"Gráficos",table:"Tabla",cluster:"Clúster",country:"País",engagement:"Compromiso",language:"Idioma",language_family:"Familia lingüística",people_group:"Pueblo",population:"Población",prayer:"Oración",region:"Región",religion:"Religión",status:"Estado",adopted:"Adoptado",filters:"Filtros",gospel_resources:"Recursos del Evangelio",map:"Mapa",search_placeholder:"Buscar pueblos, lugares, idiomas, religiones…",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",map_controls:"Controles del mapa",close:"Cerrar",clear:"Borrar",dashboard_title:"Panel de investigación general",align_dashboard:"Alinear panel",align_dashboard_tip:"Restablecer la disposición del panel a su alineación predeterminada",selected:"Seleccionado",world:"Mundo",vertical_legend:"Leyenda vertical",groups_in_scope:"pueblos en el ámbito",filter_by:"Filtrar por",remove_filter:"Quitar filtro",groups:"pueblos",expand:"Expandir",collapse:"Contraer",place:"Lugar"},p$={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},d$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS",audioScripture:"Escrituras en audio",bibleStoriesPlain:"Historias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"},list:{noText:"Sin texto bíblico",hasScripture:"Tiene Escrituras",allLanguages:"Todos los idiomas",peopleGroup:"pueblo",peopleGroups:"pueblos",scriptureHere:"Escrituras en este idioma"},columns:{"People group":"Pueblo",Country:"País",Region:"Región",Language:"Idioma",Population:"Población",Religion:"Religión","Gospel access":"Acceso al evangelio",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Video bíblico","Gospel presentation":"Presentación del evangelio",Countries:"Países","People groups":"Pueblos"},charts:{scriptureAny:"Escrituras (cualquiera)",fullBible:"Biblia completa",newTestament:"Nuevo Testamento",filmAny:"Película (cualquiera)",nothingInPools:"No se encontró nada en las fuentes consultadas",nothingInPoolsLower:"no se encontró nada en las fuentes consultadas",noResourceInPools:"no se encontró ningún recurso en las fuentes consultadas",aResourceFound:"se encontró un recurso",tabCoverage:"Cobertura de recursos",tabGap:"Mayores brechas",keyScripture:"escrituras",keyFilmStories:"película / historias",keyAudioEtc:"audio / presentación / formación",unresolvedCode:"código fuera de ISO 639-3 — sin resolver, no medido"}},g$={search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro."},f$={title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"}},h$={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo."},m$={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},b$={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},$$={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},y$={"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},_$={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"},upg100Placeholder:"Buscar pueblo, lista UPG-100 o región…"},v$={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado",mapToken:"Token del mapa",tokenPaste:"Token público de Mapbox (pk.…)",tokenUrlLabel:"…o la URL de un servicio de tokens",tokenApply:"Usar",tokenClear:"Borrar",tokenStoredHere:"Se guarda solo en este navegador.",tokenSourceYours:"Usando tu token",tokenSourceUrl:"Usando un token de {url}",tokenSourceBuilt:"Usando el token integrado en esta página",tokenSourceNone:"Sin token de Mapbox: los mapas de Mapbox no cargan (los de MapLibre no lo necesitan)",tokenSecret:"Ese es un token secreto (sk.…). Pega uno público (pk.…): esta página es pública.",tokenNotPk:"Un token público de Mapbox empieza por pk.",tokenUrlFailed:"No se pudo obtener un token de esa URL: {why}"},k$={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Seleccionar vista",views:"Vistas",prayerResources:"Recursos de oración",map:"Mapa"},w$={kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},x$={title:"Tous les groupes ethniques",locations:"{n} emplacements (groupe × pays)",doxa:"Groupes ethniques DOXA",frontier:"Frontière — rien n’a commencé",unreached:"Non atteints — le travail commence",reached:"Atteints — l’Église est là",hint:"Cliquez sur une ligne pour les voir tous · recliquez pour tout voir",loading:"Chargement de tous les groupes ethniques…",loadError:"La carte n’a pas pu être chargée.",pray:"Priez pour eux →",population:"pop. {n}"},L$={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende"},S$={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},A$={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},P$={research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},C$={bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu"},E$={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},T$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS",audioScripture:"Écritures en audio",bibleStoriesPlain:"Histoires bibliques"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"},list:{noText:"Pas de texte biblique",hasScripture:"A les Écritures",allLanguages:"Toutes les langues",peopleGroup:"peuple",peopleGroups:"peuples",scriptureHere:"Écritures dans cette langue"},columns:{"People group":"Peuple",Country:"Pays",Region:"Région",Language:"Langue",Population:"Population",Religion:"Religion","Gospel access":"Accès à l'Évangile",Resources:"Ressources",Scripture:"Écritures","Bible video":"Vidéo biblique","Gospel presentation":"Présentation de l'Évangile",Countries:"Pays","People groups":"Peuples"},charts:{scriptureAny:"Écritures (toutes)",fullBible:"Bible complète",newTestament:"Nouveau Testament",filmAny:"Film (tous)",nothingInPools:"Rien trouvé dans les sources consultées",nothingInPoolsLower:"rien trouvé dans les sources consultées",noResourceInPools:"aucune ressource trouvée dans les sources consultées",aResourceFound:"une ressource trouvée",tabCoverage:"Couverture des ressources",tabGap:"Plus grands écarts",keyScripture:"écritures",keyFilmStories:"film / histoires",keyAudioEtc:"audio / présentation / formation",unresolvedCode:"code hors ISO 639-3 — non résolu, non mesuré"}},N$={search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre."},R$={title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"}},M$={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple."},F$={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},I$={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},O$={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},D$={"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},B$={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"},upg100Placeholder:"Rechercher un peuple, une liste UPG-100 ou une région…"},G$={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule",mapToken:"Jeton de carte",tokenPaste:"Jeton public Mapbox (pk.…)",tokenUrlLabel:"…ou l’URL d’un service de jetons",tokenApply:"Utiliser",tokenClear:"Effacer",tokenStoredHere:"Conservé dans ce navigateur uniquement.",tokenSourceYours:"Votre jeton est utilisé",tokenSourceUrl:"Jeton obtenu de {url}",tokenSourceBuilt:"Jeton intégré à cette page",tokenSourceNone:"Aucun jeton Mapbox : les cartes Mapbox ne peuvent pas charger (MapLibre n’en a pas besoin)",tokenSecret:"C’est un jeton secret (sk.…). Collez un jeton public (pk.…) : cette page est publique.",tokenNotPk:"Un jeton public Mapbox commence par pk.",tokenUrlFailed:"Impossible d’obtenir un jeton depuis cette URL : {why}"},j$={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples",selectView:"Choisir la vue",views:"Vues",prayerResources:"Ressources de prière",map:"Carte"},U$={kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},z$={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},H$={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},V$={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},K$={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},q$={research_controls:"शोध नियंत्रण",clustering:"क्लस्टरिंग",filters:"फ़िल्टर",pin_dim:"पिन धुंधलापन",export_poster:"पोस्टर निर्यात करें…",reload_data:"डेटा फिर से लोड करें",off:"बंद",native:"नेटिव",mst:"MST",network:"नेटवर्क",off_desc:"हर पिन अलग-अलग दिखाएँ",native_desc:"Mapbox वृत्त क्लस्टर (सबसे तेज़)",mst_desc:"न्यूनतम स्पैनिंग ट्री आधारित जाल",network_desc:"निकटतम पड़ोसी को जोड़ने वाली रेखाएँ",search_languages:"भाषाएँ खोजें…",search_religions:"धर्म खोजें…",reset_all:"सब रीसेट करें",no_languages:"अभी कोई भाषा लोड नहीं हुई",no_religions:"अभी कोई धर्म लोड नहीं हुआ",unadopted:"अ-गोद लिया",min:"न्यून",max:"अधि",adopted:"गोद लिया गया",adoption:"गोद लेना",engaged:"संपर्कित",engagement:"सहभागिता",unengaged:"सहभागिता चाहिए",language:"भाषा",religion:"धर्म",population:"जनसंख्या",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",close:"बंद करें",clear:"साफ़ करें",map_controls:"मानचित्र नियंत्रण"},W$={bloc:"समानता समूह",gospel_access:"सुसमाचार पहुँच",people:"जनसमूह",people_name:"जनसमूह (नाम)",praying:"प्रार्थना कर रहे",religion_family:"धर्म परिवार",search_language:"भाषा खोजें",search_people:"जनसमूह खोजें",search_place:"स्थान खोजें",search_religion:"धर्म खोजें",upgs_in_scope:"दायरे में UPG",countries_touched:"छुए गए देश",unreached:"अनपहुँचे",sum_population:"Σ जनसंख्या",sum_praying:"Σ प्रार्थना",charts:"चार्ट",table:"तालिका",cluster:"क्लस्टर",country:"देश",engagement:"सहभागिता",language:"भाषा",language_family:"भाषा परिवार",people_group:"जनसमूह",population:"जनसंख्या",prayer:"प्रार्थना",region:"क्षेत्र",religion:"धर्म",status:"स्थिति",adopted:"गोद लिया गया",filters:"फ़िल्टर",gospel_resources:"सुसमाचार संसाधन",map:"नक्शा",search_placeholder:"जनसमूह, स्थान, भाषा, धर्म खोजें…",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",map_controls:"मानचित्र नियंत्रण",close:"बंद करें",clear:"साफ़ करें",dashboard_title:"बिग पिक्चर शोध डैशबोर्ड",align_dashboard:"डैशबोर्ड संरेखित करें",align_dashboard_tip:"डैशबोर्ड लेआउट को डिफ़ॉल्ट संरेखण पर लौटाएँ",selected:"चयनित",world:"विश्व",vertical_legend:"लंबवत लेजेंड",groups_in_scope:"दायरे में जनसमूह",filter_by:"इससे फ़िल्टर करें",remove_filter:"फ़िल्टर हटाएँ",groups:"जनसमूह",expand:"विस्तार करें",collapse:"संक्षिप्त करें",place:"स्थान"},Y$={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},X$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म",audioScripture:"ऑडियो पवित्र शास्त्र",bibleStoriesPlain:"बाइबल की कहानियाँ"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"},list:{noText:"कोई लिखित शास्त्र नहीं",hasScripture:"शास्त्र उपलब्ध",allLanguages:"सभी भाषाएँ",peopleGroup:"जनसमूह",peopleGroups:"जनसमूह",scriptureHere:"इस भाषा में पवित्र शास्त्र"},columns:{"People group":"जनसमूह",Country:"देश",Region:"क्षेत्र",Language:"भाषा",Population:"जनसंख्या",Religion:"धर्म","Gospel access":"सुसमाचार पहुँच",Resources:"संसाधन",Scripture:"पवित्र शास्त्र","Bible video":"बाइबल वीडियो","Gospel presentation":"सुसमाचार प्रस्तुति",Countries:"देश","People groups":"जनसमूह"},charts:{scriptureAny:"पवित्र शास्त्र (कोई भी)",fullBible:"पूरी बाइबल",newTestament:"नया नियम",filmAny:"फ़िल्म (कोई भी)",nothingInPools:"जाँचे गए स्रोतों में कुछ नहीं मिला",nothingInPoolsLower:"जाँचे गए स्रोतों में कुछ नहीं मिला",noResourceInPools:"जाँचे गए स्रोतों में कोई संसाधन नहीं मिला",aResourceFound:"एक संसाधन मिला",tabCoverage:"संसाधन कवरेज",tabGap:"सबसे बड़े अंतराल",keyScripture:"पवित्र शास्त्र",keyFilmStories:"फ़िल्म / कहानियाँ",keyAudioEtc:"ऑडियो / प्रस्तुति / प्रशिक्षण",unresolvedCode:"ISO 639-3 से बाहर कोड — अनसुलझा, मापा नहीं गया"}},Z$={search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},J$={title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"}},Q$={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},ey={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},ty={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},oy={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},ny={"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},ay={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"},upg100Placeholder:"जनसमूह, UPG-100 सूची या क्षेत्र खोजें…"},sy={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं",mapToken:"मानचित्र टोकन",tokenPaste:"Mapbox सार्वजनिक टोकन (pk.…)",tokenUrlLabel:"…या किसी टोकन सेवा का URL",tokenApply:"उपयोग करें",tokenClear:"साफ़ करें",tokenStoredHere:"केवल इसी ब्राउज़र में रखा जाता है।",tokenSourceYours:"आपका टोकन उपयोग हो रहा है",tokenSourceUrl:"{url} से टोकन उपयोग हो रहा है",tokenSourceBuilt:"इस पेज में बना टोकन उपयोग हो रहा है",tokenSourceNone:"कोई Mapbox टोकन नहीं: Mapbox मानचित्र लोड नहीं हो सकते (MapLibre को इसकी ज़रूरत नहीं)",tokenSecret:"यह एक गुप्त टोकन है (sk.…)। सार्वजनिक टोकन (pk.…) चिपकाएँ: यह पेज सार्वजनिक है।",tokenNotPk:"Mapbox सार्वजनिक टोकन pk. से शुरू होता है",tokenUrlFailed:"उस URL से टोकन नहीं मिल सका: {why}"},ry={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह",selectView:"दृश्य चुनें",views:"दृश्य",prayerResources:"प्रार्थना संसाधन",map:"मानचित्र"},iy={kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},ly={title:"Tutti i gruppi etnici",locations:"{n} località (gruppo × paese)",doxa:"Gruppi etnici DOXA",frontier:"Frontiera — non è iniziato nulla",unreached:"Non raggiunti — il lavoro inizia",reached:"Raggiunti — la chiesa c’è",hint:"Fai clic su una riga per vederli tutti · di nuovo per vedere tutto",loading:"Caricamento di tutti i gruppi etnici…",loadError:"Impossibile caricare la mappa.",pray:"Prega per loro →",population:"pop. {n}"},cy={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},uy={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},py={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},dy={research_controls:"Controlli di ricerca",clustering:"Raggruppamento",filters:"Filtri",pin_dim:"Opacità dei punti",export_poster:"Esporta poster…",reload_data:"Ricarica i dati",off:"Disattivato",native:"Nativo",mst:"MST",network:"Rete",off_desc:"Mostra ogni punto singolarmente",native_desc:"Cluster circolari Mapbox (il più veloce)",mst_desc:"Reti di affinità ad albero ricoprente minimo",network_desc:"Linee verso il vicino più prossimo",search_languages:"Cerca lingue…",search_religions:"Cerca religioni…",reset_all:"Reimposta tutto",no_languages:"Nessuna lingua ancora caricata",no_religions:"Nessuna religione ancora caricata",unadopted:"Non adottato",min:"min",max:"max",adopted:"Adottato",adoption:"Adozione",engaged:"Coinvolto",engagement:"Impegno",unengaged:"Necessita impegno",language:"Lingua",religion:"Religione",population:"Popolazione",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",close:"Chiudi",clear:"Cancella",map_controls:"Controlli della mappa"},gy={bloc:"Blocco di affinità",gospel_access:"Accesso al vangelo",people:"Popoli",people_name:"Popolo (nome)",praying:"In preghiera",religion_family:"Famiglia religiosa",search_language:"Cerca lingua",search_people:"Cerca popolo",search_place:"Cerca luogo",search_religion:"Cerca religione",upgs_in_scope:"UPG nell’ambito",countries_touched:"paesi toccati",unreached:"non raggiunti",sum_population:"Σ popolazione",sum_praying:"Σ in preghiera",charts:"Grafici",table:"Tabella",cluster:"Cluster",country:"Paese",engagement:"Impegno",language:"Lingua",language_family:"Famiglia linguistica",people_group:"Popolo",population:"Popolazione",prayer:"Preghiera",region:"Regione",religion:"Religione",status:"Stato",adopted:"Adottato",filters:"Filtri",gospel_resources:"Risorse del Vangelo",map:"Mappa",search_placeholder:"Cerca popoli, luoghi, lingue, religioni…",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",map_controls:"Controlli della mappa",close:"Chiudi",clear:"Cancella",dashboard_title:"Cruscotto di ricerca generale",align_dashboard:"Allinea cruscotto",align_dashboard_tip:"Ripristina la disposizione predefinita del cruscotto",selected:"Selezionato",world:"Mondo",vertical_legend:"Legenda verticale",groups_in_scope:"popoli nell’ambito",filter_by:"Filtra per",remove_filter:"Rimuovi filtro",groups:"popoli",expand:"Espandi",collapse:"Comprimi",place:"Luogo"},fy={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},hy={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ",audioScripture:"Scritture in audio",bibleStoriesPlain:"Storie bibliche"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"},list:{noText:"Nessun testo biblico",hasScripture:"Ha le Scritture",allLanguages:"Tutte le lingue",peopleGroup:"popolo",peopleGroups:"popoli",scriptureHere:"Scritture in questa lingua"},columns:{"People group":"Popolo",Country:"Paese",Region:"Regione",Language:"Lingua",Population:"Popolazione",Religion:"Religione","Gospel access":"Accesso al Vangelo",Resources:"Risorse",Scripture:"Scritture","Bible video":"Video biblico","Gospel presentation":"Presentazione del Vangelo",Countries:"Paesi","People groups":"Popoli"},charts:{scriptureAny:"Scritture (qualsiasi)",fullBible:"Bibbia completa",newTestament:"Nuovo Testamento",filmAny:"Film (qualsiasi)",nothingInPools:"Nulla trovato nelle fonti controllate",nothingInPoolsLower:"nulla trovato nelle fonti controllate",noResourceInPools:"nessuna risorsa trovata nelle fonti controllate",aResourceFound:"una risorsa trovata",tabCoverage:"Copertura delle risorse",tabGap:"Lacune maggiori",keyScripture:"scritture",keyFilmStories:"film / storie",keyAudioEtc:"audio / presentazione / formazione",unresolvedCode:"codice fuori ISO 639-3 — non risolto, non misurato"}},my={search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro."},by={title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"}},$y={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo."},yy={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},_y={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},vy={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},ky={"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},wy={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"},upg100Placeholder:"Cerca popolo, elenco UPG-100 o regione…"},xy={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola",mapToken:"Token mappa",tokenPaste:"Token pubblico Mapbox (pk.…)",tokenUrlLabel:"…o l’URL di un servizio di token",tokenApply:"Usa",tokenClear:"Cancella",tokenStoredHere:"Conservato solo in questo browser.",tokenSourceYours:"Uso il tuo token",tokenSourceUrl:"Uso un token da {url}",tokenSourceBuilt:"Uso il token integrato in questa pagina",tokenSourceNone:"Nessun token Mapbox: le mappe Mapbox non si caricano (MapLibre non ne ha bisogno)",tokenSecret:"Questo è un token segreto (sk.…). Incolla un token pubblico (pk.…): questa pagina è pubblica.",tokenNotPk:"Un token pubblico Mapbox inizia con pk.",tokenUrlFailed:"Impossibile ottenere un token da quell’URL: {why}"},Ly={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico",selectView:"Seleziona vista",views:"Viste",prayerResources:"Risorse di preghiera",map:"Mappa"},Sy={kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},Ay={title:"Todos os grupos étnicos",locations:"{n} locais (grupo × país)",doxa:"Grupos étnicos da DOXA",frontier:"Fronteira — nada iniciado",unreached:"Não alcançados — o trabalho começa",reached:"Alcançados — a igreja está lá",hint:"Clique em uma linha para ver todos · clique de novo para ver tudo",loading:"Carregando todos os grupos étnicos…",loadError:"Não foi possível carregar o mapa.",pray:"Ore por eles →",population:"pop. {n}"},Py={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},Cy={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},Ey={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},Ty={research_controls:"Controlos de pesquisa",clustering:"Agrupamento",filters:"Filtros",pin_dim:"Esbater pontos",export_poster:"Exportar cartaz…",reload_data:"Recarregar dados",off:"Desligado",native:"Nativo",mst:"MST",network:"Rede",off_desc:"Mostrar cada ponto individualmente",native_desc:"Grupos circulares Mapbox (mais rápido)",mst_desc:"Redes de afinidade por árvore geradora mínima",network_desc:"Linhas para o vizinho mais próximo",search_languages:"Pesquisar idiomas…",search_religions:"Pesquisar religiões…",reset_all:"Repor tudo",no_languages:"Ainda não há idiomas carregados",no_religions:"Ainda não há religiões carregadas",unadopted:"Não adotado",min:"mín",max:"máx",adopted:"Adotado",adoption:"Adoção",engaged:"Engajado",engagement:"Engajamento",unengaged:"Precisa de envolvimento",language:"Idioma",religion:"Religião",population:"População",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",close:"Fechar",clear:"Limpar",map_controls:"Controlos do mapa"},Ny={bloc:"Bloco de afinidade",gospel_access:"Acesso ao evangelho",people:"Povos",people_name:"Povo (nome)",praying:"A orar",religion_family:"Família religiosa",search_language:"Pesquisar idioma",search_people:"Pesquisar povo",search_place:"Pesquisar lugar",search_religion:"Pesquisar religião",upgs_in_scope:"UPG no âmbito",countries_touched:"países alcançados",unreached:"não alcançados",sum_population:"Σ população",sum_praying:"Σ a orar",charts:"Gráficos",table:"Tabela",cluster:"Agrupamento",country:"País",engagement:"Engajamento",language:"Idioma",language_family:"Família linguística",people_group:"Povo",population:"População",prayer:"Oração",region:"Região",religion:"Religião",status:"Status",adopted:"Adotado",filters:"Filtros",gospel_resources:"Recursos do Evangelho",map:"Mapa",search_placeholder:"Pesquisar povos, lugares, idiomas, religiões…",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",map_controls:"Controlos do mapa",close:"Fechar",clear:"Limpar",dashboard_title:"Painel de pesquisa geral",align_dashboard:"Alinhar painel",align_dashboard_tip:"Repor a disposição do painel para o alinhamento predefinido",selected:"Selecionado",world:"Mundo",vertical_legend:"Legenda vertical",groups_in_scope:"povos no âmbito",filter_by:"Filtrar por",remove_filter:"Remover filtro",groups:"povos",expand:"Expandir",collapse:"Recolher",place:"Lugar"},Ry={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},My={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS",audioScripture:"Escrituras em áudio",bibleStoriesPlain:"Histórias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"},list:{noText:"Sem texto bíblico",hasScripture:"Tem Escrituras",allLanguages:"Todos os idiomas",peopleGroup:"povo",peopleGroups:"povos",scriptureHere:"Escrituras neste idioma"},columns:{"People group":"Povo",Country:"País",Region:"Região",Language:"Idioma",Population:"População",Religion:"Religião","Gospel access":"Acesso ao evangelho",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Vídeo bíblico","Gospel presentation":"Apresentação do evangelho",Countries:"Países","People groups":"Povos"},charts:{scriptureAny:"Escrituras (qualquer)",fullBible:"Bíblia completa",newTestament:"Novo Testamento",filmAny:"Filme (qualquer)",nothingInPools:"Nada encontrado nas fontes consultadas",nothingInPoolsLower:"nada encontrado nas fontes consultadas",noResourceInPools:"nenhum recurso encontrado nas fontes consultadas",aResourceFound:"um recurso encontrado",tabCoverage:"Cobertura de recursos",tabGap:"Maiores lacunas",keyScripture:"escrituras",keyFilmStories:"filme / histórias",keyAudioEtc:"áudio / apresentação / treinamento",unresolvedCode:"código fora da ISO 639-3 — não resolvido, não medido"}},Fy={search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro."},Iy={title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"}},Oy={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo."},Dy={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},By={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},Gy={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},jy={"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},Uy={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"},upg100Placeholder:"Procurar povo, lista UPG-100 ou região…"},zy={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente",mapToken:"Token do mapa",tokenPaste:"Token público do Mapbox (pk.…)",tokenUrlLabel:"…ou o URL de um serviço de tokens",tokenApply:"Usar",tokenClear:"Limpar",tokenStoredHere:"Guardado apenas neste navegador.",tokenSourceYours:"A usar o seu token",tokenSourceUrl:"A usar um token de {url}",tokenSourceBuilt:"A usar o token incorporado nesta página",tokenSourceNone:"Sem token do Mapbox: os mapas Mapbox não carregam (os MapLibre não precisam)",tokenSecret:"Esse é um token secreto (sk.…). Cole um público (pk.…): esta página é pública.",tokenNotPk:"Um token público do Mapbox começa por pk.",tokenUrlFailed:"Não foi possível obter um token desse URL: {why}"},Hy={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Selecionar vista",views:"Vistas",prayerResources:"Recursos de oração",map:"Mapa"},Vy={kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},Ky={title:"Toate grupurile etnice",locations:"{n} locații (grup × țară)",doxa:"Grupuri etnice DOXA",frontier:"Frontieră — nimic început",unreached:"Neatinse — lucrarea începe",reached:"Atinse — biserica este acolo",hint:"Faceți clic pe un rând pentru a le vedea pe toate · din nou pentru tot",loading:"Se încarcă toate grupurile etnice…",loadError:"Harta nu a putut fi încărcată.",pray:"Rugați-vă pentru ei →",population:"pop. {n}"},qy={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},Wy={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},Yy={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},Xy={research_controls:"Comenzi de cercetare",clustering:"Grupare",filters:"Filtre",pin_dim:"Estompare puncte",export_poster:"Exportă posterul…",reload_data:"Reîncarcă datele",off:"Oprit",native:"Nativ",mst:"MST",network:"Rețea",off_desc:"Arată fiecare punct separat",native_desc:"Grupuri circulare Mapbox (cel mai rapid)",mst_desc:"Rețele de afinitate prin arbore minim de acoperire",network_desc:"Linii către cel mai apropiat vecin",search_languages:"Caută limbi…",search_religions:"Caută religii…",reset_all:"Resetează tot",no_languages:"Nicio limbă încărcată încă",no_religions:"Nicio religie încărcată încă",unadopted:"Neadoptat",min:"min",max:"max",adopted:"Adoptat",adoption:"Adopție",engaged:"Implicat",engagement:"Implicare",unengaged:"Necesită implicare",language:"Limbă",religion:"Religie",population:"Populație",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",close:"Închide",clear:"Șterge",map_controls:"Comenzile hărții"},Zy={bloc:"Bloc de afinitate",gospel_access:"Acces la Evanghelie",people:"Popoare",people_name:"Popor (nume)",praying:"Se roagă",religion_family:"Familie religioasă",search_language:"Caută limbă",search_people:"Caută popor",search_place:"Caută loc",search_religion:"Caută religie",upgs_in_scope:"UPG în domeniu",countries_touched:"țări atinse",unreached:"neatinși",sum_population:"Σ populație",sum_praying:"Σ se roagă",charts:"Grafice",table:"Tabel",cluster:"Grup",country:"Țară",engagement:"Implicare",language:"Limbă",language_family:"Familie de limbi",people_group:"Popor",population:"Populație",prayer:"Rugăciune",region:"Regiune",religion:"Religie",status:"Stare",adopted:"Adoptat",filters:"Filtre",gospel_resources:"Resurse ale Evangheliei",map:"Hartă",search_placeholder:"Caută popoare, locuri, limbi, religii…",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",map_controls:"Comenzile hărții",close:"Închide",clear:"Șterge",dashboard_title:"Tablou de bord de cercetare general",align_dashboard:"Aliniază tabloul",align_dashboard_tip:"Readu aranjarea tabloului la alinierea implicită",selected:"Selectat",world:"Lume",vertical_legend:"Legendă verticală",groups_in_scope:"popoare în domeniu",filter_by:"Filtrează după",remove_filter:"Elimină filtrul",groups:"popoare",expand:"Extinde",collapse:"Restrânge",place:"Loc"},Jy={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},Qy={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS",audioScripture:"Scripturi audio",bibleStoriesPlain:"Povestiri biblice"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"},list:{noText:"Fără text biblic",hasScripture:"Are Scripturi",allLanguages:"Toate limbile",peopleGroup:"popor",peopleGroups:"popoare",scriptureHere:"Scripturi în această limbă"},columns:{"People group":"Popor",Country:"Țară",Region:"Regiune",Language:"Limbă",Population:"Populație",Religion:"Religie","Gospel access":"Acces la Evanghelie",Resources:"Resurse",Scripture:"Scripturi","Bible video":"Video biblic","Gospel presentation":"Prezentarea Evangheliei",Countries:"Țări","People groups":"Popoare"},charts:{scriptureAny:"Scripturi (oricare)",fullBible:"Biblia completă",newTestament:"Noul Testament",filmAny:"Film (oricare)",nothingInPools:"Nimic găsit în sursele verificate",nothingInPoolsLower:"nimic găsit în sursele verificate",noResourceInPools:"nicio resursă găsită în sursele verificate",aResourceFound:"o resursă găsită",tabCoverage:"Acoperirea resurselor",tabGap:"Cele mai mari lacune",keyScripture:"scripturi",keyFilmStories:"film / povestiri",keyAudioEtc:"audio / prezentare / instruire",unresolvedCode:"cod în afara ISO 639-3 — nerezolvat, nemăsurat"}},e_={search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului."},t_={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"}},o_={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor."},n_={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},a_={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},s_={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},r_={"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},i_={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"},upg100Placeholder:"Caută popor, listă UPG-100 sau regiune…"},l_={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat",mapToken:"Token hartă",tokenPaste:"Token public Mapbox (pk.…)",tokenUrlLabel:"…sau adresa URL a unui serviciu de tokenuri",tokenApply:"Folosește",tokenClear:"Șterge",tokenStoredHere:"Păstrat doar în acest browser.",tokenSourceYours:"Se folosește tokenul tău",tokenSourceUrl:"Se folosește un token de la {url}",tokenSourceBuilt:"Se folosește tokenul inclus în această pagină",tokenSourceNone:"Niciun token Mapbox: hărțile Mapbox nu se pot încărca (MapLibre nu are nevoie)",tokenSecret:"Acesta este un token secret (sk.…). Lipește unul public (pk.…): pagina este publică.",tokenNotPk:"Un token public Mapbox începe cu pk.",tokenUrlFailed:"Nu s-a putut obține un token de la acea adresă: {why}"},c_={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic",selectView:"Alege vizualizarea",views:"Vizualizări",prayerResources:"Resurse de rugăciune",map:"Hartă"},u_={kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},p_={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},d_={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},g_={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},f_={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},h_={research_controls:"Инструменты исследования",clustering:"Кластеризация",filters:"Фильтры",pin_dim:"Прозрачность точек",export_poster:"Экспорт постера…",reload_data:"Обновить данные",off:"Выкл.",native:"Встроенная",mst:"MST",network:"Сеть",off_desc:"Показывать каждую точку отдельно",native_desc:"Круговые кластеры Mapbox (быстрее всего)",mst_desc:"Сети родства по минимальному остовному дереву",network_desc:"Линии до ближайшего соседа",search_languages:"Поиск языков…",search_religions:"Поиск религий…",reset_all:"Сбросить всё",no_languages:"Языки ещё не загружены",no_religions:"Религии ещё не загружены",unadopted:"Не усыновлён",min:"мин",max:"макс",adopted:"Ответственность взята",adoption:"Усыновление",engaged:"Вовлечён",engagement:"Вовлечённость",unengaged:"Нуждается в вовлечённости",language:"Язык",religion:"Религия",population:"Население",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",close:"Закрыть",clear:"Очистить",map_controls:"Элементы управления картой"},m_={bloc:"Блок родства",gospel_access:"Доступ к Евангелию",people:"Народы",people_name:"Народ (название)",praying:"Молятся",religion_family:"Семья религий",search_language:"Поиск языка",search_people:"Поиск народа",search_place:"Поиск места",search_religion:"Поиск религии",upgs_in_scope:"UPG в выборке",countries_touched:"затронутых стран",unreached:"неохваченные",sum_population:"Σ население",sum_praying:"Σ молящихся",charts:"Графики",table:"Таблица",cluster:"Кластер",country:"Страна",engagement:"Вовлечённость",language:"Язык",language_family:"Языковая семья",people_group:"Народ",population:"Население",prayer:"Молитва",region:"Регион",religion:"Религия",status:"Статус",adopted:"Ответственность взята",filters:"Фильтры",gospel_resources:"Евангельские ресурсы",map:"Карта",search_placeholder:"Поиск народов, мест, языков, религий…",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",map_controls:"Элементы управления картой",close:"Закрыть",clear:"Очистить",dashboard_title:"Обзорная исследовательская панель",align_dashboard:"Выровнять панель",align_dashboard_tip:"Вернуть расположение панели к виду по умолчанию",selected:"Выбрано",world:"Мир",vertical_legend:"Вертикальная легенда",groups_in_scope:"народов в выборке",filter_by:"Фильтровать по",remove_filter:"Убрать фильтр",groups:"народов",expand:"Развернуть",collapse:"Свернуть",place:"Место"},b_={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},$_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»",audioScripture:"Аудио с Писанием",bibleStoriesPlain:"Библейские истории"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"},list:{noText:"Нет текста Писания",hasScripture:"Есть Писание",allLanguages:"Все языки",peopleGroup:"народ",peopleGroups:"народов",scriptureHere:"Писание на этом языке"},columns:{"People group":"Народ",Country:"Страна",Region:"Регион",Language:"Язык",Population:"Численность",Religion:"Религия","Gospel access":"Доступ к Евангелию",Resources:"Ресурсы",Scripture:"Писание","Bible video":"Библейское видео","Gospel presentation":"Изложение Евангелия",Countries:"Страны","People groups":"Народы"},charts:{scriptureAny:"Писание (любое)",fullBible:"Полная Библия",newTestament:"Новый Завет",filmAny:"Фильм (любой)",nothingInPools:"Ничего не найдено в проверенных источниках",nothingInPoolsLower:"ничего не найдено в проверенных источниках",noResourceInPools:"ни одного ресурса не найдено в проверенных источниках",aResourceFound:"ресурс найден",tabCoverage:"Охват ресурсами",tabGap:"Наибольшие пробелы",keyScripture:"писание",keyFilmStories:"фильм / истории",keyAudioEtc:"аудио / презентация / обучение",unresolvedCode:"код вне ISO 639-3 — не определён, не измерен"}},y_={search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},__={title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"}},v_={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},k_={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},w_={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},x_={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},L_={"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},S_={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"},upg100Placeholder:"Поиск народа, списка UPG-100 или региона…"},A_={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно",mapToken:"Токен карты",tokenPaste:"Публичный токен Mapbox (pk.…)",tokenUrlLabel:"…или адрес службы токенов",tokenApply:"Применить",tokenClear:"Очистить",tokenStoredHere:"Хранится только в этом браузере.",tokenSourceYours:"Используется ваш токен",tokenSourceUrl:"Используется токен с {url}",tokenSourceBuilt:"Используется токен, встроенный в страницу",tokenSourceNone:"Нет токена Mapbox: карты Mapbox не загрузятся (MapLibre он не нужен)",tokenSecret:"Это секретный токен (sk.…). Вставьте публичный (pk.…): эта страница общедоступна.",tokenNotPk:"Публичный токен Mapbox начинается с pk.",tokenUrlFailed:"Не удалось получить токен по этому адресу: {why}"},P_={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ",selectView:"Выбрать вид",views:"Виды",prayerResources:"Молитвенные ресурсы",map:"Карта"},C_={kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},E_={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},T_={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},N_={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},R_={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},M_={research_controls:"研究控件",clustering:"聚类",filters:"筛选",pin_dim:"圆点淡化",export_poster:"导出海报…",reload_data:"重新加载数据",off:"关闭",native:"原生",mst:"MST",network:"网络",off_desc:"逐个显示每个圆点",native_desc:"Mapbox 圆形聚类(最快)",mst_desc:"最小生成树亲缘网络",network_desc:"最近邻连接线",search_languages:"搜索语言…",search_religions:"搜索宗教…",reset_all:"全部重置",no_languages:"尚未加载语言",no_religions:"尚未加载宗教",unadopted:"未认领",min:"最小",max:"最大",adopted:"已认领",adoption:"认领",engaged:"已参与",engagement:"参与",unengaged:"需要参与",language:"语言",religion:"宗教",population:"人口",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",close:"关闭",clear:"清除",map_controls:"地图控件"},F_={bloc:"亲缘板块",gospel_access:"福音可及性",people:"民族",people_name:"民族(名称)",praying:"正在代祷",religion_family:"宗教族系",search_language:"搜索语言",search_people:"搜索民族",search_place:"搜索地点",search_religion:"搜索宗教",upgs_in_scope:"范围内的 UPG",countries_touched:"涉及国家",unreached:"未得之民",sum_population:"Σ 人口",sum_praying:"Σ 代祷",charts:"图表",table:"表格",cluster:"民族群",country:"國家",engagement:"参与",language:"语言",language_family:"语系",people_group:"民族",population:"人口",prayer:"祷告",region:"区域",religion:"宗教",status:"状态",adopted:"已认领",filters:"筛选",gospel_resources:"福音资源",map:"地图",search_placeholder:"搜索民族、地点、语言、宗教…",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",map_controls:"地图控件",close:"关闭",clear:"清除",dashboard_title:"全局研究仪表板",align_dashboard:"对齐仪表板",align_dashboard_tip:"将仪表板布局恢复为默认对齐",selected:"已选择",world:"世界",vertical_legend:"垂直图例",groups_in_scope:"个民族在范围内",filter_by:"筛选",remove_filter:"移除筛选",groups:"个民族",expand:"展开",collapse:"收起",place:"地点"},I_={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},O_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》",audioScripture:"音频圣经",bibleStoriesPlain:"圣经故事"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"},list:{noText:"没有文字圣经",hasScripture:"有圣经",allLanguages:"全部语言",peopleGroup:"个族群",peopleGroups:"个族群",scriptureHere:"本语言的圣经"},columns:{"People group":"族群",Country:"国家",Region:"地区",Language:"语言",Population:"人口",Religion:"宗教","Gospel access":"福音可及性",Resources:"资源",Scripture:"圣经","Bible video":"圣经视频","Gospel presentation":"福音简介",Countries:"国家","People groups":"族群"},charts:{scriptureAny:"圣经(任意)",fullBible:"全本圣经",newTestament:"新约",filmAny:"影片(任意)",nothingInPools:"在已检索的资源库中一无所获",nothingInPoolsLower:"在已检索的资源库中一无所获",noResourceInPools:"在已检索的资源库中未找到资源",aResourceFound:"找到资源",tabCoverage:"资源覆盖",tabGap:"最大缺口",keyScripture:"圣经",keyFilmStories:"影片 / 故事",keyAudioEtc:"音频 / 简介 / 训练",unresolvedCode:"ISO 639-3 之外的代码 — 未确定,未测量"}},D_={search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。"},B_={title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"}},G_={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},j_={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},U_={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},z_={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},H_={"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},V_={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"},upg100Placeholder:"搜索民族、UPG-100 名单或区域…"},K_={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布",mapToken:"地图令牌",tokenPaste:"Mapbox 公开令牌 (pk.…)",tokenUrlLabel:"…或令牌服务的网址",tokenApply:"使用",tokenClear:"清除",tokenStoredHere:"仅保存在此浏览器中。",tokenSourceYours:"正在使用您的令牌",tokenSourceUrl:"正在使用来自 {url} 的令牌",tokenSourceBuilt:"正在使用此页面内置的令牌",tokenSourceNone:"没有 Mapbox 令牌:Mapbox 地图无法加载(MapLibre 地图不需要)",tokenSecret:"这是秘密令牌 (sk.…)。请粘贴公开令牌 (pk.…):此页面是公开的。",tokenNotPk:"Mapbox 公开令牌以 pk. 开头",tokenUrlFailed:"无法从该网址获取令牌:{why}"},q_={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群",selectView:"選擇檢視",views:"檢視",prayerResources:"禱告資源",map:"地圖"},W_={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*! - * shared v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */function Y_(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Vs=typeof window<"u",Jo=(e,t=!1)=>t?Symbol.for(e):Symbol(e),X_=(e,t,o)=>Z_({l:e,k:t,s:o}),Z_=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),$t=e=>typeof e=="number"&&isFinite(e),J_=e=>op(e)==="[object Date]",Qo=e=>op(e)==="[object RegExp]",Ks=e=>Ge(e)&&Object.keys(e).length===0,Et=Object.assign,Q_=Object.create,ot=(e=null)=>Q_(e);let Ju;const Go=()=>Ju||(Ju=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:ot());function Qu(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function ep(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function e0(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${ep(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${ep(s)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const t0=Object.prototype.hasOwnProperty;function ro(e,t){return t0.call(e,t)}const pt=Array.isArray,ct=e=>typeof e=="function",we=e=>typeof e=="string",Ve=e=>typeof e=="boolean",We=e=>e!==null&&typeof e=="object",o0=e=>We(e)&&ct(e.then)&&ct(e.catch),tp=Object.prototype.toString,op=e=>tp.call(e),Ge=e=>{if(!We(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},n0=e=>e==null?"":pt(e)||Ge(e)&&e.toString===tp?JSON.stringify(e,null,2):String(e);function a0(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function qs(e){let t=e;return()=>++t}const Ws=e=>!We(e)||pt(e);function Ys(e,t){if(Ws(e)||Ws(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(s=>{s!=="__proto__"&&(We(n[s])&&!We(a[s])&&(a[s]=Array.isArray(n[s])?[]:ot()),Ws(a[s])||Ws(n[s])?a[s]=n[s]:o.push({src:n[s],des:a[s]}))})}}/*! - * message-compiler v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */function s0(e,t,o){return{line:e,column:t,offset:o}}function Xs(e,t,o){return{start:e,end:t}}const r0=/\{([0-9a-zA-Z]+)\}/g;function np(e,...t){return t.length===1&&i0(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(r0,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const ap=Object.assign,sp=e=>typeof e=="string",i0=e=>e!==null&&typeof e=="object";function rp(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const vi={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},l0={[vi.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function c0(e,t,...o){const n=np(l0[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Oe={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},u0={[Oe.EXPECTED_TOKEN]:"Expected token: '{0}'",[Oe.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Oe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Oe.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Oe.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Oe.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Oe.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Oe.EMPTY_PLACEHOLDER]:"Empty placeholder",[Oe.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Oe.INVALID_LINKED_FORMAT]:"Invalid linked format",[Oe.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Oe.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Oe.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Oe.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Oe.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Oe.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Kn(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=np((a||u0)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function p0(e){throw e}const jo=" ",d0="\r",Bt=` -`,g0="\u2028",f0="\u2029";function h0(e){const t=e;let o=0,n=1,a=1,s=0;const r=d=>t[d]===d0&&t[d+1]===Bt,i=d=>t[d]===Bt,l=d=>t[d]===f0,c=d=>t[d]===g0,u=d=>r(d)||i(d)||l(d)||c(d),p=()=>o,f=()=>n,A=()=>a,v=()=>s,b=d=>r(d)||l(d)||c(d)?Bt:t[d],_=()=>b(o),$=()=>b(o+s);function h(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function m(){return r(o+s)&&s++,s++,t[o+s]}function w(){o=0,n=1,a=1,s=0}function g(d=0){s=d}function P(){const d=o+s;for(;d!==o;)h();s=0}return{index:p,line:f,column:A,peekOffset:v,charAt:b,currentChar:_,currentPeek:$,next:h,peek:m,reset:w,resetPeek:g,skipToPeek:P}}const en=void 0,m0=".",ip="'",b0="tokenizer";function $0(e,t={}){const o=t.location!==!1,n=h0(e),a=()=>n.index(),s=()=>s0(n.line(),n.column(),n.index()),r=s(),i=a(),l={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function p(k,x,B,...X){const me=c();if(x.column+=B,x.offset+=B,u){const ce=o?Xs(me.startLoc,x):null,Z=Kn(k,ce,{domain:b0,args:X});u(Z)}}function f(k,x,B){k.endLoc=s(),k.currentType=x;const X={type:x};return o&&(X.loc=Xs(k.startLoc,k.endLoc)),B!=null&&(X.value=B),X}const A=k=>f(k,14);function v(k,x){return k.currentChar()===x?(k.next(),x):(p(Oe.EXPECTED_TOKEN,s(),0,x),"")}function b(k){let x="";for(;k.currentPeek()===jo||k.currentPeek()===Bt;)x+=k.currentPeek(),k.peek();return x}function _(k){const x=b(k);return k.skipToPeek(),x}function $(k){if(k===en)return!1;const x=k.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x===95}function h(k){if(k===en)return!1;const x=k.charCodeAt(0);return x>=48&&x<=57}function m(k,x){const{currentType:B}=x;if(B!==2)return!1;b(k);const X=$(k.currentPeek());return k.resetPeek(),X}function w(k,x){const{currentType:B}=x;if(B!==2)return!1;b(k);const X=k.currentPeek()==="-"?k.peek():k.currentPeek(),me=h(X);return k.resetPeek(),me}function g(k,x){const{currentType:B}=x;if(B!==2)return!1;b(k);const X=k.currentPeek()===ip;return k.resetPeek(),X}function P(k,x){const{currentType:B}=x;if(B!==8)return!1;b(k);const X=k.currentPeek()===".";return k.resetPeek(),X}function d(k,x){const{currentType:B}=x;if(B!==9)return!1;b(k);const X=$(k.currentPeek());return k.resetPeek(),X}function C(k,x){const{currentType:B}=x;if(!(B===8||B===12))return!1;b(k);const X=k.currentPeek()===":";return k.resetPeek(),X}function S(k,x){const{currentType:B}=x;if(B!==10)return!1;const X=()=>{const ce=k.currentPeek();return ce==="{"?$(k.peek()):ce==="@"||ce==="%"||ce==="|"||ce===":"||ce==="."||ce===jo||!ce?!1:ce===Bt?(k.peek(),X()):J(k,!1)},me=X();return k.resetPeek(),me}function G(k){b(k);const x=k.currentPeek()==="|";return k.resetPeek(),x}function H(k){const x=b(k),B=k.currentPeek()==="%"&&k.peek()==="{";return k.resetPeek(),{isModulo:B,hasSpace:x.length>0}}function J(k,x=!0){const B=(me=!1,ce="",Z=!1)=>{const le=k.currentPeek();return le==="{"?ce==="%"?!1:me:le==="@"||!le?ce==="%"?!0:me:le==="%"?(k.peek(),B(me,"%",!0)):le==="|"?ce==="%"||Z?!0:!(ce===jo||ce===Bt):le===jo?(k.peek(),B(!0,jo,Z)):le===Bt?(k.peek(),B(!0,Bt,Z)):!0},X=B();return x&&k.resetPeek(),X}function U(k,x){const B=k.currentChar();return B===en?en:x(B)?(k.next(),B):null}function D(k){const x=k.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x>=48&&x<=57||x===95||x===36}function L(k){return U(k,D)}function y(k){const x=k.charCodeAt(0);return x>=97&&x<=122||x>=65&&x<=90||x>=48&&x<=57||x===95||x===36||x===45}function R(k){return U(k,y)}function z(k){const x=k.charCodeAt(0);return x>=48&&x<=57}function K(k){return U(k,z)}function Q(k){const x=k.charCodeAt(0);return x>=48&&x<=57||x>=65&&x<=70||x>=97&&x<=102}function ie(k){return U(k,Q)}function j(k){let x="",B="";for(;x=K(k);)B+=x;return B}function be(k){_(k);const x=k.currentChar();return x!=="%"&&p(Oe.EXPECTED_TOKEN,s(),0,x),k.next(),"%"}function xe(k){let x="";for(;;){const B=k.currentChar();if(B==="{"||B==="}"||B==="@"||B==="|"||!B)break;if(B==="%")if(J(k))x+=B,k.next();else break;else if(B===jo||B===Bt)if(J(k))x+=B,k.next();else{if(G(k))break;x+=B,k.next()}else x+=B,k.next()}return x}function fe(k){_(k);let x="",B="";for(;x=R(k);)B+=x;return k.currentChar()===en&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),B}function ke(k){_(k);let x="";return k.currentChar()==="-"?(k.next(),x+=`-${j(k)}`):x+=j(k),k.currentChar()===en&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),x}function $e(k){return k!==ip&&k!==Bt}function ne(k){_(k),v(k,"'");let x="",B="";for(;x=U(k,$e);)x==="\\"?B+=te(k):B+=x;const X=k.currentChar();return X===Bt||X===en?(p(Oe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),X===Bt&&(k.next(),v(k,"'")),B):(v(k,"'"),B)}function te(k){const x=k.currentChar();switch(x){case"\\":case"'":return k.next(),`\\${x}`;case"u":return de(k,x,4);case"U":return de(k,x,6);default:return p(Oe.UNKNOWN_ESCAPE_SEQUENCE,s(),0,x),""}}function de(k,x,B){v(k,x);let X="";for(let me=0;me{const X=k.currentChar();return X==="{"||X==="%"||X==="@"||X==="|"||X==="("||X===")"||!X||X===jo?B:(B+=X,k.next(),x(B))};return x("")}function W(k){_(k);const x=v(k,"|");return _(k),x}function Y(k,x){let B=null;switch(k.currentChar()){case"{":return x.braceNest>=1&&p(Oe.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),k.next(),B=f(x,2,"{"),_(k),x.braceNest++,B;case"}":return x.braceNest>0&&x.currentType===2&&p(Oe.EMPTY_PLACEHOLDER,s(),0),k.next(),B=f(x,3,"}"),x.braceNest--,x.braceNest>0&&_(k),x.inLinked&&x.braceNest===0&&(x.inLinked=!1),B;case"@":return x.braceNest>0&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),B=O(k,x)||A(x),x.braceNest=0,B;default:{let me=!0,ce=!0,Z=!0;if(G(k))return x.braceNest>0&&p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),B=f(x,1,W(k)),x.braceNest=0,x.inLinked=!1,B;if(x.braceNest>0&&(x.currentType===5||x.currentType===6||x.currentType===7))return p(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),x.braceNest=0,ue(k,x);if(me=m(k,x))return B=f(x,5,fe(k)),_(k),B;if(ce=w(k,x))return B=f(x,6,ke(k)),_(k),B;if(Z=g(k,x))return B=f(x,7,ne(k)),_(k),B;if(!me&&!ce&&!Z)return B=f(x,13,T(k)),p(Oe.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,B.value),_(k),B;break}}return B}function O(k,x){const{currentType:B}=x;let X=null;const me=k.currentChar();switch((B===8||B===9||B===12||B===10)&&(me===Bt||me===jo)&&p(Oe.INVALID_LINKED_FORMAT,s(),0),me){case"@":return k.next(),X=f(x,8,"@"),x.inLinked=!0,X;case".":return _(k),k.next(),f(x,9,".");case":":return _(k),k.next(),f(x,10,":");default:return G(k)?(X=f(x,1,W(k)),x.braceNest=0,x.inLinked=!1,X):P(k,x)||C(k,x)?(_(k),O(k,x)):d(k,x)?(_(k),f(x,12,F(k))):S(k,x)?(_(k),me==="{"?Y(k,x)||X:f(x,11,I(k))):(B===8&&p(Oe.INVALID_LINKED_FORMAT,s(),0),x.braceNest=0,x.inLinked=!1,ue(k,x))}}function ue(k,x){let B={type:14};if(x.braceNest>0)return Y(k,x)||A(x);if(x.inLinked)return O(k,x)||A(x);switch(k.currentChar()){case"{":return Y(k,x)||A(x);case"}":return p(Oe.UNBALANCED_CLOSING_BRACE,s(),0),k.next(),f(x,3,"}");case"@":return O(k,x)||A(x);default:{if(G(k))return B=f(x,1,W(k)),x.braceNest=0,x.inLinked=!1,B;const{isModulo:me,hasSpace:ce}=H(k);if(me)return ce?f(x,0,xe(k)):f(x,4,be(k));if(J(k))return f(x,0,xe(k));break}}return B}function ee(){const{currentType:k,offset:x,startLoc:B,endLoc:X}=l;return l.lastType=k,l.lastOffset=x,l.lastStartLoc=B,l.lastEndLoc=X,l.offset=a(),l.startLoc=s(),n.currentChar()===en?f(l,14):ue(n,l)}return{nextToken:ee,currentOffset:a,currentPosition:s,context:c}}const y0="parser",_0=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function v0(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function k0(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(m,w,g,P,...d){const C=m.currentPosition();if(C.offset+=P,C.column+=P,o){const S=t?Xs(g,C):null,G=Kn(w,S,{domain:y0,args:d});o(G)}}function s(m,w,g,P,...d){const C=m.currentPosition();if(C.offset+=P,C.column+=P,n){const S=t?Xs(g,C):null;n(c0(w,S,d))}}function r(m,w,g){const P={type:m};return t&&(P.start=w,P.end=w,P.loc={start:g,end:g}),P}function i(m,w,g,P){t&&(m.end=w,m.loc&&(m.loc.end=g))}function l(m,w){const g=m.context(),P=r(3,g.offset,g.startLoc);return P.value=w,i(P,m.currentOffset(),m.currentPosition()),P}function c(m,w){const g=m.context(),{lastOffset:P,lastStartLoc:d}=g,C=r(5,P,d);return C.index=parseInt(w,10),m.nextToken(),i(C,m.currentOffset(),m.currentPosition()),C}function u(m,w,g){const P=m.context(),{lastOffset:d,lastStartLoc:C}=P,S=r(4,d,C);return S.key=w,g===!0&&(S.modulo=!0),m.nextToken(),i(S,m.currentOffset(),m.currentPosition()),S}function p(m,w){const g=m.context(),{lastOffset:P,lastStartLoc:d}=g,C=r(9,P,d);return C.value=w.replace(_0,v0),m.nextToken(),i(C,m.currentOffset(),m.currentPosition()),C}function f(m){const w=m.nextToken(),g=m.context(),{lastOffset:P,lastStartLoc:d}=g,C=r(8,P,d);return w.type!==12?(a(m,Oe.UNEXPECTED_EMPTY_LINKED_MODIFIER,g.lastStartLoc,0),C.value="",i(C,P,d),{nextConsumeToken:w,node:C}):(w.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,g.lastStartLoc,0,io(w)),C.value=w.value||"",i(C,m.currentOffset(),m.currentPosition()),{node:C})}function A(m,w){const g=m.context(),P=r(7,g.offset,g.startLoc);return P.value=w,i(P,m.currentOffset(),m.currentPosition()),P}function v(m){const w=m.context(),g=r(6,w.offset,w.startLoc);let P=m.nextToken();if(P.type===9){const d=f(m);g.modifier=d.node,P=d.nextConsumeToken||m.nextToken()}switch(P.type!==10&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,io(P)),P=m.nextToken(),P.type===2&&(P=m.nextToken()),P.type){case 11:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,io(P)),g.key=A(m,P.value||"");break;case 5:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,io(P)),g.key=u(m,P.value||"");break;case 6:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,io(P)),g.key=c(m,P.value||"");break;case 7:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,io(P)),g.key=p(m,P.value||"");break;default:{a(m,Oe.UNEXPECTED_EMPTY_LINKED_KEY,w.lastStartLoc,0);const d=m.context(),C=r(7,d.offset,d.startLoc);return C.value="",i(C,d.offset,d.startLoc),g.key=C,i(g,d.offset,d.startLoc),{nextConsumeToken:P,node:g}}}return i(g,m.currentOffset(),m.currentPosition()),{node:g}}function b(m){const w=m.context(),g=w.currentType===1?m.currentOffset():w.offset,P=w.currentType===1?w.endLoc:w.startLoc,d=r(2,g,P);d.items=[];let C=null,S=null;do{const J=C||m.nextToken();switch(C=null,J.type){case 0:J.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,io(J)),d.items.push(l(m,J.value||""));break;case 6:J.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,io(J)),d.items.push(c(m,J.value||""));break;case 4:S=!0;break;case 5:J.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,io(J)),d.items.push(u(m,J.value||"",!!S)),S&&(s(m,vi.USE_MODULO_SYNTAX,w.lastStartLoc,0,io(J)),S=null);break;case 7:J.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,io(J)),d.items.push(p(m,J.value||""));break;case 8:{const U=v(m);d.items.push(U.node),C=U.nextConsumeToken||null;break}}}while(w.currentType!==14&&w.currentType!==1);const G=w.currentType===1?w.lastOffset:m.currentOffset(),H=w.currentType===1?w.lastEndLoc:m.currentPosition();return i(d,G,H),d}function _(m,w,g,P){const d=m.context();let C=P.items.length===0;const S=r(1,w,g);S.cases=[],S.cases.push(P);do{const G=b(m);C||(C=G.items.length===0),S.cases.push(G)}while(d.currentType!==14);return C&&a(m,Oe.MUST_HAVE_MESSAGES_IN_PLURAL,g,0),i(S,m.currentOffset(),m.currentPosition()),S}function $(m){const w=m.context(),{offset:g,startLoc:P}=w,d=b(m);return w.currentType===14?d:_(m,g,P,d)}function h(m){const w=$0(m,ap({},e)),g=w.context(),P=r(0,g.offset,g.startLoc);return t&&P.loc&&(P.loc.source=m),P.body=$(w),e.onCacheKey&&(P.cacheKey=e.onCacheKey(m)),g.currentType!==14&&a(w,Oe.UNEXPECTED_LEXICAL_ANALYSIS,g.lastStartLoc,0,m[g.offset]||""),i(P,w.currentOffset(),w.currentPosition()),P}return{parse:h}}function io(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function w0(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function lp(e,t){for(let o=0;ocp(o)),e}function cp(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;or;function l(b,_){r.code+=b}function c(b,_=!0){const $=_?n:"";l(a?$+" ".repeat(b):$)}function u(b=!0){const _=++r.indentLevel;b&&c(_)}function p(b=!0){const _=--r.indentLevel;b&&c(_)}function f(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:p,newline:f,helper:b=>`_${b}`,needIndent:()=>r.needIndent}}function C0(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),Wn(e,t.key),t.modifier?(e.push(", "),Wn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function E0(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let s=0;s1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let s=0;s{const o=sp(t.mode)?t.mode:"normal",n=sp(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` -`,s=t.needIndent?t.needIndent:o!=="arrow",r=e.helpers||[],i=P0(e,{filename:n,breakLineCode:a,needIndent:s});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${rp(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),Wn(i,e),i.deindent(s),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function M0(e,t={}){const o=ap({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,i=k0(o).parse(e);return n?(s&&L0(i),a&&qn(i),{ast:i,code:""}):(x0(i,o),R0(i,o))}/*! - * core-base v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */function F0(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Go().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Go().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Go().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function wo(e){return We(e)&&wi(e)===0&&(ro(e,"b")||ro(e,"body"))}const up=["b","body"];function I0(e){return tn(e,up)}const pp=["c","cases"];function O0(e){return tn(e,pp,[])}const dp=["s","static"];function D0(e){return tn(e,dp)}const gp=["i","items"];function B0(e){return tn(e,gp,[])}const fp=["t","type"];function wi(e){return tn(e,fp)}const hp=["v","value"];function Zs(e,t){const o=tn(e,hp);if(o!=null)return o;throw Fa(t)}const mp=["m","modifier"];function G0(e){return tn(e,mp)}const bp=["k","key"];function j0(e){const t=tn(e,bp);if(t)return t;throw Fa(6)}function tn(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},f[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},f[2]=()=>{f[0](),a++},f[3]=()=>{if(a>0)a--,n=4,f[0]();else{if(a=0,r===void 0||(r=K0(r),r===!1))return!1;f[1]()}};function A(){const v=e[o+1];if(n===5&&v==="'"||n===6&&v==='"')return o++,i="\\"+v,f[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&A())){if(l=V0(s),p=on[n],c=p[l]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=f[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return t}}const yp=new Map;function W0(e,t){return We(e)?e[t]:null}function Y0(e,t){if(!We(e))return null;let o=yp.get(t);if(o||(o=q0(t),o&&yp.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;se,Z0=e=>"",J0="text",Q0=e=>e.length===0?"":a0(e),ev=n0;function _p(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function tv(e){const t=$t(e.pluralIndex)?e.pluralIndex:-1;return e.named&&($t(e.named.count)||$t(e.named.n))?$t(e.named.count)?e.named.count:$t(e.named.n)?e.named.n:t:t}function ov(e,t){t.count||(t.count=e),t.n||(t.n=e)}function nv(e={}){const t=e.locale,o=tv(e),n=We(e.pluralRules)&&we(t)&&ct(e.pluralRules[t])?e.pluralRules[t]:_p,a=We(e.pluralRules)&&we(t)&&ct(e.pluralRules[t])?_p:void 0,s=$=>$[n(o,$.length,a)],r=e.list||[],i=$=>r[$],l=e.named||ot();$t(e.pluralIndex)&&ov(o,l);const c=$=>l[$];function u($){const h=ct(e.messages)?e.messages($):We(e.messages)?e.messages[$]:!1;return h||(e.parent?e.parent.message($):Z0)}const p=$=>e.modifiers?e.modifiers[$]:X0,f=Ge(e.processor)&&ct(e.processor.normalize)?e.processor.normalize:Q0,A=Ge(e.processor)&&ct(e.processor.interpolate)?e.processor.interpolate:ev,v=Ge(e.processor)&&we(e.processor.type)?e.processor.type:J0,_={list:i,named:c,plural:s,linked:($,...h)=>{const[m,w]=h;let g="text",P="";h.length===1?We(m)?(P=m.modifier||P,g=m.type||g):we(m)&&(P=m||P):h.length===2&&(we(m)&&(P=m||P),we(w)&&(g=w||g));const d=u($)(_),C=g==="vnode"&&pt(d)&&P?d[0]:d;return P?p(P)(C,g):C},message:u,type:v,interpolate:A,normalize:f,values:Et(ot(),r,l)};return _}let Ia=null;function av(e){Ia=e}function sv(e,t,o){Ia&&Ia.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const rv=iv("function:translate");function iv(e){return t=>Ia&&Ia.emit(e,t)}const lv=vi.__EXTEND_POINT__,bn=qs(lv),cv={FALLBACK_TO_TRANSLATE:bn(),CANNOT_FORMAT_NUMBER:bn(),FALLBACK_TO_NUMBER_FORMAT:bn(),CANNOT_FORMAT_DATE:bn(),FALLBACK_TO_DATE_FORMAT:bn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:bn(),__EXTEND_POINT__:bn()},vp=Oe.__EXTEND_POINT__,$n=qs(vp),lo={INVALID_ARGUMENT:vp,INVALID_DATE_ARGUMENT:$n(),INVALID_ISO_DATE_ARGUMENT:$n(),NOT_SUPPORT_NON_STRING_MESSAGE:$n(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:$n(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:$n(),NOT_SUPPORT_LOCALE_TYPE:$n(),__EXTEND_POINT__:$n()};function xo(e){return Kn(e,null,void 0)}function xi(e,t){return t.locale!=null?kp(t.locale):kp(e.locale)}let Li;function kp(e){if(we(e))return e;if(ct(e)){if(e.resolvedOnce&&Li!=null)return Li;if(e.constructor.name==="Function"){const t=e();if(o0(t))throw xo(lo.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Li=t}else throw xo(lo.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw xo(lo.NOT_SUPPORT_LOCALE_TYPE)}function uv(e,t,o){return[...new Set([o,...pt(t)?t:We(t)?Object.keys(t):we(t)?[t]:[o]])]}function wp(e,t,o){const n=we(o)?o:Yn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;pt(r);)r=xp(s,r,t);const i=pt(t)||!Ge(t)?t:t.default?t.default:null;r=we(i)?[i]:i,pt(r)&&xp(s,r,!1),a.__localeChainCache.set(n,s)}return s}function xp(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function fv(){return{upper:(e,t)=>t==="text"&&we(e)?e.toUpperCase():t==="vnode"&&We(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&we(e)?e.toLowerCase():t==="vnode"&&We(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&we(e)?Sp(e):t==="vnode"&&We(e)&&"__v_isVNode"in e?Sp(e.children):e}}let Ap;function Pp(e){Ap=e}let Cp;function hv(e){Cp=e}let Ep;function mv(e){Ep=e}let Tp=null;const bv=e=>{Tp=e},$v=()=>Tp;let Np=null;const Rp=e=>{Np=e},yv=()=>Np;let Mp=0;function _v(e={}){const t=ct(e.onWarn)?e.onWarn:Y_,o=we(e.version)?e.version:gv,n=we(e.locale)||ct(e.locale)?e.locale:Yn,a=ct(n)?Yn:n,s=pt(e.fallbackLocale)||Ge(e.fallbackLocale)||we(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=Ge(e.messages)?e.messages:Si(a),i=Ge(e.datetimeFormats)?e.datetimeFormats:Si(a),l=Ge(e.numberFormats)?e.numberFormats:Si(a),c=Et(ot(),e.modifiers,fv()),u=e.pluralRules||ot(),p=ct(e.missing)?e.missing:null,f=Ve(e.missingWarn)||Qo(e.missingWarn)?e.missingWarn:!0,A=Ve(e.fallbackWarn)||Qo(e.fallbackWarn)?e.fallbackWarn:!0,v=!!e.fallbackFormat,b=!!e.unresolving,_=ct(e.postTranslation)?e.postTranslation:null,$=Ge(e.processor)?e.processor:null,h=Ve(e.warnHtmlMessage)?e.warnHtmlMessage:!0,m=!!e.escapeParameter,w=ct(e.messageCompiler)?e.messageCompiler:Ap,g=ct(e.messageResolver)?e.messageResolver:Cp||W0,P=ct(e.localeFallbacker)?e.localeFallbacker:Ep||uv,d=We(e.fallbackContext)?e.fallbackContext:void 0,C=e,S=We(C.__datetimeFormatters)?C.__datetimeFormatters:new Map,G=We(C.__numberFormatters)?C.__numberFormatters:new Map,H=We(C.__meta)?C.__meta:{};Mp++;const J={version:o,cid:Mp,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:p,missingWarn:f,fallbackWarn:A,fallbackFormat:v,unresolving:b,postTranslation:_,processor:$,warnHtmlMessage:h,escapeParameter:m,messageCompiler:w,messageResolver:g,localeFallbacker:P,fallbackContext:d,onWarn:t,__meta:H};return J.datetimeFormats=i,J.numberFormats=l,J.__datetimeFormatters=S,J.__numberFormatters=G,__INTLIFY_PROD_DEVTOOLS__&&sv(J,o,H),J}const Si=e=>({[e]:ot()});function Ai(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const i=s(e,o,t,a);return we(i)?i:t}else return t}function Oa(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function vv(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function kv(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nwv(o,e)}function wv(e,t){const o=I0(t);if(o==null)throw Fa(0);if(wi(o)===1){const s=O0(o);return e.plural(s.reduce((r,i)=>[...r,Fp(e,i)],[]))}else return Fp(e,o)}function Fp(e,t){const o=D0(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=B0(t).reduce((a,s)=>[...a,Ci(e,s)],[]);return e.normalize(n)}}function Ci(e,t){const o=wi(t);switch(o){case 3:return Zs(t,o);case 9:return Zs(t,o);case 4:{const n=t;if(ro(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(ro(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Fa(o)}case 5:{const n=t;if(ro(n,"i")&&$t(n.i))return e.interpolate(e.list(n.i));if(ro(n,"index")&&$t(n.index))return e.interpolate(e.list(n.index));throw Fa(o)}case 6:{const n=t,a=G0(n),s=j0(n);return e.linked(Ci(e,s),a?Ci(e,a):void 0,e.type)}case 7:return Zs(t,o);case 8:return Zs(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Ip=e=>e;let Xn=ot();function Op(e,t={}){let o=!1;const n=t.onError||p0;return t.onError=a=>{o=!0,n(a)},{...M0(e,t),detectError:o}}const xv=(e,t)=>{if(!we(e))throw xo(lo.NOT_SUPPORT_NON_STRING_MESSAGE);{Ve(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Ip)(e),a=Xn[n];if(a)return a;const{code:s,detectError:r}=Op(e,t),i=new Function(`return ${s}`)();return r?i:Xn[n]=i}};function Lv(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&we(e)){Ve(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Ip)(e),a=Xn[n];if(a)return a;const{ast:s,detectError:r}=Op(e,{...t,location:!1,jit:!0}),i=Pi(s);return r?i:Xn[n]=i}else{const o=e.cacheKey;if(o){const n=Xn[o];return n||(Xn[o]=Pi(e))}else return Pi(e)}}const Dp=()=>"",Zt=e=>ct(e);function Bp(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=Ei(...t),u=Ve(c.missingWarn)?c.missingWarn:e.missingWarn,p=Ve(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,f=Ve(c.escapeParameter)?c.escapeParameter:e.escapeParameter,A=!!c.resolvedMessage,v=we(c.default)||Ve(c.default)?Ve(c.default)?s?l:()=>l:c.default:o?s?l:()=>l:"",b=o||v!=="",_=xi(e,c);f&&Sv(c);let[$,h,m]=A?[l,_,i[_]||ot()]:Gp(e,l,_,r,p,u),w=$,g=l;if(!A&&!(we(w)||wo(w)||Zt(w))&&b&&(w=v,g=w),!A&&(!(we(w)||wo(w)||Zt(w))||!we(h)))return a?Js:l;let P=!1;const d=()=>{P=!0},C=Zt(w)?w:jp(e,l,h,w,g,d);if(P)return w;const S=Cv(e,h,m,c),G=nv(S),H=Av(e,C,G);let J=n?n(H,l):H;if(f&&we(J)&&(J=e0(J)),__INTLIFY_PROD_DEVTOOLS__){const U={timestamp:Date.now(),key:we(l)?l:Zt(w)?w.key:"",locale:h||(Zt(w)?w.locale:""),format:we(w)?w:Zt(w)?w.source:"",message:J};U.meta=Et({},e.__meta,$v()||{}),rv(U)}return J}function Sv(e){pt(e.list)?e.list=e.list.map(t=>we(t)?Qu(t):t):We(e.named)&&Object.keys(e.named).forEach(t=>{we(e.named[t])&&(e.named[t]=Qu(e.named[t]))})}function Gp(e,t,o,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let p=ot(),f,A=null;const v="translate";for(let b=0;bn;return c.locale=o,c.key=t,c}const l=r(n,Pv(e,o,a,n,i,s));return l.locale=o,l.key=t,l.source=n,l}function Av(e,t,o){return t(o)}function Ei(...e){const[t,o,n]=e,a=ot();if(!we(t)&&!$t(t)&&!Zt(t)&&!wo(t))throw xo(lo.INVALID_ARGUMENT);const s=$t(t)?String(t):(Zt(t),t);return $t(o)?a.plural=o:we(o)?a.default=o:Ge(o)&&!Ks(o)?a.named=o:pt(o)&&(a.list=o),$t(n)?a.plural=n:we(n)?a.default=n:Ge(n)&&Et(a,n),[s,a]}function Pv(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>X_(t,o,r)}}function Cv(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,f={locale:t,modifiers:a,pluralRules:s,messages:A=>{let v=r(o,A);if(v==null&&u){const[,,b]=Gp(u,A,t,i,l,c);v=r(b,A)}if(we(v)||wo(v)){let b=!1;const $=jp(e,A,t,v,A,()=>{b=!0});return b?Dp:$}else return Zt(v)?v:Dp}};return e.processor&&(f.processor=e.processor),n.list&&(f.list=n.list),n.named&&(f.named=n.named),$t(n.plural)&&(f.pluralIndex=n.plural),f}function Up(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,p]=Ti(...t),f=Ve(u.missingWarn)?u.missingWarn:e.missingWarn;Ve(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const A=!!u.part,v=xi(e,u),b=r(e,a,v);if(!we(l)||l==="")return new Intl.DateTimeFormat(v,p).format(c);let _={},$,h=null;const m="datetime format";for(let P=0;P{zp.includes(l)?r[l]=o[l]:s[l]=o[l]}),we(n)?s.locale=n:Ge(n)&&(r=n),Ge(a)&&(r=a),[s.key||"",i,s,r]}function Hp(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function Vp(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,p]=Ni(...t),f=Ve(u.missingWarn)?u.missingWarn:e.missingWarn;Ve(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const A=!!u.part,v=xi(e,u),b=r(e,a,v);if(!we(l)||l==="")return new Intl.NumberFormat(v,p).format(c);let _={},$,h=null;const m="number format";for(let P=0;P{Kp.includes(l)?r[l]=o[l]:s[l]=o[l]}),we(n)?s.locale=n:Ge(n)&&(r=n),Ge(a)&&(r=a),[s.key||"",i,s,r]}function qp(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}F0();/*! - * vue-i18n v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */const Ev="9.14.5";function Tv(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Go().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Go().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Go().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Go().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Go().__INTLIFY_PROD_DEVTOOLS__=!1)}const Nv=cv.__EXTEND_POINT__,Uo=qs(Nv);Uo(),Uo(),Uo(),Uo(),Uo(),Uo(),Uo(),Uo(),Uo();const Wp=lo.__EXTEND_POINT__,Ut=qs(Wp),kt={UNEXPECTED_RETURN_TYPE:Wp,INVALID_ARGUMENT:Ut(),MUST_BE_CALL_SETUP_TOP:Ut(),NOT_INSTALLED:Ut(),NOT_AVAILABLE_IN_LEGACY_MODE:Ut(),REQUIRED_VALUE:Ut(),INVALID_VALUE:Ut(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ut(),NOT_INSTALLED_WITH_PROVIDE:Ut(),UNEXPECTED_ERROR:Ut(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ut(),BRIDGE_SUPPORT_VUE_2_ONLY:Ut(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ut(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ut(),__EXTEND_POINT__:Ut()};function Lt(e,...t){return Kn(e,null,void 0)}const Ri=Jo("__translateVNode"),Mi=Jo("__datetimeParts"),Fi=Jo("__numberParts"),Yp=Jo("__setPluralRules"),Xp=Jo("__injectWithOption"),Ii=Jo("__dispose");function Da(e){if(!We(e)||wo(e))return e;for(const t in e)if(ro(e,t))if(!t.includes("."))We(e[t])&&Da(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,s=!1;for(let r=0;r{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(r[l]=r[l]||ot(),Ys(c,r[l])):Ys(c,r)}else we(i)&&Ys(JSON.parse(i),r)}),a==null&&s)for(const i in r)ro(r,i)&&Da(r[i]);return r}function Zp(e){return e.type}function Jp(e,t,o){let n=We(t.messages)?t.messages:ot();"__i18nGlobal"in o&&(n=Qs(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(We(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(We(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function Qp(e){return tt(Sa,null,e,0)}const ed="__INTLIFY_META__",td=()=>[],Rv=()=>!1;let od=0;function nd(e){return(t,o,n,a)=>e(o,n,ko()||void 0,a)}const Mv=()=>{const e=ko();let t=null;return e&&(t=Zp(e)[ed])?{[ed]:t}:null};function Oi(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=Vs?he:ba,i=!!e.translateExistCompatible;let l=Ve(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&l?o.locale.value:we(e.locale)?e.locale:Yn),u=r(o&&l?o.fallbackLocale.value:we(e.fallbackLocale)||pt(e.fallbackLocale)||Ge(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=r(Qs(c.value,e)),f=r(Ge(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),A=r(Ge(e.numberFormats)?e.numberFormats:{[c.value]:{}});let v=o?o.missingWarn:Ve(e.missingWarn)||Qo(e.missingWarn)?e.missingWarn:!0,b=o?o.fallbackWarn:Ve(e.fallbackWarn)||Qo(e.fallbackWarn)?e.fallbackWarn:!0,_=o?o.fallbackRoot:Ve(e.fallbackRoot)?e.fallbackRoot:!0,$=!!e.fallbackFormat,h=ct(e.missing)?e.missing:null,m=ct(e.missing)?nd(e.missing):null,w=ct(e.postTranslation)?e.postTranslation:null,g=o?o.warnHtmlMessage:Ve(e.warnHtmlMessage)?e.warnHtmlMessage:!0,P=!!e.escapeParameter;const d=o?o.modifiers:Ge(e.modifiers)?e.modifiers:{};let C=e.pluralRules||o&&o.pluralRules,S;S=(()=>{a&&Rp(null);const Z={version:Ev,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:d,pluralRules:C,missing:m===null?void 0:m,missingWarn:v,fallbackWarn:b,fallbackFormat:$,unresolving:!0,postTranslation:w===null?void 0:w,warnHtmlMessage:g,escapeParameter:P,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};Z.datetimeFormats=f.value,Z.numberFormats=A.value,Z.__datetimeFormatters=Ge(S)?S.__datetimeFormatters:void 0,Z.__numberFormatters=Ge(S)?S.__numberFormatters:void 0;const le=_v(Z);return a&&Rp(le),le})(),Oa(S,c.value,u.value);function H(){return[c.value,u.value,p.value,f.value,A.value]}const J=oe({get:()=>c.value,set:Z=>{c.value=Z,S.locale=c.value}}),U=oe({get:()=>u.value,set:Z=>{u.value=Z,S.fallbackLocale=u.value,Oa(S,c.value,Z)}}),D=oe(()=>p.value),L=oe(()=>f.value),y=oe(()=>A.value);function R(){return ct(w)?w:null}function z(Z){w=Z,S.postTranslation=Z}function K(){return h}function Q(Z){Z!==null&&(m=nd(Z)),h=Z,S.missing=m}const ie=(Z,le,Ce,Te,qe,nt)=>{H();let Qe;try{__INTLIFY_PROD_DEVTOOLS__,a||(S.fallbackContext=o?yv():void 0),Qe=Z(S)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(S.fallbackContext=void 0)}if(Ce!=="translate exists"&&$t(Qe)&&Qe===Js||Ce==="translate exists"&&!Qe){const[V,se]=le();return o&&_?Te(o):qe(V)}else{if(nt(Qe))return Qe;throw Lt(kt.UNEXPECTED_RETURN_TYPE)}};function j(...Z){return ie(le=>Reflect.apply(Bp,null,[le,...Z]),()=>Ei(...Z),"translate",le=>Reflect.apply(le.t,le,[...Z]),le=>le,le=>we(le))}function be(...Z){const[le,Ce,Te]=Z;if(Te&&!We(Te))throw Lt(kt.INVALID_ARGUMENT);return j(le,Ce,Et({resolvedMessage:!0},Te||{}))}function xe(...Z){return ie(le=>Reflect.apply(Up,null,[le,...Z]),()=>Ti(...Z),"datetime format",le=>Reflect.apply(le.d,le,[...Z]),()=>Lp,le=>we(le))}function fe(...Z){return ie(le=>Reflect.apply(Vp,null,[le,...Z]),()=>Ni(...Z),"number format",le=>Reflect.apply(le.n,le,[...Z]),()=>Lp,le=>we(le))}function ke(Z){return Z.map(le=>we(le)||$t(le)||Ve(le)?Qp(String(le)):le)}const ne={normalize:ke,interpolate:Z=>Z,type:"vnode"};function te(...Z){return ie(le=>{let Ce;const Te=le;try{Te.processor=ne,Ce=Reflect.apply(Bp,null,[Te,...Z])}finally{Te.processor=null}return Ce},()=>Ei(...Z),"translate",le=>le[Ri](...Z),le=>[Qp(le)],le=>pt(le))}function de(...Z){return ie(le=>Reflect.apply(Vp,null,[le,...Z]),()=>Ni(...Z),"number format",le=>le[Fi](...Z),td,le=>we(le)||pt(le))}function Pe(...Z){return ie(le=>Reflect.apply(Up,null,[le,...Z]),()=>Ti(...Z),"datetime format",le=>le[Mi](...Z),td,le=>we(le)||pt(le))}function T(Z){C=Z,S.pluralRules=C}function F(Z,le){return ie(()=>{if(!Z)return!1;const Ce=we(le)?le:c.value,Te=Y(Ce),qe=S.messageResolver(Te,Z);return i?qe!=null:wo(qe)||Zt(qe)||we(qe)},()=>[Z],"translate exists",Ce=>Reflect.apply(Ce.te,Ce,[Z,le]),Rv,Ce=>Ve(Ce))}function I(Z){let le=null;const Ce=wp(S,u.value,c.value);for(let Te=0;Te{l&&(c.value=Z,S.locale=Z,Oa(S,c.value,u.value))}),Fe(o.fallbackLocale,Z=>{l&&(u.value=Z,S.fallbackLocale=Z,Oa(S,c.value,u.value))}));const ce={id:od,locale:J,fallbackLocale:U,get inheritLocale(){return l},set inheritLocale(Z){l=Z,Z&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,Oa(S,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:D,get modifiers(){return d},get pluralRules(){return C||{}},get isGlobal(){return a},get missingWarn(){return v},set missingWarn(Z){v=Z,S.missingWarn=v},get fallbackWarn(){return b},set fallbackWarn(Z){b=Z,S.fallbackWarn=b},get fallbackRoot(){return _},set fallbackRoot(Z){_=Z},get fallbackFormat(){return $},set fallbackFormat(Z){$=Z,S.fallbackFormat=$},get warnHtmlMessage(){return g},set warnHtmlMessage(Z){g=Z,S.warnHtmlMessage=Z},get escapeParameter(){return P},set escapeParameter(Z){P=Z,S.escapeParameter=Z},t:j,getLocaleMessage:Y,setLocaleMessage:O,mergeLocaleMessage:ue,getPostTranslationHandler:R,setPostTranslationHandler:z,getMissingHandler:K,setMissingHandler:Q,[Yp]:T};return ce.datetimeFormats=L,ce.numberFormats=y,ce.rt=be,ce.te=F,ce.tm=W,ce.d=xe,ce.n=fe,ce.getDateTimeFormat=ee,ce.setDateTimeFormat=k,ce.mergeDateTimeFormat=x,ce.getNumberFormat=B,ce.setNumberFormat=X,ce.mergeNumberFormat=me,ce[Xp]=n,ce[Ri]=te,ce[Mi]=Pe,ce[Fi]=de,ce}function Fv(e){const t=we(e.locale)?e.locale:Yn,o=we(e.fallbackLocale)||pt(e.fallbackLocale)||Ge(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=ct(e.missing)?e.missing:void 0,a=Ve(e.silentTranslationWarn)||Qo(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=Ve(e.silentFallbackWarn)||Qo(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=Ve(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Ge(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=ct(e.postTranslation)?e.postTranslation:void 0,p=we(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,f=!!e.escapeParameterHtml,A=Ve(e.sync)?e.sync:!0;let v=e.messages;if(Ge(e.sharedMessages)){const P=e.sharedMessages;v=Object.keys(P).reduce((C,S)=>{const G=C[S]||(C[S]={});return Et(G,P[S]),C},v||{})}const{__i18n:b,__root:_,__injectWithOption:$}=e,h=e.datetimeFormats,m=e.numberFormats,w=e.flatJson,g=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:v,flatJson:w,datetimeFormats:h,numberFormats:m,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:f,messageResolver:e.messageResolver,inheritLocale:A,translateExistCompatible:g,__i18n:b,__root:_,__injectWithOption:$}}function Di(e={},t){{const o=Oi(Fv(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(s){o.locale.value=s},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(s){o.fallbackLocale.value=s},get messages(){return o.messages.value},get datetimeFormats(){return o.datetimeFormats.value},get numberFormats(){return o.numberFormats.value},get availableLocales(){return o.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(s){},get missing(){return o.getMissingHandler()},set missing(s){o.setMissingHandler(s)},get silentTranslationWarn(){return Ve(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=Ve(s)?!s:s},get silentFallbackWarn(){return Ve(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=Ve(s)?!s:s},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(s){o.fallbackFormat=s},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(s){o.setPostTranslationHandler(s)},get sync(){return o.inheritLocale},set sync(s){o.inheritLocale=s},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){o.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(s){o.escapeParameter=s},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(s){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...s){const[r,i,l]=s,c={};let u=null,p=null;if(!we(r))throw Lt(kt.INVALID_ARGUMENT);const f=r;return we(i)?c.locale=i:pt(i)?u=i:Ge(i)&&(p=i),pt(l)?u=l:Ge(l)&&(p=l),Reflect.apply(o.t,o,[f,u||p||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,p=null;if(!we(r))throw Lt(kt.INVALID_ARGUMENT);const f=r;return we(i)?c.locale=i:$t(i)?c.plural=i:pt(i)?u=i:Ge(i)&&(p=i),we(l)?c.locale=l:pt(l)?u=l:Ge(l)&&(p=l),Reflect.apply(o.t,o,[f,u||p||{},c])},te(s,r){return o.te(s,r)},tm(s){return o.tm(s)},getLocaleMessage(s){return o.getLocaleMessage(s)},setLocaleMessage(s,r){o.setLocaleMessage(s,r)},mergeLocaleMessage(s,r){o.mergeLocaleMessage(s,r)},d(...s){return Reflect.apply(o.d,o,[...s])},getDateTimeFormat(s){return o.getDateTimeFormat(s)},setDateTimeFormat(s,r){o.setDateTimeFormat(s,r)},mergeDateTimeFormat(s,r){o.mergeDateTimeFormat(s,r)},n(...s){return Reflect.apply(o.n,o,[...s])},getNumberFormat(s){return o.getNumberFormat(s)},setNumberFormat(s,r){o.setNumberFormat(s,r)},mergeNumberFormat(s,r){o.mergeNumberFormat(s,r)},getChoiceIndex(s,r){return-1}};return a.__extender=n,a}}const Bi={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Iv({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===ze?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},ot())}function ad(e){return ze}const sd=ka({name:"i18n-t",props:Et({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>$t(e)||!isNaN(e)}},Bi),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||bt({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(p=>p!=="_"),r=ot();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=we(e.plural)?+e.plural:e.plural);const i=Iv(t,s),l=a[Ri](e.keypath,i,r),c=Et(ot(),n),u=we(e.tag)||We(e.tag)?e.tag:ad();return Su(u,c,l)}}});function Ov(e){return pt(e)&&!we(e[0])}function rd(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let i=ot();e.locale&&(r.locale=e.locale),we(e.format)?r.key=e.format:We(e.format)&&(we(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((f,A)=>o.includes(A)?Et(ot(),f,{[A]:e.format[A]}):f,ot()));const l=n(e.value,r,i);let c=[r.key];pt(l)?c=l.map((f,A)=>{const v=a[f.type],b=v?v({[f.type]:f.value,index:A,parts:l}):[f.value];return Ov(b)&&(b[0].key=`${f.type}-${A}`),b}):we(l)&&(c=[l]);const u=Et(ot(),s),p=we(e.tag)||We(e.tag)?e.tag:ad();return Su(p,u,c)}}const id=ka({name:"i18n-n",props:Et({value:{type:Number,required:!0},format:{type:[String,Object]}},Bi),setup(e,t){const o=e.i18n||bt({useScope:e.scope,__useComponent:!0});return rd(e,t,Kp,(...n)=>o[Fi](...n))}}),ld=ka({name:"i18n-d",props:Et({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Bi),setup(e,t){const o=e.i18n||bt({useScope:e.scope,__useComponent:!0});return rd(e,t,zp,(...n)=>o[Mi](...n))}});function Dv(e,t){const o=e;if(e.mode==="composition")return o.__getInstance(t)||e.global;{const n=o.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function Bv(e){const t=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw Lt(kt.UNEXPECTED_ERROR);const u=Dv(e,i.$),p=cd(c);return[Reflect.apply(u.t,u,[...ud(p)]),u]};return{created:(r,i)=>{const[l,c]=t(i);Vs&&e.global===c&&(r.__i18nWatcher=Fe(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{Vs&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:i})=>{if(r.__composer){const l=r.__composer,c=cd(i);r.textContent=Reflect.apply(l.t,l,[...ud(c)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function cd(e){if(we(e))return{path:e};if(Ge(e)){if(!("path"in e))throw Lt(kt.REQUIRED_VALUE,"path");return e}else throw Lt(kt.INVALID_VALUE)}function ud(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},i=n||{};return we(o)&&(r.locale=o),$t(a)&&(r.plural=a),$t(s)&&(r.plural=s),[t,i,r]}function Gv(e,t,...o){const n=Ge(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Ve(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":sd.name,"I18nT"].forEach(r=>e.component(r,sd)),[id.name,"I18nN"].forEach(r=>e.component(r,id)),[ld.name,"I18nD"].forEach(r=>e.component(r,ld))),e.directive("t",Bv(t))}function jv(e,t,o){return{beforeCreate(){const n=ko();if(!n)throw Lt(kt.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const s=a.i18n;if(a.__i18n&&(s.__i18n=a.__i18n),s.__root=t,this===this.$root)this.$i18n=pd(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=Di(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=pd(e,a);else{this.$i18n=Di({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&Jp(t,a,a),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$tc=(...s)=>this.$i18n.tc(...s),this.$te=(s,r)=>this.$i18n.te(s,r),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=ko();if(!n)throw Lt(kt.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),o.__deleteInstance(n),delete this.$i18n}}}function pd(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Yp](t.pluralizationRules||e.pluralizationRules);const o=Qs(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(o).forEach(n=>e.mergeLocaleMessage(n,o[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const Uv=Jo("global-vue-i18n");function zv(e={},t){const o=__VUE_I18N_LEGACY_API__&&Ve(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Ve(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,i]=Hv(e,o),l=Jo("");function c(f){return s.get(f)||null}function u(f,A){s.set(f,A)}function p(f){s.delete(f)}{const f={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(A,...v){if(A.__VUE_I18N_SYMBOL__=l,A.provide(A.__VUE_I18N_SYMBOL__,f),Ge(v[0])){const $=v[0];f.__composerExtend=$.__composerExtend,f.__vueI18nExtend=$.__vueI18nExtend}let b=null;!o&&n&&(b=Qv(A,f.global)),__VUE_I18N_FULL_INSTALL__&&Gv(A,f,...v),__VUE_I18N_LEGACY_API__&&o&&A.mixin(jv(i,i.__composer,f));const _=A.unmount;A.unmount=()=>{b&&b(),f.dispose(),_()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:p};return f}}function bt(e={}){const t=ko();if(t==null)throw Lt(kt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Lt(kt.NOT_INSTALLED);const o=Vv(t),n=qv(o),a=Zp(t),s=Kv(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw Lt(kt.NOT_AVAILABLE_IN_LEGACY_MODE);return Zv(t,s,n,e)}if(s==="global")return Jp(n,e,a),n;if(s==="parent"){let l=Wv(o,t,e.__useComponent);return l==null&&(l=n),l}const r=o;let i=r.__getInstance(t);if(i==null){const l=Et({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=Oi(l),r.__composerExtend&&(i[Ii]=r.__composerExtend(i)),Xv(r,t,i),r.__setInstance(t,i)}return i}function Hv(e,t,o){const n=Mr();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Di(e)):n.run(()=>Oi(e));if(a==null)throw Lt(kt.UNEXPECTED_ERROR);return[n,a]}}function Vv(e){{const t=Ne(e.isCE?Uv:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Lt(e.isCE?kt.NOT_INSTALLED_WITH_PROVIDE:kt.UNEXPECTED_ERROR);return t}}function Kv(e,t){return Ks(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function qv(e){return e.mode==="composition"?e.global:e.global.__composer}function Wv(e,t,o=!1){let n=null;const a=t.root;let s=Yv(t,o);for(;s!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const i=r.__getInstance(s);i!=null&&(n=i.__composer,o&&n&&!n[Xp]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function Yv(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function Xv(e,t,o){$o(()=>{},t),Es(()=>{const n=o;e.__deleteInstance(t);const a=n[Ii];a&&(a(),delete n[Ii])},t)}function Zv(e,t,o,n={}){const a=t==="local",s=ba(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Lt(kt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=Ve(n.inheritLocale)?n.inheritLocale:!we(n.locale),i=he(!a||r?o.locale.value:we(n.locale)?n.locale:Yn),l=he(!a||r?o.fallbackLocale.value:we(n.fallbackLocale)||pt(n.fallbackLocale)||Ge(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=he(Qs(i.value,n)),u=he(Ge(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=he(Ge(n.numberFormats)?n.numberFormats:{[i.value]:{}}),f=a?o.missingWarn:Ve(n.missingWarn)||Qo(n.missingWarn)?n.missingWarn:!0,A=a?o.fallbackWarn:Ve(n.fallbackWarn)||Qo(n.fallbackWarn)?n.fallbackWarn:!0,v=a?o.fallbackRoot:Ve(n.fallbackRoot)?n.fallbackRoot:!0,b=!!n.fallbackFormat,_=ct(n.missing)?n.missing:null,$=ct(n.postTranslation)?n.postTranslation:null,h=a?o.warnHtmlMessage:Ve(n.warnHtmlMessage)?n.warnHtmlMessage:!0,m=!!n.escapeParameter,w=a?o.modifiers:Ge(n.modifiers)?n.modifiers:{},g=n.pluralRules||a&&o.pluralRules;function P(){return[i.value,l.value,c.value,u.value,p.value]}const d=oe({get:()=>s.value?s.value.locale.value:i.value,set:I=>{s.value&&(s.value.locale.value=I),i.value=I}}),C=oe({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:I=>{s.value&&(s.value.fallbackLocale.value=I),l.value=I}}),S=oe(()=>s.value?s.value.messages.value:c.value),G=oe(()=>u.value),H=oe(()=>p.value);function J(){return s.value?s.value.getPostTranslationHandler():$}function U(I){s.value&&s.value.setPostTranslationHandler(I)}function D(){return s.value?s.value.getMissingHandler():_}function L(I){s.value&&s.value.setMissingHandler(I)}function y(I){return P(),I()}function R(...I){return s.value?y(()=>Reflect.apply(s.value.t,null,[...I])):y(()=>"")}function z(...I){return s.value?Reflect.apply(s.value.rt,null,[...I]):""}function K(...I){return s.value?y(()=>Reflect.apply(s.value.d,null,[...I])):y(()=>"")}function Q(...I){return s.value?y(()=>Reflect.apply(s.value.n,null,[...I])):y(()=>"")}function ie(I){return s.value?s.value.tm(I):{}}function j(I,W){return s.value?s.value.te(I,W):!1}function be(I){return s.value?s.value.getLocaleMessage(I):{}}function xe(I,W){s.value&&(s.value.setLocaleMessage(I,W),c.value[I]=W)}function fe(I,W){s.value&&s.value.mergeLocaleMessage(I,W)}function ke(I){return s.value?s.value.getDateTimeFormat(I):{}}function $e(I,W){s.value&&(s.value.setDateTimeFormat(I,W),u.value[I]=W)}function ne(I,W){s.value&&s.value.mergeDateTimeFormat(I,W)}function te(I){return s.value?s.value.getNumberFormat(I):{}}function de(I,W){s.value&&(s.value.setNumberFormat(I,W),p.value[I]=W)}function Pe(I,W){s.value&&s.value.mergeNumberFormat(I,W)}const T={get id(){return s.value?s.value.id:-1},locale:d,fallbackLocale:C,messages:S,datetimeFormats:G,numberFormats:H,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(I){s.value&&(s.value.inheritLocale=I)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:w},get pluralRules(){return s.value?s.value.pluralRules:g},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:f},set missingWarn(I){s.value&&(s.value.missingWarn=I)},get fallbackWarn(){return s.value?s.value.fallbackWarn:A},set fallbackWarn(I){s.value&&(s.value.missingWarn=I)},get fallbackRoot(){return s.value?s.value.fallbackRoot:v},set fallbackRoot(I){s.value&&(s.value.fallbackRoot=I)},get fallbackFormat(){return s.value?s.value.fallbackFormat:b},set fallbackFormat(I){s.value&&(s.value.fallbackFormat=I)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:h},set warnHtmlMessage(I){s.value&&(s.value.warnHtmlMessage=I)},get escapeParameter(){return s.value?s.value.escapeParameter:m},set escapeParameter(I){s.value&&(s.value.escapeParameter=I)},t:R,getPostTranslationHandler:J,setPostTranslationHandler:U,getMissingHandler:D,setMissingHandler:L,rt:z,d:K,n:Q,tm:ie,te:j,getLocaleMessage:be,setLocaleMessage:xe,mergeLocaleMessage:fe,getDateTimeFormat:ke,setDateTimeFormat:$e,mergeDateTimeFormat:ne,getNumberFormat:te,setNumberFormat:de,mergeNumberFormat:Pe};function F(I){I.locale.value=i.value,I.fallbackLocale.value=l.value,Object.keys(c.value).forEach(W=>{I.mergeLocaleMessage(W,c.value[W])}),Object.keys(u.value).forEach(W=>{I.mergeDateTimeFormat(W,u.value[W])}),Object.keys(p.value).forEach(W=>{I.mergeNumberFormat(W,p.value[W])}),I.escapeParameter=m,I.fallbackFormat=b,I.fallbackRoot=v,I.fallbackWarn=A,I.missingWarn=f,I.warnHtmlMessage=h}return zc(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Lt(kt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const I=s.value=e.proxy.$i18n.__composer;t==="global"?(i.value=I.locale.value,l.value=I.fallbackLocale.value,c.value=I.messages.value,u.value=I.datetimeFormats.value,p.value=I.numberFormats.value):a&&F(I)}),T}const Jv=["locale","fallbackLocale","availableLocales"],dd=["t","rt","d","n","tm","te"];function Qv(e,t){const o=Object.create(null);return Jv.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw Lt(kt.UNEXPECTED_ERROR);const r=ut(s.value)?{get(){return s.value.value},set(i){s.value.value=i}}:{get(){return s.get&&s.get()}};Object.defineProperty(o,a,r)}),e.config.globalProperties.$i18n=o,dd.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw Lt(kt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,dd.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(Tv(),__INTLIFY_JIT_COMPILATION__?Pp(Lv):Pp(xv),hv(Y0),mv(wp),__INTLIFY_PROD_DEVTOOLS__){const e=Go();e.__INTLIFY__=!0,av(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const e1=Object.assign({"./locales/ar/allPeopleGroups.json":ob,"./locales/ar/aria.json":nb,"./locales/ar/buttons.json":ab,"./locales/ar/connectivity.json":sb,"./locales/ar/controls.json":rb,"./locales/ar/dashboard.json":ib,"./locales/ar/detail.json":lb,"./locales/ar/gospel.json":cb,"./locales/ar/grid.json":ub,"./locales/ar/legend.json":pb,"./locales/ar/messages.json":db,"./locales/ar/options.json":gb,"./locales/ar/popup.json":fb,"./locales/ar/prayerLaps.json":hb,"./locales/ar/regions.json":mb,"./locales/ar/search.json":bb,"./locales/ar/studio.json":$b,"./locales/ar/tabs.json":yb,"./locales/ar/vision.json":_b,"./locales/de/allPeopleGroups.json":vb,"./locales/de/aria.json":kb,"./locales/de/buttons.json":wb,"./locales/de/connectivity.json":xb,"./locales/de/controls.json":Lb,"./locales/de/dashboard.json":Sb,"./locales/de/detail.json":Ab,"./locales/de/gospel.json":Pb,"./locales/de/grid.json":Cb,"./locales/de/legend.json":Eb,"./locales/de/messages.json":Tb,"./locales/de/options.json":Nb,"./locales/de/popup.json":Rb,"./locales/de/prayerLaps.json":Mb,"./locales/de/regions.json":Fb,"./locales/de/search.json":Ib,"./locales/de/studio.json":Ob,"./locales/de/tabs.json":Db,"./locales/de/vision.json":Bb,"./locales/en/allPeopleGroups.json":Gb,"./locales/en/aria.json":jb,"./locales/en/buttons.json":Ub,"./locales/en/connectivity.json":zb,"./locales/en/controls.json":Hb,"./locales/en/dashboard.json":Vb,"./locales/en/detail.json":Kb,"./locales/en/gospel.json":qb,"./locales/en/grid.json":Wb,"./locales/en/legend.json":Yb,"./locales/en/messages.json":Xb,"./locales/en/options.json":Zb,"./locales/en/popup.json":Jb,"./locales/en/prayerLaps.json":Qb,"./locales/en/regions.json":e$,"./locales/en/search.json":t$,"./locales/en/studio.json":o$,"./locales/en/tabs.json":n$,"./locales/en/vision.json":a$,"./locales/es/allPeopleGroups.json":s$,"./locales/es/aria.json":r$,"./locales/es/buttons.json":i$,"./locales/es/connectivity.json":l$,"./locales/es/controls.json":c$,"./locales/es/dashboard.json":u$,"./locales/es/detail.json":p$,"./locales/es/gospel.json":d$,"./locales/es/grid.json":g$,"./locales/es/legend.json":f$,"./locales/es/messages.json":h$,"./locales/es/options.json":m$,"./locales/es/popup.json":b$,"./locales/es/prayerLaps.json":$$,"./locales/es/regions.json":y$,"./locales/es/search.json":_$,"./locales/es/studio.json":v$,"./locales/es/tabs.json":k$,"./locales/es/vision.json":w$,"./locales/fr/allPeopleGroups.json":x$,"./locales/fr/aria.json":L$,"./locales/fr/buttons.json":S$,"./locales/fr/connectivity.json":A$,"./locales/fr/controls.json":P$,"./locales/fr/dashboard.json":C$,"./locales/fr/detail.json":E$,"./locales/fr/gospel.json":T$,"./locales/fr/grid.json":N$,"./locales/fr/legend.json":R$,"./locales/fr/messages.json":M$,"./locales/fr/options.json":F$,"./locales/fr/popup.json":I$,"./locales/fr/prayerLaps.json":O$,"./locales/fr/regions.json":D$,"./locales/fr/search.json":B$,"./locales/fr/studio.json":G$,"./locales/fr/tabs.json":j$,"./locales/fr/vision.json":U$,"./locales/hi/allPeopleGroups.json":z$,"./locales/hi/aria.json":H$,"./locales/hi/buttons.json":V$,"./locales/hi/connectivity.json":K$,"./locales/hi/controls.json":q$,"./locales/hi/dashboard.json":W$,"./locales/hi/detail.json":Y$,"./locales/hi/gospel.json":X$,"./locales/hi/grid.json":Z$,"./locales/hi/legend.json":J$,"./locales/hi/messages.json":Q$,"./locales/hi/options.json":ey,"./locales/hi/popup.json":ty,"./locales/hi/prayerLaps.json":oy,"./locales/hi/regions.json":ny,"./locales/hi/search.json":ay,"./locales/hi/studio.json":sy,"./locales/hi/tabs.json":ry,"./locales/hi/vision.json":iy,"./locales/it/allPeopleGroups.json":ly,"./locales/it/aria.json":cy,"./locales/it/buttons.json":uy,"./locales/it/connectivity.json":py,"./locales/it/controls.json":dy,"./locales/it/dashboard.json":gy,"./locales/it/detail.json":fy,"./locales/it/gospel.json":hy,"./locales/it/grid.json":my,"./locales/it/legend.json":by,"./locales/it/messages.json":$y,"./locales/it/options.json":yy,"./locales/it/popup.json":_y,"./locales/it/prayerLaps.json":vy,"./locales/it/regions.json":ky,"./locales/it/search.json":wy,"./locales/it/studio.json":xy,"./locales/it/tabs.json":Ly,"./locales/it/vision.json":Sy,"./locales/pt/allPeopleGroups.json":Ay,"./locales/pt/aria.json":Py,"./locales/pt/buttons.json":Cy,"./locales/pt/connectivity.json":Ey,"./locales/pt/controls.json":Ty,"./locales/pt/dashboard.json":Ny,"./locales/pt/detail.json":Ry,"./locales/pt/gospel.json":My,"./locales/pt/grid.json":Fy,"./locales/pt/legend.json":Iy,"./locales/pt/messages.json":Oy,"./locales/pt/options.json":Dy,"./locales/pt/popup.json":By,"./locales/pt/prayerLaps.json":Gy,"./locales/pt/regions.json":jy,"./locales/pt/search.json":Uy,"./locales/pt/studio.json":zy,"./locales/pt/tabs.json":Hy,"./locales/pt/vision.json":Vy,"./locales/ro/allPeopleGroups.json":Ky,"./locales/ro/aria.json":qy,"./locales/ro/buttons.json":Wy,"./locales/ro/connectivity.json":Yy,"./locales/ro/controls.json":Xy,"./locales/ro/dashboard.json":Zy,"./locales/ro/detail.json":Jy,"./locales/ro/gospel.json":Qy,"./locales/ro/grid.json":e_,"./locales/ro/legend.json":t_,"./locales/ro/messages.json":o_,"./locales/ro/options.json":n_,"./locales/ro/popup.json":a_,"./locales/ro/prayerLaps.json":s_,"./locales/ro/regions.json":r_,"./locales/ro/search.json":i_,"./locales/ro/studio.json":l_,"./locales/ro/tabs.json":c_,"./locales/ro/vision.json":u_,"./locales/ru/allPeopleGroups.json":p_,"./locales/ru/aria.json":d_,"./locales/ru/buttons.json":g_,"./locales/ru/connectivity.json":f_,"./locales/ru/controls.json":h_,"./locales/ru/dashboard.json":m_,"./locales/ru/detail.json":b_,"./locales/ru/gospel.json":$_,"./locales/ru/grid.json":y_,"./locales/ru/legend.json":__,"./locales/ru/messages.json":v_,"./locales/ru/options.json":k_,"./locales/ru/popup.json":w_,"./locales/ru/prayerLaps.json":x_,"./locales/ru/regions.json":L_,"./locales/ru/search.json":S_,"./locales/ru/studio.json":A_,"./locales/ru/tabs.json":P_,"./locales/ru/vision.json":C_,"./locales/zh/allPeopleGroups.json":E_,"./locales/zh/aria.json":T_,"./locales/zh/buttons.json":N_,"./locales/zh/connectivity.json":R_,"./locales/zh/controls.json":M_,"./locales/zh/dashboard.json":F_,"./locales/zh/detail.json":I_,"./locales/zh/gospel.json":O_,"./locales/zh/grid.json":D_,"./locales/zh/legend.json":B_,"./locales/zh/messages.json":G_,"./locales/zh/options.json":j_,"./locales/zh/popup.json":U_,"./locales/zh/prayerLaps.json":z_,"./locales/zh/regions.json":H_,"./locales/zh/search.json":V_,"./locales/zh/studio.json":K_,"./locales/zh/tabs.json":q_,"./locales/zh/vision.json":W_}),yn={};for(const[e,t]of Object.entries(e1)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;yn[n]??(yn[n]={}),yn[n][a]=t}yn.en;const Ba=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],gd=new Set(["ar"]);function t1(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function fd(){var n;const e=t1();if(Ba.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Ba.includes(o)?o:"en"}function o1(){const e=fd();try{gd.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}const t=zv({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:yn,missingWarn:!1,fallbackWarn:!1});Fe(t.global.locale,n=>md(n),{immediate:!0});const o=t.install.bind(t);return t.install=(n,...a)=>{const s=o(n,...a);return n.provide("appI18n",t),s},t}const hd="__DOXA_PAGE_LOCALE";function md(e){const t=String(e||"").split("-")[0].toLowerCase();if(Ba.includes(t))try{typeof window<"u"&&(window[hd]=t)}catch{}}function n1(){try{return typeof window<"u"&&window[hd]||""}catch{return""}}function Ga(e,t){const o=a=>{let s=yn[a];for(const r of String(e).split(".")){if(!s||typeof s!="object")return;s=s[r]}return typeof s=="string"?s:void 0},n=t||n1()||fd();return o(n)??o("en")}function wt(e,t){const o=t||a1(e);$o(()=>{var i;const n=ko();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot)||s.querySelector(`style[data-shadow-styles="${o}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",o),r.textContent=e,s.appendChild(r)})}function a1(e){let t=0;for(let o=0;ot[C]||C,n=()=>!1;try{const C=bt();o=C.t,n=C.te}catch{}const a=Ne("uiStore",null),s=Ne("profileConfig",null),r=oe(()=>(a==null?void 0:a.theme)==="dark"),i=oe(()=>{var G;const C=(G=s==null?void 0:s.value)==null?void 0:G.pinHintLabel;if(C)return C;const S="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):S}catch{return S}}),l=he(!1),c=he(null);let u=null,p=null,f=null,A=null,v=null,b=null,_=[],$=null,h=null;function m(){l.value=!1}function w(C,S){var H;let G=C==null?void 0:C.parentElement;for(let J=0;G&&J<12;J++,G=G.parentElement){if(G===S||(H=G.classList)!=null&&H.contains("profile-loader"))return null;let U="";try{U=getComputedStyle(G).position}catch{}if(U&&U!=="static"){const D=G.getBoundingClientRect();if(D.height>=120&&D.width>=160)return G}}return null}function g(C){var G;const S=(G=A==null?void 0:A.querySelector)==null?void 0:G.call(A,".legend-mobile-sheet");if(!S)return 1/0;if(v&&b!==S){try{v.disconnect()}catch{}v=null}if(!v&&typeof ResizeObserver<"u")try{v=new ResizeObserver(()=>P()),v.observe(S),b=S}catch{v=null}try{const H=S.getBoundingClientRect();return!(H.height>16)||!(H.width>16)||C.right<=H.left||H.right<=C.left?1/0:H.top}catch{return 1/0}}function P(){const C=c.value;if(C)try{C.style.removeProperty("--pin-hint-lift");const S=C.getBoundingClientRect();if(!S.height)return;const G=Math.min(window.innerHeight,g(S)),H=Math.round(S.bottom-G);H>0&&C.style.setProperty("--pin-hint-lift",H+8+"px")}catch{}}function d(C){const S=c.value;if(!S||!(C!=null&&C.querySelector))return;let G=0;try{const J=C.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(J){const U=J.getBoundingClientRect(),D=S.parentElement,L=D?D.getBoundingClientRect():null;if(G=L?Math.max(U.height||0,L.bottom-U.top):U.height||0,h!==J&&typeof ResizeObserver<"u"){if(f)try{f.disconnect()}catch{}h=J,f=new ResizeObserver(()=>d(C)),f.observe(J)}}}catch{}const H=Math.min(Math.max(Math.ceil(G)||20,20),72);S.style.setProperty("--pin-hint-attrib-clear",H+"px"),P()}return $o(()=>{var H,J,U;const C=ko(),S=(U=(J=(H=C==null?void 0:C.proxy)==null?void 0:H.$el)==null?void 0:J.getRootNode)==null?void 0:U.call(J);if(!S||typeof S.querySelector!="function")return;A=S;let G=0;u=setInterval(()=>{G++;const D=S.querySelector("canvas");D?(clearInterval(u),u=null,l.value=!0,It(()=>{const L=w(D,S),y=c.value;if(L&&y&&y.parentElement!==L)try{L.appendChild(y),p=L}catch{}d(S),P(),_.push(setTimeout(P,1200),setTimeout(P,3e3),setTimeout(P,6e3));try{const R=c.value&&c.value.offsetParent||null;if(R&&typeof ResizeObserver<"u"){if($)try{$.disconnect()}catch{}$=new ResizeObserver(()=>P()),$.observe(R)}}catch{}})):G>40&&(clearInterval(u),u=null)},300)}),Xt(()=>{var C;if(u&&clearInterval(u),f){try{f.disconnect()}catch{}f=null}if(h=null,$){try{$.disconnect()}catch{}$=null}if(v){try{v.disconnect()}catch{}v=null}b=null;for(const S of _)clearTimeout(S);if(_=[],A=null,p&&((C=c.value)==null?void 0:C.parentElement)===p)try{p.removeChild(c.value)}catch{}p=null}),wt(` - .pin-hint { position: absolute; left: 50%; - bottom: calc(var(--pin-hint-attrib-clear, 20px) + 12px + var(--pin-hint-lift, 0px)); transform: translateX(-50%); - z-index: 2147482000; pointer-events: none; - max-width: calc(100% - 24px); box-sizing: border-box; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; - animation: pinhint-in .5s ease both; } - .pin-hint-pill { pointer-events: auto; display: inline-flex; align-items: center; gap: 9px; - padding: 9px 14px 9px 11px; border-radius: 999px; - background: rgba(23, 29, 38, .92); color: #fff; font-size: 13.5px; font-weight: 600; - letter-spacing: .01em; box-shadow: 0 4px 18px rgba(0,0,0,.30); - animation: pinhint-bob 2.6s ease-in-out 1s infinite; } - .pin-hint-dot { position: relative; width: 12px; height: 12px; flex: none; } - .pin-hint-dot::before { content: ''; position: absolute; inset: 0; border-radius: 50%; - background: #e05252; box-shadow: 0 0 0 2px rgba(224,82,82,.35); } - .pin-hint-dot::after { content: ''; position: absolute; inset: -5px; border-radius: 50%; - border: 2px solid rgba(224,82,82,.55); animation: pinhint-pulse 1.8s ease-out infinite; } - .pin-hint-x { pointer-events: auto; border: none; background: none; color: #aeb7c2; - font-size: 16px; line-height: 1; cursor: pointer; padding: 0 0 0 2px; } - .pin-hint-x:hover { color: #fff; } - @media (pointer:coarse) { .pin-hint-x { min-width: 24px; min-height: 24px; - display: inline-flex; align-items: center; justify-content: center; padding: 0; } } - .pin-hint.dark .pin-hint-pill { background: rgba(240, 243, 247, .95); color: #1b212b; } - .pin-hint.dark .pin-hint-x { color: #5a6470; } - .pin-hint.dark .pin-hint-x:hover { color: #1b212b; } - @keyframes pinhint-pulse { 0% { transform: scale(.6); opacity: .9 } 70% { transform: scale(1.5); opacity: 0 } 100% { opacity: 0 } } - @keyframes pinhint-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } } - @keyframes pinhint-in { from { opacity: 0; transform: translateX(-50%) translateY(10px) } to { opacity: 1; transform: translateX(-50%) translateY(0) } } - @media (prefers-reduced-motion: reduce) { - .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } - } -`,"pin-hint"),(C,S)=>l.value?(ae(),pe("div",{key:0,ref_key:"hintEl",ref:c,class:Re(["pin-hint",{dark:r.value}]),role:"status"},[M("span",s1,[S[0]||(S[0]=M("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Pt(" "+ye(i.value)+" ",1),M("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:m},"×")])],2)):Le("",!0)}},er="mapbox://styles/mapbox/standard",i1=er,l1=er,c1=!1,bd={lightPreset:"night",theme:"default"},u1={lightPreset:"day",theme:"monochrome"};function p1(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function d1(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let s="dark";function r($){return p1($)}function i($,h){$!=="light"&&$!=="dark"||(s=$,h&&b(h))}function l(){return{...s==="light"?u1:bd}}function c(){return er}function u(){return{basemap:l()}}function p($,h){try{return typeof $.getConfigProperty=="function"?$.getConfigProperty("basemap",h):void 0}catch{return}}function f($){return!!$&&typeof $.setConfigProperty=="function"&&typeof $.getConfigProperty=="function"}function A($,h=!1){if(!f($))return!1;const m=l();let w=!1;try{for(const[g,P]of Object.entries(m))!h&&p($,g)===P||($.setConfigProperty("basemap",g,P),w=!0)}catch(g){console.warn("[useMapTheme] setConfigProperty failed:",g)}return w}function v($){if(!o.has($)&&(o.add($),!!f($)))try{$.on("style.load",()=>A($)),$.on("styledata",()=>A($))}catch{}}function b($){if(!$)return;if(v($),A($)&&!t){t=!0;try{$.once("idle",()=>{t=!1,A($,!0)})}catch{t=!1}}}function _($){e.toggleTheme(),b($)}return{setLook:i,lookFor:r,STANDARD_STYLE:er,LIGHT_STYLE:i1,DARK_STYLE:l1,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:b,swapTheme:_}}let g1=0;const f1=$i("ui",{state:()=>({_storeInstanceId:++g1,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:s=!1}=e,r={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(r),!s&&n>0&&setTimeout(()=>{this.removeToast(r.id)},n),r.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),h1=$i("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusteringMode:"off",clusterPinOpacity:.6,clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const s=t.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),m1=$i("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Fn({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Fn({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),_n={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},b1=".profile-loader[data-v-ccbcaedb]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-ccbcaedb]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",nn=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},$1=["dir"],y1={key:0,class:"profile-error"},_1={key:1,class:"profile-error"},v1=nn({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var P;const o=e,n=Ne("profileConfig",null),a=oe(()=>{var C;if(!o.profileConfig)return null;let d;try{d=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(d&&d.assetsBase===void 0){const S=(C=n==null?void 0:n.value)==null?void 0:C.assetsBase;typeof S=="string"&&S&&(d.assetsBase=S)}return d}),s=oe(()=>{var d;return((d=a.value)==null?void 0:d.profile)||null}),r=tb(),i=oe(()=>{var C;const d=(C=a.value)==null?void 0:C.tk;return typeof d=="string"&&d?d:r.value||""});Fe(()=>{var d;return(d=a.value)==null?void 0:d.tk},d=>{typeof d=="string"&&d&&Zu(d)},{immediate:!0});const l=oe(()=>{var d;return((d=a.value)==null?void 0:d.dataSource)||_n.activeSource||"doxa-csv"}),c=oe(()=>{var d;return((d=a.value)==null?void 0:d.colorSet)||"default"}),u=oe(()=>!1),p=oe(()=>{var d;return((d=a.value)==null?void 0:d.pinHint)!==!1}),f=oe(()=>{var C,S;const d=(((C=a.value)==null?void 0:C.locale)||((S=a.value)==null?void 0:S.lang)||"").split("-")[0].toLowerCase();return Ba.includes(d)?d:""}),A=Ne("appI18n",null);uh(()=>{f.value&&(A&&(A.global.locale.value=f.value),md(f.value))});const v=oe(()=>{var d,C;return f.value||((C=(d=A==null?void 0:A.global)==null?void 0:d.locale)==null?void 0:C.value)||"en"}),b=oe(()=>gd.has(v.value)?"rtl":"ltr"),_=oe(()=>{var d;return((d=a.value)==null?void 0:d.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),$=Ne("profileModules",null);if(!$)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const h=oe(()=>{if(!s.value)return null;const d=`./${s.value}.vue`;return $[d]?Hs($[d]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys($)),null)});vt("mapboxToken",i),vt("dataSource",l),vt("colorSet",c),vt("profileConfig",a),vt("instanceId",_),vt("lang",v);const m=f1(),w=h1(),g=m1();try{const d=typeof localStorage<"u"?localStorage.getItem("theme"):null;d&&((P=m.setTheme)==null||P.call(m,d))}catch{}return vt("uiStore",m),vt("mapStore",w),vt("dataStore",g),(d,C)=>(ae(),pe("div",{class:"profile-loader",dir:b.value},[a.value?h.value?(ae(),et(Vc(h.value),{key:2})):(ae(),pe("div",_1,[M("p",null,[C[1]||(C[1]=Pt("⚠️ Profile ",-1)),M("strong",null,'"'+ye(s.value)+'"',1),C[2]||(C[2]=Pt(" not found.",-1))])])):(ae(),pe("div",y1,[...C[0]||(C[0]=[M("p",null,[Pt("⚠️ "),M("strong",null,"doxa-map"),Pt(": missing or invalid "),M("code",null,"profile-config"),Pt(" prop.")],-1),M("p",null,[Pt("Example: "),M("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),h.value&&u.value?(ae(),et(Vc(ge(null)),{key:3})):Le("",!0),h.value&&p.value?(ae(),et(r1,{key:4})):Le("",!0)],8,$1))}},[["styles",[b1]],["__scopeId","data-v-ccbcaedb"]]),$d="adoptionStatus",zo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Gi=zo,ji={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},k1=ji;function yd(e){var n;const t=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?zo.hasAdoption:zo.notAdopted}function Ui({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],zo.hasAdoption,["==",t,1],zo.hasAdoption,zo.notAdopted]}const _d=Ui,w1=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Gi,ADOPTION_LABELS:k1,LABELS:ji,PALETTE:zo,PROPERTY_KEY:$d,applyColor:Ui,buildColorExpression:_d,default:{name:"Adoption Progress",propertyKey:$d,palette:zo,colors:zo,labels:ji,getColor:yd,applyColor:Ui,buildColorExpression:_d},getColor:yd},Symbol.toStringTag,{value:"Module"})),vd="engagementStatus",Ho={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},zi=Ho,Hi={notEngaged:"Unengaged",hasEngagement:"Engaged"},x1=Hi;function kd(e){var n;const t=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Ho.hasEngagement:Ho.notEngaged}function Vi({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Ho.hasEngagement,["==",t,1],Ho.hasEngagement,Ho.notEngaged]}const wd=Vi,L1=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:zi,ENGAGEMENT_LABELS:x1,LABELS:Hi,PALETTE:Ho,PROPERTY_KEY:vd,applyColor:Vi,buildColorExpression:wd,default:{name:"Engagement Progress",propertyKey:vd,palette:Ho,colors:Ho,labels:Hi,getColor:kd,applyColor:Vi,buildColorExpression:wd},getColor:kd},Symbol.toStringTag,{value:"Module"})),Ki="languageFamily",S1="#000000",an={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},xd=an;function co(e){return an[e]||S1}const A1=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(an))t[e(o)]=o;return t})(),P1={"tai-kadai":"Kra-Dai",none:"Unknown"};function tr(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return P1[o]||A1[o]||t}function Ld(e){var t;return co(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function qi(){const e=["match",["get",Ki]];return Object.entries(an).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Sd=qi,C1=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:xd,PALETTE:an,PROPERTY_KEY:Ki,applyColor:qi,buildColorExpression:Sd,canonicalFamilyName:tr,default:{name:"Language Family",propertyKey:Ki,palette:an,colors:an,getColor:Ld,applyColor:qi,buildColorExpression:Sd,getLanguageFamilyColor:co,canonicalFamilyName:tr},defaultFamilyColor:"#95a5a6",getColor:Ld,getLanguageFamilyColor:co,languageFamilyColors:an},Symbol.toStringTag,{value:"Module"})),Ad="peoplePraying",Lo=144,sn={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},vn=sn,Wi={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},E1=Wi;function or(e){var n;const t=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,o=Number(t)||0;return o>=Lo?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function Yi(e){return sn[or(e)]}function Pd(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function Cd(e){return or(e)==="fullPrayer"}function Ed(e){return Yi(e)}function Xi({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Lo],sn.fullPrayer,[">",t,0],sn.hasPrayer,sn.noPrayer]}const Td=Xi,T1=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Lo,LABELS:Wi,PALETTE:sn,PRAYER_COLORS:vn,PRAYER_LABELS:E1,PROPERTY_KEY:Ad,applyColor:Xi,buildColorExpression:Td,checkHasFullPrayer:Cd,checkHasPrayer:Pd,default:{name:"Prayer Progress",propertyKey:Ad,palette:sn,colors:sn,labels:Wi,threshold:Lo,getColor:Ed,applyColor:Xi,buildColorExpression:Td,getPrayerLevel:or,getPrayerColor:Yi,checkHasPrayer:Pd,checkHasFullPrayer:Cd},getColor:Ed,getPrayerColor:Yi,getPrayerLevel:or},Symbol.toStringTag,{value:"Module"})),Nd="religion",Zi="#94a3b8",Jt={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},qt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function ja(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return Jt[t]?t:"U"}function Rd(e){var o,n,a;const t=(e==null?void 0:e.religion)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return qt[ja(t)]||Zi}function Ji(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",qt.C,"M",qt.M,"H",qt.H,"B",qt.B,"E",qt.E,"J",qt.J,"S",qt.S,"N",qt.N,"O",qt.O,Zi]}const Md=Ji,N1=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:qt,PROPERTY_KEY:Nd,RELIGION_FAMILIES:Jt,applyColor:Ji,buildColorExpression:Md,default:{name:"Religion",propertyKey:Nd,palette:qt,families:Jt,getColor:Rd,applyColor:Ji,buildColorExpression:Md,fallback:Zi},getColor:Rd,getReligionFamily:ja},Symbol.toStringTag,{value:"Module"})),Fd="region",Qi="#6d766e",Id={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},Ua={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},el=Object.keys(Ua);function Od(e){var o,n,a;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return Ua[t]||Qi}function tl(){const e=["match",["coalesce",["get","region"],""]];for(const t of el)e.push(t,Ua[t]);return e.push(Qi),e}const Dd=tl,R1=Object.assign({"./adoption.js":w1,"./engagement.js":L1,"./language-family.js":C1,"./prayer-progress.js":T1,"./religion.js":N1,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Ua,PROPERTY_KEY:Fd,REGION_ORDER:el,WAGF_REGIONS:Id,applyColor:tl,buildColorExpression:Dd,default:{name:"WAGF Region",propertyKey:Fd,palette:Ua,regions:Id,order:el,getColor:Od,applyColor:tl,buildColorExpression:Dd,fallback:Qi},getColor:Od},Symbol.toStringTag,{value:"Module"}))}),M1=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),F1=e=>e.replace(/-/g,"_").toUpperCase(),Zn={...{STATUS:"status",CUSTOM:"custom"}},ol={};function Bd(e){for(const t of Object.keys(e).sort()){const o=t.split("/").pop().replace(/\.js$/,"");if(o.startsWith("_")||o.startsWith("."))continue;const n=e[t].default;if(!n)continue;const a=M1(o);Zn[F1(o)]=a,ol[a]=n}}Bd(R1);function I1(e){e&&Bd(e)}function So(e){return ol[e]||ol[Zn.LANGUAGE_FAMILY]}function O1(e,t={}){return So(e).applyColor(t)}const D1=Object.assign({"./research-map.vue":()=>oo(()=>Promise.resolve().then(()=>TA),void 0)});if(I1(Object.assign({"./src/colors/affinity-block.js":lf,"./src/colors/doxa-region.js":pf,"./src/colors/resource.js":ff})),typeof window<"u"&&((zg=window.mapboxgl)!=null&&zg.setRTLTextPlugin))try{window.mapboxgl.setRTLTextPlugin("https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",null,!0)}catch{}function B1(){return Bm(v1,{configureApp(e){e.use(Wm());const t=o1();e.use(t),e.provide("appI18n",t),e.provide("profileModules",D1)}})}const G1=B1();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",G1));const j1="rgba(120, 128, 134, 0.28)",Gd="36px",jd=()=>{};function U1(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return jd;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return jd;const a=h=>h.classList.contains("map-scroll-edge--left");for(const h of n)h.style.background=`linear-gradient(${a(h)?"to right":"to left"}, ${j1} ${Gd}, transparent ${Gd})`,h.style.opacity="0",h.style.transition="opacity 0.16s ease",h.style.userSelect="none",h.style.webkitUserSelect="none";const s=h=>{h.style.opacity="1"},r=h=>{h.style.opacity="0"},i=()=>n.find(h=>!a(h))||null,l=new Set;let c=!1,u=null;const p=()=>{for(const h of n)l.has(h)||r(h)},f=()=>{const h=i();h&&(s(h),u&&clearTimeout(u),u=setTimeout(p,250))},A=()=>f(),v=h=>{if(!(h.touches&&h.touches.length===1))return;const m=h.target;m&&m.classList&&m.classList.contains("map-scroll-edge")||f()},b=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",A,{passive:!0}),e.addEventListener("touchmove",v,{passive:!0}),e.addEventListener("touchend",b,{passive:!0}),e.addEventListener("touchcancel",b,{passive:!0});const _=()=>{c||f()};typeof window<"u"&&window.addEventListener("scroll",_,{passive:!0});const $=[];for(const h of n){const m=()=>{l.add(h),s(h)},w=()=>{l.delete(h),r(h)},g=()=>{c=!0,s(h)},P=()=>{c=!1,r(h)};h.addEventListener("mouseenter",m),h.addEventListener("mouseleave",w),h.addEventListener("touchstart",g,{passive:!0}),h.addEventListener("touchend",P,{passive:!0}),$.push(()=>{h.removeEventListener("mouseenter",m),h.removeEventListener("mouseleave",w),h.removeEventListener("touchstart",g),h.removeEventListener("touchend",P)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",A),e.removeEventListener("touchmove",v),e.removeEventListener("touchend",b),e.removeEventListener("touchcancel",b),typeof window<"u"&&window.removeEventListener("scroll",_);for(const m of $)m();for(const m of n)r(m)}}const z1=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function H1(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=z1[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function V1(e,t){if(!e||!Array.isArray(t))return[];const o=[];for(const n of t)if(!(!n||!n.layer||!n.prop))try{if(!e.getLayer(n.layer))continue;e.setPaintProperty(n.layer,n.prop,n.value),o.push(n.layer+"."+n.prop)}catch{}return o}const K1=["mapbox","maplibre"],Ud="mapbox";function q1(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function zd(e){const t=q1(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,s=String(o||n||a||Ud).toLowerCase().trim();return K1.includes(s)?s:Ud}function W1(e){return e==="maplibre"?"MapLibre":"Mapbox"}function Hd(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function nr(e){if(typeof window>"u")return;const t=window.maplibregl,o=window.mapboxgl;return t&&t.Map&&e instanceof t.Map?t:o&&o.Map&&e instanceof o.Map?o:o||t}function Ao(e,t="circle"){return Hd(e)?{[`${t}-emissive-strength`]:1}:{}}const Vd={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",maplibre:"https://cdn.jsdelivr.net/npm/@mapbox/mapbox-gl-rtl-text@0.3.0/dist/mapbox-gl-rtl-text.js"};function Y1(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function X1(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let o=!1;for(const n of t)if(!(!n||!n.setRTLTextPlugin))try{if(Y1(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(Vd.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(Vd.mapbox,null,!0);o=!0}catch{}return o}const Z1=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,Kd=new WeakMap;function J1(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function qd(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!J1(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let a=Kd.get(e);a||(a=new Map,Kd.set(e,a));let s=0;for(const r of n.layers){if(r.type!=="symbol"||!r.layout||r.layout["text-field"]==null)continue;const i=r.layout["text-field"],l=JSON.stringify(i);if(l.startsWith('["coalesce",["get","name:')){if(!a.has(r.id))continue}else{if(!Z1.test(l))continue;a.set(r.id,i)}const c=o==="en"?a.get(r.id):["coalesce",["get","name:"+o],["get","name:latin"],["get","name"]];e.setLayoutProperty(r.id,"text-field",c),s++}return s}catch{return 0}}const Jn={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function Wd(e){if(typeof window>"u")return;const t=window,o=()=>{try{const n=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");n&&(n.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",o),o();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const Q1=Jn.mapbox.css,ek="https://tiles.openfreemap.org/styles/liberty",tk="https://tiles.openfreemap.org/styles/fiord";function nl(e){var o;const t=((o=Jn[e])==null?void 0:o.global)||Jn.mapbox.global;return typeof window<"u"?window[t]:void 0}async function ok(e){const t=Jn[e]||Jn.mapbox;if(nl(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(nl(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const s=document.createElement("script");s.src=t.js,s.async=!1,s.addEventListener("load",n,{once:!0}),s.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(s)})}async function nk(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=r=>new Promise(i=>setTimeout(i,r)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(r=>{a.addEventListener("load",r,{once:!0}),a.addEventListener("error",r,{once:!0})}),n(2e3)]);return}const s=document.createElement("link");s.rel="stylesheet",s.href=t,await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),o.prepend(s)}),n(2e3)])}function ak(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?tk:ek}const sk=85.0511,al=-2,rk=0,ik=-60;function Yd(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function lk(e,t,o,n){if(!e||e<=0||!t||t<=0)return rk;const a=Math.log2(e/512),s=Yd(n)-Yd(sk),r=Math.log2(t/(512*s)),i=Math.max(a,r);return Math.max(al,Math.min(i,(o??18)-1))}function ck({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a=void 0,center:s=[20,10],zoom:r=2,bounds:i=void 0,fitBoundsOptions:l=void 0,minZoom:c=void 0,skipWorldFloor:u=!1,maxZoom:p=18,pitch:f=0,bearing:A=0,renderWorldCopies:v=!0,showEdgeBorders:b=!0,southCutoff:_=ik,maxBounds:$=void 0}){const h=ba(null),m=he(!1);let w=null,g=null,P=null,d=null;try{d=Ne("profileConfig",null)}catch{}a=a||zd(d);const C=a==="maplibre";let S=null;try{S=Ne("lang",null)}catch{}const G=()=>{const U=S&&typeof S=="object"&&"value"in S?S.value:S;if(typeof U=="string"&&U)return U;const D=d&&typeof d=="object"&&"value"in d?d.value:d;if(D&&(D.locale||D.lang))return String(D.locale||D.lang);try{const L=new URLSearchParams(location.search);return L.get("lang")||L.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function H(){var $e;const U=H1(o,a),D=U.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const L=()=>!e.value;if(await ok(a),L())return;const y=nl(a);if(!y){console.error(`[useMapInstance] ${C?"maplibregl":"mapboxgl"} is not available. Add the ${C?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(X1(y),!C){if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){console.error('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.');return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await nk(e.value,C?Jn.maplibre.css:Q1),L()||(await new Promise(ne=>requestAnimationFrame(ne)),L()))return;const R=e.value,z=R.clientWidth,K=R.clientHeight;if(z===0||K===0){console.error(`[useMapInstance] Container has ZERO dimensions (${z}×${K}). Map will be invisible. Check that parent elements have CSS sizing.`);let ne=R.parentElement,te=0;for(;ne&&te<5;)ne=ne.parentElement,te++}const Q=t;C||(y.accessToken=Q);const ie=()=>typeof window<"u"&&window.innerWidth>=1024,j=(ne,te)=>{if(u)return typeof c=="number"?c:al;if(!ie())return al;const de=lk(ne,te,p,_);return typeof c=="number"?Math.max(c,de):de},be=j(R.clientWidth,R.clientHeight),xe=U.lightPreset||(()=>{var ne;try{const te=typeof n=="function"?n():n;return(ne=te==null?void 0:te.basemap)==null?void 0:ne.lightPreset}catch{return}})();if(C){h.value=new y.Map({container:e.value,style:ak(D,xe),center:s,zoom:r,minZoom:be,maxZoom:p,pitch:f,bearing:A,dragRotate:!1,renderWorldCopies:v,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Wd(h.value);try{e.value.__doxaMap=h.value}catch{}}else{const ne=typeof n=="function"?n():n;h.value=new y.Map({accessToken:Q,container:e.value,style:D,...ne?{config:ne}:{},center:s,zoom:r,minZoom:be,maxZoom:p,pitch:f,bearing:A,dragRotate:!1,touchPitch:!1,renderWorldCopies:v,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...$?{maxBounds:$}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),Wd(h.value);try{e.value.__doxaMap=h.value}catch{}}try{let ne=!1;h.value.on("error",te=>{var T,F;const de=((T=te==null?void 0:te.error)==null?void 0:T.status)??(te==null?void 0:te.status),Pe=String(((F=te==null?void 0:te.error)==null?void 0:F.url)||(te==null?void 0:te.sourceId)||"");de!==401&&de!==403||ne||(ne=!0,console.error(`[doxa-maps] Mapbox returned ${de} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(Pe?` First failing request: ${Pe.slice(0,120)}`:"")))})}catch{}try{h.value.touchZoomRotate.disableRotation()}catch{}P=U1((($e=e.value)==null?void 0:$e.parentElement)||null,{enabled:b});let fe=be,ke=null;w=()=>{const ne=h.value;if(!ne)return;const te=j(R.clientWidth,R.clientHeight);te!==fe&&(fe=te,ne.setMinZoom(te)),ne.getZoom(){ke=null;const de=h.value;if(!de)return;const Pe=j(R.clientWidth,R.clientHeight);if(de.getZoom(){ke&&(clearTimeout(ke),ke=null)},h.value.on("resize",w),typeof window<"u"&&(window.addEventListener("resize",w),window.addEventListener("orientationchange",w)),h.value.on("style.load",()=>{if(h.value&&qd(h.value,G()),U.paint&&h.value){const ne=V1(h.value,U.paint);console.info("[useMapInstance] style paint applied ("+a+"):",ne.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var ne;(ne=h.value)==null||ne.resize(),h.value&&h.value.setMinZoom(j(R.clientWidth,R.clientHeight)),m.value=!0})})}function J(){if(h.value){if(w&&(h.value.off("resize",w),typeof window<"u"&&(window.removeEventListener("resize",w),window.removeEventListener("orientationchange",w)),w=null),g){try{g()}catch{}g=null}P&&(P(),P=null),h.value.remove(),h.value=null,m.value=!1}}if(S&&typeof S=="object"&&"value"in S)try{Fe(S,()=>{h.value&&m.value&&qd(h.value,G())})}catch{}return{map:h,isMapReady:m,initializeMap:H,destroy:J}}const uk=En&&En.tagName.toUpperCase()==="SCRIPT"&&En.src||new URL("doxa-research-map.js",document.baseURI).href,kn=e=>String(e||"").trim().replace(/\/+$/,"");function Xd(){try{const t=String(uk||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function pk(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return kn(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return kn(o)}return kn(Xd()||"")}function Zd(e){const t=kn("")||kn(Xd()||"");if(t)try{const o=typeof document<"u"?document.baseURI:void 0;return kn(new URL(t+"/assets",o).href)}catch{return kn(t+"/assets")}return"./assets"}function dk({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",s=e||(n==null?void 0:n.shareUrl);if(typeof s=="string"&&s.trim())return s.trim();const r=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(r){if(/^https?:\/\//i.test(r))return r;if(r.startsWith("/"))return a?window.location.origin+r:r;const i=pk(n),l=r.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const gk={Africa:{zoom:1.3,center:[16.6512,26.3538]},Asia:{zoom:.8,center:[98.2654,49.9282]},Europe:{zoom:1.4,center:[22.7826,70.1026]},"Latin America & Caribbean":{zoom:1.8,center:[-60.4619,10.1428]},"Middle East":{zoom:1.7,center:[22.9056,39.5752]},"No WAGF Region/Bloc":{zoom:.6,center:[-8.2363,44.2392]},"North America & Non-Spanish Caribbean":{zoom:2.1,center:[-68.1935,31.4282]},Oceania:{zoom:1.5,center:[161.6257,-.668]}},Jd={circleRadius:{standard:["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],highlighted:["interpolate",["linear"],["zoom"],0,4,4,5,8,12,12,20],faded:["interpolate",["linear"],["zoom"],0,2,4,2.5,8,5,12,8],compact:["interpolate",["linear"],["zoom"],0,2,4,3,8,6,12,10],large:["interpolate",["linear"],["zoom"],0,4,4,6,8,14,12,24],touchTarget:["interpolate",["linear"],["zoom"],0,12,2,15,4,19,6,20,8,21,10,22,12,24,14,28]}};function fk(e){return gk[e]||null}function sl(e="standard"){return Jd.circleRadius[e]||Jd.circleRadius.standard}function Qd(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=Ne("uiStore"),{t:r,locale:i}=bt(),l=he([]);function c(m){const w=n(m.languageFamily),g="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let P=m.imageUrl;(!P||P.includes("NoImageAvailable"))&&(P=g);const d=(m.name||"U")[0].toUpperCase(),C=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],S=d.charCodeAt(0)%C.length;return` -
- -
- -
- ${d} -
- - -
-

${m.name}

-

${m.country||"Unknown"} • ${m.status||"Unknown Status"}

-
-
- - -
- ${m.name} -
- - -
-

- Language: ${m.language||"Unknown"} -

-

- Family: - - ${m.languageFamily||"Unknown"} - -

- ${m.population?`

Population: ${m.population}

`:""} - ${m.description?`

${m.description}

`:""} -
-
- `}function u(m){const w=m.iso_3166_1_alpha_3||"",P=m["name_"+((i==null?void 0:i.value)||"en")]||m.name_en||m.name||w,d=a(),C=w.toUpperCase(),S=d.filter(D=>{const L=(D.countryIso||D.country||"").toUpperCase();return L&&L===C}),G=S.length,H=S[0],J=(H==null?void 0:H.wagfRegionLabel)||(H==null?void 0:H.doxaRegionLabel)||(H==null?void 0:H.doxaRegion)||(H==null?void 0:H.wagfRegion)||"—",U=(H==null?void 0:H.wagfBlockLabel)||(H==null?void 0:H.wagfBlock)||"—";return` -
-

- ${P} -

-

- ${r("popup.country.wagfRegion")}: ${J} -

-

- ${r("popup.country.wagfBlock")}: ${U} -

-

- ${r("popup.country.country")}: ${P} (${w}) -

-

- ${r("popup.country.uupgCount")}: ${G} -

-
- `}function p(m){const w=t();if(!w)return;const g=m||"language-family-pins";if(!w.getLayer(g))return;const P=d=>{try{const C=d.features[0],S=C.properties,G=C.geometry.coordinates.slice();for(;Math.abs(d.lngLat.lng-G[0])>180;)G[0]+=d.lngLat.lng>G[0]?360:-360;if(s&&s.legendMode!==void 0){s.selectPeopleGroup(C),s.isMobile&&s.legendState==="collapsed"&&s.setLegendState("open"),s.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new(nr(w)).Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(G).setHTML(c(S)).addTo(w)}catch(C){console.error(` [${o}] Pin click handler error:`,C)}};w.on("click",g,P),l.value.push({event:"click",layer:g,handler:P})}function f(){const m=t();if(!m)return;const w="regions-fill";if(!m.getLayer(w))return;const g=P=>{const d=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const C of d)if(m.getLayer(C)){const S=m.queryRenderedFeatures(P.point,{layers:[C]});if(S&&S.length>0)return}if(P.features&&P.features.length>0){const C=P.features[0].properties;new(nr(m)).Popup().setLngLat(P.lngLat).setHTML(u(C)).addTo(m)}};m.on("click",w,g),l.value.push({event:"click",layer:w,handler:g})}function A(){const m=t();if(!m)return;const w="clusters";if(!m.getLayer(w))return;const g=P=>{const d=m.queryRenderedFeatures(P.point,{layers:[w]});if(!d.length)return;const C=d[0].properties.cluster_id,S=d[0].source;m.getSource(S).getClusterExpansionZoom(C,(G,H)=>{G||m.easeTo({center:d[0].geometry.coordinates,zoom:H})})};m.on("click",w,g),l.value.push({event:"click",layer:w,handler:g})}function v(m){const w=t();if(!w||!w.getLayer(m))return;const g=()=>{w.getCanvas().style.cursor="pointer"},P=()=>{w.getCanvas().style.cursor=""};w.on("mouseenter",m,g),w.on("mouseleave",m,P),l.value.push({event:"mouseenter",layer:m,handler:g}),l.value.push({event:"mouseleave",layer:m,handler:P})}function b(){p(),v("language-family-pins"),p("language-family-pins-hitbox"),v("language-family-pins-hitbox"),A(),v("clusters")}function _(){f(),v("regions-fill")}function $(){const m=t();m&&(m.getLayer("language-family-pins")&&b(),m.getLayer("regions-fill")&&_(),m.getLayer("people-groups-pins")&&(p(),v("people-groups-pins")))}function h(){const m=t();if(m){for(const{event:w,layer:g,handler:P}of l.value)try{m.off(w,g,P)}catch{}l.value=[]}}return{attachAllEventHandlers:$,attachLanguageFamilyEvents:b,attachRegionEvents:_,attachPinClickHandler:p,attachRegionClickHandler:f,attachClusterClickHandler:A,attachCursorHandlers:v,detachAllEventHandlers:h,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const Ye={Chamacoco:"Zamucoan",Ninam:"Yanomaman",Yagua:"Yaguan",Muinane:"Witotoan",Finnish:"Uralic","Hill Mari":"Uralic",Mansi:"Uralic","Meadow Mari":"Uralic","North Saami":"Uralic",Carabayo:"Unclassified",Kujarge:"Unclassified",Shabo:"Unclassified",Ainu:"Turkic",Kazakh:"Turkic","Khorasani Turkish":"Turkic",Kyrgyz:"Turkic","Northern Uzbek":"Turkic","South Azerbaijani":"Turkic",Turkish:"Turkic",Tuvan:"Turkic",Uyghur:"Turkic",Amundava:"Tupian",Araweté:"Tupian","Asurini of Xingú":"Tupian","Avá-Canoeiro":"Tupian",Awetí:"Tupian",Kamayurá:"Tupian",Karo:"Tupian",Morerebi:"Tupian",Tenharim:"Tupian","Uru-Eu-Wau-Wau":"Tupian","Uru-Pa-In":"Tupian",Wayampi:"Tupian","Zo’é":"Tupian",Evenki:"Tungusic",Xibe:"Tungusic",Carapana:"Tucanoan",Cubeo:"Tucanoan",Desano:"Tucanoan",Macuna:"Tucanoan",Piratapuyo:"Tucanoan",Siona:"Tucanoan",Siriano:"Tucanoan",Tucano:"Tucanoan",Tuyuca:"Tucanoan",Waimaha:"Tucanoan",Tay:"Trans-New Guinea",Adi:"Sino-Tibetan",Akha:"Sino-Tibetan","Amdo Tibetan":"Sino-Tibetan",Axi:"Sino-Tibetan",Biyo:"Sino-Tibetan","Boro (India)":"Sino-Tibetan",Brokkat:"Sino-Tibetan",Bugun:"Sino-Tibetan",Byangsi:"Sino-Tibetan","Central Lalo":"Sino-Tibetan","Central Tibetan":"Sino-Tibetan",Chak:"Sino-Tibetan",Chalikha:"Sino-Tibetan",Chaudangsi:"Sino-Tibetan",Chocangacakha:"Sino-Tibetan",Darlong:"Sino-Tibetan",Dhimal:"Sino-Tibetan","Digaro-Mishmi":"Sino-Tibetan",Dzalakha:"Sino-Tibetan","Eastern Nisu":"Sino-Tibetan",Ersu:"Sino-Tibetan",Gahri:"Sino-Tibetan",Gongduk:"Sino-Tibetan",Gyalsumdo:"Sino-Tibetan",Hani:"Sino-Tibetan","Idu-Mishmi":"Sino-Tibetan",Kaike:"Sino-Tibetan",Kanashi:"Sino-Tibetan",Katso:"Sino-Tibetan",Khamba:"Sino-Tibetan",Koireng:"Sino-Tibetan",Kucong:"Sino-Tibetan",Kurtokha:"Sino-Tibetan",Ladakhi:"Sino-Tibetan",Lakha:"Sino-Tibetan","Lang’e":"Sino-Tibetan",Lhokpu:"Sino-Tibetan",Lolopo:"Sino-Tibetan",Lunanakha:"Sino-Tibetan","Mandarin Chinese":"Sino-Tibetan",Meitei:"Sino-Tibetan","Miju-Mishmi":"Sino-Tibetan",Mpi:"Sino-Tibetan",Na:"Sino-Tibetan",Namuyi:"Sino-Tibetan",Narua:"Sino-Tibetan",Naxi:"Sino-Tibetan","Northern Muji":"Sino-Tibetan",Nuosu:"Sino-Tibetan",Nupbikha:"Sino-Tibetan",Nyenkha:"Sino-Tibetan",Olekha:"Sino-Tibetan",Pahari:"Sino-Tibetan",Pattani:"Sino-Tibetan","Phana’":"Sino-Tibetan",Phula:"Sino-Tibetan",Phunoi:"Sino-Tibetan",Puma:"Sino-Tibetan",Puroik:"Sino-Tibetan",Raji:"Sino-Tibetan",Rawat:"Sino-Tibetan",Sani:"Sino-Tibetan",Sherdukpen:"Sino-Tibetan",Sherpa:"Sino-Tibetan",Shuhi:"Sino-Tibetan",Sila:"Sino-Tibetan",Singpho:"Sino-Tibetan",Sunwar:"Sino-Tibetan","Tawang Monpa":"Sino-Tibetan",Tseku:"Sino-Tibetan",Tshangla:"Sino-Tibetan",Usoi:"Sino-Tibetan","Western Minyag":"Sino-Tibetan","Wusa Nasu":"Sino-Tibetan","Xiang Chinese":"Sino-Tibetan",Yakkha:"Sino-Tibetan","Youle Jinuo":"Sino-Tibetan","Yue Chinese":"Sino-Tibetan",Zakhring:"Sino-Tibetan","Afghan Sign Language":"Sign Language","Albanian Sign Language":"Sign Language","Algerian Sign Language":"Sign Language","American Sign Language":"Sign Language","Armenian Sign Language":"Sign Language","British Sign Language":"Sign Language","Bulgarian Sign Language":"Sign Language","Cambodian Sign Language":"Sign language","Cuban Sign Language":"Sign Language","Egyptian Sign Language":"Sign Language","Greek Sign Language":"Sign Language","Guinean Sign Language":"Sign Language","Hong Kong Sign Language":"Sign Language","Icelandic Sign Language":"Sign Language","Iranian Sign Language":"Sign Language","Israeli Sign Language":"Sign Language","Jamaican Sign Language":"Sign Language","Jordanian Sign Language":"Sign Language","Laos Sign Language":"Sign Language","Libyan Sign Language":"Sign Language","Maltese Sign Language":"Sign Language","Mauritian Sign Language":"Sign Language","Moroccan Sign Language":"Sign Language","Mozambican Sign Language":"Sign Language","Myanmar Sign Language":"Sign language","Natural Sign Language":"Sign Language","Pakistan Sign Language":"Sign Language","Papua New Guinean Sign Language":"Sign language","Russian Sign Language":"Sign Language","Saudi Arabian Sign Language":"Sign Language","Sign Language of the Netherlands":"Sign Language","Solomon Islands Sign Language":"Sign Language","Sri Lankan Sign Language":"Sign Language","Swedish Sign Language":"Sign Language","Turkish Sign Language":"Sign Language","Northern Conchucos Ancash Quechua":"Quechuan","Northern Pastaza Quichua":"Quechuan",Hupdë:"Puinavean",Amahuaca:"Panoan",Korubo:"Panoan",Sharanahua:"Panoan","Shipibo-Conibo":"Panoan",Yaminahua:"Panoan",Yawanawa:"Panoan",Afitti:"Nilo-Saharan",Assangori:"Nilo-Saharan","Beli (South Sudan)":"Nilo-Saharan",Berta:"Nilo-Saharan",Burun:"Nilo-Saharan","Dar Daju Daju":"Nilo-Saharan","Dar Fur Daju":"Nilo-Saharan","Dar Sila Daju":"Nilo-Saharan",Dazaga:"Nilo-Saharan","Dendi (Benin)":"Nilo-Saharan",Dilling:"Nilo-Saharan",Fur:"Nilo-Saharan",Gbaya:"Nilo-Saharan",Ghulfan:"Nilo-Saharan",Gwama:"Nilo-Saharan","Humburi Senni Songhay":"Nilo-Saharan",Jopadhola:"Nilo-Saharan",Kadaru:"Nilo-Saharan",Kanga:"Nilo-Saharan",Karanga:"Nilo-Saharan",Karko:"Nilo-Saharan",Kebu:"Nilo-Saharan",Keiga:"Nilo-Saharan",Keliko:"Nilo-Saharan",Kendeje:"Nilo-Saharan",Kibet:"Nilo-Saharan","Komo (Sudan)":"Nilo-Saharan",Korandje:"Nilo-Saharan",Kulfa:"Nilo-Saharan",Kwegu:"Nilo-Saharan",Laarim:"Nilo-Saharan",Logorik:"Nilo-Saharan",Majang:"Nilo-Saharan","Manga Kanuri":"Nilo-Saharan",Mango:"Nilo-Saharan",Mararit:"Nilo-Saharan",Marfa:"Nilo-Saharan",Midob:"Nilo-Saharan","Mo’da":"Nilo-Saharan",Morom:"Nilo-Saharan",Moru:"Nilo-Saharan",Naba:"Nilo-Saharan",Nara:"Nilo-Saharan",Njalgulgule:"Nilo-Saharan",Nuer:"Nilo-Saharan","Nyamusa-Molo":"Nilo-Saharan",Nyangatom:"Nilo-Saharan","Olu’bo":"Nilo-Saharan",Opo:"Nilo-Saharan",Päri:"Nilo-Saharan","Sara Kaba Naa":"Nilo-Saharan",Surbakhal:"Nilo-Saharan",Tadaksahak:"Nilo-Saharan","Tama (Chad)":"Nilo-Saharan",Temein:"Nilo-Saharan",Thuri:"Nilo-Saharan","Tirmaga-Chai Suri":"Nilo-Saharan",Toposa:"Nilo-Saharan",Tumtum:"Nilo-Saharan","Wali (Sudan)":"Nilo-Saharan","Yerwa Kanuri":"Nilo-Saharan",Yulu:"Nilo-Saharan",Zaghawa:"Nilo-Saharan","Adamawa Fulfulde":"Niger-Congo",Akaselem:"Niger-Congo","Amba (Uganda)":"Niger-Congo",Anii:"Niger-Congo",Baangi:"Niger-Congo",Badyara:"Niger-Congo","Bago-Kusuntu":"Niger-Congo",Bai:"Niger-Congo","Bainouk-Gunyaamolo":"Niger-Congo",Bamanankan:"Niger-Congo","Banda-Mbrès":"Niger-Congo",Bandial:"Niger-Congo",Bankagooma:"Niger-Congo","Belanda Viri":"Niger-Congo",Bemba:"Niger-Congo",Bolgo:"Niger-Congo","Bon Gula":"Niger-Congo",Bua:"Niger-Congo",Chichewa:"Niger-Congo","Chung (Cameroon)":"Niger-Congo","Ci Gbe":"Niger-Congo",Degema:"Niger-Congo",Dek:"Niger-Congo",Dhimba:"Niger-Congo",Dogoso:"Niger-Congo","East Limba":"Niger-Congo",Engenni:"Niger-Congo",Epie:"Niger-Congo",Éwé:"Niger-Congo",Fania:"Niger-Congo",Foodo:"Niger-Congo",Fwe:"Niger-Congo",Gciriku:"Niger-Congo",Gwa:"Niger-Congo",Herero:"Niger-Congo",Ibuoro:"Niger-Congo","Jenaama Bozo":"Niger-Congo",Jita:"Niger-Congo",Jula:"Niger-Congo",Kabiyè:"Niger-Congo",Kadung:"Niger-Congo",Kakabe:"Niger-Congo",Kalamsé:"Niger-Congo","Kami (Tanzania)":"Niger-Congo","Kango (Bas-Uélé District)":"Niger-Congo",Kasem:"Niger-Congo","Kelengaxo Bozo":"Niger-Congo",Khe:"Niger-Congo",Khisa:"Niger-Congo",Kim:"Niger-Congo",Kinyarwanda:"Niger-Congo",Kipfokomu:"Niger-Congo",Kitharaka:"Niger-Congo",Kiyombe:"Niger-Congo",Ko:"Niger-Congo",Koalib:"Niger-Congo",Koke:"Niger-Congo",Konongo:"Niger-Congo","Koro Nulu":"Niger-Congo","Koro Zuba":"Niger-Congo",Kuhane:"Niger-Congo",Kunda:"Niger-Congo",Kuranko:"Niger-Congo",Kuria:"Niger-Congo",Kwangali:"Niger-Congo",Lame:"Niger-Congo",Laru:"Niger-Congo",Lopa:"Niger-Congo","Makhuwa-Meetto":"Niger-Congo","Makhuwa-Shirima":"Niger-Congo","Malawi Nyiha":"Niger-Congo",Mandinka:"Niger-Congo",Mankanya:"Niger-Congo",Mansoanka:"Niger-Congo",Mbukushu:"Niger-Congo","Mende (Sierra Leone)":"Niger-Congo",Miyobe:"Niger-Congo",Mushungulu:"Niger-Congo","Mwali Comorian":"Niger-Congo","Mwera (Chimwera)":"Niger-Congo",Ndemli:"Niger-Congo",Ndengereko:"Niger-Congo",Ndumu:"Niger-Congo",Ndunga:"Niger-Congo","Ndzwani Comorian":"Niger-Congo",Ngile:"Niger-Congo","Northwest Gbaya":"Niger-Congo",Notre:"Niger-Congo",Nyamwanga:"Niger-Congo",Nyankore:"Niger-Congo",Nyengo:"Niger-Congo",Okpamheri:"Niger-Congo",Osatu:"Niger-Congo","Pana (Burkina Faso)":"Niger-Congo",Pulaar:"Niger-Congo",Pular:"Niger-Congo",Rufiji:"Niger-Congo","Sankaran Maninka":"Niger-Congo",Sapo:"Niger-Congo","Senara Sénoufo":"Niger-Congo",Shanga:"Niger-Congo",Sininkere:"Niger-Congo","Southern Ngbandi":"Niger-Congo",Swahili:"Niger-Congo","Syenara Sénoufo":"Niger-Congo",Tagbu:"Niger-Congo",Tagoi:"Niger-Congo",Tegali:"Niger-Congo",Tem:"Niger-Congo","Tiéyaxo Bozo":"Niger-Congo",Tiyaa:"Niger-Congo",Tocho:"Niger-Congo","Tonga (Zambia)":"Niger-Congo",Totela:"Niger-Congo","Toura (Côte d’Ivoire)":"Niger-Congo",Tswa:"Niger-Congo",Tumbuka:"Niger-Congo",Ukaan:"Niger-Congo",Uneme:"Niger-Congo",Vai:"Niger-Congo",Vute:"Niger-Congo",Waama:"Niger-Congo",Warnang:"Niger-Congo",Wolof:"Niger-Congo",Yao:"Niger-Congo",Yauma:"Niger-Congo",Yom:"Niger-Congo","Zan Gula":"Niger-Congo",Zande:"Niger-Congo",Zigula:"Niger-Congo",Mamaindê:"Nambikwara",Aghul:"Nakh-Daghestanian",Akhvakh:"Nakh-Daghestanian",Andi:"Nakh-Daghestanian",Avar:"Nakh-Daghestanian",Bagvalal:"Nakh-Daghestanian",Botlikh:"Nakh-Daghestanian",Chamalal:"Nakh-Daghestanian",Chechen:"Nakh-Daghestanian",Dargwa:"Nakh-Daghestanian",Kaitag:"Nakh-Daghestanian",Karata:"Nakh-Daghestanian",Khvarshi:"Nakh-Daghestanian",Tindi:"Nakh-Daghestanian",Pirahã:"Muran",Bonan:"Mongolic","China Buriat":"Mongolic",Daur:"Mongolic","Kalmyk-Oirat":"Mongolic","Peripheral Mongolian":"Mongolic","Russia Buriat":"Mongolic",Tagdal:"Mixed language",Wutunhua:"Mixed language","Ashéninka Perené":"Maipurean",Baniwa:"Maipurean",Cabiyarí:"Maipurean",Curripaco:"Maipurean","Enawené-Nawé":"Maipurean",Kanamarí:"Maipurean",Mehináku:"Maipurean","Pichis Ashéninka":"Maipurean",Waurá:"Maipurean",Bangime:"Language isolate",Burushaski:"Language isolate","Ai-Cham":"Kra-Dai",Aiton:"Kra-Dai","Dai Zhuang":"Kra-Dai",Duoluo:"Kra-Dai","Green Gelao":"Kra-Dai","Guibian Zhuang":"Kra-Dai",Hlai:"Kra-Dai",Jiamao:"Kra-Dai",Kang:"Kra-Dai",Khün:"Kra-Dai",Kuan:"Kra-Dai",Lachi:"Kra-Dai","Laha (Viet Nam)":"Kra-Dai",Lao:"Kra-Dai",Lü:"Kra-Dai","Mak (China)":"Kra-Dai","Northeastern Thai":"Kra-Dai","Northern Dong":"Kra-Dai","Northern Thai":"Kra-Dai",Nyaw:"Kra-Dai",Phake:"Kra-Dai","Phu Thai":"Kra-Dai",Qabiao:"Kra-Dai",Qau:"Kra-Dai","Qiubei Zhuang":"Kra-Dai",Shan:"Kra-Dai","Southern Dong":"Kra-Dai",Sui:"Kra-Dai","T’en":"Kra-Dai","Tai Daeng":"Kra-Dai","Tai Dam":"Kra-Dai","Tai Hongjin":"Kra-Dai","Tai Nüa":"Kra-Dai","Tai Ya":"Kra-Dai","Tai Yo":"Kra-Dai","Ts’ün-Lao":"Kra-Dai","Yang Zhuang":"Kra-Dai",Yerong:"Kra-Dai",Yong:"Kra-Dai",Yoy:"Kra-Dai",Khoekhoe:"Khoe-Kwadi",Karajá:"Karajá","Pará Gavião":"Jean",Suyá:"Jean",Japanese:"Japonic","Oki-No-Erabu":"Japonic","Toku-No-Shima":"Japonic",Yaeyama:"Japonic",Yoron:"Japonic","Adivasi Oriya":"Indo-European",Afrikaans:"Indo-European","Alviri-Vidari":"Indo-European",Angika:"Indo-European",Assamese:"Indo-European",Bagheli:"Indo-European",Bagri:"Indo-European",Bashkardi:"Indo-European",Bateri:"Indo-European",Bengali:"Indo-European",Bhojpuri:"Indo-European",Bhunjia:"Indo-European",Bilaspuri:"Indo-European",Bosnian:"Indo-European","Braj Bhasha":"Indo-European",Brokskat:"Indo-European",Bundeli:"Indo-European",Catalan:"Indo-European",Chambeali:"Indo-European",Chhattisgarhi:"Indo-European",Dameli:"Indo-European",Dari:"Indo-European",Dhundari:"Indo-European",Dogri:"Indo-European",Domari:"Indo-European",Dutch:"Indo-European","Eastern Balochi":"Indo-European","Eastern Panjabi":"Indo-European","Eastern Yiddish":"Indo-European",English:"Indo-European",French:"Indo-European",Gaddi:"Indo-European",Garhwali:"Indo-European",Gawri:"Indo-European",Gowro:"Indo-European",Gujarati:"Indo-European",Gujari:"Indo-European",Halbi:"Indo-European",Haroti:"Indo-European",Haryanvi:"Indo-European",Hindi:"Indo-European","Indus Kohistani":"Indo-European","Iranian Persian":"Indo-European",Ishkashimi:"Indo-European",Kacchi:"Indo-European",Kalkoti:"Indo-European",Kanauji:"Indo-European",Kangri:"Indo-European",Karingani:"Indo-European",Kashmiri:"Indo-European",Kati:"Indo-European",Khunsari:"Indo-European",Konkani:"Indo-European",Kudmali:"Indo-European",Kumaoni:"Indo-European",Kumzari:"Indo-European",Laki:"Indo-European",Lasi:"Indo-European",Luwati:"Indo-European",Magahi:"Indo-European",Maithili:"Indo-European",Maldivian:"Indo-European",Malvi:"Indo-European",Marathi:"Indo-European","Marwari (India)":"Indo-European",Mewari:"Indo-European",Munji:"Indo-European",Nepali:"Indo-European",Nimadi:"Indo-European","Northern Kurdish":"Indo-European",Odia:"Indo-European","Pahari-Potwari":"Indo-European",Palula:"Indo-European",Panchpargania:"Indo-European",Pangwali:"Indo-European",Parachi:"Indo-European",Portuguese:"Indo-European",Russian:"Indo-European",Sadri:"Indo-European",Sanglechi:"Indo-European",Sarikoli:"Indo-European",Savi:"Indo-European",Semnani:"Indo-European",Serbian:"Indo-European",Shabak:"Indo-European",Shahrudi:"Indo-European",Shekhawati:"Indo-European",Shina:"Indo-European",Shughni:"Indo-European",Shumashti:"Indo-European",Sindhi:"Indo-European",Sivandi:"Indo-European",Soi:"Indo-European","Southern Balochi":"Indo-European",Spanish:"Indo-European",Tajik:"Indo-European",Talysh:"Indo-European",Urdu:"Indo-European",Ushojo:"Indo-European",Vaghri:"Indo-European","Vlax Romani":"Indo-European",Wagdi:"Indo-European",Wakhi:"Indo-European",Waneci:"Indo-European","Western Balochi":"Indo-European",Yadgha:"Indo-European","Bu-Nao Bunu":"Hmong-Mien","Central Mashan Miao":"Hmong-Mien","Chuanqiandian Cluster Miao":"Hmong-Mien","Eastern Xiangxi Miao":"Hmong-Mien","Iu Mien":"Hmong-Mien","Luopohe Miao":"Hmong-Mien","Northern Qiandong Miao":"Hmong-Mien","Pa-Hng":"Hmong-Mien","Southwestern Huishui Miao":"Hmong-Mien","Wunai Bunu":"Hmong-Mien","Younuo Bunu":"Hmong-Mien",Amarakaeri:"Harákmbut",Huachipaeri:"Harákmbut",Cuiba:"Guajiboan",Macaguán:"Guajiboan",Tlicho:"Eyak-Athabaskan",Kannada:"Dravidian",Kodava:"Dravidian","Korra Koraga":"Dravidian","Kota (India)":"Dravidian",Kudiya:"Dravidian",Malapandaram:"Dravidian",Malayalam:"Dravidian",Muthuvan:"Dravidian",Ravula:"Dravidian",Sholaga:"Dravidian",Tamil:"Dravidian",Telugu:"Dravidian",Tulu:"Dravidian",Vishavan:"Dravidian","Andaman Hindi Creole":"Creole","Cocos Islands Malay":"Creole","Juba Arabic":"Creole",Nubi:"Creole",Barí:"Chibchan","Barro Negro Tunebo":"Chibchan","Western Tunebo":"Chibchan",Ikpeng:"Cariban","Kuikúro-Kalapálo":"Cariban",Pemon:"Cariban",Trió:"Cariban","Waimiri-Atroarí":"Cariban",Waiwai:"Cariban",Yukpa:"Cariban",Borôro:"Bororoan",Chachi:"Barbacoan","Abai Sungai":"Austronesian",Ambelau:"Austronesian",Asilulu:"Austronesian",Balaesang:"Austronesian","Batak Alas-Kluet":"Austronesian","Batak Dairi":"Austronesian","Batak Karo":"Austronesian",Bonerate:"Austronesian",Bonggi:"Austronesian",Brunei:"Austronesian","Brunei Bisaya":"Austronesian",Buol:"Austronesian","Central Malay":"Austronesian","Central Sama":"Austronesian","Coastal Konjo":"Austronesian",Dampelas:"Austronesian","Dibabawon Manobo":"Austronesian",Dondo:"Austronesian",Gane:"Austronesian","Geser-Gorom":"Austronesian","Highland Konjo":"Austronesian",Hitu:"Austronesian",Iban:"Austronesian",Indonesian:"Austronesian","Kadazan Dusun":"Austronesian",Kiput:"Austronesian",Komodo:"Austronesian",Kompane:"Austronesian",Lahanan:"Austronesian","Lampung Nyo":"Austronesian","Larike-Wakasihu":"Austronesian",Lola:"Austronesian",Luhu:"Austronesian",Malay:"Austronesian",Mariri:"Austronesian",Moronene:"Austronesian",Rukai:"Austronesian","Sabah Bisaya":"Austronesian","Seit-Kaitetu":"Austronesian",Sula:"Austronesian","Tae’":"Austronesian",Tajio:"Austronesian",Tomini:"Austronesian",Tutong:"Austronesian",Ujir:"Austronesian",Aheu:"Austro-Asiatic",Alak:"Austro-Asiatic",Bit:"Austro-Asiatic","Bo (Laos)":"Austro-Asiatic",Bondo:"Austro-Asiatic",Brao:"Austro-Asiatic",Bugan:"Austro-Asiatic",Chong:"Austro-Asiatic",Chut:"Austro-Asiatic",Danau:"Austro-Asiatic",Halang:"Austro-Asiatic","Halang Doan":"Austro-Asiatic",Hu:"Austro-Asiatic",Hung:"Austro-Asiatic",Ir:"Austro-Asiatic",Kensiu:"Austro-Asiatic",Khmu:"Austro-Asiatic",Khua:"Austro-Asiatic",Khuen:"Austro-Asiatic",Koda:"Austro-Asiatic","Kon Keu":"Austro-Asiatic",Kriang:"Austro-Asiatic",Kuay:"Austro-Asiatic",Laven:"Austro-Asiatic",Maleng:"Austro-Asiatic","Man Met":"Austro-Asiatic",Mang:"Austro-Asiatic",Minriq:"Austro-Asiatic",Mlabri:"Austro-Asiatic",Nguôn:"Austro-Asiatic",Nyaheun:"Austro-Asiatic",Nyahkur:"Austro-Asiatic","O’du":"Austro-Asiatic",Ong:"Austro-Asiatic",Oy:"Austro-Asiatic",Pacoh:"Austro-Asiatic","Phong-Kniang":"Austro-Asiatic",Prai:"Austro-Asiatic",Puoc:"Austro-Asiatic",Rengao:"Austro-Asiatic",Rmeet:"Austro-Asiatic","Rumai Palaung":"Austro-Asiatic",Sapuan:"Austro-Asiatic","Shwe Palaung":"Austro-Asiatic","So (Laos)":"Austro-Asiatic",Sou:"Austro-Asiatic","Tai Loi":"Austro-Asiatic",Talieng:"Austro-Asiatic",Tareng:"Austro-Asiatic",Tho:"Austro-Asiatic",U:"Austro-Asiatic","Upper Ta’oih":"Austro-Asiatic",Vietnamese:"Austro-Asiatic","Western Katu":"Austro-Asiatic",Suruahá:"Arauan",Jarawa:"Andamanese",Öñge:"Andamanese",Sentinel:"Andamanese",Afar:"Afro-Asiatic","Alaba-K’abeena":"Afro-Asiatic",Alagwa:"Afro-Asiatic",Ale:"Afro-Asiatic","Algerian Arabic":"Afro-Asiatic",Amharic:"Afro-Asiatic",Arbore:"Afro-Asiatic","Baharna Arabic":"Afro-Asiatic",Barein:"Afro-Asiatic",Bedawiyet:"Afro-Asiatic",Bidiyo:"Afro-Asiatic",Bilen:"Afro-Asiatic",Birgit:"Afro-Asiatic",Boor:"Afro-Asiatic","Borana-Arsi-Guji Oromo":"Afro-Asiatic",Buduma:"Afro-Asiatic","Central Atlas Tamazight":"Afro-Asiatic","Chadian Arabic":"Afro-Asiatic",Chenoua:"Afro-Asiatic",Ciwogai:"Afro-Asiatic",Daasanach:"Afro-Asiatic",Dabarre:"Afro-Asiatic",Dangaléat:"Afro-Asiatic",Deno:"Afro-Asiatic",Diri:"Afro-Asiatic",Duwai:"Afro-Asiatic","Eastern Egyptian Bedawi Arabic":"Afro-Asiatic","Eastern Oromo":"Afro-Asiatic",Garre:"Afro-Asiatic",Geruma:"Afro-Asiatic",Giiwo:"Afro-Asiatic",Gorowa:"Afro-Asiatic","Gulf Arabic":"Afro-Asiatic","Hadrami Arabic":"Afro-Asiatic",Harsusi:"Afro-Asiatic",Hassaniyya:"Afro-Asiatic",Hausa:"Afro-Asiatic",Hebrew:"Afro-Asiatic","Hijazi Arabic":"Afro-Asiatic",Hobyót:"Afro-Asiatic",Hozo:"Afro-Asiatic",Jiiddu:"Afro-Asiatic",Jimi:"Afro-Asiatic",Jina:"Afro-Asiatic","Jonkor Bourmataguil":"Afro-Asiatic","Judeo-Iraqi Arabic":"Afro-Asiatic","Judeo-Moroccan Arabic":"Afro-Asiatic",Kabalai:"Afro-Asiatic",Kajakse:"Afro-Asiatic",Kariya:"Afro-Asiatic","Karo (Ethiopia)":"Afro-Asiatic",Kutto:"Afro-Asiatic","Levantine Arabic":"Afro-Asiatic",Libido:"Afro-Asiatic","Libyan Arabic":"Afro-Asiatic","Lishana Deni":"Afro-Asiatic",Maaka:"Afro-Asiatic",Maay:"Afro-Asiatic",Majera:"Afro-Asiatic",Male:"Afro-Asiatic",Maslam:"Afro-Asiatic",Masmaje:"Afro-Asiatic",Mburku:"Afro-Asiatic",Mehri:"Afro-Asiatic","Mesopotamian Arabic":"Afro-Asiatic",Migaama:"Afro-Asiatic",Mogum:"Afro-Asiatic","Moroccan Arabic":"Afro-Asiatic",Mositacha:"Afro-Asiatic",Mubi:"Afro-Asiatic",Mukulu:"Afro-Asiatic",Nafusi:"Afro-Asiatic","Najdi Arabic":"Afro-Asiatic",Nyam:"Afro-Asiatic","Omani Arabic":"Afro-Asiatic","Pa’a":"Afro-Asiatic",Saba:"Afro-Asiatic",Saho:"Afro-Asiatic","Sanaani Arabic":"Afro-Asiatic",Seze:"Afro-Asiatic",Shehri:"Afro-Asiatic",Shekkacho:"Afro-Asiatic",Sheko:"Afro-Asiatic","Shihhi Arabic":"Afro-Asiatic",Siwi:"Afro-Asiatic",Sokoro:"Afro-Asiatic",Soqotri:"Afro-Asiatic","South Levantine Arabic":"Afro-Asiatic","Standard Arabic":"Afro-Asiatic","Sudanese Arabic":"Afro-Asiatic","Ta’izzi-Adeni Arabic":"Afro-Asiatic","Tahaggart Tamahaq":"Afro-Asiatic",Taznatit:"Afro-Asiatic",Tigré:"Afro-Asiatic",Toram:"Afro-Asiatic",Tsamai:"Afro-Asiatic",Tumzabt:"Afro-Asiatic",Tunni:"Afro-Asiatic",Waata:"Afro-Asiatic","West Central Oromo":"Afro-Asiatic",Xamtanga:"Afro-Asiatic",Zumbun:"Afro-Asiatic"},rl=[">",["to-number",["get","peoplePraying"],0],0],il={0:.25,8:.4,14:.5},Qn={0:.1,8:.18,14:.22},ea={0:1.2,8:1.6,14:2},eg=["interpolate",["linear"],["zoom"],0,["case",rl,il[0],Qn[0]],8,["case",rl,il[8],Qn[8]],14,["case",rl,il[14],Qn[14]]],hk=["interpolate",["linear"],["zoom"],0,ea[0],8,ea[8],14,ea[14]],tg=["==",["to-number",["get","peoplePraying"],0],0],mk={prayer:[tg],prayerProgress:[tg],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function bk(e){const t=mk[e]||[];if(!t.length)return hk;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,Qn[0],ea[0]],8,["case",o,Qn[8],ea[8]],14,["case",o,Qn[14],ea[14]]]}const $k=[[/ sign language$/i,"Sign Language"]];function yk(e){if(!e||typeof e!="string")return null;const t=e.trim(),o=t.split(",").map(a=>a.trim()).filter(Boolean);if(o.length>=2){const a=[...o].reverse().join(" ");if(Ye[a])return Ye[a];if(o.length>=3){const s=[o[1],o[0]].join(" ");if(Ye[s])return Ye[s]}}if(Ye[t])return Ye[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&Ye[n])return Ye[n];for(const[a,s]of $k)if(a.test(t))return s;return null}function _k(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=()=>{const ne=t();return ne?Ke(ne):null},r=Qd({getMap:s,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=he({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=he({});function c(ne,te="languageFamily"){const de=s();if(!de||!(ne!=null&&ne.length))return;const Pe=O1(te),T=ne.map(O=>{var ue,ee,k,x,B,X,me,ce,Z,le,Ce,Te,qe,nt,Qe,V,se,ve,Se;return{type:"Feature",properties:{uniqueId:O.id||O.uniqueId,slug:O.slug||((ue=O._normalized)==null?void 0:ue.slug)||"",rop3:O.rop3||O.peopleGroupId,peopleId3:O.peopleId3||"",name:O.name,language:O.language,languageFamily:O.languageFamily||((ee=O._normalized)==null?void 0:ee.languageFamily)||yk(O.language)||"Unknown",affinityBlock:O.affinityBlock||O.affbloc||O.Affbloc||((k=O._normalized)==null?void 0:k.affinityBlock)||"Unknown",affinityBlockLabel:O.affinityBlockLabel||((x=O._normalized)==null?void 0:x.affinityBlockLabel)||"",cluster:O.cluster||((B=O._normalized)==null?void 0:B.cluster)||"",clusterLabel:O.clusterLabel||((X=O._normalized)==null?void 0:X.clusterLabel)||"",peopleGroup:O.peopleGroup||((me=O._normalized)==null?void 0:me.peopleGroup)||"",peopleGroupLabel:O.peopleGroupLabel||((ce=O._normalized)==null?void 0:ce.peopleGroupLabel)||"",doxaRegion:O.doxaRegion||((Z=O._normalized)==null?void 0:Z.doxaRegion)||"Unknown",wagfBlock:O.wagfBlock||((le=O._normalized)==null?void 0:le.wagfBlock)||"",wagfBlockLabel:O.wagfBlockLabel||((Ce=O._normalized)==null?void 0:Ce.wagfBlockLabel)||"",wagfRegionLabel:O.wagfRegionLabel||((Te=O._normalized)==null?void 0:Te.wagfRegionLabel)||"",country:O.country,countryIso:O.countryIso,countryIsoLabel:O.countryIsoLabel,countryName:O.countryName,religion:O.religion,religionCode:O.religionCode,religionLabel:O.religionLabel,religionName:O.religionName,population:O.population,status:O.status,description:O.description||"",imageUrl:O.imageUrl||"",peoplePraying:Number(O.peoplePraying??((qe=O._normalized)==null?void 0:qe.peoplePraying)??0),engagementStatus:O.engagementStatus===!0||O.engagementStatus===1||!1,adoptionStatus:O.adoptionStatus===!0||O.adoptionStatus===1||!1,bible:O.bible||((nt=O._normalized)==null?void 0:nt.bible)||"Not Available",jesusFilm:O.jesusFilm||((Qe=O._normalized)==null?void 0:Qe.jesusFilm)||"Not Available",radio:O.radio||((V=O._normalized)==null?void 0:V.radio)||"Not Available",gospel:O.gospel||((se=O._normalized)==null?void 0:se.gospel)||"Not Available",audio:O.audio||((ve=O._normalized)==null?void 0:ve.audio)||"Not Available",stories:O.stories||((Se=O._normalized)==null?void 0:Se.stories)||"Not Available",lng:parseFloat(O.longitude||O.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(O.longitude||O.lng),parseFloat(O.latitude||O.lat)]}}}).filter(O=>!isNaN(O.geometry.coordinates[0])&&!isNaN(O.geometry.coordinates[1])),F=.04,I=O=>`${O.geometry.coordinates[0]},${O.geometry.coordinates[1]}`,W=new Map;for(const O of T){const ue=I(O);W.has(ue)||W.set(ue,[]),W.get(ue).push(O)}for(const O of W.values()){if(O.length<2)continue;const[ue,ee]=O[0].geometry.coordinates,k=O.length;for(let x=0;x",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),de.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":sl("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,r.attachLanguageFamilyEvents()}function u(ne,te="doxa-regions"){const de=s();if(!de)return;de.getLayer("regions-fill")&&de.removeLayer("regions-fill"),de.getLayer("regions-border")&&de.removeLayer("regions-border"),de.getSource("regions")&&de.removeSource("regions");const Pe={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},T="#cccccc",F=ne&&ne.isoToRegion?ne.isoToRegion:{},I=[],W={};for(const[ee,k]of Object.entries(F)){const x=Pe[String(k).toLowerCase()];x&&I.push(ee,x),W[k]||(W[k]=[]),W[k].push(ee)}l.value=W;const Y=I.length?["match",["get","iso_3166_1_alpha_3"],...I,T]:T,O=de.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":de.getLayer("language-family-pins")?"language-family-pins":void 0,ue=(()=>{var ee,k,x;try{return!!((x=(k=(ee=de.getContainer)==null?void 0:ee.call(de))==null?void 0:k.classList)!=null&&x.contains("maplibregl-map"))}catch{return!1}})();ue?(de.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${Zd()}/boundaries/world-adm0.geojson`).then(ee=>ee.json()).then(ee=>{for(const x of ee.features||[])x.properties&&x.properties.iso3&&(x.properties.iso_3166_1_alpha_3=x.properties.iso3);const k=de.getSource("regions");k&&k.setData(ee)}).catch(ee=>console.warn("[map-layers] region boundaries failed to load",ee))):de.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),de.addLayer({id:"regions-fill",type:"fill",source:"regions",...ue?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":Y,"fill-opacity":te==="none"?.1:.7,"fill-antialias":!0,...Ao(de,"fill"),"fill-opacity-transition":{duration:300}}},O),de.addLayer({id:"regions-border",type:"line",source:"regions",...ue?{}:{"source-layer":"country_boundaries"},paint:{"line-color":Y,"line-width":1,"line-opacity":.9,...Ao(de,"line")}},O),i.value.regions=!0,r.attachRegionEvents()}function p(ne,te){const de=s();if(!de||!ne||!(te!=null&&te.length))return;f();const Pe=te.filter(Y=>{var ue;return(Y.languageFamily||((ue=Y._normalized)==null?void 0:ue.languageFamily)||"Unknown")===ne});if(Pe.length<2)return;const T=n(ne),F=[],I=15,W=[...Pe].sort((Y,O)=>(Y.longitude||Y.lng)-(O.longitude||O.lng));for(let Y=0;Y=",["get","peoplePraying"],Lo],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const z=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function K(ne,te){const de=["interpolate",["linear"],["zoom"]];for(let Pe=0;Pe",["get","peoplePraying"],0],de=R();if(!C.every(T=>ne.getLayer(T))){for(const T of C)if(ne.getLayer(T))try{ne.removeLayer(T)}catch{}ne.addLayer({id:g,type:"circle",source:"language-families",filter:te,paint:{"circle-radius":K(z,1),"circle-color":de,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...Ao(ne)}},"language-family-pins");for(const T of d)ne.addLayer({id:T,type:"circle",source:"language-families",filter:te,paint:{"circle-radius":K(z,1),"circle-radius-transition":D,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":de,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":D,...Ao(ne)}},"language-family-pins")}}function ie(){const ne=s();if(ne)for(const te of C)ne.getLayer(te)&&ne.removeLayer(te)}function j(ne){const te=s();if(!te)return;const de=[">",["get","peoplePraying"],0],Pe=ne?["all",de,ne]:de;for(const T of C)if(te.getLayer(T))try{te.setFilter(T,Pe)}catch{}}function be(){const ne=s();if(ne){if(Q(),h&&(cancelAnimationFrame(h),h=null),m=!0,ne.getLayer("language-family-pins"))try{ne.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],Lo],1,[">",["get","peoplePraying"],0],1,3])}catch{}fe(ne),xe()}}function xe(){h&&(cancelAnimationFrame(h),h=null);const ne=++w;let te=performance.now(),de=-1/0;function Pe(T){if(!m||ne!==w)return;const F=s();if(!F||!C.some(W=>F.getLayer(W))){h=null;return}if(T-de"u")return;const te=typeof ne.getContainer=="function"?ne.getContainer():null;if(te)try{y=new IntersectionObserver(de=>{for(const Pe of de)L=Pe.isIntersecting},{threshold:0}),y.observe(te)}catch{y=null,L=!0}}function ke(){if(y){try{y.disconnect()}catch{}y=null}L=!0}function $e(){m=!1,h&&(cancelAnimationFrame(h),h=null),ke();try{ie();const ne=s();ne&&ne.getLayer("language-family-pins")&&ne.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:p,removeFamilyConnectionLines:f,updateLayerSource:A,removeLayer:v,hasLayer:b,setPaintProperty:_,mapEvents:r,startPrayerGlow:be,stopPrayerGlow:$e,syncGlowFilter:j,cleanup:$}}const uo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function vk(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(uo==null?void 0:uo.center)||[20,10],defaultZoom:r=uo==null?void 0:uo.zoom}=e,i={speed:.5,essential:!0,curve:1.2};function l(D,L,y={x:150,y:0}){const R=t();if(!R)return D;try{const z=R.getCanvas(),K=z.width,Q=z.height,ie=R.project(D),j=window.devicePixelRatio||1,be=(y.x||0)*j,xe=(y.y||0)*j,fe={x:ie.x-be,y:ie.y-xe},ke=R.unproject(fe);return[ke.lng,ke.lat]}catch{return D}}function c(D,L=[]){const y=t();if(!y)return;let R=null,z=5;const K=L.filter(ie=>ie.languageFamily===D);if(K.length>0){let ie=1/0,j=-1/0,be=1/0,xe=-1/0;if(K.forEach(fe=>{fe.longitude&&fe.latitude&&(ie=Math.min(ie,fe.longitude),j=Math.max(j,fe.longitude),be=Math.min(be,fe.latitude),xe=Math.max(xe,fe.latitude))}),ie!==1/0){R=[(ie+j)/2,(be+xe)/2];const fe=j-ie,ke=xe-be,$e=Math.max(fe,ke);$e>50?z=2:$e>20?z=3:$e>10?z=4:$e>5?z=5:z=6}}if(!R)return;const Q=l(R);y.flyTo({center:Q,zoom:z,...i})}function u(D){const L=t();if(!L)return;let y=null,R=4;const z=fk(D);if(z)y=z.center,R=z.zoom||4;else if(a!=null&&a.features){const Q=a.features.find(ie=>{var j,be;return((j=ie.properties)==null?void 0:j.region)===D||((be=ie.properties)==null?void 0:be.name)===D});Q&&(y=p(Q))}if(!y)return;const K=l(y);L.flyTo({center:K,zoom:R,...i})}function p(D){if(!D||!D.geometry)return null;const{type:L,coordinates:y}=D.geometry;let R=[];if(L==="Polygon"?R=y[0]||[]:L==="MultiPolygon"&&y.forEach(Q=>{R=R.concat(Q[0]||[])}),R.length===0)return null;let z=0,K=0;return R.forEach(Q=>{z+=Q[0],K+=Q[1]}),[z/R.length,K/R.length]}function f(D,L={}){const y=t();if(!y)return;const R={center:D,...i,...L};y.flyTo(R)}function A(D,L){const y=t();if(!y||(D==null?void 0:D.longitude)==null||(D==null?void 0:D.latitude)==null)return;const R=L??Math.min(y.getZoom()+2,8);f([D.longitude,D.latitude],{zoom:R})}function v(D,L={top:40,right:40,bottom:40,left:40},y={}){const R=t();if(!R||!D)return;const z=y.maxZoom??4,K=y.duration??900;R.fitBounds(D,{padding:L,maxZoom:z,duration:K,...i,...y})}function b(){const D=t();D&&D.flyTo({center:s,zoom:r,...i})}const _=80,$=800,h=5,m=5,w=110,g=1.2;function P(D){const L=D.filter(Number.isFinite).slice().sort((T,F)=>T-F),y=L.length;if(!y)return null;let R=-1,z=0;for(let T=0;TR&&(R=I,z=T)}const K=(z+1)%y,Q=new Array(y);for(let T=0;T0&&F((T+180)%360+360)%360-180,ke=fe(be),$e=24,ne=360/$e,te=new Array($e).fill(0);for(const T of L){let F=Math.floor(((T+180)%360+360)%360/ne);F>=$e&&(F=$e-1),te[F]++}let de=0;for(let T=1;T<$e;T++)te[T]>te[de]&&(de=T);return{center:fe(-180+(de+.5)*ne),minLng:ke,maxLng:ke+(xe-be),span:xe-be}}function d(D){try{const L=D.getContainer&&D.getContainer().clientWidth||0,y=L>0?Math.log2(L/512):g,R=typeof D.getMinZoom=="function"?D.getMinZoom():y;return Math.max(R,y)}catch{return g}}function C(D,L,y,R){D.easeTo({center:[L,(y+R)/2],zoom:d(D),duration:$,essential:!0})}function S(D,L,y){if(y>w)return!0;try{const R=typeof D.cameraForBounds=="function"?D.cameraForBounds(L,{padding:_,maxZoom:h}):null;return R==null?!0:typeof R.zoom=="number"&&R.zoom<=d(D)+.05}catch{return!1}}function G(D,L){if(!Array.isArray(D))return D;switch(D[0]){case"get":return L==null?void 0:L[D[1]];case"literal":return D[1];case"has":return L!=null&&D[1]in L;case"!has":return L==null||!(D[1]in L);case"!":return!G(D[1],L);case"coalesce":{for(let R=1;R2){const K=Number(G(D[2],L));return Number.isFinite(K)?K:0}return NaN}case"to-string":{const R=G(D[1],L);return R==null?"":String(R)}case"to-boolean":return!!G(D[1],L);case"slice":{const R=G(D[1],L),z=G(D[2],L),K=D.length>3?G(D[3],L):void 0;return typeof R!="string"?"":K!=null?R.slice(z,K):R.slice(z)}default:return D}}function H(D,L){if(D===!0)return!0;if(D===!1)return!1;if(!Array.isArray(D))return!!D;const y=D[0];if(y==="all"){for(let R=1;R"||y===">="||y==="<"||y==="<="){const R=typeof D[1]=="string"?L==null?void 0:L[D[1]]:G(D[1],L),z=G(D[2],L);switch(y){case"==":return R===z||R==null&&z==null;case"!=":return!(R===z||R==null&&z==null);case">":return R>z;case">=":return R>=z;case"<":return R{const W=(I==null?void 0:I.properties)||{};return W.region===T||W.name===T||W.id===T});if(F){const I=[];let W=1/0,Y=-1/0;const O=ee=>{for(const k of ee)Array.isArray(k[0])?O(k):Number.isFinite(k[0])&&Number.isFinite(k[1])&&(I.push(k[0]),k[1]Y&&(Y=k[1]))};(te=F.geometry)!=null&&te.coordinates&&O(F.geometry.coordinates);const ue=P(I);if(ue&&Number.isFinite(W)){const ee=[[ue.minLng,W],[ue.maxLng,Y]];S(y,ee,ue.span)?C(y,ue.center,W,Y):y.fitBounds(ee,{padding:_,maxZoom:h,duration:$,essential:!0});return}}}const R=L.sourceId??"language-families";if(!y.getSource(R))return;const z=L.matchExpr??D.filter;if(!z)return;const K=J(y,R);if(!K.length)return;const Q=[];let ie=1/0,j=-1/0,be=0,xe=0,fe=0;const ke=new Set;for(const Pe of K){const T=Pe==null?void 0:Pe.properties;if(!H(z,T))continue;const F=T==null?void 0:T.uniqueId;if(F!=null){if(ke.has(F))continue;ke.add(F)}const I=(de=Pe.geometry)==null?void 0:de.coordinates;if(!Array.isArray(I)||I.length<2)continue;const W=I[0],Y=I[1];!Number.isFinite(W)||!Number.isFinite(Y)||(be===0&&(xe=W,fe=Y),Q.push(W),Yj&&(j=Y),be++)}if(be===0)return;if(be===1){y.flyTo({center:[xe,fe],zoom:m,duration:$,essential:!0});return}const $e=P(Q)||{center:0,minLng:0,maxLng:0,span:0},ne=[[$e.minLng,ie],[$e.maxLng,j]];if(S(y,ne,$e.span)){C(y,$e.center,ie,j);return}try{y.fitBounds(ne,{padding:_,maxZoom:h,duration:$,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:f,flyToCoords:A,fitBounds:v,resetView:b,zoomToLegendRow:U,calculateRegionCenterFromPolygon:p}}const ar="#1a1a1a",Vo="selected-pin-highlight";function kk(e=ar){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=` - - - - - - - - - - - - - -`,t}function wk(e={}){const{getMap:t=()=>null,getActivePinColor:o=null}=e,n=Ne("uiStore");let a=null,s=null;const r=o??Ne("getActivePinColor",null);let i=ar;function l(){const b=t();b&&(b.getLayer(Vo)||b.getSource("language-families")&&b.addLayer({id:Vo,type:"circle",source:"language-families",paint:{"circle-radius":["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],"circle-color":i,...Ao(b),"circle-opacity":1,"circle-stroke-width":2,"circle-stroke-color":"#FFFFFF","circle-stroke-opacity":1},filter:["==",["get","uniqueId"],"__none__"]}))}function c(){a||(a=kk(ar))}function u(b,_){const $=t();$&&(c(),s&&s.remove(),s=new(nr($)).Marker({element:a,anchor:"bottom",offset:[0,0]}).setLngLat([b,_]).addTo($))}function p(){s&&(s.remove(),s=null)}function f(b){var g,P;const _=t();if(!_)return;if(b&&(i=(r==null?void 0:r(b.properties))??ar),l(),_.getLayer(Vo)&&(_.setPaintProperty(Vo,"circle-color",i),Hd(_)&&_.setPaintProperty(Vo,"circle-emissive-strength",1)),!b){_.getLayer(Vo)&&_.setFilter(Vo,["==",["get","uniqueId"],"__none__"]),p();return}const $=((g=b.properties)==null?void 0:g.uniqueId)||"__none__",h=(P=b.geometry)==null?void 0:P.coordinates;if(!h)return;_.getLayer(Vo)&&_.setFilter(Vo,["==",["get","uniqueId"],$]);const[m,w]=h;u(m,w)}Fe(()=>n.selectedPeopleGroup,b=>{f(b)});function A(){l()}function v(){p(),a=null}return{initialize:A,cleanup:v,updateSelectedPin:f}}const ta="doxa-country-outline",za="doxa-country-outline-line",xk="mapbox://mapbox.country-boundaries-v1",Lk="country_boundaries";function Sk(e,t){if(!e)return"";const o=Array.isArray(t)?t:[],n=Array.isArray(e.memberIds)?e.memberIds.map(String):[],a=new Set(n);let s=n.length?o.find(r=>a.has(String(r.uniqueId??r.id??r.slug??""))):null;if(!s){const r=String(e.label??"").toLowerCase();s=o.find(i=>String(i.countryName??i.country??"").toLowerCase()===r)}return String((s==null?void 0:s.countryIso)??"").trim().toUpperCase()}function Ak(e){return["all",["==",["get","iso_3166_1_alpha_3"],e],["any",["==",["get","worldview"],"all"],["in","US",["get","worldview"]]]]}function Pk(e,t={}){const o=t.lineColor??"#2563eb",n=t.lineWidth??2.5,a=t.lineOpacity??.8;function s(){const i=typeof e=="function"?e():null;if(i)try{i.getLayer(za)&&i.removeLayer(za),i.getSource(ta)&&i.removeSource(ta)}catch{}}function r(i){const l=String(i||"").trim().toUpperCase();if(l.length!==3)return;const c=typeof e=="function"?e():null;if(!c)return;const u=Ak(l);if(c.getLayer(za))try{c.setFilter(za,u);return}catch{}s();try{const p=(()=>{var f,A,v;try{return!!((v=(A=(f=c.getContainer)==null?void 0:f.call(c))==null?void 0:A.classList)!=null&&v.contains("maplibregl-map"))}catch{return!1}})();p?(c.addSource(ta,{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${Zd(null)}/boundaries/world-adm0.geojson`).then(f=>f.json()).then(f=>{for(const b of f.features||[])b.properties&&b.properties.iso3&&(b.properties.iso_3166_1_alpha_3=b.properties.iso3);const A=typeof e=="function"?e():null,v=A&&A.getSource(ta);v&&v.setData(f)}).catch(f=>console.warn("[country-outline] boundaries failed to load",f))):c.addSource(ta,{type:"vector",url:xk}),c.addLayer({id:za,type:"line",source:ta,...p?{}:{"source-layer":Lk},filter:u,layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":o,"line-width":n,"line-opacity":a,...Ao(c,"line")}})}catch{}}return{showCountry:r,clearCountry:s}}const og="doxa-prayed-local",Ck=7*24*60*60*1e3;function ng(){try{const e=localStorage.getItem(og);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function ag(e){try{localStorage.setItem(og,JSON.stringify(e))}catch{}}function Ek(){const e=Date.now(),t=ng();let o=!1;for(const[n,a]of Object.entries(t))(typeof a!="number"||e-a>Ck)&&(delete t[n],o=!0);return o&&ag(t),new Set(Object.keys(t))}function Tk(e){if(!e)return;const t=ng();t[e]=Date.now(),ag(t);try{window.dispatchEvent(new CustomEvent("doxa:prayed-locally",{detail:{slug:e}}))}catch{}}function Nk(e){const t=Ek();return!t.size||!Array.isArray(e)?e:e.map(o=>(Number(o&&o.peoplePraying)||0)>0||!o||!t.has(o.slug)?o:{...o,peoplePraying:1})}const sg={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"};function ll(e){return e==null?"":typeof e=="object"?e.label||e.value||"":String(e)}const Rk=[[/ sign language$/i,"Sign Language"]];function Mk(e){var i,l;const t=ll(e.languageFamily);if(t)return t;const o=String(((l=(i=e._raw)==null?void 0:i.primary_language)==null?void 0:l.value)||(e.language&&typeof e.language=="object"?e.language.value:"")||"").trim().toLowerCase();if(o&&sg[o])return sg[o];const n=ll(e.language||e.primary_language);if(!n||typeof n!="string")return"";const a=n.trim(),s=a.split(",").map(c=>c.trim()).filter(Boolean);if(s.length>=2){const c=[...s].reverse().join(" ");if(Ye[c])return Ye[c];if(s.length>=3){const u=[s[1],s[0]].join(" ");if(Ye[u])return Ye[u]}}if(Ye[a])return Ye[a];const r=a.replace(/\s*\(.*?\)\s*$/,"").trim();if(r!==a&&Ye[r])return Ye[r];for(const[c,u]of Rk)if(c.test(a))return u;return""}function Fk(e){const{mapId:t="unknown",dataSourceId:o="doxa-csv",dataSourceManager:n=null,dataStore:a=null,markRaw:s=d=>d}=e;n||console.error("useMapData: dataSourceManager is required!");const r=he(!1),i=he(null),l=he(!1),c=he([]),u=he([]),p=he(null),f=he([]),A=he([]),v=he([]),b=he(null);async function _(){if(!n)throw new Error("dataSourceManager is required for useMapData");r.value=!0,i.value=null;try{if(await n.init(),a&&a.hasSourceData&&a.hasSourceData(o)){const L=a.getSourceData(o);u.value=s(L.normalizedData||[])}else{const L=await n.setActiveSource(o);for(const y of L){const R=ll(y.language||y.primary_language);R&&(y.language=R);const z=Mk(y);y.languageFamily=tr(z)}u.value=s(L),a&&a.cacheSourceData&&a.cacheSourceData(o,{normalizedData:L,timestamp:Date.now()})}c.value=s(Nk(u.value.map(L=>({id:L.uniqueId,slug:L.slug||"",rop3:L.peopleGroupId,peopleId3:L.peopleId3,name:L.name,language:L.language,languageFamily:L.languageFamily,country:L.country,population:L.population,status:L.engagementStatus||L.status,latitude:L.latitude,longitude:L.longitude,lng:L.longitude,lat:L.latitude,description:L.description,imageUrl:L.imageUrl,doxaRegion:L.doxaRegion||L.wagfRegion||"",peoplePraying:L.peoplePraying??null,_normalized:L}))));const d=n.getDataByLanguageFamily();f.value=Object.entries(d).map(([L,y])=>{const R=y.reduce((z,K)=>{const Q=parseInt(K.population)||0;return z+Q},0);return{name:L,count:y.length,peopleGroupCount:y.length,population:R,groups:y}}).sort((L,y)=>y.count-L.count);const C=n.getDataByRegion();A.value=Object.entries(C).map(([L,y])=>{const R=y.reduce((z,K)=>{const Q=parseInt(K.population)||0;return z+Q},0);return{name:L,count:y.length,peopleGroupCount:y.length,population:R,groups:y}}).sort((L,y)=>L.name.localeCompare(y.name));const S={bible:{count:0,population:0,groups:[]},jesusFilm:{count:0,population:0,groups:[]},radio:{count:0,population:0,groups:[]},gospel:{count:0,population:0,groups:[]},audio:{count:0,population:0,groups:[]},stories:{count:0,population:0,groups:[]},hasResources:{count:0,population:0,groups:[]},noResources:{count:0,population:0,groups:[]}};u.value.forEach(L=>{const y=parseInt(L.population)||0;let R=!1;L.bible==="Available"&&(S.bible.count++,S.bible.population+=y,S.bible.groups.push(L),R=!0),L.jesusFilm==="Available"&&(S.jesusFilm.count++,S.jesusFilm.population+=y,S.jesusFilm.groups.push(L),R=!0),L.radio==="Available"&&(S.radio.count++,S.radio.population+=y,S.radio.groups.push(L),R=!0),L.gospel==="Available"&&(S.gospel.count++,S.gospel.population+=y,S.gospel.groups.push(L),R=!0),L.audio==="Available"&&(S.audio.count++,S.audio.population+=y,S.audio.groups.push(L),R=!0),L.stories==="Available"&&(S.stories.count++,S.stories.population+=y,S.stories.groups.push(L),R=!0),R?(S.hasResources.count++,S.hasResources.population+=y,S.hasResources.groups.push(L)):(S.noResources.count++,S.noResources.population+=y,S.noResources.groups.push(L))});const G=u.value.length,H=u.value.reduce((L,y)=>L+(parseInt(y.population)||0),0),J={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},U={bible:{count:G-S.bible.count,population:H-S.bible.population},jesusFilm:{count:G-S.jesusFilm.count,population:H-S.jesusFilm.population},radio:{count:G-S.radio.count,population:H-S.radio.population},gospel:{count:G-S.gospel.count,population:H-S.gospel.population},audio:{count:G-S.audio.count,population:H-S.audio.population},stories:{count:G-S.stories.count,population:H-S.stories.population}},D="#2c3e50";return v.value=[{name:J.bible,key:"bible",count:S.bible.count,population:S.bible.population,isParent:!0,children:[{name:"No Bible",key:"noBible",count:U.bible.count,population:U.bible.population,color:D}]},{name:J.jesusFilm,key:"jesusFilm",count:S.jesusFilm.count,population:S.jesusFilm.population,isParent:!0,children:[{name:"No Jesus Film",key:"noJesusFilm",count:U.jesusFilm.count,population:U.jesusFilm.population,color:D}]},{name:J.radio,key:"radio",count:S.radio.count,population:S.radio.population,isParent:!0,children:[{name:"No Radio",key:"noRadio",count:U.radio.count,population:U.radio.population,color:D}]},{name:J.gospel,key:"gospel",count:S.gospel.count,population:S.gospel.population,isParent:!0,children:[{name:"No Gospel",key:"noGospel",count:U.gospel.count,population:U.gospel.population,color:D}]},{name:J.audio,key:"audio",count:S.audio.count,population:S.audio.population,isParent:!0,children:[{name:"No Audio",key:"noAudio",count:U.audio.count,population:U.audio.population,color:D}]},{name:J.stories,key:"stories",count:S.stories.count,population:S.stories.population,isParent:!0,children:[{name:"No Stories",key:"noStories",count:U.stories.count,population:U.stories.population,color:D}]},{name:J.hasResources,key:"hasResources",count:S.hasResources.count,population:S.hasResources.population,isParent:!0,children:[{name:J.noResources,key:"noResources",count:S.noResources.count,population:S.noResources.population,color:D}]}],b.value=n.getStats(),l.value=!0,{peopleGroups:c.value,normalizedPeopleGroups:u.value,languageFamiliesData:f.value,doxaRegionsData:A.value,resourcesData:v.value,stats:b.value}}catch(d){throw console.error(`Failed to load data for map "${t}":`,d),i.value=d.message||"Failed to load data",d}finally{r.value=!1}}async function $(){var d,C,S;try{const G={},H=u.value||[];for(const J of H){const U=J.countryIso||((C=(d=J._raw)==null?void 0:d.country_code)==null?void 0:C.value)||"",D=(S=J._raw)==null?void 0:S.wagf_region,L=J.doxaRegion||J.wagfRegion||(D&&typeof D=="object"?D.value:"")||"";U&&L&&!G[U]&&(G[U]=L)}return p.value={isoToRegion:G},p.value}catch(G){throw console.error(`Error building regions data for map "${t}":`,G),i.value=G.message||"Failed to build regions",G}}function h(){return n?n.getDataByLanguageFamily():{}}function m(){return n?n.getDataByRegion():{}}function w(d){return h()[d]||[]}function g(d){return m()[d]||[]}function P(){c.value=[],u.value=[],p.value=null,f.value=[],A.value=[],v.value=[],b.value=null,l.value=!1,i.value=null}return{isLoading:r,isInitialized:l,error:i,peopleGroups:c,normalizedPeopleGroups:u,regionsData:p,languageFamiliesData:f,doxaRegionsData:A,resourcesData:v,stats:b,loadData:_,loadRegionsData:$,getDataByLanguageFamily:h,getDataByRegion:m,getPeopleGroupsByFamily:w,getPeopleGroupsByRegion:g,clearData:P}}function Ik(e){const{map:t,geocoderRef:o,clustering:n,mapStore:a,uiStore:s,mapLayers:r,pplrInstance:i,onSemanticTreeSelect:l,switchTab:c,activeTabId:u,clearAllHighlights:p,clearCountryHighlight:f,mapId:A,supportedKinds:v,legendRouters:b={},peopleGroupResult:_,busAdapter:$}=e,h=e.filterLayerId||"language-family-pins";let m=!1;function w(){var L,y,R,z,K;m=!0;const U=(y=(L=o.value)==null?void 0:L.geocoder)==null?void 0:y.value;(R=U==null?void 0:U.clear)==null||R.call(U);const D=(U==null?void 0:U._inputEl)||((K=(z=U==null?void 0:U.container)==null?void 0:z.querySelector)==null?void 0:K.call(z,"input.mapboxgl-ctrl-geocoder--input"));if(D){D.value="";try{D.dispatchEvent(new Event("input",{bubbles:!0}))}catch{}}m=!1}function g(U,D){const L=`${h}-hitbox`;if(U!=null&&U.getLayer(L))try{U.setFilter(L,D)}catch{}}function P(){typeof window>"u"||typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:reveal-selected",{detail:{mapId:A}}))}const d={country:"countryName","language-family":"languageFamily",language:"language",dialect:"language",religion:"religionName",region:"doxaRegion","affinity-bloc":"affinityBlock",cluster:"cluster","people-group":"peopleGroup"};function C(U,D,L){var y,R,z;if(U.kind==="language")return["any",["==",["get",D],L],["==",["slice",["get",D],0,L.length+1],L+","],["in"," "+L,["get",D]]];if(U.kind==="dialect"){const K=Array.isArray(U.originalLabels)?U.originalLabels:[];return K.length===1?["==",["get",D],K[0]]:K.length>1?["in",["get",D],["literal",K]]:["==",["get",D],L]}else if(U.kind==="affinity-bloc"){const K=U.blocCode||((y=U.properties)==null?void 0:y.blocCode)||"";return K?["==",["get","affinityBlock"],K]:["==",["get","affinityBlockLabel"],L]}else if(U.kind==="cluster"){const K=U.clusterCode||((R=U.properties)==null?void 0:R.clusterCode)||"",Q=U.blocCode||((z=U.properties)==null?void 0:z.blocCode)||"";return K&&Q?["all",["==",["get","affinityBlock"],Q],["==",["get","cluster"],K]]:["==",["get","clusterLabel"],L]}else return["==",["get",D],L]}function S(U){if(!U||v&&!v.includes(U.kind))return null;const D=d[U.kind]||null,L=U.label;return!D||L==null||L===""?null:{kind:U.kind,value:L,property:D,expr:C(U,D,L)}}function G(U){var y,R,z,K;if(!U)return;f==null||f();const D=ge(t),L=((y=U.properties)==null?void 0:y.id)||((R=U.properties)==null?void 0:R.uniqueId)||null;if((z=s==null?void 0:s.selectPeopleGroup)==null||z.call(s,{...U,properties:{...U.properties,uniqueId:L}}),D&&L!=null&&D.getLayer(h)){const Q=["==",["get","uniqueId"],L];try{D.setFilter(h,null)}catch{}g(D,Q),D.setPaintProperty(h,"circle-opacity",["case",Q,1,0]),D.setPaintProperty(h,"circle-stroke-opacity",["case",Q,1,0]),D.getLayer(`${h}-shadow`)&&D.setPaintProperty(`${h}-shadow`,"circle-opacity",["case",Q,1,0]),(K=r==null?void 0:r.syncGlowFilter)==null||K.call(r,Q)}}function H(U){var K;if($){const Q=S(U);if(!Q)return;$.aggregate(Q,U);return}const D=ge(t);if(!U||!D||!D.getLayer(h)||v&&!v.includes(U.kind))return;U.kind!=="country"&&(f==null||f());const L=S(U);if(!L)return;const{property:y,value:R}=L;try{D.setFilter(h,L.expr)}catch{}n.setSelectionFilter({property:y,value:R});let z=!1;if(U.kind==="language-family"||U.kind==="family")a.selectFamily(U.label),a.setActiveLegendTab("family"),z=!0;else if(U.kind==="language")a.selectLanguage(U.label),a.setActiveLegendTab("language"),z=!0;else if(U.kind==="dialect"){const Q=Array.isArray(U.originalLabels)?U.originalLabels:[],ie=U.familyDerived||"",j=U.baseLang||"",be=U.dialectLabel||"",xe=`${ie}__${j}__${be}`;(K=a.selectDialect)==null||K.call(a,{key:xe,originalLabels:Q}),a.setActiveLegendTab("dialect"),z=!0}else if(U.kind==="affinity-bloc"||U.kind==="cluster"||U.kind==="people-group"){let Q=null;if(U.kind==="affinity-bloc"){const ie=U.blocCode||"";Q={id:`bloc:${ie}`,label:U.label,depth:0,filter:ie?["==",["get","affinityBlock"],ie]:null}}else if(U.kind==="cluster"){const ie=U.blocCode||"",j=U.clusterCode||"";Q={id:`cluster:${ie}__${j}`,label:U.label,depth:1,filter:j?["==",["get","cluster"],j]:null}}else if(U.kind==="people-group"){const ie=U.blocCode||"",j=U.clusterCode||"",be=U.peopleGroupCode||"";Q={id:`pg:${ie}__${j}__${be}`,label:U.label,depth:2,filter:be?["==",["get","peopleGroup"],be]:null}}if(Q&&Q.filter){const ie=()=>{try{D.setFilter(h,null)}catch{}l(Q),i&&i.selection&&(i.selection.value=Q)};u.value!=="affinity-blocks"?(c("affinity-blocks"),It(ie)):ie()}z=!0}else b[U.kind]&&(b[U.kind](U,{map:D,filterLayerId:h,clearGeocoder:w,emitLegendReveal:P,property:y,value:R}),z=!0);z&&(w(),P())}function J(){var D,L,y;if($){$.clear();return}if(m)return;f==null||f();const U=ge(t);a.selectedRegion&&((D=a.selectRegion)==null||D.call(a,null)),a.selectedResource&&((L=a.selectResource)==null||L.call(a,null)),U&&U.getLayer(h)?p(U):(a.selectFamily(null),a.selectLanguage(null),(y=a.selectDialect)==null||y.call(a,null),n.setSelectionFilter(null))}return{onPeopleGroupResult:$?U=>$.peopleGroup(U):_||G,onAggregateResult:H,onClear:J,clearGeocoderProgrammatic:w}}const cl={};function ul(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:En&&En.tagName.toUpperCase()==="SCRIPT"&&En.src||new URL("doxa-research-map.js",document.baseURI).href}<"u"&&(cl==null?void 0:cl.VITE_API_BASE_URL)||""}const pl=he(0),sr=he(0),rr=he(0),dl=he(!1),gl=he(!1),fl=he(null);let Ha=null;async function Ok(){if(!dl.value)return Ha||(gl.value=!0,fl.value=null,Ha=(async()=>{var e,t;try{const o=((e=_n==null?void 0:_n.sources)==null?void 0:e[_n.activeSource])||{},n=ul(),a=((t=o.endpoints)==null?void 0:t.statistics)||"/api/people-groups/statistics",s=await fetch(`${n}${a}`,{cache:"no-store"});if(!s.ok)throw new Error(`statistics HTTP ${s.status}`);const r=await s.json();pl.value=Number(r.total||0),sr.value=Number(r.total_with_prayer_committed??r.total_with_prayer??0),rr.value=Number(r.total_with_100_committed??r.total_with_full_prayer??0),dl.value=!0}catch(o){fl.value=o&&o.message?o.message:String(o)}finally{gl.value=!1,Ha=null}})(),Ha)}function Dk(){return{total:pl,withPrayer:sr,withFullPrayer:rr,loaded:dl,loading:gl,error:fl,load:Ok,noPrayerCount:()=>Math.max(0,pl.value-sr.value),hasPrayerCount:()=>Math.max(0,sr.value-rr.value),fullPrayerCount:()=>rr.value}}function Bk(e){return(e==null?void 0:e.properties)||e||{}}function ir(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function Gk(e){if(!e||typeof e!="string")return null;const t=e.split(",").map(n=>n.trim()).filter(Boolean);if(t.length>=2){const n=[...t].reverse().join(" ");if(Ye[n])return Ye[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(Ye[a])return Ye[a]}}if(Ye[e])return Ye[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();return o!==e&&Ye[o]?Ye[o]:null}const jk=[[/ sign language$/i,"Sign Language"]];function Uk(e){if(!e||typeof e!="string")return"— Unknown —";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function zk(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function Hk(e){var r,i,l,c;const t=e.language_family??e.languageFamily??((r=e._raw)==null?void 0:r.LanguageFamily)??((i=e._raw)==null?void 0:i.language_family),o=ir(t),n=tr(o);if(n&&n!=="Unknown")return n;const a=e.primary_language??e.primaryLanguage??((l=e._raw)==null?void 0:l.PrimaryLanguage)??((c=e._raw)==null?void 0:c.primary_language),s=ir(a);if(s){const u=String(s).trim(),p=Gk(u);if(p)return p;for(const[f,A]of jk)if(f.test(u))return A}return"Unknown"}function Vk(e){var a,s;const t=((a=e._raw)==null?void 0:a.primary_language)??((s=e._raw)==null?void 0:s.PrimaryLanguage);if(t){const r=ir(t);if(r)return String(r).trim()}const o=e.primary_language??e.primaryLanguage??e.language,n=ir(o);return n&&String(n).trim()||"— Unknown —"}function Kk(e){var o,n;const t=e.population??((o=e._raw)==null?void 0:o.Population)??((n=e._raw)==null?void 0:n.population)??0;return parseInt(t,10)||0}function qk(e,t){var o,n;return(e==null?void 0:e.id)??t.id??t.peopleGroupId??((o=t._raw)==null?void 0:o.PeopleID3)??((n=t._raw)==null?void 0:n.PeopleID)??null}function Wk(e,t){return(e==null?void 0:e.clusterId)??t.clusterId??null}function Yk(e,t){var a,s,r,i;const o=parseFloat(t.latitude??t.lat??((a=t._raw)==null?void 0:a.Latitude)??((s=t._raw)==null?void 0:s.latitude)),n=parseFloat(t.longitude??t.lng??((r=t._raw)==null?void 0:r.Longitude)??((i=t._raw)==null?void 0:i.longitude));return!isFinite(o)||!isFinite(n)?null:[n,o]}function Xk(e,t){return t.peopleGroupCount!==e.peopleGroupCount?t.peopleGroupCount-e.peopleGroupCount:(t.population||0)-(e.population||0)}function lr(e,t){return(t.population||0)!==(e.population||0)?(t.population||0)-(e.population||0):t.peopleGroupCount-e.peopleGroupCount}function hl(e,t={}){t.aggregator;const o=Mn({});function n(b){return!!o[b]}function a(b){o[b]=!o[b]}function s(b){const _=new Set(Array.isArray(b)?b:[]);for(const $ of Object.keys(o))_.has($)||(o[$]=!1);for(const $ of _)o[$]=!0}const r=oe(()=>{const b=(e==null?void 0:e.value)||[],_=new Map;for(const $ of b){const h=Bk($),m=Hk(h),w=Vk(h),g=Uk(w),P=zk(w),d=Kk(h),C=qk($,h),S=Wk($,h),G=Yk($,h);let H=_.get(m);H||(H={key:m,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,languages:new Map},_.set(m,H)),H.peopleGroupCount+=1,H.population+=d,C!=null&&H.pinIds.push(C),G&&H.coords.push(G),S&&!H.clusterId&&(H.clusterId=S);let J=H.languages.get(g);if(J||(J={key:g,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,dialects:new Map},H.languages.set(g,J)),J.peopleGroupCount+=1,J.population+=d,C!=null&&J.pinIds.push(C),G&&J.coords.push(G),S&&!J.clusterId&&(J.clusterId=S),P){let U=J.dialects.get(P);U?U.originalLabels.add(w):(U={key:P,peopleGroupCount:0,population:0,pinIds:[],coords:[],originalLabels:new Set([w])},J.dialects.set(P,U)),U.peopleGroupCount+=1,U.population+=d,C!=null&&U.pinIds.push(C),G&&U.coords.push(G)}}return _}),i=t.showAllKnown!==!1,l=oe(()=>{const b=r.value,_=[],$=new Set;for(const h of b.values())_.push({key:h.key,label:h.key,color:co(h.key),peopleGroupCount:h.peopleGroupCount,population:h.population,kind:h.clusterId?"cluster":"family",clusterId:h.clusterId||void 0,pinIds:h.pinIds,coords:h.coords}),$.add(h.key);if(i)for(const h of Object.keys(xd))$.has(h)||_.push({key:h,label:h,color:co(h),peopleGroupCount:0,population:0,kind:"family",pinIds:[],coords:[]});return _.sort(Xk),_});function c(b){const _=r.value.get(b);if(!_)return[];const $=[];for(const h of _.languages.values())$.push({key:`${b}__${h.key}`,label:h.key,color:co(b),peopleGroupCount:h.peopleGroupCount,population:h.population,kind:h.clusterId?"cluster":"language",familyKey:b,clusterId:h.clusterId||void 0,pinIds:h.pinIds,coords:h.coords,hasDialects:h.dialects.size>0});return $.sort(lr),$}function u(b){const _=b.indexOf("__");if(_<0)return[];const $=b.slice(0,_),h=b.slice(_+2),m=r.value.get($);if(!m)return[];const w=m.languages.get(h);if(!w)return[];const g=[];for(const P of w.dialects.values())g.push({key:`${b}__${P.key}`,label:`${h}, ${P.key}`,dialectOnly:P.key,color:co($),peopleGroupCount:P.peopleGroupCount,population:P.population,kind:"dialect",languageKey:h,familyKey:$,pinIds:P.pinIds,coords:P.coords,originalLabels:Array.from(P.originalLabels)});return g.sort(lr),g}const p=oe(()=>{const b=r.value,_=[];for(const $ of b.values())for(const h of $.languages.values())_.push({key:`${$.key}__${h.key}`,label:h.key,color:co($.key),peopleGroupCount:h.peopleGroupCount,population:h.population,kind:h.clusterId?"cluster":"language",familyKey:$.key,clusterId:h.clusterId||void 0,pinIds:h.pinIds,coords:h.coords,hasDialects:h.dialects.size>0});return _.sort(lr),_}),f=oe(()=>{const b=r.value,_=[];for(const $ of b.values())for(const h of $.languages.values())for(const m of h.dialects.values())_.push({key:`${$.key}__${h.key}__${m.key}`,label:`${h.key}, ${m.key}`,dialectOnly:m.key,color:co($.key),peopleGroupCount:m.peopleGroupCount,population:m.population,kind:"dialect",languageKey:h.key,familyKey:$.key,pinIds:m.pinIds,coords:m.coords,originalLabels:Array.from(m.originalLabels)});return _.sort(lr),_});function A(b){let _=b;if(typeof b=="string"&&(_=l.value.find(h=>h.key===b),!_))return;const $={kind:_.kind,pinIds:_.pinIds||[],coords:_.coords||[]};_.kind==="family"&&($.familyKey=_.label),_.kind==="language"&&($.languageKey=_.label,$.familyKey=_.familyKey),_.kind==="dialect"&&($.dialectKey=_.key,$.dialectOnly=_.dialectOnly||_.label,$.languageKey=_.languageKey,$.familyKey=_.familyKey,$.originalLabels=_.originalLabels||[]),_.kind==="cluster"&&($.clusterId=_.clusterId),typeof window<"u"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:highlight",{detail:$}))}const v=oe(()=>{const b=r.value,_=[];for(const $ of b.values()){const h=co($.key),m=[];for(const g of $.languages.values()){g.key&&g.key!=="— Unknown —"&&m.push(g.key);for(const P of g.dialects.values())for(const d of P.originalLabels)d&&m.push(d)}const w={id:`fam:${$.key}`,label:$.key,color:h,count:$.peopleGroupCount,pop:$.population,filter:m.length>0?["any",["==",["get","languageFamily"],$.key],["in",["get","language"],["literal",Array.from(new Set(m))]]]:["==",["get","languageFamily"],$.key],children:[]};for(const g of $.languages.values()){const P=g.key,d={id:`lang:${$.key}__${P}`,label:P,color:h,count:g.peopleGroupCount,pop:g.population,filter:["any",["==",["get","language"],P],["==",["slice",["get","language"],0,P.length+1],P+","],["in"," "+P,["get","language"]]],children:[]};for(const C of g.dialects.values()){const S=Array.from(C.originalLabels);d.children.push({id:`dial:${$.key}__${P}__${C.key}`,label:`${P}, ${C.key}`,color:h,count:C.peopleGroupCount,pop:C.population,filter:S.length===1?["==",["get","language"],S[0]]:["in",["get","language"],["literal",S]],originalLabels:S,children:[]})}w.children.push(d)}_.push(w)}return _.sort(($,h)=>h.pop-$.pop||h.count-$.count),_});return{rows:l,languageRows:p,dialectRows:f,langTree:v,toggle:a,isExpanded:n,setExpansionToOnly:s,childRowsFor:c,dialectRowsFor:u,highlight:A}}const Zk=[];function Jk(){const e=So(Zn.RESOURCE);return e&&e.propertyKey==="resourceType"?e:null}function Qk(){const e=So(Zn.DOXA_REGION);return e&&e.propertyKey==="doxaRegion"?e.palette||{}:{}}function ew(){const e=So(Zn.AFFINITY_BLOCK);if(!e||e.propertyKey!=="affinityBlock")return{};const t=e.names||{},o=e.palette||{},n={};for(const a of Object.keys(t))n[t[a]]=o[a]||"#999";return n}function wn(e,t){const a=Object.values(e.sources||{}).flatMap(s=>(s==null?void 0:s.features)||[]).filter(s=>t(s.properties||s));return{count:a.length,population:a.reduce((s,r)=>{var l;const i=r.properties||r;return s+(parseInt(i.population||((l=i._raw)==null?void 0:l.Population)||0)||0)},0)}}const rg=100;function tw(e){var o;let t=(e==null?void 0:e.peopleCommitted)??((o=e==null?void 0:e._raw)==null?void 0:o.people_committed)??(e==null?void 0:e.people_committed)??null;return t&&typeof t=="object"&&(t=t.value??t.label??0),Number(t)||0}function ml(e){return t=>{const o=tw(t);return e==="fullPrayer"?o>=rg:e==="hasPrayer"?o>0&&o0||typeof t=="string"&&parseInt(t,10)>0}function lg(e){var o;const t=e.adoptionStatus??((o=e._raw)==null?void 0:o.adopted_by_churches);return t===!0||t===1||t==="1"||t==="true"||typeof t=="number"&&t>0||typeof t=="string"&&parseInt(t,10)>0}const ow={prayer:"legend.title.prayer",engagement:"legend.title.engagement",adoption:"legend.title.adoption","language-families":"legend.title.languageFamilies","language-family":"legend.title.languageFamilies","doxa-regions":"legend.title.doxaRegions","doxa-region":"legend.title.doxaRegions","affinity-blocs":"legend.title.affinityBlocs",countries:"legend.title.countries",country:"legend.title.countries","gospel-resources":"legend.title.gospelResources",religion:"legend.title.religion"};function oa(e){return e==="doxa-region"?"doxa-regions":e==="country"?"countries":e}function nw(e){return e?e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString():"0"}function aw(e){return(Number(e)||0).toLocaleString()}function Va(e,t={}){const o=Ne("dataStore"),n=Ne("uiStore"),a=Ne("mapStore"),{t:s}=bt(),r=Dk();r.load();const i=oe(()=>{if(oa(e.value)==="religion")return"Religion";const $=ow[e.value];return $?s($):""}),l=oe(()=>oa(e.value)==="affinity-blocs"?Zk:[{key:"count",label:s("legend.columns.upgs"),width:48},{key:"population",label:s("legend.columns.population"),width:48}]),c=oe(()=>{const _=oa(e.value);return _==="prayer"?n.prayerFilter:_==="engagement"?n.engagementFilter:_==="adoption"?n.adoptionFilter:_==="language-families"?a.selectedFamily:_==="doxa-regions"?a.selectedRegion:_==="gospel-resources"?a.selectedResource:_==="religion"?n.religionFilter:null});function u(_){const $=oa(e.value);$==="prayer"?n.setPrayerFilter(n.prayerFilter===_?null:_):$==="engagement"?n.setEngagementFilter(n.engagementFilter===_?null:_):$==="adoption"?n.setAdoptionFilter(n.adoptionFilter===_?null:_):$==="language-families"?a.selectFamily(a.selectedFamily===_?null:_):$==="doxa-regions"?a.selectRegion(a.selectedRegion===_?null:_):$==="gospel-resources"?a.selectResource(a.selectedResource===_?null:_):$==="religion"&&n.setReligionFilter(n.religionFilter===_?null:_)}const p=oe(()=>{var $,h,m,w;const _=oa(e.value);if(_==="prayer"){const g=wn(o,ml("noPrayer")),P=wn(o,ml("hasPrayer")),d=wn(o,ml("fullPrayer")),C=r.loaded.value,S=C?r.noPrayerCount():g.count,G=C?r.hasPrayerCount():P.count,H=C?r.fullPrayerCount():d.count;return[{key:"noPrayer",label:s("legend.prayer.needsPrayer"),color:vn.noPrayer,count:S,population:g.population,filterKey:"noPrayer",children:[{key:"hasPrayer",label:s("legend.prayer.hasPrayer"),color:vn.hasPrayer,count:G,population:P.population,filterKey:"hasPrayer"},{key:"fullPrayer",label:s("legend.prayer.fullPrayerCoverage"),color:vn.fullPrayer,count:H,population:d.population,filterKey:"fullPrayer"}]}]}if(_==="engagement"){const g=wn(o,d=>!ig(d)),P=wn(o,d=>ig(d));return[{key:"notEngaged",label:s("legend.engagement.needsEngagement"),color:zi.notEngaged,count:g.count,population:g.population,filterKey:"notEngaged",children:[{key:"hasEngagement",label:s("legend.engagement.hasEngagement"),color:zi.hasEngagement,count:P.count,population:P.population,filterKey:"hasEngagement"}]}]}if(_==="adoption"){const g=wn(o,d=>!lg(d)),P=wn(o,d=>lg(d));return[{key:"notAdopted",label:s("legend.adoption.needsAdoption"),color:Gi.notAdopted,count:g.count,population:g.population,filterKey:"notAdopted",children:[{key:"hasAdoption",label:s("legend.adoption.hasAdoption"),color:Gi.hasAdoption,count:P.count,population:P.population,filterKey:"hasAdoption"}]}]}if(_==="religion"){const g={},d=Object.values(o.sources||{}).flatMap(G=>(G==null?void 0:G.features)||[]);for(const G of d){const H=G.properties||G,J=H.religion||((h=($=H._raw)==null?void 0:$.religion)==null?void 0:h.value)||((m=H._raw)==null?void 0:m.religion)||"",U=ja(J);g[U]||(g[U]={count:0,population:0}),g[U].count+=1,g[U].population+=parseInt(H.population||((w=H._raw)==null?void 0:w.Population)||0)||0}const C=new Set((t==null?void 0:t.excludeReligionFamilies)||[]);for(const G of C)delete g[G];return Object.keys(g).sort((G,H)=>G==="C"?-1:H==="C"?1:g[H].population-g[G].population).map(G=>({key:G,label:Jt[G]||"Unknown",color:qt[G]||"#94a3b8",count:g[G].count,population:g[G].population,filterKey:G,children:[]}))}if(_==="language-families")return(o.languageFamiliesData||[]).map(g=>({key:g.name,label:g.name,color:co(g.name),count:g.count,population:g.population,filterKey:g.name,children:[]}));if(_==="language-family"){const P={value:Object.values(o.sources||{}).flatMap(C=>(C==null?void 0:C.features)||[])},{rows:d}=hl(P);return d.value.map(C=>({key:C.key,label:C.label,color:C.color,count:C.peopleGroupCount,population:C.population,filterKey:C.key,children:[]}))}if(_==="doxa-regions"){const g=Qk();return(o.doxaRegionsData||[]).map(P=>({key:P.name,label:P.name,color:g[P.name]||"#999",count:P.count,population:P.population,filterKey:P.name,children:[]}))}if(_==="gospel-resources"){const g=Jk(),P=(g==null?void 0:g.palette)??{},d=(g==null?void 0:g.names)??{},C=o.resourcesData||[];return Object.keys(P).map(S=>{const G=C.find(H=>H.key===S);return{key:S,label:d[S]||S,color:P[S],count:(G==null?void 0:G.count)||0,population:(G==null?void 0:G.population)||0,filterKey:S,children:((G==null?void 0:G.children)||[]).map(H=>({key:H.key,label:H.name||H.key,color:H.color||P[S],count:H.count||0,population:H.population||0,filterKey:H.key}))}})}if(_==="affinity-blocs"){const g=ew();return Object.keys(g).sort().map(P=>({key:P,label:P,color:g[P],filterKey:P,children:[]}))}return[]});function f(_,$){return _.reduce((h,m)=>{var g;let w=m[$]||0;return(g=m.children)!=null&&g.length&&(w+=f(m.children,$)),h+w},0)}const A=oe(()=>f(p.value,"count")),v=oe(()=>f(p.value,"population")),b=oe(()=>{if(oa(e.value)!=="prayer")return null;const _=p.value[0];if(!_)return null;const $=(_.children||[]).find(d=>d.key==="hasPrayer"),h=(_.children||[]).find(d=>d.key==="fullPrayer"),m=Number(_.count)||0,w=Number($==null?void 0:$.count)||0,g=Number(h==null?void 0:h.count)||0,P=(Number($==null?void 0:$.population)||0)+(Number(h==null?void 0:h.population)||0);return{covered:w+g,total:A.value,coveredPopulation:P,totalPopulation:v.value,segments:[{key:"fullPrayer",label:(h==null?void 0:h.label)??s("legend.prayer.fullPrayerCoverage"),count:g,color:vn.fullPrayer},{key:"hasPrayer",label:($==null?void 0:$.label)??s("legend.prayer.hasPrayer"),count:w,color:vn.hasPrayer},{key:"noPrayer",label:_.label,count:m,color:vn.noPrayer}]}});return{items:p,columns:l,title:i,activeFilter:c,setFilter:u,totalCount:A,totalPopulation:v,progress:b,fmtPop:nw,fmtCount:aw}}class cg{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=_n,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",s=!1,r=[],i=!0;for(let l=0;l0){if(r.push(a.trim()),a="",i)n.push(...r),i=!1;else if(r.length>1){const p={};n.forEach((f,A)=>{p[f]=r[A]||""}),o.push(p)}r=[]}}else a+=c}if((a||r.length>0)&&(r.push(a.trim()),!i&&r.length>1)){const l={};n.forEach((c,u)=>{l[c]=r[u]||""}),o.push(l)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:s}=this.parseCSV(n);return this.rawData=s,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(r=>r.trim())),s=[];for(const[r,i]of Object.entries(t||{}))if(Array.isArray(i))for(const l of i)a.has(l)||s.push({systemField:r,sourceField:l,isComposite:!0});else i&&!a.has(i)&&s.push({systemField:r,sourceField:i,isComposite:!1});s.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,s)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var l,c;const o=ul(),n=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",s=[];a&&s.push(`fields=${a}`);const r={...t.queryParams||{}};this.locale&&(r.lang=this.locale);for(const[u,p]of Object.entries(r))s.push(`${u}=${encodeURIComponent(p)}`);const i=`${o}${n}?${s.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const p=u.headers.get("content-type")||"";if(!p.includes("application/json"))throw new Error(`API returned "${p}" instead of JSON. Server at ${o} may be down or misconfigured.`);const f=await u.json();return this.rawData=Array.isArray(f)?f:f.posts||f.data||f.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(p=>this.getFieldValue(n,p));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const s=a.engagementStatus;s!=null&&(typeof s=="object"&&"value"in s?(a.engagementStatusLabel=s.label||s.value,a.engagementStatus=s.value==="engaged"):a.engagementStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const r=a.adoptionStatus;r!=null&&(a.adoptionStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="object"&&!!(r!=null&&r.value)||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const i=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of i){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new cg;const sw="",rw=["data-covered","data-total","data-pct"],iw={class:"lpb-track"},lw=["data-span-pct"],cw=["data-seg","data-count","aria-label","onMouseenter","onFocus","onClick"],uw=["data-seg","data-count","aria-label"],pw=["aria-valuenow","aria-valuemax","aria-valuetext","aria-label","title"],ug=nn({__name:"LegendProgressBar",props:{covered:{type:Number,default:0},total:{type:Number,default:0},segments:{type:Array,default:()=>[]},isDark:{type:Boolean,default:!1},label:{type:String,default:""},fmtCount:{type:Function,default:e=>(Number(e)||0).toLocaleString()},compact:{type:Boolean,default:!1},stacked:{type:Boolean,default:!1},showText:{type:Boolean,default:!0}},emits:["select-segment"],setup(e,{emit:t}){const{t:o}=bt();wt(` -.lpb{position:relative;display:flex;align-items:center;gap:8px;min-width:0;width:100%;box-sizing:border-box;} -.lpb-track{position:relative;flex:1 1 auto;min-width:60px;display:flex;height:10px;border-radius:5px;overflow:hidden;background:rgba(110,118,129,0.25);} -.lpb-span{display:flex;height:100%;min-width:0;flex:0 0 auto;} -.lpb-seg{appearance:none;-webkit-appearance:none;border:none;margin:0;padding:0;height:100%;display:block;flex:0 0 auto;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent;transition:filter 0.12s,box-shadow 0.12s;} -.lpb-seg-rest{flex:1 1 auto;} -.lpb-seg:focus{outline:none;} -.lpb-seg:hover,.lpb-seg:focus-visible,.lpb-seg.active{filter:brightness(1.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,0.65);} -.lpb-light .lpb-seg:hover,.lpb-light .lpb-seg:focus-visible,.lpb-light .lpb-seg.active{box-shadow:inset 0 0 0 1px rgba(0,0,0,0.35);} -.lpb-text{flex:0 0 auto;font:600 10px ui-monospace,monospace;letter-spacing:0.02em;color:#8b949e;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1;} -.lpb-light .lpb-text{color:#57606a;} -.lpb-stacked{flex-direction:column;align-items:stretch;gap:6px;} -.lpb-stacked .lpb-text{order:1;text-align:center;font-size:12px;letter-spacing:0.03em;} -.lpb-stacked .lpb-track{order:2;width:100%;} -.lpb-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:10;padding:7px 10px;background:#0d1117;border:1px solid #30363d;border-radius:6px;font:11px system-ui;color:#c9d1d9;line-height:1.45;white-space:nowrap;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,0.5);} -.lpb-light .lpb-pop{background:#f6f8fa;border-color:#d0d7de;color:#1f2328;box-shadow:0 8px 24px rgba(31,35,40,0.18);} -.lpb-pop-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:-1px;box-shadow:0 0 0 1px rgba(0,0,0,0.4);} -.legend-mobile-sheet.collapsed .lpb{display:none!important;} -`,"legend-progress-bar");const n=e,a=t,s=oe(()=>n.total>0?Math.round(n.covered/n.total*100):0),r=oe(()=>n.total>0?Math.min(100,Math.max(0,n.covered/n.total*100)):0),i=oe(()=>n.segments.slice(0,-1)),l=oe(()=>n.segments.length?n.segments[n.segments.length-1]:null);function c(d){return n.covered>0?Math.min(100,Math.max(0,(d.count||0)/n.covered*100)):0}function u(d){return n.total>0?Math.round((d.count||0)/n.total*100):0}const p=oe(()=>n.label||o("legend.progress.covered",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:s.value})),f=oe(()=>o("legend.progress.short",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:s.value}));function A(d){return o("legend.progress.segment",{label:d.label,count:n.fmtCount(d.count||0),pct:u(d)})}const v=he(null),b=he(null),_={},$=he(null),h=he(0),m=oe(()=>n.segments.find(d=>d.key===$.value)||null);function w(d,C){C?_[d]=C:delete _[d]}async function g(d){$.value=d,await It();const C=v.value,S=_[d],G=b.value;if(!C||!S||!G)return;const H=C.getBoundingClientRect(),J=S.getBoundingClientRect(),U=Math.max(0,H.width-G.offsetWidth);h.value=Math.min(Math.max(0,J.left-H.left),U)}function P(){$.value=null}return(d,C)=>(ae(),pe("div",{ref_key:"rootEl",ref:v,class:Re(["lpb",[e.isDark?"lpb-dark":"lpb-light",{"lpb-stacked":e.stacked}]]),"data-covered":e.covered,"data-total":e.total,"data-pct":s.value,onMouseleave:P},[M("div",iw,[M("span",{class:"lpb-span",style:dt({width:r.value+"%"}),"data-span-pct":r.value.toFixed(2)},[(ae(!0),pe(ze,null,Rt(i.value,S=>(ae(),pe("button",{key:S.key,type:"button",class:Re(["lpb-seg",{active:$.value===S.key}]),style:dt({width:c(S)+"%",background:S.color}),"data-seg":S.key,"data-count":S.count||0,"aria-label":A(S),ref_for:!0,ref:G=>w(S.key,G),onMouseenter:G=>g(S.key),onFocus:G=>g(S.key),onBlur:P,onClick:gt(G=>a("select-segment",S.key),["stop"])},null,46,cw))),128))],12,lw),l.value?(ae(),pe("button",{key:0,type:"button",class:Re(["lpb-seg lpb-seg-rest",{active:$.value===l.value.key}]),style:dt({background:l.value.color}),"data-seg":l.value.key,"data-count":l.value.count||0,"aria-label":A(l.value),ref:S=>w(l.value.key,S),onMouseenter:C[0]||(C[0]=S=>g(l.value.key)),onFocus:C[1]||(C[1]=S=>g(l.value.key)),onBlur:P,onClick:C[2]||(C[2]=gt(S=>a("select-segment",l.value.key),["stop"]))},null,46,uw)):Le("",!0)]),e.showText?(ae(),pe("span",{key:0,class:"lpb-text",role:"progressbar","aria-valuenow":e.covered,"aria-valuemin":"0","aria-valuemax":e.total,"aria-valuetext":f.value,"aria-label":p.value,title:p.value},ye(e.compact?s.value+"%":f.value),9,pw)):Le("",!0),m.value?(ae(),pe("div",{key:1,ref_key:"popEl",ref:b,class:"lpb-pop",role:"tooltip",style:dt({left:h.value+"px"})},[M("span",{class:"lpb-pop-dot",style:dt({background:m.value.color})},null,4),Pt(ye(A(m.value)),1)],4)):Le("",!0)],42,rw))}},[["styles",[sw]],["__scopeId","data-v-acafdbf6"]]),dw="",gw={key:0,class:"lrg-title-row"},fw={class:"lrg-title-caret-slot"},hw={class:"lrg-title"},mw=["data-lrg-filter-key"],bw=["onClick"],$w={key:1,class:"lrg-caret-placeholder","aria-hidden":"true"},yw=["onClick"],_w={class:"lrg-name"},vw={class:"lrg-badge-inner"},kw=["data-lrg-filter-key"],ww=["onClick"],xw={class:"lrg-name"},Lw={class:"lrg-badge-inner"},Sw={key:1,class:"lrg-footer"},Aw={class:"lrg-footer-label"},pg=nn({__name:"LegendRows",props:{title:{type:String,default:""},items:{type:Array,required:!0},columns:{type:Array,default:()=>[]},activeFilter:{type:String,default:null},isDark:{type:Boolean,default:!1},hideColumnHeader:{type:Boolean,default:!1},showFooter:{type:Boolean,default:!1},totalCount:{type:Number,default:0},totalPopulation:{type:Number,default:0},fmtPop:{type:Function,default:e=>String(e||0)},fmtCount:{type:Function,default:e=>String(e||0)},disableCollapse:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["filter-click"],setup(e){const{t}=bt();wt(` -.legend-row-group{--lrg-caret-col:30px;display:flex;flex-direction:column;height:100%;min-height:0;} -.lrg-items{display:grid;grid-template-columns:var(--lrg-grid-cols, var(--lrg-caret-col) minmax(80px,1fr) auto auto var(--lrg-caret-col));grid-auto-rows:auto;align-content:start;column-gap:6px;row-gap:6px;padding:0 0 12px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none;} -.lrg-items::-webkit-scrollbar{display:none;width:0;height:0;} -.lrg-title-row{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;align-items:center;padding:12px 0 6px;position:sticky;top:0;z-index:5;background:#fff;} -.lrg-dark .lrg-title-row{background:#3b463d;} -.lrg-title-caret-slot{grid-column:1;align-self:center;display:flex;align-items:center;justify-content:center;line-height:1;} -.lrg-title{grid-column:2;align-self:center;font-weight:600;font-size:13px;line-height:1.2;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} -.lrg-header-col{align-self:center;text-align:center;white-space:nowrap;font-size:10px;line-height:1.3;color:#888;text-transform:uppercase;letter-spacing:0.3px;font-weight:700;} -.lrg-progress{grid-column:2 / -2;margin-top:6px;} -.lrg-row{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;align-items:center;} -.lrg-row-child{margin-left:0;} -.lrg-item{display:contents;cursor:pointer;} -.lrg-item-inner{display:grid;grid-template-columns:subgrid;grid-column:2 / -2;align-items:center;border-radius:6px;min-height:36px;padding:6px 0;transition:opacity 0.15s ease;} -.lrg-item-inner:hover{opacity:0.92;} -.lrg-item.selected .lrg-item-inner{outline:2px solid rgba(0,0,0,0.25);outline-offset:-2px;} -.lrg-caret{grid-column:1;justify-self:center;align-self:center;width:10px;height:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;background:none;border:none;padding:0;transition:transform 0.2s ease;outline:none;-webkit-tap-highlight-color:transparent;opacity:0.85;} -.lrg-caret:focus{outline:none;} -.lrg-caret.expanded{transform:rotate(90deg);} -.lrg-caret-placeholder{grid-column:1;display:block;} -.lrg-name{grid-column:1;padding:0 0 0 8px;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} -.lrg-badge{display:flex;align-items:center;justify-content:center;} -.lrg-badge-inner{display:inline-block;background:color-mix(in srgb, var(--lrg-item-color, #888), #000 28%);border-radius:8px;padding:2px 10px;font-size:11px;font-weight:600;font-family:'Courier New',monospace;white-space:nowrap;min-width:32px;text-align:center;} -.lrg-footer{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;align-items:center;padding:5px 0;border-top:1px solid rgba(0,0,0,0.07);font-size:11px;font-weight:600;color:#555;background:#fff;position:sticky;bottom:0;} -.lrg-footer-caret-slot{grid-column:1;} -.lrg-footer-label{grid-column:2;color:#777;} -.lrg-footer-value{text-align:center;font-family:'Courier New',monospace;} -.lrg-light .lrg-name{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,0.35);} -.lrg-light .lrg-badge-inner{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,0.4);} -.lrg-light .lrg-caret{color:#666;} -.lrg-dark .lrg-name{color:#F3F3F1;text-shadow:0 1px 2px rgba(0,0,0,0.4);} -.lrg-dark .lrg-badge-inner{color:#F3F3F1;text-shadow:0 1px 2px rgba(0,0,0,0.4);} -.lrg-dark .lrg-caret{color:rgba(243,243,241,0.75);} -.lrg-dark .lrg-title{color:#F3F3F1;} -.lrg-dark .lrg-header-col{color:rgba(243,243,241,0.65);} -.lrg-dark .lrg-footer{background:#2a332a;border-top-color:rgba(255,255,255,0.1);color:rgba(243,243,241,0.75);} -.lrg-dark .lrg-footer-label{color:rgba(243,243,241,0.65);} -`,"legend-row-group");const o=e,n=Ne("legendProgress",null),a=oe(()=>o.progress??ge(n)??null),s=oe(()=>a.value?t("legend.progress.title"):o.title),r=he(null);function i(f){let A=f.parentElement;for(;A;){const v=getComputedStyle(A).overflowY;if((v==="auto"||v==="scroll")&&A.scrollHeight>A.clientHeight+1){const b=f.getBoundingClientRect(),_=A.getBoundingClientRect();A.scrollTop+=b.top-_.top-8}A=A.parentElement}}let l=0;Fe(()=>o.activeFilter,async f=>{if(!f)return;const A=++l,v=r.value;if(!v)return;await It();const b=(_=0)=>{if(A!==l)return;const $=v.querySelector(`[data-lrg-filter-key="${CSS.escape(String(f))}"]`);$&&i($),_<6&&setTimeout(()=>b(_+1),70)};b(0)});const c=Mn({});function u(f){c[f]=!c[f]}const p=oe(()=>`var(--lrg-caret-col) minmax(80px, 1fr) ${o.columns.map(()=>"auto").join(" ")} var(--lrg-caret-col)`);return(f,A)=>(ae(),pe("div",{class:Re(["legend-row-group",e.isDark?"lrg-dark":"lrg-light"])},[M("div",{class:"lrg-items",style:dt({"--lrg-grid-cols":p.value}),ref_key:"itemsContainer",ref:r},[!e.hideColumnHeader&&(e.title||e.columns.length)?(ae(),pe("div",gw,[M("span",fw,[fn(f.$slots,"title-caret",{},void 0,!0)]),M("span",hw,ye(s.value),1),(ae(!0),pe(ze,null,Rt(e.columns,v=>(ae(),pe("span",{key:v.key,class:"lrg-header-col"},ye(v.label),1))),128)),a.value?(ae(),et(ug,{key:0,class:"lrg-progress",covered:a.value.covered,total:a.value.total,segments:a.value.segments,"is-dark":e.isDark,"fmt-count":e.fmtCount,onSelectSegment:A[0]||(A[0]=v=>f.$emit("filter-click",v))},null,8,["covered","total","segments","is-dark","fmt-count"])):Le("",!0)])):Le("",!0),(ae(!0),pe(ze,null,Rt(e.items,v=>(ae(),pe(ze,{key:v.key},[M("div",{class:"lrg-row","data-lrg-filter-key":v.filterKey},[v.children&&v.children.length&&!e.disableCollapse?(ae(),pe("button",{key:0,class:Re(["lrg-caret",{expanded:!c[v.key]}]),onClick:gt(b=>u(v.key),["stop"]),"aria-label":"Toggle children"},[...A[1]||(A[1]=[M("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[M("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,bw)):(ae(),pe("span",$w)),M("div",{class:Re(["lrg-item",{selected:e.activeFilter===v.filterKey}]),onClick:b=>f.$emit("filter-click",v.filterKey)},[M("div",{class:"lrg-item-inner",style:dt({backgroundColor:v.color,"--lrg-item-color":v.color})},[M("span",_w,ye(v.label),1),(ae(!0),pe(ze,null,Rt(e.columns,b=>(ae(),pe("span",{key:b.key,class:"lrg-badge"},[M("span",vw,ye(b.key==="population"?e.fmtPop(v.population):e.fmtCount(v.count)),1)]))),128))],4)],10,yw)],8,mw),v.children&&v.children.length&&!c[v.key]?(ae(!0),pe(ze,{key:0},Rt(v.children,b=>(ae(),pe("div",{key:b.key,class:"lrg-row lrg-row-child","data-lrg-filter-key":b.filterKey},[A[2]||(A[2]=M("span",{class:"lrg-caret-placeholder","aria-hidden":"true"},null,-1)),M("div",{class:Re(["lrg-item",{selected:e.activeFilter===b.filterKey}]),onClick:_=>f.$emit("filter-click",b.filterKey)},[M("div",{class:"lrg-item-inner",style:dt({backgroundColor:b.color,"--lrg-item-color":b.color})},[M("span",xw,ye(b.label),1),(ae(!0),pe(ze,null,Rt(e.columns,_=>(ae(),pe("span",{key:_.key,class:"lrg-badge"},[M("span",Lw,ye(_.key==="population"?e.fmtPop(b.population):e.fmtCount(b.count)),1)]))),128))],4)],10,ww)],8,kw))),128)):Le("",!0)],64))),128)),e.columns.length&&e.showFooter?(ae(),pe("div",Sw,[A[3]||(A[3]=M("span",{class:"lrg-footer-caret-slot","aria-hidden":"true"},null,-1)),M("span",Aw,ye(ge(t)("legend.footer.total")),1),(ae(!0),pe(ze,null,Rt(e.columns,v=>(ae(),pe("span",{key:v.key,class:"lrg-footer-value"},ye(v.key==="population"?e.fmtPop(e.totalPopulation):e.fmtCount(e.totalCount)),1))),128))])):Le("",!0)],4)],2))}},[["styles",[dw]],["__scopeId","data-v-b2cd86d3"]]),dg=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"];function gg(e){const t=(e||"U")[0].toUpperCase(),o=t.charCodeAt(0)%dg.length,n=dg[o];return{letter:t,color:"#ffffff",backgroundColor:n}}function Pw(e,t={}){const{size:o=32,borderRadius:n=4}=t,a=gg(e);return{width:`${o}px`,height:`${o}px`,borderRadius:`${n}px`,backgroundColor:a.backgroundColor,color:a.color,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"600",fontSize:`${Math.floor(o*.5)}px`,flexShrink:"0"}}const Cw=".people-group-detail[data-v-06241c48]{display:flex;flex-direction:column;height:100%;overflow-y:auto}.detail-header[data-v-06241c48]{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e0e0e0;background:#fff;position:sticky;top:0;z-index:10}.header-left[data-v-06241c48]{display:flex;gap:12px;align-items:center;flex:1;min-width:0}.header-text[data-v-06241c48]{flex:1;min-width:0}.people-group-name[data-v-06241c48]{margin:0;font-size:18px;font-weight:700;color:#333;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:text;-webkit-user-select:text;cursor:text}.people-group-subtitle[data-v-06241c48]{margin:4px 0 0;font-size:13px;color:#666;line-height:1.2}.close-button[data-v-06241c48]{background:none;border:none;padding:4px;cursor:pointer;color:#666;transition:color .2s ease;flex-shrink:0}.close-button[data-v-06241c48]:hover{color:#333}.detail-content[data-v-06241c48]{padding:6px 12px 12px;flex:1;overflow-y:auto}.quick-stats[data-v-06241c48]{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.stat-item[data-v-06241c48]{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}.stat-label[data-v-06241c48]{color:#666;font-weight:500}.stat-value[data-v-06241c48]{color:#333;font-weight:600;text-align:right}.action-buttons[data-v-06241c48]{display:flex;gap:8px;padding-top:4px;margin-bottom:10px;overflow-x:auto;padding-bottom:2px}.action-btn[data-v-06241c48]{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.action-btn.primary[data-v-06241c48]{background:#92b195;color:#fff}.action-btn.primary[data-v-06241c48]:hover{background:#73a17f;box-shadow:0 2px 4px #92b1954d}.action-btn.secondary[data-v-06241c48]{background:#ecf0f1;color:#333}.action-btn.secondary[data-v-06241c48]:hover{background:#d5dbdb}.btn-icon[data-v-06241c48]{flex-shrink:0}.image-container[data-v-06241c48]{margin-bottom:16px;border-radius:8px;overflow:hidden;background:#f5f5f5}.image-container.position-above[data-v-06241c48]{width:120px;height:150px;margin:0 auto 16px}.image-container.position-inside[data-v-06241c48]{width:200px;height:250px;margin:0 auto 16px}.people-group-image[data-v-06241c48]{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease}.people-group-image.loaded[data-v-06241c48]{opacity:1}.image-placeholder-svg[data-v-06241c48]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#f0f0f0;transition:opacity .3s ease}.image-placeholder-svg.hidden[data-v-06241c48]{opacity:0;pointer-events:none}.image-container[data-v-06241c48]{position:relative}.description-section[data-v-06241c48]{margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0}.description-text[data-v-06241c48]{margin:0;font-size:14px;line-height:1.6;color:#555}.description-text.empty[data-v-06241c48]{color:#999;font-style:italic}.action-buttons[data-v-06241c48]::-webkit-scrollbar{height:4px}.action-buttons[data-v-06241c48]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.action-buttons[data-v-06241c48]::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.action-buttons[data-v-06241c48]::-webkit-scrollbar-thumb:hover{background:#999}@media (max-width: 480px){.people-group-name[data-v-06241c48]{font-size:16px}.stat-item[data-v-06241c48]{font-size:13px}.action-btn[data-v-06241c48]{padding:8px 14px;font-size:13px}}",Ew={key:0,class:"detail-header"},Tw={class:"header-left"},Nw={class:"header-text"},Rw={class:"people-group-name"},Mw={class:"people-group-subtitle"},Fw=["aria-label"],Iw={class:"detail-content"},Ow={key:0,class:"pg-name-lead"},Dw={class:"action-buttons"},Bw={class:"quick-stats"},Gw={class:"stat-item"},jw={class:"stat-label"},Uw={class:"stat-value"},zw={class:"stat-item"},Hw={class:"stat-label"},Vw={class:"stat-value"},Kw={class:"stat-item"},qw={class:"stat-label"},Ww={class:"stat-value"},Yw={class:"stat-item"},Xw={class:"stat-label"},Zw={class:"stat-value"},Jw={class:"stat-item stat-committed"},Qw={class:"stat-label"},ex={class:"stat-value"},tx={key:1,class:"image-container position-inside"},ox=["src","alt"],nx={key:2,class:"description-section"},ax={key:0,class:"description-text"},sx={key:1,class:"description-text empty"},fg="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",bl=nn({__name:"PeopleGroupDetail",props:{peopleGroup:{type:Object,required:!0},hideHeader:{type:Boolean,default:!1},dark:{type:Boolean,default:!1},action:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)}},setup(e){const{t,locale:o}=bt();wt(` -.people-group-detail{display:flex;flex-direction:column;height:100%;overflow-y:auto;} -.people-group-detail.dark-mode{background:#1a1a2e;color:#eee;} -.detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;border-bottom:1px solid #e0e0e0;background:white;position:sticky;top:0;z-index:10;} -.dark-mode .detail-header{background:#16213e;border-bottom-color:#2d2d4e;} -.header-left{display:flex;gap:12px;align-items:center;flex:1;min-width:0;} -.header-text{flex:1;min-width:0;} -.people-group-name{margin:0;font-size:18px;font-weight:700;color:#333;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:text;-webkit-user-select:text;cursor:text;} -.dark-mode .people-group-name{color:#fff;} -.people-group-subtitle{margin:4px 0 0 0;font-size:13px;color:#666;line-height:1.2;} -.dark-mode .people-group-subtitle{color:#aaa;} -.close-button{background:none;border:none;padding:4px;cursor:pointer;color:#666;transition:color 0.2s ease;flex-shrink:0;} -.dark-mode .close-button{color:#aaa;} -.close-button:hover{color:#333;} -.dark-mode .close-button:hover{color:#fff;} -.detail-content{padding:6px 12px 12px;flex:1;overflow-y:auto;} -.dark-mode .detail-content{background:#1a1a2e;} -.quick-stats{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;} -.stat-item{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;} -.stat-label{color:#666;font-weight:500;} -.dark-mode .stat-label{color:#9ca3af;} -.stat-value{color:#333;font-weight:600;text-align:right;} -.dark-mode .stat-value{color:#e5e7eb;} -.stat-committed .stat-value{color:#73A17F;} -.dark-mode .stat-committed .stat-value{color:#92b195;} -.pg-name-lead{margin:0 0 8px 0;font-size:16px;font-weight:700;color:#333;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:text;-webkit-user-select:text;cursor:text;} -.dark-mode .pg-name-lead{color:#F3F3F1;} -.action-buttons{display:flex;gap:8px;padding-top:4px;margin-bottom:10px;overflow-x:auto;padding-bottom:2px;} -.action-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;flex-shrink:0;} -.action-btn.primary{background:#92b195;color:white;} -.action-btn.primary:hover{background:#73A17F;box-shadow:0 2px 4px rgba(146,177,149,0.3);} -.action-btn.secondary{background:#ecf0f1;color:#333;} -.dark-mode .action-btn.secondary{background:#2d2d4e;color:#e5e7eb;} -.action-btn.secondary:hover{background:#d5dbdb;} -.dark-mode .action-btn.secondary:hover{background:#3d3d5e;} -.btn-icon{flex-shrink:0;} -.image-container{margin-bottom:16px;border-radius:8px;overflow:hidden;background:#f5f5f5;position:relative;} -.dark-mode .image-container{background:#2d2d4e;} -.image-container.position-above{width:120px;height:150px;margin:0 auto 16px auto;} -.image-container.position-inside{width:200px;height:250px;margin:0 auto 16px auto;} -.people-group-image{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 0.3s ease;} -.people-group-image.loaded{opacity:1;} -.image-placeholder-svg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#f0f0f0;transition:opacity 0.3s ease;} -.dark-mode .image-placeholder-svg{background:#2d2d4e;} -.image-placeholder-svg.hidden{opacity:0;pointer-events:none;} -.description-section{margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0;} -.dark-mode .description-section{border-top-color:#2d2d4e;} -.description-text{margin:0;font-size:14px;line-height:1.6;color:#555;} -.dark-mode .description-text{color:#d1d5db;} -.description-text.empty{color:#999;font-style:italic;} -.dark-mode .description-text.empty{color:#6b7280;} -`,"legend-people-group-detail");const n=e,a=Ne("uiStore"),s=Ne("profileConfig",null),r=oe(()=>a.legendState),i=oe(()=>a.isMobile),l=oe(()=>!i.value||r.value==="fullyOpen"),c=oe(()=>gg(n.peopleGroup.properties.name)),u=oe(()=>c.value.letter),p=oe(()=>Pw(n.peopleGroup.properties.name,{size:32,borderRadius:4})),f=oe(()=>n.peopleGroup.properties),A=he(null),v=he(!1),b=oe(()=>f.value.slug||"");async function _(Q){if(!Q)return;const ie=ul();if(ie)try{const j=await fetch(`${ie}/api/people-groups/detail/${encodeURIComponent(Q)}?lang=${encodeURIComponent(o.value)}`);if(!j.ok)throw new Error(`HTTP ${j.status}`);A.value=await j.json()}catch{A.value=null}}Fe(b,Q=>{v.value=!1,A.value=null,_(Q)},{immediate:!0});const $=oe(()=>{var Q;return f.value.countryName||f.value.countryIsoLabel||f.value.country||f.value.countryIso||((Q=f.value._raw)==null?void 0:Q.Country)||""}),h=oe(()=>{var j;const Q=f.value.status||((j=f.value._raw)==null?void 0:j.Status),ie=$.value||"Unknown";return Q?`${ie} • ${Q}`:ie}),m=oe(()=>{var ie;const Q=f.value.language||((ie=f.value._raw)==null?void 0:ie.Language);if(!Q)return"Unknown";if(typeof Q=="object"&&Q.label)return Q.label;if(typeof Q=="string"&&Q.startsWith("{"))try{const j=JSON.parse(Q);if(j!=null&&j.label)return j.label}catch{}return Q}),w=oe(()=>{var Q;return f.value.population||((Q=f.value._raw)==null?void 0:Q.Population)||0}),g=oe(()=>{var ie,j;const Q=[(ie=A.value)==null?void 0:ie.people_praying,f.value.peoplePraying,(j=f.value._raw)==null?void 0:j.people_praying];for(const be of Q)if(be!=null&&be!=="")return Number(be);return null}),P=oe(()=>g.value===null?"—":g.value.toLocaleString()),d=oe(()=>{var Q;return f.value.religionName||f.value.religionLabel||f.value.religion||((Q=f.value._raw)==null?void 0:Q.Religion)||""}),C=oe(()=>{var Q,ie,j;return((Q=A.value)==null?void 0:Q.imb_people_description)||((ie=A.value)==null?void 0:ie.description)||f.value.description||((j=f.value._raw)==null?void 0:j.Description)||""}),S=oe(()=>{var Q,ie,j;return((Q=A.value)==null?void 0:Q.image_url)||((ie=A.value)==null?void 0:ie.imageUrl)||f.value.imageUrl||((j=f.value._raw)==null?void 0:j.ImageURL)||fg}),G=oe(()=>{const Q=parseInt(w.value);return Q>=1e6?`${(Q/1e6).toFixed(1)}M`:Q>=1e3?`${(Q/1e3).toFixed(1)}K`:Q.toLocaleString()});function H(){a.selectPeopleGroup(null)}function J(){var be;let Q="";try{Q=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const ie=(be=s==null?void 0:s.value)==null?void 0:be.utmSource,j=typeof window<"u"&&window.DOXA_UTM_SOURCE||"";return encodeURIComponent(String(Q||ie||j||"agwm"))}function U(Q){return`https://pray.doxa.life/${encodeURIComponent(Q)}?source=doxalife&utm_source=${J()}`}function D(Q){return`${L()}/adopt/${encodeURIComponent(Q)}/?source=doxalife&utm_source=${J()}`}function L(){const Q=typeof window<"u"&&window.DOXA_SITE_URL||"";return String(Q||"https://doxa.life").replace(/\/+$/,"")}function y(Q){return`${L()}/research/${encodeURIComponent(Q)}/?utm_source=${J()}`}function R(){const Q=b.value;if(!Q)return;n.action!=="adopt"&&Tk(Q);const ie=n.action==="adopt"?D(Q):U(Q);window.open(ie,"_blank","noopener")}function z(){const Q=b.value;Q&&window.open(y(Q),"_blank","noopener")}function K(Q){Q.target.dataset.usedFallback||(Q.target.dataset.usedFallback="true",Q.target.src=fg)}return(Q,ie)=>(ae(),pe("div",{class:Re(["people-group-detail",{"dark-mode":e.dark}])},[e.hideHeader?Le("",!0):(ae(),pe("div",Ew,[M("div",Tw,[M("div",{class:"avatar",style:dt(p.value)},ye(u.value),5),M("div",Nw,[M("h3",Rw,ye(e.peopleGroup.properties.name),1),M("p",Mw,ye(h.value),1)])]),M("button",{class:"close-button",onClick:H,"aria-label":ge(t)("aria.closeDetailView")},[...ie[1]||(ie[1]=[M("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},[M("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,Fw)])),M("div",Iw,[e.hideHeader?(ae(),pe("h3",Ow,ye(e.peopleGroup.properties.name||ge(t)("legend.header.peopleGroupFallback")),1)):Le("",!0),M("div",Dw,[e.action==="pray"||e.action==="adopt"?(ae(),pe("button",{key:0,class:"action-btn primary",onClick:R},[ie[2]||(ie[2]=M("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[M("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),M("span",null,ye(e.action==="adopt"?ge(t)("buttons.adoptThem"):ge(t)("buttons.prayForThem")),1)])):Le("",!0),M("button",{class:"action-btn secondary",onClick:z},[ie[3]||(ie[3]=M("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[M("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),M("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),M("span",null,ye(ge(t)("buttons.moreInfo")),1)])]),M("div",Bw,[M("div",Gw,[M("span",jw,ye(ge(t)("detail.labels.country")),1),M("span",Uw,ye($.value||"—"),1)]),M("div",zw,[M("span",Hw,ye(ge(t)("detail.labels.population")),1),M("span",Vw,ye(G.value||"—"),1)]),M("div",Kw,[M("span",qw,ye(ge(t)("detail.labels.language")),1),M("span",Ww,ye(m.value||"—"),1)]),M("div",Yw,[M("span",Xw,ye(ge(t)("detail.labels.religion")),1),M("span",Zw,ye(d.value||"—"),1)]),M("div",Jw,[M("span",Qw,ye(ge(t)("detail.labels.peopleCommitted")),1),M("span",ex,ye(P.value),1)])]),l.value?(ae(),pe("div",tx,[M("div",{class:Re(["image-placeholder-svg",{hidden:v.value}])},[...ie[4]||(ie[4]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 120",width:"80",height:"96","aria-hidden":"true"},[M("circle",{cx:"50",cy:"36",r:"22",fill:"#ccc"}),M("ellipse",{cx:"50",cy:"95",rx:"36",ry:"28",fill:"#ccc"})],-1)])],2),S.value?(ae(),pe("img",{key:0,src:S.value,alt:`${e.peopleGroup.properties.name} people group`,class:Re(["people-group-image",{loaded:v.value}]),onLoad:ie[0]||(ie[0]=j=>v.value=!0),onError:K},null,42,ox)):Le("",!0)])):Le("",!0),l.value?(ae(),pe("div",nx,[C.value?(ae(),pe("p",ax,ye(C.value),1)):(ae(),pe("p",sx,ye(ge(t)("detail.messages.noDescription")),1))])):Le("",!0)])],2))}},[["styles",[Cw]],["__scopeId","data-v-06241c48"]]),rx=Object.freeze(Object.defineProperty({__proto__:null,default:bl},Symbol.toStringTag,{value:"Module"})),cr={excludeReligionFamilies:["C"]},ix="",lx={class:"legend-reopen-label"},cx=["aria-label"],ux=["aria-label"],px=["aria-label"],dx=nn({__name:"LegendDesktop",props:{legendType:{type:String,required:!0},initiallyCollapsed:{type:Boolean,default:!1},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const t=Hs(()=>oo(()=>Promise.resolve().then(()=>Sg),void 0)),{t:o}=bt();wt(` -.legend-container{position:absolute;top:60px;left:8px;width:var(--map-legend-width,380px);max-height:calc(100vh - 80px);background:#fff;border-radius:var(--map-radius,16px);box-shadow:0 2px 8px rgba(0,0,0,0.12),0 1px 3px rgba(0,0,0,0.08);z-index:1000;overflow:hidden;display:flex;flex-direction:column;transition:width 200ms cubic-bezier(0.2,0,0,1),max-height 200ms cubic-bezier(0.2,0,0,1),min-width 200ms cubic-bezier(0.2,0,0,1),border-radius 200ms linear,box-shadow 200ms linear;will-change:width,max-height;} -.legend-container .lrg-title{font-size:15px;} -.legend-container .lrg-header-col{font-size:11px;} -.legend-container .lrg-name{font-size:15px;} -.legend-container .lrg-badge-inner{font-size:12px;} -.legend-reopen{position:absolute;left:8px;top:60px;z-index:1000;display:inline-flex;align-items:center;gap:8px;background:#0d1117;border:1px solid #30363d;border-radius:999px;color:#c9d1d9;cursor:pointer;height:36px;padding:0 14px 0 12px;box-shadow:0 4px 14px rgba(0,0,0,0.25);font:600 11px ui-monospace,monospace;text-transform:uppercase;letter-spacing:0.06em;max-width:320px;transition:color 0.12s,background 0.12s,border-color 0.12s,transform 0.12s,box-shadow 0.12s;} -.legend-reopen:hover{color:#fff;background:#1c2333;border-color:#73A17F;box-shadow:0 6px 20px rgba(59,70,61,0.25);transform:translateY(-1px);} -.legend-reopen-icon{color:#73A17F;flex-shrink:0;} -.legend-reopen-label{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none;letter-spacing:0;font:600 12px system-ui,sans-serif;} -.legend-reopen-caret{color:#6e7681;flex-shrink:0;} -.legend-reopen:hover .legend-reopen-caret{color:#c9d1d9;} -.legend-reopen-light{background:#ffffff;border-color:#d0d7de;color:#1f2328;box-shadow:0 4px 16px rgba(31,35,40,0.18);} -.legend-reopen-light:hover{background:#f6f8fa;border-color:#3b463d;color:#3b463d;box-shadow:0 6px 20px rgba(59,70,61,0.2);} -.legend-reopen-light .legend-reopen-icon{color:#3b463d;} -.legend-reopen-light .legend-reopen-caret{color:#57606a;} -.legend-collapse-caret{background:rgba(110,118,129,0.15);border:1px solid #30363d;border-radius:5px;color:#8b949e;cursor:pointer;width:22px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:color 0.1s,background 0.1s,transform 0.18s;outline:none;-webkit-tap-highlight-color:transparent;padding:0;} -.legend-collapse-caret:focus{outline:none;} -.legend-collapse-caret:hover{color:#c9d1d9;background:rgba(59,70,61,0.18);border-color:#73A17F;} -.legend-collapse-caret svg{transition:transform 0.18s;transform:rotate(180deg);} -.legend-collapse-caret.rotated svg{transform:rotate(0deg);} -.legend-container:not(.legend-dark) .legend-collapse-caret{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;} -.legend-container:not(.legend-dark) .legend-collapse-caret:hover{background:rgba(59,70,61,0.12);border-color:#3b463d;color:#3b463d;} -.detail-close-btn{position:absolute;top:10px;right:10px;background:none;border:none;padding:4px;cursor:pointer;color:#888;display:flex;align-items:center;justify-content:center;z-index:20;transition:color 0.2s ease;} -.detail-close-btn:hover{color:#333;} -.detail-collapse-btn{position:absolute;top:10px;left:10px;z-index:20;background:transparent;border:none;color:transparent;cursor:pointer;width:28px;height:28px;padding:0;outline:none;-webkit-tap-highlight-color:transparent;} -.detail-collapse-btn:focus{outline:none;} -.legend-container .people-group-detail .pg-name-lead{padding-left:28px;padding-right:32px;} -.legend-content{padding:0;overflow-y:auto;overflow-x:hidden;flex:1;max-height:650px;display:flex;flex-direction:column;min-height:0;} -.legend-content.no-padding{padding:0;} -.legend-section-label{padding:8px 12px 4px;font-size:11px;font-weight:700;color:#9ca3af;letter-spacing:0.5px;text-transform:uppercase;} -.legend-dark .legend-section-label{color:rgba(243,243,241,0.55);} -.legend-container .lrg-row, -.legend-container .lft-row{min-height:24px;} -.legend-container .lrg-item-inner, -.legend-container .lft-item-inner{min-height:24px;padding:2px 0;} -.legend-items-container{display:flex;flex-direction:column;gap:4px;} -.legend-item{padding:6px 10px;border-radius:4px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--map-font-md,13px);transition:all 0.2s;} -.legend-item-clickable{cursor:pointer;} -.legend-item-clickable:hover{transform:translateX(4px);box-shadow:0 2px 4px rgba(0,0,0,0.1);} -.legend-item-selected{outline:2px solid #333;outline-offset:2px;} -.legend-item-text{flex:1;font-weight:500;color:#333;} -.legend-item-count{font-size:var(--map-font-sm,11px);color:#555;background:rgba(0,0,0,0.08);padding:2px 7px;border-radius:10px;min-width:40px;text-align:right;margin-right:4px;} -.legend-item-population{font-size:var(--map-font-sm,11px);color:#555;background:rgba(0,0,0,0.08);padding:2px 7px;border-radius:10px;min-width:52px;text-align:right;margin-right:4px;} -.legend-export-btn{background:none;border:none;cursor:pointer;font-size:15px;padding:0 4px;} -.legend-tree-item{display:flex;flex-direction:column;gap:4px;} -.legend-tree-parent{display:flex;align-items:center;gap:6px;} -.legend-tree-caret{width:16px;height:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform 0.2s;font-size:12px;color:#666;} -.legend-tree-caret.expanded{transform:rotate(90deg);} -.legend-tree-child{margin-left:20px;display:flex;gap:6px;} -.legend-tree-caret-placeholder{width:16px;} -.legend-item-child{font-size:12px;} -.legend-stats-header{display:flex;align-items:center;padding:4px 0;background:#fff;border-bottom:1px solid rgba(0,0,0,0.07);font-weight:600;font-size:10px;color:#777;text-transform:uppercase;letter-spacing:0.4px;position:sticky;top:0;z-index:10;} -.legend-stats-label{flex:1;min-width:0;padding:0 10px;} -.legend-stats-value{width:58px;text-align:right;flex-shrink:0;font-family:'Courier New',monospace;padding-right:10px;white-space:pre;} -.legend-footer{display:flex;align-items:center;padding:5px 0;border-top:1px solid rgba(0,0,0,0.07);font-size:11px;font-weight:600;color:#555;background:#fff;} -.legend-footer-label{flex:1;padding-left:10px;color:#777;} -.legend-footer-value{width:56px;text-align:right;padding-right:10px;font-family:'Courier New',monospace;} -.legend-content::-webkit-scrollbar{width:4px;} -.legend-content::-webkit-scrollbar-track{background:transparent;} -.legend-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.18);border-radius:4px;} -.legend-content::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.3);} -.legend-dark{background:#3b463d!important;border:1px solid rgba(255,255,255,0.10)!important;box-shadow:0 4px 16px rgba(0,0,0,0.5)!important;} -.legend-dark .legend-content{background:#3b463d;} -.legend-dark .legend-collapse-caret{background:rgba(110,118,129,0.15);border-color:#30363d;color:#8b949e;} -.legend-dark .legend-collapse-caret:hover{color:#c9d1d9;background:rgba(59,70,61,0.18);border-color:#73A17F;} -.legend-dark .detail-close-btn{color:rgba(243,243,241,0.75)!important;} -.legend-dark .detail-close-btn:hover{color:#F3F3F1!important;} -.legend-dark .legend-stats-header{background:#2a332a!important;color:rgba(243,243,241,0.65)!important;border-bottom-color:rgba(255,255,255,0.1)!important;} -.legend-dark .legend-footer{background:#2a332a!important;border-top-color:rgba(255,255,255,0.1)!important;color:rgba(243,243,241,0.75)!important;} -.legend-dark .legend-footer-label{color:rgba(243,243,241,0.65)!important;} -.legend-dark .legend-item-text{color:#F3F3F1!important;} -.legend-dark .legend-item-count{background:rgba(255,255,255,0.12)!important;color:rgba(243,243,241,0.9)!important;} -.legend-dark .legend-item-population{background:rgba(255,255,255,0.12)!important;color:rgba(243,243,241,0.9)!important;} -.legend-dark .legend-item-selected{outline-color:rgba(255,255,255,0.5)!important;} -.legend-dark .legend-tree-caret{color:rgba(243,243,241,0.7)!important;} -.legend-dark .legend-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.18);} -`,"legend-component");const n=e;Ne("mapStore"),Ne("dataStore");const a=Ne("uiStore"),s=ys(n,"legendType"),{items:r,columns:i,title:l,activeFilter:c,setFilter:u,totalCount:p,totalPopulation:f,progress:A,fmtPop:v,fmtCount:b}=Va(s,cr);Ne("normalizedPeopleGroups",null);const _=Ne("mapId",null),$=oe(()=>a.isMobile),h=oe(()=>a.legendMode),m=oe(()=>a.selectedPeopleGroup),w=he(n.initiallyCollapsed);let g=null;const P=oe(()=>{var S;return h.value==="detail"&&m.value?((S=m.value.properties)==null?void 0:S.name)||o("legend.header.peopleGroupFallback"):w.value?o("legend.header.collapsed"):l.value});function d(){w.value=!w.value}Fe(h,(S,G)=>{S==="detail"&&G!=="detail"&&w.value&&(w.value=!1)});function C(S){u(S)}return $o(()=>{window.innerWidth<768&&(w.value=!0),g=S=>{var G;_&&((G=S.detail)!=null&&G.mapId)&&S.detail.mapId!==_||(w.value=!1)},window.addEventListener("dxm:openDesktopLegend",g)}),Xt(()=>{g&&window.removeEventListener("dxm:openDesktopLegend",g)}),(S,G)=>$.value?(ae(),et(ge(t),{key:0,legendType:e.legendType,popupAction:e.popupAction,isDark:e.isDark,disableCollapse:e.disableCollapse},null,8,["legendType","popupAction","isDark","disableCollapse"])):w.value?(ae(),pe("button",{key:1,class:Re(["legend-reopen",{"legend-reopen-light":!e.isDark}]),title:"Expand legend",onClick:G[0]||(G[0]=H=>w.value=!1)},[G[2]||(G[2]=M("svg",{class:"legend-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[M("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),M("span",lx,ye(ge(l)),1),G[3]||(G[3]=M("svg",{class:"legend-reopen-caret",width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[M("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],2)):(ae(),pe("div",{key:2,class:Re(["legend-container",{"legend-dark":e.isDark}])},[h.value==="detail"?(ae(),pe("button",{key:0,class:"detail-collapse-btn",onClick:gt(d,["stop"]),"aria-label":ge(o)("aria.toggleLegend")},null,8,cx)):Le("",!0),h.value==="detail"?(ae(),pe("button",{key:1,class:"detail-close-btn",onClick:G[1]||(G[1]=gt(H=>ge(a).selectPeopleGroup(null),["stop"])),"aria-label":ge(o)("aria.backToLegend")},[...G[4]||(G[4]=[M("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[M("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,ux)):Le("",!0),M("div",{class:Re(["legend-content",{"no-padding":ge(i).length>0}])},[h.value==="detail"&&m.value?(ae(),et(bl,{key:0,peopleGroup:m.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):e.legendType==="language-family"?(ae(),pe(ze,{key:1},[],64)):(ae(),et(pg,{key:2,title:P.value,items:ge(r),columns:ge(i),activeFilter:ge(c),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:ge(p),totalPopulation:ge(f),fmtPop:ge(v),fmtCount:ge(b),progress:ge(A),onFilterClick:C},{"title-caret":jt(()=>[M("button",{class:"legend-collapse-caret",onClick:gt(d,["stop"]),"aria-label":ge(o)("aria.toggleLegend")},[...G[5]||(G[5]=[M("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[M("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",style:{transform:"rotate(180deg)","transform-origin":"center"}})],-1)])],8,px)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount","progress"]))],2)],2))}},[["styles",[ix]],["__scopeId","data-v-9250730f"]]);function gx(e){const t=(e==null?void 0:e.parentElement)||e;if(!t||!t.ownerDocument)return{x:0,y:0};const o=t.ownerDocument.createElement("div");o.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",t.appendChild(o);const n=o.getBoundingClientRect();return o.remove(),{x:n.left,y:n.top}}function hg(e){const t=he(null),o=ba({position:"fixed",inset:"0"}),n=()=>{var u,p;const s=t.value;if(!s)return;const r=gx(s),i=s.ownerDocument||(typeof document<"u"?document:null),l=((u=i==null?void 0:i.documentElement)==null?void 0:u.clientWidth)||0,c=((p=i==null?void 0:i.documentElement)==null?void 0:p.clientHeight)||0;o.value={position:"fixed",top:`${-r.y}px`,left:`${-r.x}px`,right:"auto",bottom:"auto",width:`${l}px`,height:`${c}px`,boxSizing:"border-box"}};Fe(e,s=>{s&&requestAnimationFrame(()=>{n(),requestAnimationFrame(n)})},{flush:"post"});const a=()=>{e.value&&n()};return typeof window<"u"&&window.addEventListener("resize",a),Xt(()=>{typeof window<"u"&&window.removeEventListener("resize",a)}),{scrimRef:t,scrimStyle:o}}const fx="",hx={class:"lt-btn-group"},mx=["title"],bx={class:"lt-btn-text"},$x=["title"],yx={class:"lt-btn-group"},_x=["title"],vx={key:0,width:"12",height:"12",viewBox:"0 0 12 12"},kx=["title"];function mg(e){return e==="doxa-regions"||e==="language-family"||e==="language-families"}const wx=nn({__name:"LegendTools",props:{legendType:{type:String,required:!0},isDark:{type:Boolean,default:!1}},emits:["legend-row-fly"],setup(e,{emit:t}){wt(` -.lt-root{position:absolute;top:14px;left:calc(10px + var(--map-legend-width,340px) / 2);transform:translateX(-50%);z-index:1050;display:flex;gap:8px;align-items:center;flex-wrap:nowrap;background:transparent;pointer-events:auto;} -@media(max-width:767px){ - .lt-root{display:none;} -} -.lt-btn-group{position:relative;display:inline-flex;align-items:stretch;background:#fff;border:1px solid #e5e7eb;border-radius:9999px;overflow:visible;box-shadow:0 2px 8px rgba(0,0,0,0.12),0 1px 3px rgba(0,0,0,0.08);} -.lt-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;background:transparent;border:none;cursor:pointer;font-size:12px;font-weight:600;color:#374151;border-radius:9999px 0 0 9999px;transition:background 0.15s;} -.lt-btn:last-child{border-radius:0 9999px 9999px 0;} -.lt-btn:hover{background:rgba(59,130,246,0.08);} -.lt-btn.active{background:var(--dx-accent-weak, rgba(146,177,149,0.18));color:var(--dx-text, #3b463d);} -.lt-btn-icon{font-size:13px;line-height:1;} -.lt-btn-text{font-size:12px;line-height:1;} -.lt-side-btn{display:inline-flex;align-items:center;justify-content:center;padding:0 10px;background:transparent;border:none;border-left:1px solid #e5e7eb;cursor:pointer;color:#6b7280;border-radius:0 9999px 9999px 0;transition:background 0.15s;} -.lt-side-btn:hover{background:rgba(59,130,246,0.08);color:#374151;} -.lt-side-icon{font-size:13px;line-height:1;} -.lt-checkbox{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border:1.5px solid #9ca3af;border-radius:3px;background:#fff;transition:border-color 0.15s;} -.lt-checkbox.checked{border-color:#3498db;background:#fff;} -.lt-popup{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.10);z-index:1100;min-width:160px;padding:4px 0;} -.lt-popup-row{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;color:#374151;cursor:pointer;transition:background 0.12s;} -.lt-popup-row:hover{background:rgba(59,130,246,0.08);} -.lt-popup-row.active{background:var(--dx-accent-weak, rgba(146,177,149,0.18));color:var(--dx-text, #3b463d);font-weight:600;} -.lt-popup-icon{font-size:13px;} -.lt-overlay{position:fixed;inset:0;z-index:1099;background:transparent;} -.lt-dark .lt-btn-group{background:#2a332a;border-color:rgba(255,255,255,0.12);box-shadow:0 2px 8px rgba(0,0,0,0.4);} -.lt-dark .lt-btn{color:rgba(243,243,241,0.85);} -.lt-dark .lt-btn:hover{background:rgba(255,255,255,0.06);} -.lt-dark .lt-btn.active{background:rgba(124,140,248,0.18);color:#7c8cf8;} -.lt-dark .lt-side-btn{border-left-color:rgba(255,255,255,0.12);color:rgba(243,243,241,0.7);} -.lt-dark .lt-side-btn:hover{background:rgba(255,255,255,0.06);color:#F3F3F1;} -.lt-dark .lt-popup{background:#2a332a;border-color:rgba(255,255,255,0.12);} -.lt-dark .lt-popup-row{color:rgba(243,243,241,0.85);} -.lt-dark .lt-popup-row:hover{background:rgba(255,255,255,0.06);} -.lt-dark .lt-popup-row.active{background:rgba(124,140,248,0.18);color:#7c8cf8;} -`,"legend-tools");const o=e,n=t,{t:a}=bt(),s=Ne("mapStore"),r=ys(o,"legendType"),{items:i,setFilter:l}=Va(r,cr),c=he(!1),u=he(!1),{scrimRef:p,scrimStyle:f}=hg(u),A=he(0),v=he(null),b=oe(()=>s.isAutoFlying),_=oe(()=>s.isGuidedTourActive),$=oe(()=>s.flySpeed),h=oe(()=>s.showClusters),m=oe(()=>mg(o.legendType)),w=oe(()=>({slow:a("buttons.speedOption.slow"),normal:a("buttons.speedOption.normal"),fast:a("buttons.speedOption.fast")})[$.value]||a("buttons.speedOption.normal")),g=oe(()=>({slow:8e3,normal:5e3,fast:3e3})[$.value]||5e3);function P(){c.value=!c.value,c.value&&(u.value=!1)}function d(L){s.setFlySpeed(L),setTimeout(()=>{c.value=!1},300)}function C(){s.toggleClusters()}function S(L){s.setClusterMode(L),setTimeout(()=>{u.value=!1},500)}function G(){b.value?J():(_.value,H())}function H(){i.value.length!==0&&(A.value=0,s.startAutoFly([]),D(),U())}function J(){v.value&&(clearTimeout(v.value),v.value=null),s.stopAutoFly()}function U(){v.value=setTimeout(()=>{b.value&&(A.value=(A.value+1)%i.value.length,D(),U())},g.value)}function D(){const L=i.value[A.value];L&&(l(L.filterKey),n("legend-row-fly",{index:A.value,filterKey:L.filterKey}))}return Xt(()=>{v.value&&clearTimeout(v.value)}),(L,y)=>m.value?(ae(),pe("div",{key:0,class:Re(["lt-root",{"lt-dark":e.isDark}])},[M("div",hx,[M("button",{class:Re(["lt-btn",{active:b.value}]),onClick:gt(G,["stop"]),title:b.value?ge(a)("buttons.stopFlight"):ge(a)("buttons.startAutoFly")},[y[8]||(y[8]=M("span",{class:"lt-btn-icon"},"✈️",-1)),M("span",bx,ye(b.value?"Stop":"Fly"),1)],10,mx),M("button",{class:"lt-side-btn",onClick:gt(P,["stop"]),title:ge(a)("buttons.speedLabel")+" "+w.value},[...y[9]||(y[9]=[M("span",{class:"lt-side-icon"},"⏱️",-1)])],8,$x),c.value?(ae(),pe("div",{key:0,class:"lt-popup",onClick:y[3]||(y[3]=gt(()=>{},["stop"]))},[M("div",{class:Re(["lt-popup-row",{active:$.value==="slow"}]),onClick:y[0]||(y[0]=R=>d("slow"))},ye(ge(a)("buttons.speedOption.slow")),3),M("div",{class:Re(["lt-popup-row",{active:$.value==="normal"}]),onClick:y[1]||(y[1]=R=>d("normal"))},ye(ge(a)("buttons.speedOption.normal")),3),M("div",{class:Re(["lt-popup-row",{active:$.value==="fast"}]),onClick:y[2]||(y[2]=R=>d("fast"))},ye(ge(a)("buttons.speedOption.fast")),3)])):Le("",!0)]),M("div",yx,[M("button",{class:Re(["lt-btn",{active:h.value}]),onClick:gt(C,["stop"]),title:ge(a)("buttons.showClusters")},[M("span",{class:Re(["lt-checkbox",{checked:h.value}])},[h.value?(ae(),pe("svg",vx,[...y[10]||(y[10]=[M("path",{d:"M2 6l3 3 5-6",stroke:"#3498db","stroke-width":"2",fill:"none"},null,-1)])])):Le("",!0)],2),y[11]||(y[11]=M("span",{class:"lt-btn-text"},"Clusters",-1))],10,_x),M("button",{class:"lt-side-btn",onClick:y[4]||(y[4]=gt(R=>u.value=!u.value,["stop"])),title:ge(a)("buttons.clusterSettings")},[...y[12]||(y[12]=[M("span",{class:"lt-side-icon"},"⚙️",-1)])],8,kx),u.value?(ae(),pe("div",{key:0,class:"lt-popup",onClick:y[6]||(y[6]=gt(()=>{},["stop"]))},[M("div",{class:"lt-popup-row active",onClick:y[5]||(y[5]=R=>S("mst"))},[...y[13]||(y[13]=[M("span",{class:"lt-popup-icon"},"⌬",-1),M("span",null,[Pt("Minimum Spanning Tree"),M("br"),M("small",{style:{opacity:"0.7","font-weight":"400"}},"click a legend row to cluster only that group")],-1)])])])):Le("",!0),u.value?(ae(),pe("div",{key:1,ref_key:"scrimRef",ref:p,style:dt(ge(f)),class:"lt-overlay",onClick:y[7]||(y[7]=gt(R=>u.value=!1,["stop"]))},null,4)):Le("",!0)])],2)):Le("",!0)}},[["styles",[fx]],["__scopeId","data-v-9da69bcf"]]),xx={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=he(null);return vt("mapToolbar",{el:t}),wt(` -.map-toolbar { - position: absolute; - top: 6px; - inset-inline-end: 3px; - display: flex; - flex-direction: column; - gap: var(--map-toolbar-gap, 8px); - z-index: 10; -} -.map-toolbar .mcb, -.map-toolbar .hbg-btn { width: 32px; height: 32px; } -.map-toolbar .hbg-ctrl { margin: 10px 0 0 0; } -@media (max-width: 767px) { - .map-toolbar { top: 72px; gap: 6px; } - .map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; } -} -`,"map-toolbar"),(o,n)=>(ae(),pe("div",{ref_key:"toolbarEl",ref:t,class:Re(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[fn(o.$slots,"default")],2))}},Lx=["title","aria-label","disabled"],xn={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return wt(` -.mcb{ - width:var(--map-btn-size,40px);height:var(--map-btn-size,40px); - background:#fff; - border:none; - border-radius:50%; - cursor:pointer; - user-select:none;-webkit-user-select:none; - display:flex;align-items:center;justify-content:center; - box-shadow:0 1px 3px rgba(0,0,0,0.18); - transition:background-color 0.2s,box-shadow 0.2s,transform 0.1s; - color:#333; - flex-shrink:0; - outline:none; - -webkit-tap-highlight-color:transparent; -} -.mcb:hover:not(:disabled){background:#f0f0f0;box-shadow:0 2px 8px rgba(0,0,0,0.18),0 4px 16px rgba(0,0,0,0.12);} -.mcb:active:not(:disabled){transform:scale(0.93);} -.mcb:disabled{opacity:0.4;cursor:not-allowed;} -.mcb:focus-visible{outline:2px solid #1a73e8;outline-offset:2px;} -.mcb.dark:focus-visible{outline:2px solid #92b195;outline-offset:2px;} -.mcb.active{background:#e8f0fe;color:#1a73e8;} -.mcb.dark{background:#3b463d;color:#F3F3F1;border:1px solid rgba(255,255,255,0.14);box-shadow:0 1px 4px rgba(0,0,0,0.4);} -.mcb.dark:hover:not(:disabled){background:#4e594f;box-shadow:0 2px 8px rgba(0,0,0,0.5);} -.mcb.dark.active{background:#4e594f;color:#92b195;} -@media(max-width:767px){.mcb{width:36px;height:36px;}} -`,"map-control-button"),(t,o)=>(ae(),pe("button",{class:Re(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[fn(t.$slots,"default")],10,Lx))}},Sx={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=bt(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomIn()}return(a,s)=>(ae(),et(xn,{"is-dark":e.isDark,disabled:e.disabled,title:ge(t)("buttons.zoomIn"),onClick:n},{default:jt(()=>[...s[0]||(s[0]=[M("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},Ax={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=bt(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomOut()}return(a,s)=>(ae(),et(xn,{"is-dark":e.isDark,disabled:e.disabled,title:ge(t)("buttons.zoomOut"),onClick:n},{default:jt(()=>[...s[0]||(s[0]=[M("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},Px={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=bt(),o=e;function n(){var s;(s=o.map)==null||s.flyTo({center:o.center,zoom:o.zoom,duration:1200})}function a(){if(o.map){if(typeof navigator>"u"||!navigator.geolocation){n();return}navigator.geolocation.getCurrentPosition(s=>{const{longitude:r,latitude:i}=s.coords;Number.isFinite(r)&&Number.isFinite(i)?o.map.flyTo({center:[r,i],zoom:o.userZoom,duration:1500}):n()},()=>n(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(s,r)=>(ae(),et(xn,{"is-dark":e.isDark,title:ge(t)("buttons.resetView"),onClick:a},{default:jt(()=>[...r[0]||(r[0]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[M("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},Cx={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},Ex={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},Tx={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:o}=bt(),n=e,a=t,s=he(!1);let r=null,i=null,l=null,c=null,u=null,p=null,f=null,A=null,v=null,b=null,_=null,$=0,h=0,m=null,w=null;function g(){if(typeof document>"u")return!1;const L=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(L)||L.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function P(){var L,y,R;return((R=(y=(L=n.mapContainer)==null?void 0:L.getRootNode)==null?void 0:y.call(L))==null?void 0:R.host)??null}function d(){var y,R;const L=(R=(y=n.mapContainer)==null?void 0:y.getRootNode)==null?void 0:R.call(y);return document.fullscreenElement||document.webkitFullscreenElement||(L&&L instanceof ShadowRoot?L.fullscreenElement:null)||null}function C(L){const y=L.requestFullscreen||L.webkitRequestFullscreen;if(!y)return Promise.reject(new Error("Fullscreen API unavailable"));const R=y.call(L);return R&&typeof R.then=="function"?R:Promise.resolve()}function S(){const L=document.exitFullscreen||document.webkitExitFullscreen;if(!L)return Promise.reject(new Error("Fullscreen API unavailable"));const y=L.call(document);return y&&typeof y.then=="function"?y:Promise.resolve()}function G(){const L=P();if(!L)return!1;if(l=L,i=L.style.cssText,L.style.position="fixed",L.style.top="0",L.style.left="0",L.style.right="0",L.style.bottom="0",L.style.width="100vw",L.style.height="100vh",L.style.height="100dvh",L.style.zIndex="2147483647",L.style.margin="0",L.style.borderRadius="0",L.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){$=window.scrollY||window.pageYOffset||0,h=window.scrollX||window.pageXOffset||0;const y=document.body,R=document.documentElement;c=y?y.style.overflow:null,u=R?R.style.overflow:null,p=y?y.style.position:null,f=y?y.style.top:null,A=y?y.style.left:null,v=y?y.style.width:null,b=y?y.style.touchAction:null,_=R?R.style.touchAction:null,R&&(R.style.overflow="hidden",R.style.touchAction="none"),y&&(y.style.overflow="hidden",y.style.position="fixed",y.style.top=`-${$}px`,y.style.left=`-${h}px`,y.style.width="100%",y.style.touchAction="none"),m=z=>{if(!l)return;const K=z.target;K&&(K===l||l.contains&&l.contains(K))||z.cancelable&&z.preventDefault()},w=z=>{if(!l)return;const K=z.target;K&&(K===l||l.contains&&l.contains(K))||z.cancelable&&z.preventDefault()},document.addEventListener("touchmove",m,{passive:!1,capture:!0}),document.addEventListener("wheel",w,{passive:!1,capture:!0})}return!0}function H(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const L=document.body,y=document.documentElement;L&&(L.style.overflow=c??"",L.style.position=p??"",L.style.top=f??"",L.style.left=A??"",L.style.width=v??"",L.style.touchAction=b??""),y&&(y.style.overflow=u??"",y.style.touchAction=_??""),m&&(document.removeEventListener("touchmove",m,{capture:!0}),m=null),w&&(document.removeEventListener("wheel",w,{capture:!0}),w=null),typeof window<"u"&&($||h)&&window.scrollTo(h,$)}c=null,u=null,p=null,f=null,A=null,v=null,b=null,_=null,$=0,h=0}}function J(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function U(){if(!g()){s.value?(H(),s.value=!1,a("change",!1)):G()&&(s.value=!0,a("change",!0)),J();return}if(d())S().then(()=>{s.value=!1,a("change",!1)}).catch(()=>{});else{const y=P()??document.documentElement;C(y).then(()=>{s.value=!0,a("change",!0)}).catch(()=>{C(document.documentElement).then(()=>{s.value=!0,a("change",!0)}).catch(()=>{})})}}function D(){s.value=!!d(),a("change",s.value)}return $o(()=>{var y,R;document.addEventListener("fullscreenchange",D),document.addEventListener("webkitfullscreenchange",D);const L=(R=(y=n.mapContainer)==null?void 0:y.getRootNode)==null?void 0:R.call(y);L instanceof ShadowRoot&&(r=L,L.addEventListener("fullscreenchange",D),L.addEventListener("webkitfullscreenchange",D))}),Xt(()=>{document.removeEventListener("fullscreenchange",D),document.removeEventListener("webkitfullscreenchange",D),r&&(r.removeEventListener("fullscreenchange",D),r.removeEventListener("webkitfullscreenchange",D),r=null),l&&H()}),(L,y)=>(ae(),et(xn,{"is-dark":e.isDark,active:s.value,title:ge(o)("buttons.toggleFullscreen"),onClick:U},{default:jt(()=>[s.value?(ae(),pe("svg",Ex,[...y[1]||(y[1]=[M("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(ae(),pe("svg",Cx,[...y[0]||(y[0]=[M("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},Nx={style:{"font-size":"16px","line-height":"1"}},Rx={__name:"ThemeToggleButton",props:{isDark:{type:Boolean,default:!1}},emits:["toggle"],setup(e){const{t}=bt();return(o,n)=>ge(c1)?(ae(),et(xn,{key:0,"is-dark":e.isDark,title:e.isDark?ge(t)("buttons.switchToLightMode"):ge(t)("buttons.switchToDarkMode"),onClick:n[0]||(n[0]=a=>o.$emit("toggle"))},{default:jt(()=>[M("span",Nx,ye(e.isDark?"☀️":"🌙"),1)]),_:1},8,["is-dark","title"])):Le("",!0)}},Mx=["blocs","clusters","peopleGroups","families","languages","dialects","people","places","regions","wagfBlocks","religions"],Fx={"people-groups":["blocs","clusters","peopleGroups","people","places","families","languages","dialects","regions","religions"],language:["families","languages","dialects","people","blocs","clusters","peopleGroups","places","regions","religions"],regions:["regions","wagfBlocks","places","blocs","clusters","peopleGroups","people","families","languages","dialects","religions"],religion:["religions","people","blocs","clusters","peopleGroups","places","families","languages","dialects","regions"]};function Ix(e){return Fx[e]||Mx}const Ox={blocs:3,clusters:3,peopleGroups:3,families:3,languages:3,dialects:3,people:5,places:2,regions:3,wagfBlocks:3,religions:2},ur=["peopleGroups","people","places","languages","religions"],Dx={regions:[...ur,"regions","wagfBlocks"],"people-groups":[...ur,"blocs","clusters"],language:[...ur,"dialects","families"],religion:[...ur]},Bx=100,Gx=50,jx=25,Ux=10,$l=5,bg=20,zx=[[/ sign language$/i,"Sign Language"]];function Hx(e){if(!e||typeof e!="string")return"";const t=e.indexOf(",");return t>0?e.slice(0,t).trim():e.trim()}function Vx(e){if(!e||typeof e!="string")return null;const t=e.indexOf(",");return t>=0&&e.slice(t+1).trim()||null}function Kx(e){if(!e||typeof e!="string")return null;const t=e.split(",").map(n=>n.trim()).filter(Boolean);if(t.length>=2){const n=[...t].reverse().join(" ");if(Ye[n])return Ye[n];if(t.length>=3){const a=[t[1],t[0]].join(" ");if(Ye[a])return Ye[a]}}if(Ye[e])return Ye[e];const o=e.replace(/\s*\(.*?\)\s*$/,"").trim();if(o!==e&&Ye[o])return Ye[o];for(const[n,a]of zx)if(n.test(e))return a;return null}function $g(e,t){return{id:`doxa-section-header-${yl(e)}`,place_name:e,text:e,center:[0,0],place_type:["doxa-section-header"],geometry:{type:"Point",coordinates:[0,0]},properties:{headerLabel:e,isHeader:!0,isAllDataSection:!!t},feature:null}}function yl(e){return String(e||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Be(e){return e==null?"":typeof e=="string"?e.toLowerCase():typeof e=="object"&&"label"in e?String(e.label||"").toLowerCase():typeof e=="object"&&"value"in e?String(e.value||"").toLowerCase():String(e).toLowerCase()}function pr(e){return e==null?"":typeof e=="string"?e:typeof e=="object"?e.label||e.value||"":String(e)}function qx(e){var o,n,a,s,r;if(!Array.isArray(e))return[];const t=[];for(const i of e){if(!i)continue;const l=Number(i.latitude),c=Number(i.longitude);if(!Number.isFinite(l)||!Number.isFinite(c))continue;const u=Be(i.name)+" "+Be(i.displayName)+" "+Be(i.alternateName),p=Be(i.countryName)+" "+Be(i.country)+" "+Be(i.countryIso)+" "+Be(i.countryIsoLabel),f=Be(i.religionName)+" "+Be(i.religion)+" "+Be(i.religionLabel)+" "+Be(i.religionCode),A=Be(i.language)+" "+Be(i.languageFamily)+" "+Be(i.languageCode),v=Be(i.doxaRegion)+" "+Be(i.wagfRegion)+" "+Be(i.wagfBlock),b=Be(i.affinityBlock)+" "+Be(i.affinityBlockLabel)+" "+Be((o=i._raw)==null?void 0:o.rop1),_=Be(i.cluster)+" "+Be(i.clusterLabel)+" "+Be((n=i._raw)==null?void 0:n.imb_reg_of_people_2),$=Be(i.peopleGroup)+" "+Be(i.peopleGroupLabel)+" "+Be((a=i._raw)==null?void 0:a.imb_reg_of_people_25),h=((s=i._raw)==null?void 0:s.primary_language)??((r=i._raw)==null?void 0:r.PrimaryLanguage),m=h&&(typeof h=="object"?h.label||h.value:h)||pr(i.language)||pr(i.primaryLanguage)||"",w=Hx(m),g=Vx(m);t.push({feature:i,nameHay:u,countryHay:p,religionHay:f,languageHay:A,regionHay:v,haystack:u+" "+p+" "+f+" "+A+" "+v+" "+b+" "+_+" "+$,blocHay:b,clusterHay:_,pgHay:$,lat:l,lng:c,familyDerived:Kx(m)||null,languageLabel:m,baseLang:w,dialectLabel:g})}return t}function Wx(e){const t=(o,n,a)=>{const s=new Map;for(const r of e){const i=o(r);if(!i)continue;const l=s.get(i);if(l)l.count+=1,l.lngSum+=r.lng,l.latSum+=r.lat,l.memberIds.push(String(r.feature.uniqueId??r.feature.id??r.feature.slug??"")),l.minLng=Math.min(l.minLng,r.lng),l.maxLng=Math.max(l.maxLng,r.lng),l.minLat=Math.min(l.minLat,r.lat),l.maxLat=Math.max(l.maxLat,r.lat),a&&a(l,r,!1);else{const c={key:i,label:pr(n(r))||i,count:1,lngSum:r.lng,latSum:r.lat,minLng:r.lng,maxLng:r.lng,minLat:r.lat,maxLat:r.lat,memberIds:[String(r.feature.uniqueId??r.feature.id??r.feature.slug??"")]};a&&a(c,r,!0),s.set(i,c)}}for(const r of s.values())r.lng=r.lngSum/r.count,r.lat=r.latSum/r.count;return Array.from(s.values())};return{countries:t(o=>Be(o.feature.countryName)||Be(o.feature.country)||Be(o.feature.countryIso),o=>o.feature.countryName||o.feature.country||o.feature.countryIso||""),families:t(o=>Be(o.familyDerived),o=>o.familyDerived||""),languages:t(o=>Be(o.baseLang),o=>o.baseLang||""),dialects:t(o=>o.dialectLabel?`${Be(o.baseLang)}__${Be(o.dialectLabel)}`:"",o=>`${o.baseLang}, ${o.dialectLabel}`,(o,n,a)=>{a?(o.originalLabels=new Set([n.languageLabel]),o.familyDerived=n.familyDerived||"",o.baseLang=n.baseLang||"",o.dialectLabel=n.dialectLabel||""):(o.originalLabels.add(n.languageLabel),!o.familyDerived&&n.familyDerived&&(o.familyDerived=n.familyDerived))}),religions:t(o=>{var n,a,s;return ja(o.feature.religion||((a=(n=o.feature._raw)==null?void 0:n.religion)==null?void 0:a.value)||((s=o.feature._raw)==null?void 0:s.religion)||"")},o=>{var n,a,s;return Jt[ja(o.feature.religion||((a=(n=o.feature._raw)==null?void 0:n.religion)==null?void 0:a.value)||((s=o.feature._raw)==null?void 0:s.religion)||"")]||"Unknown"}),regions:t(o=>Be(o.feature.doxaRegion)||Be(o.feature.wagfRegion),o=>{var n,a;return o.feature.wagfRegionLabel||o.feature.doxaRegionLabel||((a=(n=o.feature._raw)==null?void 0:n.wagf_region)==null?void 0:a.label)||o.feature.doxaRegion||o.feature.wagfRegion||""}),wagfBlocks:t(o=>Be(o.feature.wagfBlock),o=>{var n,a;return o.feature.wagfBlockLabel||((a=(n=o.feature._raw)==null?void 0:n.wagf_block)==null?void 0:a.label)||o.feature.wagfBlock||""}),blocs:t(o=>Be(o.feature.affinityBlockLabel)||Be(o.feature.affinityBlock),o=>o.feature.affinityBlockLabel||o.feature.affinityBlock||"",(o,n,a)=>{a&&(o.blocCode=n.feature.affinityBlock||"")}),clusters:t(o=>{const n=o.feature.affinityBlock||"",a=o.feature.cluster||"";return a?`${n}__${a}`:""},o=>o.feature.clusterLabel||o.feature.cluster||"",(o,n,a)=>{a&&(o.blocCode=n.feature.affinityBlock||"",o.blocLabel=n.feature.affinityBlockLabel||"",o.clusterCode=n.feature.cluster||"")}),peopleGroups:t(o=>Be(o.feature.peopleGroup)||Be(o.feature.peopleGroupLabel),o=>o.feature.peopleGroupLabel||o.feature.peopleGroup||o.feature.name||"",(o,n,a)=>{a&&(o.blocCode=n.feature.affinityBlock||"",o.blocLabel=n.feature.affinityBlockLabel||"",o.clusterCode=n.feature.cluster||"",o.clusterLabel=n.feature.clusterLabel||"",o.peopleGroupCode=n.feature.peopleGroup||"")})}}function Yx(e){const t=e.feature,o=t.name||t.displayName||t.slug||"Unknown",n=t.countryName||t.country||t.countryIso||"",a=t.religionName||t.religion||"",s=t.slug||t.uniqueId||yl(o+"-"+n),r=[e.lng,e.lat],i=[n,a].filter(Boolean).join(" — "),l=i?`${o}, ${i}`:o;return{id:`doxa-pg-${s}`,place_name:l,text:o,center:r,place_type:["people-group"],geometry:{type:"Point",coordinates:r},properties:{slug:s,...t},feature:t}}function Po(e,t){let o,n;switch(e){case"country":o="doxa-country",n="doxa-country-";break;case"region":o="doxa-region",n="doxa-region-";break;case"language-family":o="doxa-language-family",n="doxa-language-family-";break;case"language":o="doxa-language",n="doxa-language-";break;case"dialect":o="doxa-dialect",n="doxa-dialect-";break;case"religion":o="doxa-religion",n="doxa-religion-";break;case"affinity-bloc":o="doxa-affinity-bloc",n="doxa-affinity-bloc-";break;case"cluster":o="doxa-cluster",n="doxa-cluster-";break;case"people-group":o="doxa-people-group",n="doxa-people-group-";break;default:o="doxa",n="doxa-"}const a=pr(t.label)||t.key,s=yl(t.key),r=[t.lng,t.lat],l={"affinity-bloc":"Affinity Block",cluster:"Cluster","people-group":"PG","pg-in-country":"PGIC"}[e],c=l?`${a} (${l}) · ${t.count}`:`${a} (${t.count})`,u=t.originalLabels?Array.from(t.originalLabels):void 0,p=e==="dialect"?{familyDerived:t.familyDerived||"",baseLang:t.baseLang||"",dialectLabel:t.dialectLabel||""}:null;return{id:`${n}${s}`,place_name:c,text:a,center:r,bbox:[t.minLng,t.minLat,t.maxLng,t.maxLat],place_type:[o],geometry:{type:"Point",coordinates:r},properties:{slug:s,doxaAggregate:e,count:t.count,label:a,memberIds:t.memberIds,bounds:[t.minLng,t.minLat,t.maxLng,t.maxLat],...u?{originalLabels:u}:{},...p||{},...e==="affinity-bloc"?{blocCode:t.blocCode||""}:{},...e==="cluster"?{blocCode:t.blocCode||"",blocLabel:t.blocLabel||"",clusterCode:t.clusterCode||""}:{},...e==="people-group"?{blocCode:t.blocCode||"",blocLabel:t.blocLabel||"",clusterCode:t.clusterCode||"",clusterLabel:t.clusterLabel||"",peopleGroupCode:t.peopleGroupCode||""}:{}},feature:null}}function Xx(e={}){const{dataStore:t,dataSourceId:o,getActiveFilter:n,getActiveContext:a}=e,{t:s}=bt(),r=oe(()=>{var p,f;if(!t||!t.sources)return[];if(o&&((p=t.sources[o])!=null&&p.features))return t.sources[o].features;for(const A of Object.keys(t.sources)){const v=t.sources[A];if((f=v==null?void 0:v.features)!=null&&f.length)return v.features}return[]}),i=oe(()=>qx(r.value)),l=oe(()=>Wx(i.value));function c(p){const f=String(p||"").trim().toLowerCase(),A={people:[],places:[],regions:[],wagfBlocks:[],families:[],languages:[],dialects:[],religions:[],blocs:[],clusters:[],peopleGroups:[]};if(f.length<2)return A;const v=f.split(/[\s,;]+/).filter(Boolean);if(!v.length)return A;const b=i.value;if(!b.length)return A;const _=l.value,$=[];for(const y of b){let R=!0;for(const K of v)if(!y.haystack.includes(K)){R=!1;break}if(!R)continue;let z=0;v.some(K=>y.nameHay.includes(K))&&(z+=Bx),v.some(K=>y.countryHay.includes(K))&&(z+=Gx),v.some(K=>y.religionHay.includes(K))&&(z+=jx),v.some(K=>y.languageHay.includes(K))&&(z+=Ux),$.push({entry:y,score:z})}$.sort((y,R)=>R.score-y.score);const h=$.slice(0,$l).map(y=>Yx(y.entry)),m=y=>y.filter(R=>v.every(z=>R.key.includes(z)||Be(R.label).includes(z))).sort((R,z)=>z.count-R.count).slice(0,$l),w=m(_.countries).map(y=>Po("country",y)),g=m(_.regions).map(y=>Po("region",y)),P=m(_.wagfBlocks).map(y=>Po("region",y)),d=m(_.families).map(y=>Po("language-family",y)),C=m(_.languages).map(y=>Po("language",y)),S=m(_.dialects).map(y=>Po("dialect",y)),G=m(_.religions).map(y=>Po("religion",y)),H=m(_.blocs).map(y=>Po("affinity-bloc",y));let J=m(_.clusters).map(y=>Po("cluster",y)),U=m(_.peopleGroups).map(y=>Po("people-group",y));const D=new Set(H.map(y=>Be(y.text)));J=J.filter(y=>!D.has(Be(y.text)));const L=new Set(J.map(y=>Be(y.text)));return U=U.filter(y=>!D.has(Be(y.text))&&!L.has(Be(y.text))),{people:h,places:w,regions:g,wagfBlocks:P,families:d,languages:C,dialects:S,religions:G,blocs:H,clusters:J,peopleGroups:U}}function u(p){const f=typeof n=="function"?n():null,A=typeof a=="function"?a():null,v=c(p),b=Ix(A),_=Dx[A],$=_?Object.fromEntries(_.filter(d=>v[d]).map(d=>[d,v[d]])):v,h=b.flatMap(d=>$[d]||[]);if(!(f!=null&&f.key)||!h.length)return h.slice(0,bg);const m=[];for(const d of v.people){const C=i.value.find(G=>G.feature===d.feature);let S=!1;C&&(f.kind==="family"?S=(C.familyDerived||"").toLowerCase()===f.key.toLowerCase():f.kind==="language"&&(S=C.languageLabel.toLowerCase()===f.key.toLowerCase())),S&&m.push(d)}const w=[],g=f.key;m.length&&(w.push($g(s("search.sections.within",{selection:g}),!1)),w.push(...m.slice(0,$l)));const P=b.flatMap(d=>($[d]||[]).slice(0,Ox[d]??3)).map(d=>({...d,properties:{...d.properties,_allDataSection:!0}}));return w.push($g(s("search.sections.allData"),!0)),w.push(...P),w.slice(0,bg+8)}return{search:u,searchGrouped:c,index:i,aggregates:l}}const yg="https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.min.js",Zx="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js",Jx={__name:"GeocoderComponent",props:{mapInstance:{type:Object,required:!1,default:null},accessToken:{type:String,required:!0},provider:{type:String,default:"mapbox"},isDark:{type:Boolean,default:!1},standalone:{type:Boolean,default:!1},placeholder:{type:String,default:""},dataSourceId:{type:String,default:""},activeContext:{type:String,default:""}},emits:["result","people-group-result","aggregate-result","clear","error"],setup(e,{expose:t,emit:o}){function n(L){return L+L.replace(/mapboxgl/g,"maplibregl")}wt(n('.mapboxgl-ctrl-geocoder--input,.mapboxgl-ctrl-geocoder input[type="text"],.mapboxgl-ctrl-geocoder input[type="search"]{font-size:16px !important;line-height:1.3;}'),"geocoder-ios-zoom-fix"),wt(n(".mapboxgl-ctrl-geocoder--icon-loading{display:none !important;}"),"geocoder-hide-loading"),wt(n(".mapboxgl-ctrl-geocoder{height:35px!important;min-height:35px!important;box-sizing:border-box!important;}.mapboxgl-ctrl-geocoder--input{height:35px!important;min-height:35px!important;box-sizing:border-box!important;padding-top:0!important;padding-bottom:0!important;line-height:35px!important;}.mapboxgl-ctrl-geocoder--icon-search{top:50%!important;transform:translateY(-50%)!important;margin-top:0!important;left:7px!important;}"),"geocoder-height-35"),wt(n(".mapboxgl-ctrl-geocoder{width:100%!important;max-width:100%!important;min-width:0!important;}@media(max-width:767px){.dg-search-band{top:0!important;left:0!important;right:0!important;width:100%!important;max-width:none!important;margin:0!important;box-sizing:border-box!important;padding:9px 14px!important;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,0.10);}.dg-search-band--dark{background:#3b463d;box-shadow:0 1px 4px rgba(0,0,0,0.35);}.dg-search-band .mapboxgl-ctrl,.dg-search-band .maplibregl-ctrl{margin:0!important;float:none!important;}}.mapboxgl-ctrl-geocoder{border-radius:999px!important;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,0.15)!important;transition:box-shadow .12s,border-color .12s;}.mapboxgl-ctrl-geocoder:focus-within{box-shadow:0 2px 8px rgba(0,0,0,0.15),0 0 0 3px rgba(59,70,61,0.18)!important;}.mapboxgl-ctrl-geocoder--input{border-radius:999px!important;font-size:13px!important;}.mapboxgl-ctrl-geocoder--input::placeholder{font-size:12px!important;}.mapboxgl-ctrl-geocoder--button{display:none!important;top:50%!important;bottom:auto!important;transform:translateY(-50%)!important;margin:0!important;padding:0!important;width:24px!important;height:24px!important;background:transparent!important;border:none!important;box-shadow:none!important;}.mapboxgl-ctrl-geocoder:has(.mapboxgl-ctrl-geocoder--input:not(:placeholder-shown)) .mapboxgl-ctrl-geocoder--button{display:block!important;}.mapboxgl-ctrl-geocoder--button .mapboxgl-ctrl-geocoder--icon-close{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;margin:0!important;width:16px!important;height:16px!important;}.mapboxgl-ctrl-geocoder--suggestions,.mapboxgl-ctrl-geocoder .suggestions{z-index:1200!important;position:absolute;max-height:60vh!important;overflow-y:auto!important;}.geocoder-dark.mapboxgl-ctrl-geocoder,.dsm-dark .mapboxgl-ctrl-geocoder{background:#4e594f!important;border:1px solid rgba(255,255,255,0.14)!important;box-shadow:0 2px 8px rgba(0,0,0,0.4)!important;}.geocoder-dark.mapboxgl-ctrl-geocoder:focus-within,.dsm-dark .mapboxgl-ctrl-geocoder:focus-within{box-shadow:0 2px 8px rgba(0,0,0,0.4),0 0 0 3px rgba(115,161,127,0.22)!important;}.geocoder-dark .mapboxgl-ctrl-geocoder--input,.dsm-dark .mapboxgl-ctrl-geocoder--input{color:#F3F3F1!important;background:transparent!important;}.geocoder-dark .mapboxgl-ctrl-geocoder--input::placeholder,.dsm-dark .mapboxgl-ctrl-geocoder--input::placeholder{color:rgba(243,243,241,0.65)!important;}.geocoder-dark .mapboxgl-ctrl-geocoder--icon,.dsm-dark .mapboxgl-ctrl-geocoder .mapboxgl-ctrl-geocoder--icon{fill:rgba(243,243,241,0.75)!important;}.geocoder-dark .mapboxgl-ctrl-geocoder--button,.dsm-dark .mapboxgl-ctrl-geocoder--button{background:transparent!important;}"),"geocoder-skin");const{t:a,locale:s}=bt(),r=e,i=oe(()=>r.placeholder||a("search.placeholder")),l=o,c={"&":"&","<":"<",">":">",'"':""","'":"'"};function u(L){return String(L??"").replace(/[&<>"']/g,y=>c[y])}function p(L){return L==null?"":typeof L=="string"?L:typeof L=="object"?L.label||L.value||"":String(L)}const f={"people-group":"people","doxa-people-group":"peopleGroup","doxa-affinity-bloc":"bloc","doxa-cluster":"cluster","doxa-country":"country","doxa-region":"region","doxa-language-family":"family","doxa-language":"languageKind","doxa-dialect":"dialect","doxa-religion":"religionKind"};function A(L){const y=f[L];if(!y)return"";const R=a("search.kinds."+y);return`${u(R)}`}function v(L){var z;if(!L)return"";const y=L.place_type||[];if(y.includes("doxa-section-header"))return`
${u(((z=L.properties)==null?void 0:z.headerLabel)||L.text||"")}
`;if(y.includes("people-group")){const K=L.properties||{},Q=p(K.name)||p(K.displayName)||p(L.text)||"",ie=p(K.countryName)||p(K.country)||p(K.countryIso)||"",j=p(K.language)||p(K.primaryLanguage)||p(K.languageFamily)||"",be=p(K.religionName)||p(K.religion)||"",xe=a("search.labels.place"),fe=a("search.labels.language"),ke=a("search.labels.religion"),$e=[];return ie&&$e.push(`${u(xe)} ${u(ie)}`),j&&$e.push(`${u(fe)} ${u(j)}`),be&&$e.push(`${u(ke)} ${u(be)}`),`
${A("people-group")}${u(Q)}
`+($e.length?`
${$e.join("")}
`:"")}const R=y.find(K=>K.startsWith("doxa-"));if(R){const K=L.properties||{},Q=u(p(K.label)||L.text||""),ie=Number(K.count)||0,j=ie?` ${ie}`:"";return`
${A(R)}${Q}${j}
`}return`
${u(L.place_name||L.text||"")}
`}const b=Ne("dataStore",null),_=Ne("mapStore",null),$=Ne("uiStore",null);function h(){return _?_.selectedFamily?{kind:"family",key:_.selectedFamily}:_.selectedLanguage?{kind:"language",key:_.selectedLanguage}:null:null}const{search:m}=Xx({dataStore:b,dataSourceId:r.dataSourceId||void 0,getActiveFilter:h,getActiveContext:()=>r.activeContext||null}),w=ba(null),g=he(null),P={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css",maplibre:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1/dist/maplibre-gl-geocoder.css"};function d(L,y){const R=P[y]||P.mapbox;if(L.querySelector(`link[href="${R}"]`))return;const z=document.createElement("link");z.rel="stylesheet",z.href=R,L.prepend(z)}async function C(L,y){if(typeof window<"u"&&window[y]||typeof document>"u")return;const R=document.querySelector(`script[src="${L}"]`);if(R){if(window[y])return;await new Promise(z=>{R.addEventListener("load",z,{once:!0}),R.addEventListener("error",z,{once:!0})});return}await new Promise(z=>{const K=document.createElement("script");K.src=L,K.async=!0,K.addEventListener("load",z,{once:!0}),K.addEventListener("error",z,{once:!0}),document.head.appendChild(K)})}function S(L=document){let y=L.activeElement;for(;y&&y.shadowRoot&&y.shadowRoot.activeElement;)y=y.shadowRoot.activeElement;return y}function G(L){const y=L==null?void 0:L._onKeyDown;typeof y=="function"&&(L._onKeyDown=function(R){const z=S();return!z||z===R.target||typeof z.value!="string"?y.call(L,R):y.call(L,new Proxy(R,{get(K,Q){if(Q==="target"||Q==="srcElement")return z;const ie=Reflect.get(K,Q);return typeof ie=="function"?ie.bind(K):ie}}))})}async function H(){await C(Zx,"MapboxGeocoder")}async function J(){if(typeof window<"u"&&window.MaplibreGeocoder||typeof document>"u")return;const L=document.querySelector(`script[src="${yg}"]`);if(L){if(window.MaplibreGeocoder)return;await new Promise(y=>{L.addEventListener("load",y,{once:!0}),L.addEventListener("error",y,{once:!0})});return}await new Promise((y,R)=>{const z=document.createElement("script");z.src=yg,z.async=!1,z.addEventListener("load",y,{once:!0}),z.addEventListener("error",()=>R(new Error("[GeocoderComponent] Failed to load MapLibre geocoder")),{once:!0}),document.head.appendChild(z)})}function U(L,y){return async R=>{const z={features:[]};if(!L||!(R!=null&&R.query))return z;try{const K=Array.isArray(R.language)?R.language[0]:R.language||y()||"en",Q=new URLSearchParams({access_token:L,autocomplete:"true",limit:String(R.limit||5)});K&&Q.set("language",K);const ie=`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(R.query)}.json?${Q.toString()}`,j=await fetch(ie);if(!j.ok)return z;const be=await j.json();return be&&Array.isArray(be.features)?be:z}catch{return z}}}$o(async()=>{var K,Q,ie,j,be;const L=r.provider==="maplibre";if(L){if(await J(),typeof MaplibreGeocoder>"u"){console.error("[GeocoderComponent] MaplibreGeocoder global unavailable.");return}}else if(typeof MapboxGeocoder>"u"&&(await H(),typeof MapboxGeocoder>"u")){console.error("[GeocoderComponent] MapboxGeocoder global unavailable.");return}const y=r.mapInstance;if(!r.standalone&&!y)return;const R=r.standalone?(Q=(K=g.value)==null?void 0:K.getRootNode)==null?void 0:Q.call(K):(be=(j=(ie=y.getContainer)==null?void 0:ie.call(y))==null?void 0:j.getRootNode)==null?void 0:be.call(j);R instanceof ShadowRoot&&d(R,r.provider);const z={marker:!1,flyTo:!r.standalone,trackProximity:!r.standalone,placeholder:i.value,language:s.value||"en",localGeocoder:m,limit:20,zoom:6,render:v};if(L){const xe=typeof maplibregl<"u"?maplibregl:void 0,fe={forwardGeocode:U(r.accessToken,()=>s.value)};w.value=new MaplibreGeocoder(fe,{...z,maplibregl:xe,showResultsWhileTyping:!0,reverseGeocode:!1})}else w.value=new MapboxGeocoder({accessToken:r.accessToken,mapboxgl,...z});if(G(w.value),w.value.on("result",xe=>{var ke,$e,ne,te,de,Pe,T,F,I,W,Y,O,ue,ee,k,x,B,X,me,ce,Z,le,Ce,Te,qe,nt,Qe,V,se,ve;const fe=xe==null?void 0:xe.result;fe&&((ke=fe.place_type)!=null&&ke.includes("doxa-section-header")||(_&&(_.selectedRegion=null,_.selectedResource=null,_.selectedAffinityBlock=null,_.selectedDialect=null),$&&(($e=$.setPrayerFilter)==null||$e.call($,null),(ne=$.setEngagementFilter)==null||ne.call($,null),(te=$.setAdoptionFilter)==null||te.call($,null),(de=$.setReligionFilter)==null||de.call($,null)),(Pe=fe.properties)!=null&&Pe._allDataSection&&_&&(_.selectedFamily=null,_.selectedLanguage=null),l("result",xe),(T=fe.place_type)!=null&&T.includes("people-group")&&fe.feature?l("people-group-result",{type:"Feature",properties:fe.properties||fe.feature,geometry:fe.geometry||{type:"Point",coordinates:fe.center}}):((F=fe.place_type)!=null&&F.includes("doxa-country")||(I=fe.place_type)!=null&&I.includes("doxa-region")||(W=fe.place_type)!=null&&W.includes("doxa-language-family")||(Y=fe.place_type)!=null&&Y.includes("doxa-language")||(O=fe.place_type)!=null&&O.includes("doxa-dialect")||(ue=fe.place_type)!=null&&ue.includes("doxa-religion")||(ee=fe.place_type)!=null&&ee.includes("doxa-affinity-bloc")||(k=fe.place_type)!=null&&k.includes("doxa-cluster")||(x=fe.place_type)!=null&&x.includes("doxa-people-group"))&&l("aggregate-result",{kind:fe.place_type[0].replace(/^doxa-/,""),label:((B=fe.properties)==null?void 0:B.label)||fe.text,count:((X=fe.properties)==null?void 0:X.count)||0,memberIds:((me=fe.properties)==null?void 0:me.memberIds)||[],bounds:((ce=fe.properties)==null?void 0:ce.bounds)||null,center:fe.center,originalLabels:((Z=fe.properties)==null?void 0:Z.originalLabels)||null,familyDerived:((le=fe.properties)==null?void 0:le.familyDerived)||"",baseLang:((Ce=fe.properties)==null?void 0:Ce.baseLang)||"",dialectLabel:((Te=fe.properties)==null?void 0:Te.dialectLabel)||"",slug:((qe=fe.properties)==null?void 0:qe.slug)||null,id:fe.id||null,blocCode:((nt=fe.properties)==null?void 0:nt.blocCode)||"",blocLabel:((Qe=fe.properties)==null?void 0:Qe.blocLabel)||"",clusterCode:((V=fe.properties)==null?void 0:V.clusterCode)||"",clusterLabel:((se=fe.properties)==null?void 0:se.clusterLabel)||"",peopleGroupCode:((ve=fe.properties)==null?void 0:ve.peopleGroupCode)||"",properties:fe.properties||null})))}),w.value.on("clear",()=>l("clear")),w.value.on("error",xe=>l("error",xe)),r.standalone){if(g.value){const xe={on(){},off(){},fire(){},getContainer:()=>g.value,getZoom:()=>0,getCenter:()=>({lng:0,lat:0}),getBounds:()=>null,flyTo(){},fitBounds(){},addControl(){},removeControl(){},hasControl:()=>!1};try{const fe=w.value.onAdd(r.mapInstance||xe);fe&&g.value.appendChild(fe)}catch(fe){l("error",fe)}}}else y.addControl(w.value,"top-left"),D()});function D(){var y,R;const L=(R=(y=w.value)==null?void 0:y.container)==null?void 0:R.parentElement;L&&(L.classList.add("dg-search-band"),L.classList.toggle("dg-search-band--dark",!!r.isDark))}return Fe(()=>r.isDark,()=>D()),Fe(i,L=>{var z,K;const y=w.value;if(!y)return;const R=y._inputEl||((K=(z=y.container)==null?void 0:z.querySelector)==null?void 0:K.call(z,"input.mapboxgl-ctrl-geocoder--input"));R&&(R.placeholder=L,R.setAttribute("placeholder",L)),y.options&&(y.options.placeholder=L)}),Fe(s,L=>{const y=w.value;y!=null&&y.options&&(y.options.language=L||"en")}),Xt(()=>{var L,y;if(w.value){try{r.standalone?(y=(L=w.value).onRemove)==null||y.call(L):r.mapInstance&&r.mapInstance.removeControl(w.value)}catch{}w.value=null}}),t({geocoder:w}),(L,y)=>e.standalone?(ae(),pe("div",{key:0,ref_key:"standaloneContainer",ref:g,class:"dg-standalone-geocoder"},null,512)):fn(L.$slots,"default",{},void 0,void 0,1)}},Qx=["aria-label"],eL={class:"mcm-header"},tL={class:"mcm-title"},oL={class:"mcm-body"},nL=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",_l="doxa-map-menu-open",aL={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){wt(` -.mcm{position:absolute;z-index:var(--z-menu,3000);display:flex;flex-direction:column;box-sizing:border-box; - background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.45); - color:#e6edf3;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:13px; - overflow:hidden;opacity:0;transform:translateY(-4px) scale(0.98);animation:mcm-in 0.18s ease-out forwards;} -@keyframes mcm-in{to{opacity:1;transform:translateY(0) scale(1);}} -.mcm.light{background:#ffffff;border-color:#d8dee4;box-shadow:0 6px 24px rgba(0,0,0,0.16);color:#1f2328;} -.mcm-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;min-height:32px;flex:0 0 auto;border-bottom:1px solid #21262d;} -.mcm.light .mcm-header{border-bottom-color:#d8dee4;} -.mcm-title{font:600 10px ui-monospace,monospace;color:#73A17F;text-transform:uppercase;letter-spacing:0.07em;} -.mcm.light .mcm-title{color:#3b463d;} -.mcm-close{width:22px;height:20px;border:1px solid #30363d;background:rgba(110,118,129,0.12);border-radius:5px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#8b949e;padding:0;transition:color 0.1s,background 0.1s,border-color 0.1s;} -.mcm-close:hover{color:#c9d1d9;background:rgba(59,70,61,0.18);border-color:#73A17F;} -.mcm.light .mcm-close{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;} -.mcm.light .mcm-close:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;} -.mcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;} -`,"map-control-menu");const o=e,n=t,a=Ne("mapToolbar",null),s=he(null),r=he(null),i=he({});function l(){var S;const A=(S=a==null?void 0:a.el)==null?void 0:S.value,v=s.value;if(!A||!v){i.value={};return}const b=v.getBoundingClientRect(),_=A.getBoundingClientRect(),$=(_.left+_.right)/2>(b.left+b.right)/2,h=8,m=12,w=$?b.right-_.left+h:_.right-b.left+h,g=Math.max(200,Math.min(o.width,b.width-w-m)),P=Math.max(0,_.top-b.top);let C=v.getAttribute&&v.getAttribute("data-map-area")==="share-fallback"?Math.max(120,(window.innerHeight||900)-_.top-m):Math.max(120,b.height-P-m);o.matchToolbar&&(C=Math.max(120,Math.min(C,_.height))),o.maxHeight&&(C=Math.min(C,o.maxHeight)),i.value={top:`${Math.round(P)}px`,[$?"right":"left"]:`${Math.round(w)}px`,width:`${Math.round(g)}px`,maxHeight:`${Math.round(C)}px`,...o.height?{height:`${Math.round(Math.min(o.height,C))}px`}:{}}}function c(A){o.open&&A.detail!==r.value&&n("close")}Fe(()=>o.open,async A=>{var v;if(A){await It(),l();try{(v=s.value)==null||v.dispatchEvent(new CustomEvent(_l,{detail:r.value}))}catch{}}});function u(){o.open&&l()}function p(A){A.key==="Escape"&&o.open&&n("close")}function f(A){var b;if(!o.open)return;const v=A.composedPath?A.composedPath():[A.target];r.value&&v.includes(r.value)||(b=a==null?void 0:a.el)!=null&&b.value&&v.includes(a.el.value)||v.some(_=>{var $,h,m,w;return((h=($=_==null?void 0:_.classList)==null?void 0:$.contains)==null?void 0:h.call($,"mapboxgl-canvas"))||((w=(m=_==null?void 0:_.classList)==null?void 0:m.contains)==null?void 0:w.call(m,"maplibregl-canvas"))})&&n("close")}return $o(()=>{var A,v,b;s.value=((v=(A=a==null?void 0:a.el)==null?void 0:A.value)==null?void 0:v.closest(nL))||null,(b=s.value)==null||b.addEventListener(_l,c),window.addEventListener("resize",u),document.addEventListener("click",f,!0),document.addEventListener("keydown",p)}),Xt(()=>{var A;(A=s.value)==null||A.removeEventListener(_l,c),window.removeEventListener("resize",u),document.removeEventListener("click",f,!0),document.removeEventListener("keydown",p)}),(A,v)=>(ae(),et(hh,{to:s.value,disabled:!s.value},[e.open?(ae(),pe("div",{key:0,ref_key:"el",ref:r,class:Re(["mcm",{light:!e.isDark}]),style:dt(i.value),role:"dialog","aria-label":e.title},[M("div",eL,[M("span",tL,ye(e.title),1),M("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:v[0]||(v[0]=b=>n("close"))},[...v[1]||(v[1]=[M("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[M("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),M("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),M("div",oL,[fn(A.$slots,"default")])],14,Qx)):Le("",!0)],8,["to","disabled"]))}},sL={class:"share-steps"},rL={class:"share-tabs"},iL={key:0,class:"share-body"},lL={class:"share-url-box"},cL={class:"share-url-text"},uL={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},pL={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},dL={key:1,class:"share-body"},gL={class:"share-size-pills"},fL=["onClick"],hL={class:"share-code-box"},mL={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},bL={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},$L={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){wt(` -.share-wrap{position:relative;display:inline-block;border-radius:50%;} -.share-wrap::before{content:'';position:absolute;inset:-2px;border-radius:50%;padding:2px;pointer-events:none; - background:conic-gradient(#ff6b6b,#ffd166,#6bd67b,#4dabf7,#9775fa,#f783ac,#ff6b6b); - -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude; - opacity:0.6;animation:share-ring-turn 5s linear infinite;} -.share-wrap:hover::before{opacity:0.95;} -@keyframes share-ring-turn{to{transform:rotate(360deg);}} -@media(prefers-reduced-motion:reduce){.share-wrap::before{animation:none;}} -.share-steps{margin:10px 14px 6px;padding:0 0 0 15px;list-style:'- ';font:14px/1.55 system-ui,sans-serif;color:#c9d1d9;} -.share-steps li{margin:0 0 3px;padding-left:3px;} -.share-steps li:last-child{font-weight:600;color:#92b195;} -.share-pop.light .share-steps{color:#3b463d;} -.share-pop.light .share-steps li:last-child{color:#3b463d;} -.share-pop{ - font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; - font-size:13px; - color:#e6edf3; -} -.share-pop.light{color:#1f2328;} -.share-tabs{ - display:flex; - gap:0; - padding:0 16px; - margin-top:8px; - border-bottom:1px solid rgba(255,255,255,0.08); -} -.share-pop.light .share-tabs{border-bottom:1px solid rgba(0,0,0,0.08);} -.share-tab{ - padding:6px 0; - margin-right:20px; - font-size:12.5px; - font-weight:600; - background:none;border:none; - color:inherit;opacity:0.5; - cursor:pointer; - border-bottom:2px solid transparent; - transition:opacity 0.15s,border-color 0.2s; - font-family:inherit; - white-space:nowrap; -} -.share-tab:hover{opacity:0.75;} -.share-tab.active{ - opacity:1; - border-bottom-color:#4a90d9; -} -.share-pop.light .share-tab.active{ - border-bottom-color:#1a73e8; -} -.share-body{ - padding:12px 16px 14px 16px; -} -.share-url-box{ - display:flex; - align-items:center; - gap:0; - background:rgba(0,0,0,0.22); - border:1px solid rgba(255,255,255,0.08); - border-radius:10px; - overflow:hidden; -} -.share-pop.light .share-url-box{ - background:rgba(0,0,0,0.035); - border:1px solid rgba(0,0,0,0.10); -} -.share-url-text{ - flex:1; - padding:11px 14px; - font-size:13px; - color:#b0b8c8; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; - -webkit-user-select:all; - user-select:all; -} -.share-pop.light .share-url-text{color:#555;} -.share-primary-btn{ - display:flex; - align-items:center; - justify-content:center; - gap:8px; - width:100%; - padding:12px 0; - margin-top:14px; - background:#4a90d9; - border:none; - border-radius:10px; - color:#fff; - font-size:14.5px; - font-weight:600; - cursor:pointer; - transition:background 0.15s,transform 0.1s; - font-family:inherit; -} -.share-primary-btn:hover{background:#3d7ec5;} -.share-primary-btn:active{transform:scale(0.98);} -.share-primary-btn.copied{ - background:#2ea44f; -} -.share-pop.light .share-primary-btn{ - background:#1a73e8; -} -.share-pop.light .share-primary-btn:hover{ - background:#1565c0; -} -.share-pop.light .share-primary-btn.copied{ - background:#2ea44f; -} -.share-social-row{ - display:flex; - align-items:center; - gap:10px; - margin-top:16px; - padding-top:14px; - border-top:1px solid rgba(255,255,255,0.06); -} -.share-pop.light .share-social-row{ - border-top:1px solid rgba(0,0,0,0.06); -} -.share-social-label{ - font-size:12px; - opacity:0.45; - font-weight:500; - margin-right:auto; - white-space:nowrap; -} -.share-social-btn{ - width:36px;height:36px; - border-radius:50%; - border:1px solid rgba(255,255,255,0.10); - background:rgba(255,255,255,0.06); - display:flex;align-items:center;justify-content:center; - cursor:pointer; - color:inherit; - transition:background 0.15s,border-color 0.15s; -} -.share-social-btn:hover{ - background:rgba(255,255,255,0.12); - border-color:rgba(255,255,255,0.18); -} -.share-pop.light .share-social-btn{ - border:1px solid rgba(0,0,0,0.10); - background:rgba(0,0,0,0.03); -} -.share-pop.light .share-social-btn:hover{ - background:rgba(0,0,0,0.07); - border-color:rgba(0,0,0,0.16); -} -.share-embed-desc{ - font-size:13.5px; - line-height:1.55; - opacity:0.72; - margin-bottom:16px; -} -.share-size-pills{ - display:flex; - gap:8px; - margin-bottom:14px; -} -.share-size-pill{ - padding:6px 14px; - border-radius:20px; - border:1px solid rgba(255,255,255,0.12); - background:transparent; - color:inherit; - font-size:12.5px; - font-weight:500; - cursor:pointer; - transition:background 0.15s,border-color 0.15s; - font-family:inherit; -} -.share-size-pill:hover{ - background:rgba(255,255,255,0.06); -} -.share-size-pill.active{ - background:rgba(74,144,217,0.18); - border-color:rgba(74,144,217,0.45); - color:#7ab8f5; -} -.share-pop.light .share-size-pill{ - border:1px solid rgba(0,0,0,0.12); -} -.share-pop.light .share-size-pill:hover{ - background:rgba(0,0,0,0.04); -} -.share-pop.light .share-size-pill.active{ - background:rgba(26,115,232,0.10); - border-color:rgba(26,115,232,0.40); - color:#1a73e8; -} -.share-code-box{ - background:rgba(0,0,0,0.28); - border:1px solid rgba(255,255,255,0.06); - border-radius:10px; - padding:12px 14px; - font-family:'SF Mono',SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace; - font-size:11.5px; - line-height:1.5; - color:#a0aab8; - word-break:break-all; - white-space:pre-wrap; - height:auto; - -webkit-user-select:all; - user-select:all; -} -.share-pop.light .share-code-box{ - background:rgba(0,0,0,0.035); - border:1px solid rgba(0,0,0,0.08); - color:#444; -} -.share-secondary-btn{ - display:flex; - align-items:center; - justify-content:center; - gap:8px; - width:100%; - padding:11px 0; - margin-top:12px; - background:rgba(255,255,255,0.08); - border:1px solid rgba(255,255,255,0.12); - border-radius:10px; - color:#e0e4ec; - font-size:14px; - font-weight:600; - cursor:pointer; - transition:background 0.15s,border-color 0.15s,transform 0.1s; - font-family:inherit; -} -.share-secondary-btn:hover{ - background:rgba(255,255,255,0.13); - border-color:rgba(255,255,255,0.18); -} -.share-secondary-btn:active{transform:scale(0.98);} -.share-secondary-btn.copied{ - background:rgba(46,164,79,0.16); - border-color:rgba(46,164,79,0.35); - color:#5cd680; -} -.share-pop.light .share-secondary-btn{ - background:rgba(0,0,0,0.04); - border:1px solid rgba(0,0,0,0.12); - color:#333; -} -.share-pop.light .share-secondary-btn:hover{ - background:rgba(0,0,0,0.07); -} -.share-pop.light .share-secondary-btn.copied{ - background:rgba(46,164,79,0.10); - border-color:rgba(46,164,79,0.30); - color:#2ea44f; -} -`,"share-button");const{t,tm:o,rt:n}=bt(),a=e,s=he(null),r=he(!1),i=he(null),l=he(null),c=he("link"),u=he(!1),p=he(!1),f=he("medium"),A={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},v=Ne("profileConfig",null),b=oe(()=>dk({embedPath:a.embedPath,profileConfig:ge(v)||null})),_=oe(()=>{const G=A[f.value].height;return''});function $(){r.value=!r.value,r.value&&(c.value="link",u.value=!1,p.value=!1)}function h(){r.value=!1}async function m(G){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(G),!0}catch{}try{const H=document.createElement("textarea");H.value=G,H.setAttribute("readonly",""),H.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(H),H.select();const J=document.execCommand("copy");return document.body.removeChild(H),J}catch{return!1}}async function w(){await m(b.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function g(){await m(_.value)&&(p.value=!0,setTimeout(()=>{p.value=!1},2e3))}const P=Ne("mapToolbar",null),d=he(null);vt("mapToolbar",P||{el:d});const C=!P;function S(G){if(s.value=G||null,!C||!G){G||(d.value=null);return}const H=G.offsetParent||G.parentElement;H&&!H.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&H.setAttribute("data-map-area","share-fallback"),d.value=G}return(G,H)=>(ae(),pe("div",{ref:S,class:"share-wrap","data-share-root":""},[tt(xn,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:r.value,title:ge(t)("buttons.share"),onClick:$},{default:jt(()=>[...H[2]||(H[2]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[M("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),M("polyline",{points:"16 6 12 2 8 6"}),M("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),tt(aL,{open:r.value,title:ge(t)("buttons.share"),"is-dark":e.isDark,onClose:h},{default:jt(()=>[M("div",{ref_key:"popoverEl",ref:i,class:Re(["share-pop",{light:!e.isDark}])},[M("ul",sL,[(ae(!0),pe(ze,null,Rt(ge(o)("buttons.shareSteps"),(J,U)=>(ae(),pe("li",{key:U},ye(ge(n)(J)),1))),128))]),M("div",rL,[M("button",{class:Re(["share-tab",{active:c.value==="link"}]),onClick:H[0]||(H[0]=J=>c.value="link")},"Embed link",2),M("button",{class:Re(["share-tab",{active:c.value==="embed"}]),onClick:H[1]||(H[1]=J=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(ae(),pe("div",iL,[M("div",lL,[M("div",cL,ye(b.value),1)]),M("button",{class:Re(["share-primary-btn",{copied:u.value}]),onClick:w},[u.value?(ae(),pe("svg",pL,[...H[4]||(H[4]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(ae(),pe("svg",uL,[...H[3]||(H[3]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),Pt(" "+ye(u.value?"Copied!":"Copy Link"),1)],2)])):Le("",!0),c.value==="embed"?(ae(),pe("div",dL,[H[7]||(H[7]=M("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),M("div",gL,[(ae(),pe(ze,null,Rt(A,(J,U)=>M("button",{key:U,class:Re(["share-size-pill",{active:f.value===U}]),onClick:D=>f.value=U},ye(J.label),11,fL)),64))]),M("div",hL,ye(_.value),1),M("button",{class:Re(["share-secondary-btn",{copied:p.value}]),onClick:g},[p.value?(ae(),pe("svg",bL,[...H[6]||(H[6]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(ae(),pe("svg",mL,[...H[5]||(H[5]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),Pt(" "+ye(p.value?"Copied!":"Copy Code"),1)],2)])):Le("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},yL=["aria-label"],_L={class:"rm-side-header"},vL={class:"rm-side-title"},kL=["aria-label"],wL={class:"rm-side-body"},xL={class:"rm-section"},LL={class:"rm-cluster-grid"},SL=["onClick"],AL={class:"label"},PL={class:"desc"},CL={key:0,class:"rm-slider-row"},EL={for:"rm-pin-op"},TL=["value"],NL={class:"val"},RL={class:"rm-section"},ML={class:"rm-side-footer"},FL={__name:"ResearchMapSideMenu",props:{isOpen:{type:Boolean,default:!1}},emits:["close","open-poster","reload-map"],setup(e,{emit:t}){const o=t,n=(l,c)=>Ga("controls."+l)||Ga("dashboard."+l)||c,a=Ne("mapStore");Ne("uiStore");const s=[{id:"off",label:n("off","Off"),desc:n("off_desc","Show every pin individually")},{id:"mapbox",label:n("native","Native"),desc:n("native_desc","Mapbox circle clusters (fastest)")},{id:"mst",label:n("mst","MST"),desc:n("mst_desc","Minimum-spanning-tree affinity webs")},{id:"network",label:n("network","Network"),desc:n("network_desc","Nearest-neighbor connection lines")}],r=oe({get:()=>(a==null?void 0:a.clusteringMode)??"off",set:l=>{a&&(a.clusteringMode=l)}}),i=oe({get:()=>(a==null?void 0:a.clusterPinOpacity)??.6,set:l=>{a&&(a.clusterPinOpacity=Number(l))}});return wt(` - .rm-side-backdrop { position:absolute;inset:0;background:rgba(0,0,0,0.45);z-index:1500;opacity:0;pointer-events:none;transition:opacity .18s; } - .rm-side-backdrop.open { opacity:1;pointer-events:auto; } - .rm-side-drawer { position:absolute;top:0;right:0;bottom:0;width:340px;max-width:100vw;background:#171c23;color:#e7ebf0;border-left:1px solid #232a33;z-index:1600;transform:translateX(100%);transition:transform .22s ease;display:flex;flex-direction:column;font:13px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; } - .rm-side-drawer.open { transform:translateX(0); box-shadow:-4px 0 16px rgba(0,0,0,0.4); } - .rm-side-header { display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #232a33;flex:0 0 auto; } - .rm-side-title { font-size:14px;font-weight:600;color:#e7ebf0;margin:0; } - .rm-side-close { background:none;border:none;color:#a8b2bd;font-size:22px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:4px; } - .rm-side-close:hover { color:#e7ebf0;background:rgba(255,255,255,0.06); } - .rm-side-body { flex:1 1 auto;overflow-y:auto;padding:14px 18px; } - .rm-section { margin-bottom:22px; } - .rm-section h4 { margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#a8b2bd; } - .rm-cluster-grid { display:grid;grid-template-columns:1fr 1fr;gap:6px; } - .rm-cluster-btn { background:#232a33;border:1px solid #2c343f;color:#e7ebf0;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:12px;text-align:left;line-height:1.3; } - .rm-cluster-btn:hover { background:#2c343f;border-color:#3a4250; } - .rm-cluster-btn.active { background:rgba(124,140,248,0.16);border-color:#7c8cf8;color:#a8b8ff; } - .rm-cluster-btn .label { display:block;font-weight:600;font-size:12px;margin-bottom:2px; } - .rm-cluster-btn .desc { display:block;font-size:10.5px;color:#a8b2bd; } - .rm-slider-row { display:flex;align-items:center;gap:10px;margin-top:8px; } - .rm-slider-row input[type=range] { flex:1; } - .rm-slider-row .val { width:36px;text-align:right;font-variant-numeric:tabular-nums;color:#a8b2bd;font-size:11px; } - .rm-side-footer { flex:0 0 auto;padding:12px 18px;border-top:1px solid #232a33;display:flex;flex-direction:column;gap:8px; } - .rm-btn { display:flex;align-items:center;justify-content:center;gap:8px;background:#7c8cf8;border:none;color:#0f1216;padding:10px 14px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600; } - .rm-btn:hover { background:#9aa6ff; } - .rm-btn.ghost { background:transparent;color:#a8b2bd;border:1px solid #2c343f; } - .rm-btn.ghost:hover { background:#232a33;color:#e7ebf0; } -`,"research-map-side-menu"),(l,c)=>(ae(),pe(ze,null,[M("div",{class:Re(["rm-side-backdrop",{open:e.isOpen}]),onClick:c[0]||(c[0]=u=>o("close"))},null,2),M("aside",{class:Re(["rm-side-drawer",{open:e.isOpen}]),role:"dialog","aria-label":n("map_controls","Research map controls")},[M("header",_L,[M("h3",vL,ye(n("research_controls","Research controls")),1),M("button",{class:"rm-side-close","aria-label":ge(Ga)("buttons.close")||"Close",onClick:c[1]||(c[1]=u=>o("close"))},"×",8,kL)]),M("div",wL,[M("div",xL,[M("h4",null,ye(n("clustering","Clustering")),1),M("div",LL,[(ae(),pe(ze,null,Rt(s,u=>M("button",{key:u.id,class:Re(["rm-cluster-btn",{active:r.value===u.id}]),onClick:p=>r.value=u.id},[M("span",AL,ye(u.label),1),M("span",PL,ye(u.desc),1)],10,SL)),64))]),r.value!=="off"?(ae(),pe("div",CL,[M("label",EL,ye(n("pin_dim","Pin dim")),1),M("input",{id:"rm-pin-op",type:"range",min:"0.05",max:"1",step:"0.05",value:i.value,onInput:c[2]||(c[2]=u=>i.value=u.target.value)},null,40,TL),M("span",NL,ye(Math.round(i.value*100))+"%",1)])):Le("",!0)]),M("div",RL,[M("h4",null,ye(n("filters","Filters")),1),fn(l.$slots,"default")])]),M("footer",ML,[M("button",{class:"rm-btn",onClick:c[3]||(c[3]=u=>o("open-poster"))},ye(n("export_poster","Export poster…")),1),M("button",{class:"rm-btn ghost",onClick:c[4]||(c[4]=u=>o("reload-map"))},ye(n("reload_data","Reload data")),1)])],10,yL)],64))}},IL={class:"rm-filter"},OL={class:"field"},DL={class:"rm-pop-row"},BL=["placeholder","value"],GL=["placeholder","value"],jL={class:"field"},UL=["value"],zL={value:"any"},HL={value:"engaged"},VL={value:"unengaged"},KL={class:"field"},qL=["value"],WL={value:"any"},YL={value:"adopted"},XL={value:"unadopted"},ZL={class:"field"},JL=["placeholder"],QL={class:"rm-chips"},eS={key:0,class:"rm-empty"},tS=["onClick"],oS={class:"field"},nS=["placeholder"],aS={class:"rm-chips"},sS={key:0,class:"rm-empty"},rS=["onClick"],iS={class:"rm-filter-footer"},lS={class:"rm-pill"},cS={__name:"ResearchMapFilterPanel",setup(e){const t=(P,d)=>Ga("controls."+P)||Ga("dashboard."+P)||d,o=Ne("mapStore"),n=Ne("dataStore"),a={populationMin:null,populationMax:null,engagement:"any",adoption:"any",languages:[],religions:[]};o&&!o.filters&&(o.filters={...a});const s=oe({get:()=>{var P;return((P=o==null?void 0:o.filters)==null?void 0:P.populationMin)??""},set:P=>{o.filters.populationMin=P===""?null:Number(P)}}),r=oe({get:()=>{var P;return((P=o==null?void 0:o.filters)==null?void 0:P.populationMax)??""},set:P=>{o.filters.populationMax=P===""?null:Number(P)}}),i=oe({get:()=>{var P;return((P=o==null?void 0:o.filters)==null?void 0:P.engagement)??"any"},set:P=>{o.filters.engagement=P}}),l=oe({get:()=>{var P;return((P=o==null?void 0:o.filters)==null?void 0:P.adoption)??"any"},set:P=>{o.filters.adoption=P}}),c=oe(()=>(n==null?void 0:n.facets)??{}),u=oe(()=>{var P;return((P=c.value)==null?void 0:P.languages)??[]}),p=oe(()=>{var P;return((P=c.value)==null?void 0:P.religions)??[]});function f(P){const d=o.filters.languages??[],C=d.indexOf(P);C===-1?d.push(P):d.splice(C,1),o.filters.languages=[...d]}function A(P){const d=o.filters.religions??[],C=d.indexOf(P);C===-1?d.push(P):d.splice(C,1),o.filters.religions=[...d]}const v=he(""),b=he(""),_=oe(()=>{const P=v.value.trim().toLowerCase();return P?u.value.filter(d=>d.toLowerCase().includes(P)):u.value}),$=oe(()=>{const P=b.value.trim().toLowerCase();return P?p.value.filter(d=>d.toLowerCase().includes(P)):p.value});function h(P){var d;return(((d=o==null?void 0:o.filters)==null?void 0:d.languages)??[]).includes(P)}function m(P){var d;return(((d=o==null?void 0:o.filters)==null?void 0:d.religions)??[]).includes(P)}function w(){o&&(o.filters={...a,languages:[],religions:[]})}const g=oe(()=>{var C,S;const P=(o==null?void 0:o.filters)??{};let d=0;return P.populationMin!=null&&d++,P.populationMax!=null&&d++,P.engagement&&P.engagement!=="any"&&d++,P.adoption&&P.adoption!=="any"&&d++,(C=P.languages)!=null&&C.length&&d++,(S=P.religions)!=null&&S.length&&d++,d});return wt(` - .rm-filter { display:flex;flex-direction:column;gap:14px;font:12px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#e7ebf0; } - .rm-filter .row { display:flex;align-items:center;gap:8px; } - .rm-filter label { font-size:11px;color:#a8b2bd;letter-spacing:.04em;text-transform:uppercase;font-weight:600; } - .rm-filter .field { display:flex;flex-direction:column;gap:4px; } - .rm-filter input[type=number], - .rm-filter select, - .rm-filter input[type=search] { background:#0f1216;border:1px solid #2c343f;color:#e7ebf0;padding:6px 8px;border-radius:5px;font-size:12px;min-width:0;flex:1; } - .rm-filter input[type=search] { height:35px;box-sizing:border-box; } - .rm-filter input:focus, - .rm-filter select:focus { outline:none;border-color:#7c8cf8; } - .rm-pop-row { display:grid;grid-template-columns:1fr 1fr;gap:8px; } - .rm-chips { display:flex;flex-wrap:wrap;gap:5px;max-height:140px;overflow-y:auto;padding:4px 2px;border:1px solid #232a33;border-radius:5px;background:#0f1216; } - .rm-chip { background:#232a33;border:1px solid #2c343f;color:#e7ebf0;padding:3px 8px;border-radius:11px;cursor:pointer;font-size:11px;line-height:1.4; } - .rm-chip:hover { background:#2c343f; } - .rm-chip.active { background:rgba(124,140,248,0.18);border-color:#7c8cf8;color:#a8b8ff; } - .rm-empty { padding:8px;color:#a8b2bd;font-size:11px;text-align:center; } - .rm-filter-footer { display:flex;align-items:center;justify-content:space-between;margin-top:6px; } - .rm-pill { background:rgba(124,140,248,0.12);color:#a8b8ff;padding:2px 8px;border-radius:11px;font-size:11px;font-weight:600; } - .rm-link-btn { background:none;border:none;color:#7c8cf8;cursor:pointer;font-size:11px;padding:0; } - .rm-link-btn:hover { text-decoration:underline; } - @media (pointer:coarse) { .rm-link-btn { min-height: 24px; } } -`,"research-map-filter-panel"),(P,d)=>(ae(),pe("div",IL,[M("div",OL,[M("label",null,ye(t("population","Population")),1),M("div",DL,[M("input",{type:"number",min:"0",placeholder:t("min","min"),value:s.value,onInput:d[0]||(d[0]=C=>s.value=C.target.value)},null,40,BL),M("input",{type:"number",min:"0",placeholder:t("max","max"),value:r.value,onInput:d[1]||(d[1]=C=>r.value=C.target.value)},null,40,GL)])]),M("div",jL,[M("label",null,ye(t("engagement","Engagement")),1),M("select",{value:i.value,onChange:d[2]||(d[2]=C=>i.value=C.target.value)},[M("option",zL,ye(t("any","Any")),1),M("option",HL,ye(t("engaged","Engaged")),1),M("option",VL,ye(t("unengaged","Unengaged")),1)],40,UL)]),M("div",KL,[M("label",null,ye(t("adoption","Adoption")),1),M("select",{value:l.value,onChange:d[3]||(d[3]=C=>l.value=C.target.value)},[M("option",WL,ye(t("any","Any")),1),M("option",YL,ye(t("adopted","Adopted")),1),M("option",XL,ye(t("unadopted","Unadopted")),1)],40,qL)]),M("div",ZL,[M("label",null,ye(t("language","Language")),1),qr(M("input",{type:"search","onUpdate:modelValue":d[4]||(d[4]=C=>v.value=C),placeholder:t("search_languages","Search languages…")},null,8,JL),[[Gu,v.value]]),M("div",QL,[_.value.length?Le("",!0):(ae(),pe("span",eS,ye(t("no_languages","No languages loaded yet")),1)),(ae(!0),pe(ze,null,Rt(_.value,C=>(ae(),pe("button",{key:C,class:Re(["rm-chip",{active:h(C)}]),onClick:S=>f(C)},ye(C),11,tS))),128))])]),M("div",oS,[M("label",null,ye(t("religion","Religion")),1),qr(M("input",{type:"search","onUpdate:modelValue":d[5]||(d[5]=C=>b.value=C),placeholder:t("search_religions","Search religions…")},null,8,nS),[[Gu,b.value]]),M("div",aS,[$.value.length?Le("",!0):(ae(),pe("span",sS,ye(t("no_religions","No religions loaded yet")),1)),(ae(!0),pe(ze,null,Rt($.value,C=>(ae(),pe("button",{key:C,class:Re(["rm-chip",{active:m(C)}]),onClick:S=>A(C)},ye(C),11,rS))),128))])]),M("div",iS,[M("span",lS,ye(t("active_count","{n} active").replace("{n}",g.value)),1),M("button",{class:"rm-link-btn",onClick:w},ye(t("reset_all","Reset all")),1)])]))}},_g="pplrInstance";function uS(e){return{instanceId:e,selection:he(null),activeTab:he(0),activeTabTouched:he(!1),isSearching:he(!1),geocoderText:he(""),pinDetail:he(null),theme:he("dark")}}function pS(e){vt(_g,e)}function dS(){return Ne(_g,null)}const gS="",fS=["data-theme"],hS={class:"stl-inner"},mS={class:"stl-tb-caret-slot"},bS=["title","aria-label","aria-expanded"],$S={class:"stl-tb-eyebrow"},yS=["title","aria-label"],_S=["title"],vS={key:2,class:"stl-tb-title"},kS={key:3,class:"stl-export"},wS=["aria-expanded"],xS={class:"stl-export-menu",role:"menu"},LS={key:0,class:"stl-tabs-wrap"},SS={class:"stl-tabs"},AS=["onClick"],PS=["title","onClick"],CS={key:0,class:"stl-info-pop"},ES={class:"stl-col-hdr"},TS={class:"stl-hdr-name"},NS=["title"],RS={key:0,class:"stl-sort-arrow"},MS=["title"],FS={key:0,class:"stl-sort-arrow"},IS=["data-stl-node-id","onClick"],OS=["aria-expanded","aria-label","onClick"],DS={key:1,class:"stl-caret-sp"},BS={key:3,class:"stl-dot-sp"},GS={class:"stl-name"},jS={key:4,class:"stl-num"},US={key:5,class:"stl-num"},zS={class:"stl-x-slot"},HS=["title","aria-label"],VS={key:0,class:"stl-empty stl-loading"},KS={key:1,class:"stl-empty"},qS={key:2,class:"stl-empty"},WS={key:3,class:"stl-overflow"},YS=["data-theme"],XS={class:"stl-reopen-label"},vg=nn({__name:"SemanticTreeLegend",props:{nodes:{type:Array,default:()=>[]},tabs:{type:Array,default:null},defaultTab:{type:Number,default:0},columns:{type:Array,default:()=>["count","pop"]},title:{type:String,default:"Legend"},hideTabs:{type:Boolean,default:!1},columnLabel:{type:String,default:""},open:{type:Boolean,default:null},exportEnabled:{type:Boolean,default:!1},progress:{type:Object,default:null}},emits:["select","update:open","export"],setup(e,{emit:t}){const o=V=>String(V).split(".").pop().replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^./,se=>se.toUpperCase());let n=V=>o(V),a=()=>!1;try{const V=bt();n=V.t,a=V.te}catch{}function s(V){const se="tabs."+((V==null?void 0:V.i18nKey)||(V==null?void 0:V.id));return V&&a(se)?n(se):(V==null?void 0:V.label)??""}function r(V){const se="legend.tabInfo."+((V==null?void 0:V.i18nKey)||(V==null?void 0:V.id));return V&&a(se)?n(se):(V==null?void 0:V.info)??""}const i=e,l=t,c=dS(),u=Ne("legendProgress",null),p=oe(()=>i.progress??ge(u)??null),f=oe(()=>p.value?n("legend.progress.title"):i.title),A=oe(()=>((c==null?void 0:c.theme.value)||"dark")==="dark");function v(V,se){var ve;for(const Se of V||[]){if((Se==null?void 0:Se.id)===se)return Se;const Ie=(ve=Se==null?void 0:Se.children)!=null&&ve.length?v(Se.children,se):null;if(Ie)return Ie}return null}function b(V){const se=v(g.value,V);se&&k(se)}function _(V,se=0){return V!=null&&V.length?Math.max(...V.map(ve=>_(ve.children??[],se+1))):se}function $(V,se,ve=0){return ve===se?V.slice():V.flatMap(Se=>$(Se.children??[],se,ve+1))}function h(V,se,ve=[]){var Se;for(const Ie of V){if(Ie.id===se)return ve;if((Se=Ie.children)!=null&&Se.length){const rt=h(Ie.children,se,[...ve,Ie]);if(rt)return rt}}return null}function m(V,se=new Set){var ve;if(!((ve=V==null?void 0:V.children)!=null&&ve.length))return se;for(const Se of V.children)se.add(Se.id),m(Se,se);return se}function w(V,se="root"){var Se;if(!Array.isArray(V))return[];const ve=[];for(const Ie of V){if(!Ie||typeof Ie!="object"){try{console.warn("[SemanticTreeLegend] dropped null node under",se)}catch{}continue}ve.push((Se=Ie.children)!=null&&Se.length?{...Ie,children:w(Ie.children,Ie.label||Ie.id||se)}:Ie)}return ve}const g=oe(()=>w(i.nodes)),P=oe(()=>_(g.value)),d=oe(()=>{const V=i.tabs??[],se=V.length||P.value+1;return Array.from({length:se},(ve,Se)=>V[Se]??{id:`gen${Se+1}`,label:`Generation ${Se+1}`})}),C=he(Math.max(0,i.defaultTab|0)),S=he(new Set),G=he(null),H=he(i.open!==null?i.open:!0),J=he(null),U=he(!1),{scrimRef:D,scrimStyle:L}=hg(U),y=he(null),R=he("desc"),z=oe({get:()=>{var V;return i.hideTabs?0:c&&!((V=c.activeTabTouched)!=null&&V.value)?Math.min(Math.max(0,i.defaultTab|0),Math.max(0,d.value.length-1)):c?c.activeTab.value:C.value},set:V=>{i.hideTabs||(c?(c.activeTab.value=V,c.activeTabTouched&&(c.activeTabTouched.value=!0)):C.value=V)}}),K=oe({get:()=>c?c.selection.value:G.value,set:V=>{c?c.selection.value=V:G.value=V}}),Q=oe(()=>{var V;return((V=K.value)==null?void 0:V.id)||null}),ie=he(null);Fe(()=>i.open,V=>{V!==null&&(H.value=V)}),Fe(()=>g.value,()=>{var Ie;const V=c?(Ie=c.activeTabTouched)==null?void 0:Ie.value:!1,se=V?c==null?void 0:c.activeTab.value:void 0,ve=Math.min(Math.max(0,i.defaultTab|0),Math.max(0,d.value.length-1)),Se=typeof se=="number"&&se>=0?se:ve;c?(c.activeTab.value=Se,!V&&c.activeTabTouched&&(c.activeTabTouched.value=!1)):C.value=Se,S.value=new Set,K.value=null,l("select",null)},{deep:!1});let j=null;c&&Fe(()=>c.selection.value,V=>{if((V==null?void 0:V.id)===j)return;if(!V){j=null;return}j=V.id;const se=h(g.value,V.id)||[];typeof V.depth=="number"&&(z.value=Math.min(V.depth,d.value.length-1));const ve=new Set;se.forEach(Se=>ve.add(Se.id)),S.value=ve,l("select",V)});function be(V,se){const ve=(se.pop??0)-(V.pop??0);return ve!==0?ve:(se.count??0)-(V.count??0)}const xe=oe(()=>{if(!y.value)return be;const V=y.value,se=R.value==="asc"?1:-1;return(ve,Se)=>((ve[V]??0)-(Se[V]??0))*se});function fe(V){y.value===V?R.value==="desc"?R.value="asc":(y.value=null,R.value="desc"):(y.value=V,R.value="desc")}const ke=he([]),$e=he(!1);let ne=-1;function te(V){if(ke.value[V]){$e.value=!1;return}$e.value=!0,ne=V,setTimeout(()=>{if(ne!==V)return;const se=[...$(g.value,V)].sort(xe.value),ve=[...ke.value];ve[V]=se,ke.value=ve,$e.value=!1},0)}Fe(z,V=>te(V),{immediate:!0}),Fe(()=>[g.value,y.value,R.value],()=>{ke.value=[],te(z.value)},{deep:!1});const de=oe(()=>ke.value[z.value]||[]),Pe=oe(()=>{var se;const V=(se=d.value[z.value])==null?void 0:se.topLimit;return V?de.value.slice(0,V):de.value}),T=oe(()=>{var se;const V=(se=d.value[z.value])==null?void 0:se.topLimit;return V?Math.max(0,de.value.length-V):0});function F(V,se,ve,Se,Ie){var rt;for(const je of se)je&&(V.push({node:je,relDepth:ve,parent:Se,ancestors:Ie}),S.value.has(je.id)&&((rt=je.children)!=null&&rt.length)&&F(V,[...je.children].sort(xe.value),ve+1,je,[...Ie,je]))}const I=oe(()=>{const V=[];F(V,Pe.value,0,null,[]);for(let se=0;seIe+1&&ft.ancestors[Ie]}if(Ie===ve.relDepth-1){let Gt=!1;for(let ft=se+1;ftQ.value!==null),Y=oe(()=>i.columns.includes("count")),O=oe(()=>i.columns.includes("pop")),ue=oe(()=>K.value?m(K.value):new Set),ee=oe(()=>{var rt;const V=K.value;if(!V)return null;const se=h(g.value,V.id);if(!se||!se.length)return null;const ve=se[se.length-1],Se=se.length-1,Ie=((rt=d.value[Se])==null?void 0:rt.label)||"Parent";return{node:ve,tabName:Ie,depth:Se}});function k(V){Q.value===V.id?(j=null,K.value=null,l("select",null)):(j=V.id,K.value=V,l("select",V))}function x(V,se){se==null||se.stopPropagation();const ve=new Set(S.value),Se=ve.has(V);if(Se?ve.delete(V):ve.add(V),S.value=ve,Se&&K.value){const Ie=h(g.value,K.value.id);Ie&&Ie.some(rt=>rt.id===V)&&(j=null,K.value=null,l("select",null))}}function B(){const V=ee.value;V!=null&&V.node&&(!i.hideTabs&&typeof V.depth=="number"&&(z.value=V.depth),S.value=new Set,k(V.node))}function X(V){if(z.value===V){J.value=J.value===V?null:V;return}z.value=V,S.value=new Set,j=null,K.value=null,J.value=null,l("select",null)}function me(V){V==null||V.stopPropagation(),j=null,K.value=null,l("select",null)}function ce(V,se){se==null||se.stopPropagation(),J.value=J.value===V?null:V}function Z(V){V==null||V.stopPropagation(),U.value=!U.value}function le(V){U.value=!1,l("export",V)}Fe(Q,V=>{V||(U.value=!1)});function Ce(V){let se=V.parentElement;for(;se;){const ve=getComputedStyle(se).overflowY;if((ve==="auto"||ve==="scroll")&&se.scrollHeight>se.clientHeight+1){const Se=V.getBoundingClientRect(),Ie=se.getBoundingClientRect();se.scrollTop+=Se.top-Ie.top-8}se=se.parentElement}}let Te=0;Fe(Q,async V=>{if(!V)return;const se=++Te,ve=ie.value;if(!ve)return;await It();const Se=(Ie=0)=>{if(se!==Te)return;const rt=ve.querySelector(`[data-stl-node-id="${CSS.escape(String(V))}"]`);rt&&Ce(rt),Ie<6&&setTimeout(()=>Se(Ie+1),70)};Se(0)});function qe(V){return V?V>=1e6?(V/1e6).toFixed(1)+"M":V>=1e3?Math.round(V/1e3)+"k":V.toLocaleString():"—"}function nt(V){return V!=null?V.toLocaleString():"—"}function Qe(V){var se;return{selected:Q.value===V.node.id,descendant:W.value&&ue.value.has(V.node.id),child:V.relDepth>0,leaf:!((se=V.node.children)!=null&&se.length)}}return wt(` -.stl-inner { - --stl-pad-x: 10px; - --stl-gap: 6px; - --stl-caret-w: 14px; - --stl-dot-w: 8px; - --stl-num-w: 60px; - --stl-x-w: 22px; - flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; - background: #161b22; border: 1px solid #30363d; - border-radius: var(--map-radius, 16px); - box-shadow: 0 6px 24px rgba(0,0,0,0.45); - overflow: hidden; -} -.stl-panel { - position: absolute; left: 8px; top: var(--stl-top, 60px); width: var(--map-legend-width, 380px); z-index: 4; - display: flex; flex-direction: column; - max-height: calc(100% - var(--stl-top, 60px) - 12px); - transition: transform 0.25s cubic-bezier(0.2, 0, 0, 1), opacity 0.2s; - pointer-events: auto; -} -.stl-panel.closed { transform: translateX(-100%); opacity: 0; pointer-events: none; } -.stl-panel.fit-content { max-height: calc(100% - var(--stl-top, 60px) - 12px); } -.stl-titlebar { - display: flex; align-items: center; gap: 6px; - padding: 8px 12px; flex-shrink: 0; - border-bottom: 1px solid #21262d; - min-height: 32px; -} -.stl-tb-caret-slot { display: flex; align-items: center; justify-content: center; flex-shrink: 0; } -.stl-tb-caret-slot:empty { display: none; } -.stl-titlebar.has-progress { flex-wrap: wrap; row-gap: 7px; } -.stl-progress { flex: 1 1 100%; min-width: 0; } -.stl-tb-title, -.stl-tb-eyebrow { - font: 600 10px ui-monospace, monospace; - color: #73A17F; text-transform: uppercase; letter-spacing: 0.07em; - flex-shrink: 0; -} -.stl-tb-eyebrow { color: #6e7681; font-size: 9px; letter-spacing: 0.08em; } -.stl-tb-dot { - width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; - box-shadow: 0 0 0 1px rgba(0,0,0,0.4), 0 0 0 3px rgba(115,161,127,0.15); -} -.stl-tb-text { - flex: 1; min-width: 0; - font: 600 12px system-ui; color: #e6edf3; - overflow: hidden; text-overflow: ellipsis; white-space: nowrap; -} -.stl-tb-up { - flex: 1; min-width: 0; - display: inline-flex; align-items: center; gap: 6px; - background: transparent; border: 1px solid transparent; border-radius: 6px; - margin: -2px -4px; padding: 2px 6px 2px 4px; - cursor: pointer; text-align: left; - transition: background 0.12s, border-color 0.12s, color 0.12s; -} -.stl-tb-up:hover { background: rgba(115,161,127,0.10); border-color: rgba(115,161,127,0.35); } -.stl-tb-up:focus-visible { - outline: none; - border-color: #73A17F; - box-shadow: 0 0 0 2px rgba(115,161,127,0.30); -} -.stl-tb-up .stl-tb-text { - flex: 1; min-width: 0; - font: 600 12px system-ui; color: #e6edf3; - overflow: hidden; text-overflow: ellipsis; white-space: nowrap; -} -.stl-tb-up:hover .stl-tb-text { color: #fff; } -.stl-tb-up-icon { color: #73A17F; flex-shrink: 0; } -.stl-panel[data-theme="light"] .stl-tb-up:hover { - background: rgba(59,70,61,0.08); border-color: rgba(59,70,61,0.3); -} -.stl-panel[data-theme="light"] .stl-tb-up:focus-visible { - border-color: #3b463d; box-shadow: 0 0 0 2px rgba(59,70,61,0.25); -} -.stl-panel[data-theme="light"] .stl-tb-up .stl-tb-text { color: #1f2328; } -.stl-panel[data-theme="light"] .stl-tb-up-icon { color: #3b463d; } -.stl-tabs-wrap { flex-shrink: 0; } -.stl-tabs { - display: flex; flex-wrap: nowrap; gap: 4px; - padding: 6px 8px; - border-bottom: 1px solid #21262d; - overflow-x: auto; - scrollbar-width: none; -} -.stl-tabs::-webkit-scrollbar { display: none; } -.stl-tab-chip { - display: inline-flex; align-items: stretch; flex-shrink: 0; - background: #1c2333; border: 1px solid #30363d; border-radius: 6px; - overflow: hidden; transition: border-color 0.12s, box-shadow 0.12s; -} -.stl-tab-chip:hover { border-color: #484f58; } -.stl-tab-chip.active { - background: #3b463d; border-color: #73A17F; - box-shadow: 0 0 0 2px rgba(115,161,127,0.22), 0 1px 4px rgba(59,70,61,0.4); -} -.stl-tab { - display: inline-flex; align-items: center; - background: transparent; border: none; - color: #8b949e; font: 600 10px ui-monospace, monospace; - text-transform: uppercase; letter-spacing: 0.04em; - padding: 4px 8px; cursor: pointer; white-space: nowrap; -} -.stl-tab:hover { color: #c9d1d9; } -.stl-tab-chip.active .stl-tab { color: #fff; } -.stl-tab-info { - background: rgba(110,118,129,0.15); border: none; border-left: 1px solid #30363d; - color: #6e7681; cursor: pointer; - width: 18px; padding: 0; font: 700 9px ui-monospace, monospace; -} -.stl-tab-info:hover { background: rgba(59,70,61,0.2); color: #73A17F; } -.stl-tab-chip.active .stl-tab-info { - border-left-color: rgba(0,0,0,0.3); color: #fff; - background: rgba(0,0,0,0.2); -} -.stl-info-pop { - margin: 2px 8px 6px; padding: 7px 10px; - background: #0d1117; border: 1px solid #30363d; border-radius: 6px; - font: 11px system-ui; color: #c9d1d9; line-height: 1.45; -} -.stl-col-hdr, -.stl-row { - display: flex; align-items: center; gap: var(--stl-gap); - padding: 0 var(--stl-pad-x); -} -.stl-col-hdr { - height: 26px; flex-shrink: 0; - background: #0d1117; border-bottom: 1px solid #21262d; -} -.stl-hdr-name { - flex: 1; min-width: 0; - font: 700 11px ui-monospace, monospace; - color: #8b949e; text-transform: uppercase; letter-spacing: 0.04em; -} -.stl-hdr-num { - width: var(--stl-num-w); text-align: center; flex-shrink: 0; - font: 600 9px ui-monospace, monospace; - color: #6e7681; text-transform: uppercase; letter-spacing: 0.05em; - background: transparent; border: none; cursor: pointer; - padding: 0; transition: color 0.1s; - display: inline-flex; align-items: center; justify-content: center; gap: 3px; -} -.stl-hdr-num:hover { color: #c9d1d9; } -@media (pointer:coarse) { .stl-hdr-num { min-height: 24px; } } -.stl-hdr-num.active { color: #73A17F; } -.stl-sort-arrow { font-size: 8px; } -.stl-rows { flex: 1; overflow-y: auto; padding-bottom: 6px; } -.stl-rows::-webkit-scrollbar { width: 6px; } -.stl-rows::-webkit-scrollbar-track { background: transparent; } -.stl-rows::-webkit-scrollbar-thumb { background: #21262d; border-radius: 3px; } -.stl-rows::-webkit-scrollbar-thumb:hover { background: #30363d; } -.stl-empty { - padding: 20px 12px; text-align: center; - font: 11px system-ui; color: #484f58; -} -.stl-loading { - display: inline-flex; align-items: center; gap: 8px; - width: 100%; justify-content: center; - color: #73A17F; -} -.stl-spinner { - width: 12px; height: 12px; border-radius: 50%; - border: 2px solid rgba(115,161,127,0.25); - border-top-color: #73A17F; - animation: stl-spin 0.7s linear infinite; -} -@keyframes stl-spin { to { transform: rotate(360deg); } } -.stl-overflow { - padding: 8px 10px; margin: 4px 0 0; - background: #0d1117; border-top: 1px dashed #30363d; - text-align: center; font: 10px system-ui; color: #6e7681; -} -.stl-overflow-hint { color: #73A17F; } -.stl-row { - min-height: 27px; - cursor: pointer; transition: opacity 0.12s, background 0.1s; - border-bottom: 1px solid rgba(33,38,45,0.45); -} -.stl-row:last-child { border-bottom: none; } -.stl-row:hover { background: rgba(255,255,255,0.04); } -.stl-row.child .stl-name { color: #adbac7; } -.stl-row.leaf .stl-name { font-style: italic; } -.stl-rows.has-sel .stl-row:not(.selected):not(.descendant) { opacity: 0.30; } -.stl-rows.has-sel .stl-row:not(.selected):not(.descendant):hover { opacity: 0.6; } -.stl-rows.has-sel .stl-row.descendant { opacity: 1; } -.stl-rows.has-sel .stl-row.selected { - opacity: 1; - background: rgba(255,255,255,0.05); - box-shadow: - inset 3px 0 0 0 var(--row-color, #73A17F), - inset 0 0 0 1px rgba(255,255,255,0.05), - 0 0 14px -2px var(--row-color, rgba(115,161,127,0.4)); -} -.stl-panel[data-theme="light"] .stl-rows.has-sel .stl-row.selected { - background: rgba(255,255,255,0.7); - box-shadow: - inset 3px 0 0 0 var(--row-color, #3b463d), - inset 0 0 0 1px rgba(0,0,0,0.04), - 0 0 14px -2px var(--row-color, rgba(59,70,61,0.35)); -} -.stl-caret-sp { width: var(--stl-caret-w); flex-shrink: 0; } -.stl-dot-sp { width: var(--stl-dot-w); flex-shrink: 0; } -.stl-x-slot { - width: var(--stl-x-w); flex-shrink: 0; - display: flex; align-items: center; justify-content: center; -} -.stl-trunk { position: relative; flex-shrink: 0; width: 12px; align-self: stretch; } -.stl-trunk-pipe::before { - content: ''; position: absolute; - left: 5px; top: 0; bottom: 0; width: 1px; - background: var(--trunk-color, #6e7681); - opacity: 0.45; -} -.stl-trunk-tee::before { - content: ''; position: absolute; - left: 5px; top: 0; bottom: 0; width: 1px; - background: var(--trunk-color, #6e7681); - opacity: 0.45; -} -.stl-trunk-tee::after { - content: ''; position: absolute; - left: 5px; top: 50%; height: 1px; width: 7px; - background: var(--trunk-color, #6e7681); - opacity: 0.55; -} -.stl-trunk-elbow::before { - content: ''; position: absolute; - left: 5px; top: 0; height: 50%; width: 1px; - background: var(--trunk-color, #6e7681); - opacity: 0.45; -} -.stl-trunk-elbow::after { - content: ''; position: absolute; - left: 5px; top: calc(50% - 0.5px); height: 1px; width: 7px; - background: var(--trunk-color, #6e7681); - opacity: 0.55; -} -.stl-row.selected .stl-trunk-pipe::before, -.stl-row.selected .stl-trunk-tee::before, -.stl-row.selected .stl-trunk-tee::after, -.stl-row.selected .stl-trunk-elbow::before, -.stl-row.selected .stl-trunk-elbow::after, -.stl-row.descendant .stl-trunk-pipe::before, -.stl-row.descendant .stl-trunk-tee::before, -.stl-row.descendant .stl-trunk-tee::after, -.stl-row.descendant .stl-trunk-elbow::before, -.stl-row.descendant .stl-trunk-elbow::after { - opacity: 0.85; -} -.stl-caret { - background: none; border: none; padding: 0; cursor: pointer; - color: #6e7681; width: var(--stl-caret-w); height: var(--stl-caret-w); flex-shrink: 0; - display: flex; align-items: center; justify-content: center; - border-radius: 3px; -} -.stl-caret svg { transition: transform 0.15s; } -.stl-caret.open svg { transform: rotate(90deg); } -.stl-caret:hover { color: #c9d1d9; background: rgba(255,255,255,0.06); } -.stl-dot { - width: var(--stl-dot-w); height: var(--stl-dot-w); border-radius: 50%; flex-shrink: 0; - box-shadow: 0 0 0 1px rgba(0,0,0,0.4); -} -.stl-row.selected .stl-dot { - box-shadow: 0 0 0 1px rgba(0,0,0,0.4), 0 0 0 3px rgba(115,161,127,0.25); -} -.stl-name { - flex: 1; min-width: 0; - font: 11.5px system-ui, sans-serif; color: #e6edf3; - white-space: normal; word-wrap: break-word; overflow-wrap: break-word; - line-height: 1.3; -} -.stl-num { - width: var(--stl-num-w); text-align: center; flex-shrink: 0; - font: 10.5px ui-monospace, monospace; color: #8b949e; - font-variant-numeric: tabular-nums; -} -.stl-row.selected .stl-num { color: #e6edf3; } -.stl-x-chip { - background: rgba(110,118,129,0.12); border: none; border-radius: 50%; - color: #6e7681; cursor: pointer; - width: 16px; height: 16px; - display: flex; align-items: center; justify-content: center; - transition: color 0.12s, background 0.12s; -} -.stl-x-chip:hover { color: #c9d1d9; background: rgba(110,118,129,0.25); } -.stl-collapse-btn { - background: rgba(110,118,129,0.15); border: 1px solid #30363d; border-radius: 5px; - color: #8b949e; cursor: pointer; - width: 22px; height: 20px; flex-shrink: 0; - display: flex; align-items: center; justify-content: center; - transition: color 0.1s, background 0.1s, transform 0.18s; -} -.stl-collapse-btn:hover { color: #c9d1d9; background: rgba(59,70,61,0.18); border-color: #73A17F; } -.stl-collapse-btn svg { transition: transform 0.18s; transform: rotate(180deg); } -.stl-reopen { - position: absolute; left: 8px; top: 60px; z-index: 3; - display: inline-flex; align-items: center; gap: 8px; - background: #0d1117; border: 1px solid #30363d; - border-radius: 999px; - color: #c9d1d9; cursor: pointer; - height: 36px; - padding: 0 14px 0 12px; - box-shadow: 0 4px 14px rgba(0,0,0,0.25); - font: 600 11px ui-monospace, monospace; - text-transform: uppercase; letter-spacing: 0.06em; - max-width: 320px; - transition: color 0.12s, background 0.12s, border-color 0.12s, transform 0.12s, box-shadow 0.12s; -} -.stl-reopen:hover { - color: #fff; background: #1c2333; border-color: #73A17F; - box-shadow: 0 6px 20px rgba(59,70,61,0.25); - transform: translateY(-1px); -} -.stl-reopen-icon { color: #73A17F; flex-shrink: 0; } -.stl-reopen-label { - display: inline-flex; align-items: center; gap: 6px; - min-width: 0; max-width: 200px; - white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - text-transform: none; letter-spacing: 0; - font: 600 12px system-ui, sans-serif; -} -.stl-reopen-dot { - width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; - box-shadow: 0 0 0 1px rgba(0,0,0,0.4); -} -.stl-reopen-caret { color: #6e7681; flex-shrink: 0; } -.stl-reopen:hover .stl-reopen-caret { color: #c9d1d9; } -@media (max-width: 640px) { - .stl-panel { width: 92vw; max-width: 380px; --stl-top: 64px; } - .stl-reopen { top: 64px; } -} -.stl-panel[data-theme="light"] .stl-inner { - background: #ffffff; border-color: #d0d7de; - box-shadow: 0 6px 24px rgba(31, 35, 40, 0.12); -} -.stl-panel[data-theme="light"] .stl-titlebar { border-color: #d8dee4; } -.stl-panel[data-theme="light"] .stl-tb-title, -.stl-panel[data-theme="light"] .stl-tb-eyebrow { color: #3b463d; } -.stl-panel[data-theme="light"] .stl-tb-eyebrow { color: #57606a; } -.stl-panel[data-theme="light"] .stl-tb-text { color: #1f2328; } -.stl-panel[data-theme="light"] .stl-collapse-btn { - background: rgba(208,215,222,0.4); border-color: #d0d7de; color: #57606a; -} -.stl-panel[data-theme="light"] .stl-collapse-btn:hover { - background: rgba(59,70,61,0.12); border-color: #3b463d; color: #3b463d; -} -.stl-panel[data-theme="light"] .stl-tabs { border-color: #d8dee4; } -.stl-panel[data-theme="light"] .stl-tab-chip { background: #f6f8fa; border-color: #d0d7de; } -.stl-panel[data-theme="light"] .stl-tab { color: #57606a; } -.stl-panel[data-theme="light"] .stl-tab:hover { color: #1f2328; } -.stl-panel[data-theme="light"] .stl-tab-chip.active { - background: #3b463d; border-color: #3b463d; - box-shadow: 0 0 0 2px rgba(59,70,61,0.18); -} -.stl-panel[data-theme="light"] .stl-tab-chip.active .stl-tab { color: #fff; } -.stl-panel[data-theme="light"] .stl-tab-info { - background: rgba(208,215,222,0.4); border-color: #d0d7de; color: #57606a; -} -.stl-panel[data-theme="light"] .stl-info-pop { background: #f6f8fa; border-color: #d0d7de; color: #1f2328; } -.stl-panel[data-theme="light"] .stl-col-hdr { background: #f6f8fa; border-color: #d8dee4; } -.stl-panel[data-theme="light"] .stl-hdr-name, -.stl-panel[data-theme="light"] .stl-hdr-num { color: #57606a; } -.stl-panel[data-theme="light"] .stl-hdr-num:hover { color: #3b463d; } -.stl-panel[data-theme="light"] .stl-hdr-num.active { color: #3b463d; } -.stl-panel[data-theme="light"] .stl-rows::-webkit-scrollbar-thumb { background: #d0d7de; } -.stl-panel[data-theme="light"] .stl-rows::-webkit-scrollbar-thumb:hover { background: #afb8c1; } -.stl-panel[data-theme="light"] .stl-empty, -.stl-panel[data-theme="light"] .stl-overflow { - color: #57606a; background: #f6f8fa; border-color: #d8dee4; -} -.stl-panel[data-theme="light"] .stl-overflow-hint { color: #3b463d; } -.stl-panel[data-theme="light"] .stl-row { border-color: rgba(208,215,222,0.5); } -.stl-panel[data-theme="light"] .stl-row:hover { background: rgba(59,70,61,0.04); } -.stl-panel[data-theme="light"] .stl-row.child .stl-name { color: #57606a; } -.stl-panel[data-theme="light"] .stl-name { color: #1f2328; } -.stl-panel[data-theme="light"] .stl-num { color: #57606a; } -.stl-panel[data-theme="light"] .stl-row.selected .stl-num { color: #1f2328; } -.stl-panel[data-theme="light"] .stl-caret { color: #57606a; } -.stl-panel[data-theme="light"] .stl-caret:hover { background: rgba(59,70,61,0.08); color: #3b463d; } -.stl-reopen[data-theme="light"] { - background: #ffffff; border-color: #d0d7de; color: #1f2328; - box-shadow: 0 4px 16px rgba(31,35,40,0.18); -} -.stl-reopen[data-theme="light"]:hover { - background: #f6f8fa; border-color: #3b463d; color: #3b463d; - box-shadow: 0 6px 20px rgba(59,70,61,0.2); -} -.stl-reopen[data-theme="light"] .stl-reopen-icon { color: #3b463d; } -.stl-reopen[data-theme="light"] .stl-reopen-caret { color: #57606a; } -.stl-panel[data-theme="light"] .stl-x-chip { color: #57606a; border-color: rgba(208,215,222,0.6); } -.stl-panel[data-theme="light"] .stl-x-chip:hover { color: #1f2328; background: rgba(208,215,222,0.3); border-color: #afb8c1; } -.stl-export { margin-left: auto; position: relative; flex-shrink: 0; } -.stl-export-btn { - display: inline-flex; align-items: center; gap: 5px; - background: rgba(110,118,129,0.15); border: 1px solid #30363d; border-radius: 6px; - color: #c9d1d9; cursor: pointer; - height: 22px; padding: 0 8px; - font: 600 10px ui-monospace, monospace; text-transform: uppercase; letter-spacing: 0.05em; - transition: color 0.12s, background 0.12s, border-color 0.12s; -} -.stl-export-btn:hover { color: #fff; background: rgba(59,70,61,0.25); border-color: #73A17F; } -.stl-export-btn.open { color: #fff; background: #3b463d; border-color: #73A17F; box-shadow: 0 0 0 2px rgba(115,161,127,0.22); } -.stl-export-btn:focus-visible { outline: none; border-color: #73A17F; box-shadow: 0 0 0 2px rgba(115,161,127,0.3); } -.stl-export-label { line-height: 1; } -.stl-export-backdrop { position: fixed; inset: 0; z-index: 9; } -.stl-export-menu { - position: absolute; right: 0; top: calc(100% + 6px); z-index: 10; - min-width: 168px; - display: flex; flex-direction: column; - background: #0d1117; border: 1px solid #30363d; border-radius: 8px; - box-shadow: 0 8px 24px rgba(0,0,0,0.5); - padding: 4px; overflow: hidden; -} -.stl-export-item { - display: flex; align-items: center; gap: 8px; - background: transparent; border: none; border-radius: 5px; - padding: 7px 8px; width: 100%; text-align: left; - color: #6e7681; cursor: not-allowed; - font: 600 11px system-ui, sans-serif; -} -.stl-export-item[disabled] { opacity: 0.55; } -.stl-export-lock { color: #6e7681; flex-shrink: 0; } -.stl-export-item-label { flex: 1; min-width: 0; } -.stl-export-soon { - flex-shrink: 0; - font: 700 8px ui-monospace, monospace; text-transform: uppercase; letter-spacing: 0.06em; - color: #6e7681; background: rgba(110,118,129,0.15); - border-radius: 4px; padding: 2px 5px; -} -.stl-panel[data-theme="light"] .stl-export-btn { - background: rgba(208,215,222,0.4); border-color: #d0d7de; color: #57606a; -} -.stl-panel[data-theme="light"] .stl-export-btn:hover { color: #3b463d; background: rgba(59,70,61,0.12); border-color: #3b463d; } -.stl-panel[data-theme="light"] .stl-export-btn.open { color: #fff; background: #3b463d; border-color: #3b463d; } -.stl-panel[data-theme="light"] .stl-export-menu { background: #ffffff; border-color: #d0d7de; box-shadow: 0 8px 24px rgba(31,35,40,0.18); } -.stl-panel[data-theme="light"] .stl-export-item { color: #57606a; } -.stl-panel[data-theme="light"] .stl-export-lock { color: #57606a; } -.stl-panel[data-theme="light"] .stl-export-soon { color: #57606a; background: rgba(208,215,222,0.5); } -.stl-panel:not(.legend-mobile-sheet *) .stl-tb-title, -.stl-panel:not(.legend-mobile-sheet *) .stl-tb-text { font-size: 14px; } -.stl-panel:not(.legend-mobile-sheet *) .stl-tb-eyebrow { font-size: 11px; } -.stl-panel:not(.legend-mobile-sheet *) .stl-tab { font-size: 12px; } -.stl-panel:not(.legend-mobile-sheet *) .stl-hdr-name { font-size: 13px; } -.stl-panel:not(.legend-mobile-sheet *) .stl-hdr-num { font-size: 10px; } -.stl-panel:not(.legend-mobile-sheet *) .stl-name { font-size: 15px; } -.stl-panel:not(.legend-mobile-sheet *) .stl-num { font-size: 13px; } -.stl-panel:not(.legend-mobile-sheet *) .stl-inner { --stl-num-w: 70px; } -.stl-panel:not(.legend-mobile-sheet *) .stl-hdr-num, -.stl-panel:not(.legend-mobile-sheet *) .stl-num { white-space: nowrap; } -.stl-panel:not(.legend-mobile-sheet *) .stl-info-pop { font-size: 13px; } -.stl-panel:not(.legend-mobile-sheet *) .stl-empty, -.stl-panel:not(.legend-mobile-sheet *) .stl-overflow { font-size: 12.5px; } -`,"semantic-tree-legend"),(V,se)=>{var ve,Se,Ie,rt;return ae(),pe(ze,null,[M("div",{class:Re(["stl-panel",{closed:!H.value,"fit-content":e.hideTabs}]),"data-theme":((ve=ge(c))==null?void 0:ve.theme.value)||"dark"},[M("div",hS,[M("div",{class:Re(["stl-titlebar",{"has-progress":!!p.value}])},[M("span",mS,[fn(V.$slots,"title-caret",{},void 0,!0)]),V.$slots["title-caret"]?Le("",!0):(ae(),pe("button",{key:0,class:Re(["stl-collapse-btn",{closed:!H.value}]),title:H.value?ge(n)("aria.collapseLegend"):ge(n)("aria.expandLegend"),"aria-label":H.value?ge(n)("aria.collapseLegend"):ge(n)("aria.expandLegend"),"aria-expanded":String(H.value),onClick:se[0]||(se[0]=je=>{H.value=!H.value,l("update:open",H.value)})},[...se[8]||(se[8]=[M("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[M("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,bS)),ee.value&&K.value?(ae(),pe(ze,{key:1},[M("span",$S,ye(ee.value.tabName),1),M("button",{type:"button",class:"stl-tb-up",title:`Go up to ${ee.value.node.label}`,"aria-label":`Go up to ${ee.value.tabName} ${ee.value.node.label}`,onClick:gt(B,["stop"])},[se[9]||(se[9]=M("svg",{class:"stl-tb-up-icon",width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[M("path",{d:"M3 7.5L6 4.5L9 7.5",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),ee.value.node.color?(ae(),pe("span",{key:0,class:"stl-tb-dot",style:dt({background:ee.value.node.color})},null,4)):Le("",!0),M("span",{class:"stl-tb-text",title:ee.value.node.label},ye(ee.value.node.label),9,_S)],8,yS)],64)):(ae(),pe("span",vS,ye(f.value),1)),e.exportEnabled&&K.value?(ae(),pe("div",kS,[M("button",{type:"button",class:Re(["stl-export-btn",{open:U.value}]),"aria-expanded":U.value?"true":"false","aria-haspopup":"menu",title:"Export selection","aria-label":"Export selection",onClick:gt(Z,["stop"])},[...se[10]||(se[10]=[M("svg",{width:"11",height:"11",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true"},[M("path",{d:"M7 1.5V9M7 1.5L4.2 4.3M7 1.5L9.8 4.3",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),M("path",{d:"M2 9.5V11.5C2 12.05 2.45 12.5 3 12.5H11C11.55 12.5 12 12.05 12 11.5V9.5",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"})],-1),M("span",{class:"stl-export-label"},"Export",-1)])],10,wS),U.value?(ae(),pe(ze,{key:0},[M("div",{ref_key:"scrimRef",ref:D,style:dt(ge(L)),class:"stl-export-backdrop",onClick:se[1]||(se[1]=gt(je=>U.value=!1,["stop"]))},null,4),M("div",xS,[M("button",{type:"button",class:"stl-export-item",role:"menuitem",onClick:se[2]||(se[2]=gt(je=>le("poster"),["stop"]))},[...se[11]||(se[11]=[M("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[M("rect",{x:"2",y:"1.5",width:"8",height:"9",rx:"1",stroke:"currentColor","stroke-width":"1.3"}),M("path",{d:"M4 4.5H8M4 6.5H8M4 8.5H6.5",stroke:"currentColor","stroke-width":"1.1","stroke-linecap":"round"})],-1),M("span",{class:"stl-export-item-label"},"Poster",-1)])]),M("button",{type:"button",class:"stl-export-item",role:"menuitem",onClick:se[3]||(se[3]=gt(je=>le("packet"),["stop"]))},[...se[12]||(se[12]=[am('Packet',2)])])])],64)):Le("",!0)])):Le("",!0),p.value?(ae(),et(ug,{key:4,class:"stl-progress","show-text":!1,covered:p.value.covered,total:p.value.total,segments:p.value.segments,"is-dark":A.value,"fmt-count":nt,onSelectSegment:b},null,8,["covered","total","segments","is-dark"])):Le("",!0)],2),e.hideTabs?Le("",!0):(ae(),pe("div",LS,[M("div",SS,[(ae(!0),pe(ze,null,Rt(d.value,(je,Gt)=>(ae(),pe("div",{key:je.id,class:Re(["stl-tab-chip",{active:z.value===Gt}])},[M("button",{class:"stl-tab",onClick:ft=>X(Gt)},ye(s(je)),9,AS),je.info?(ae(),pe("button",{key:0,class:"stl-tab-info",title:r(je),onClick:ft=>ce(Gt,ft)},"i",8,PS)):Le("",!0)],2))),128))]),J.value!==null&&((Se=d.value[J.value])!=null&&Se.info)?(ae(),pe("div",CS,ye(r(d.value[J.value])),1)):Le("",!0)])),M("div",ES,[se[13]||(se[13]=M("span",{class:"stl-caret-sp"},null,-1)),se[14]||(se[14]=M("span",{class:"stl-dot-sp"},null,-1)),M("span",TS,ye(e.columnLabel||(e.hideTabs?e.title:s(d.value[z.value])||ge(n)("legend.columns.name"))),1),Y.value?(ae(),pe("button",{key:0,class:Re(["stl-hdr-num",{active:y.value==="count"}]),title:ge(n)("legend.sortByUpgs"),onClick:se[4]||(se[4]=je=>fe("count"))},[Pt(ye(ge(n)("legend.columns.upgs"))+" ",1),y.value==="count"?(ae(),pe("span",RS,ye(R.value==="desc"?"▼":"▲"),1)):Le("",!0)],10,NS)):Le("",!0),O.value?(ae(),pe("button",{key:1,class:Re(["stl-hdr-num",{active:y.value==="pop"}]),title:ge(n)("legend.sortByPop"),onClick:se[5]||(se[5]=je=>fe("pop"))},[Pt(ye(ge(n)("legend.columns.population"))+" ",1),y.value==="pop"?(ae(),pe("span",FS,ye(R.value==="desc"?"▼":"▲"),1)):Le("",!0)],10,MS)):Le("",!0),se[15]||(se[15]=M("span",{class:"stl-x-slot"},null,-1))]),M("div",{class:Re(["stl-rows",{"has-sel":W.value}]),ref_key:"rowsContainer",ref:ie},[(ae(!0),pe(ze,null,Rt(I.value,je=>{var Gt,ft;return ae(),pe("div",{key:je.node.id,class:Re(["stl-row",Qe(je)]),"data-stl-node-id":je.node.id,style:dt({"--trunk-color":((Gt=je.parent)==null?void 0:Gt.color)||"#6e7681","--row-color":je.node.color||"#73A17F"}),onClick:eo=>k(je.node)},[(ae(!0),pe(ze,null,Rt(je.trunks,(eo,xl)=>(ae(),pe("span",{key:`tr${xl}`,class:Re(["stl-trunk",`stl-trunk-${eo}`])},null,2))),128)),(ft=je.node.children)!=null&&ft.length?(ae(),pe("button",{key:0,class:Re(["stl-caret",{open:S.value.has(je.node.id)}]),"aria-expanded":S.value.has(je.node.id)?"true":"false","aria-label":ge(n)(S.value.has(je.node.id)?"legend.a11y.collapseRow":"legend.a11y.expandRow",{label:je.node.label}),onClick:gt(eo=>x(je.node.id,eo),["stop"])},[...se[16]||(se[16]=[M("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[M("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,OS)):(ae(),pe("span",DS)),je.node.color?(ae(),pe("span",{key:2,class:"stl-dot",style:dt({background:je.node.color})},null,4)):(ae(),pe("span",BS)),M("span",GS,ye(je.node.label),1),Y.value?(ae(),pe("span",jS,ye(nt(je.node.count)),1)):Le("",!0),O.value?(ae(),pe("span",US,ye(qe(je.node.pop)),1)):Le("",!0),M("span",zS,[Q.value===je.node.id?(ae(),pe("button",{key:0,class:"stl-x-chip",title:ge(n)("legend.a11y.clearSelection"),"aria-label":ge(n)("legend.a11y.clearSelection"),onClick:se[6]||(se[6]=gt(eo=>me(eo),["stop"]))},[...se[17]||(se[17]=[M("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[M("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,HS)):Le("",!0)])],14,IS)}),128)),$e.value&&!I.value.length?(ae(),pe("div",VS,[se[18]||(se[18]=M("span",{class:"stl-spinner"},null,-1)),M("span",null,"Loading "+ye(((Ie=d.value[z.value])==null?void 0:Ie.label)||"rows")+"…",1)])):!I.value.length&&e.nodes.length===0?(ae(),pe("div",KS,"Loading data…")):I.value.length?Le("",!0):(ae(),pe("div",qS,"No data at this level")),T.value>0?(ae(),pe("div",WS,[Pt(" Showing top "+ye(d.value[z.value].topLimit.toLocaleString())+" of "+ye(de.value.length.toLocaleString())+" — ",1),se[19]||(se[19]=M("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):Le("",!0)],2)])],10,fS),H.value?Le("",!0):(ae(),pe("button",{key:0,class:"stl-reopen","data-theme":((rt=ge(c))==null?void 0:rt.theme.value)||"dark",title:"Expand legend",onClick:se[7]||(se[7]=je=>{H.value=!0,l("update:open",!0)})},[se[20]||(se[20]=M("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[M("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),M("span",XS,[K.value?(ae(),pe(ze,{key:0},[K.value.color?(ae(),pe("span",{key:0,class:"stl-reopen-dot",style:dt({background:K.value.color})},null,4)):Le("",!0),Pt(" "+ye(K.value.label),1)],64)):(ae(),pe(ze,{key:1},[Pt(ye(f.value),1)],64))]),se[21]||(se[21]=M("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[M("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,YS))],64)}}},[["styles",[gS]],["__scopeId","data-v-a15d92ac"]]),ZS="#6b7280";function JS(){const e=So(Zn.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function QS(e,t){const o=JS();return e&&o[e]?o[e]:ZS}function eA(e){return(e==null?void 0:e.properties)||e||{}}function vl(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function tA(e){var t;return String(e.affinityBlock||vl((t=e._raw)==null?void 0:t.rop1)||"").trim()}function oA(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function nA(e){var t;return String(e.cluster||vl((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function aA(e){var t;return String(e.clusterLabel||((t=e._raw)!=null&&t.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function sA(e){var t;return String(e.peopleGroup||vl((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function rA(e){var t;return String(e.peopleGroupLabel||((t=e._raw)!=null&&t.imb_reg_of_people_25&&typeof e._raw.imb_reg_of_people_25=="object"?e._raw.imb_reg_of_people_25.label:"")||e.name||"").trim()}function iA(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function lA(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function cA(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function uA(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function kg(e){const t=oe(()=>{const s=e&&e.value||[],r=new Map;for(const i of s){const l=eA(i),c=tA(l),u=oA(l)||c||"— Unknown —",p=nA(l),f=aA(l)||p||"— Unknown —",A=sA(l),v=rA(l)||A||"— Unknown —",b=iA(l),_=lA(l)||b,$=cA(l),h=uA(l);if(!b)continue;let m=r.get(c||"__unknown__");m||(m={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},r.set(c||"__unknown__",m)),m.count+=1,m.pop+=$,m.memberIds.push(b);let w=m.clusters.get(p||"__unknown__");w||(w={code:p,label:f,count:0,pop:0,memberIds:[],peopleGroups:new Map},m.clusters.set(p||"__unknown__",w)),w.count+=1,w.pop+=$,w.memberIds.push(b);let g=w.peopleGroups.get(A||"__unknown__");g||(g={code:A,label:v,count:0,pop:0,memberIds:[],instances:[]},w.peopleGroups.set(A||"__unknown__",g)),g.count+=1,g.pop+=$,g.memberIds.push(b),g.instances.push({id:b,name:_,country:h,pop:$})}return r}),o=s=>s&&s.length?["in",["get","uniqueId"],["literal",s]]:["==",["get","uniqueId"],"__none__"],n=oe(()=>{const s=t.value,r=[];for(const i of s.values()){const l=QS(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:o(i.memberIds),children:[]};for(const u of i.clusters.values()){const p={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const f of u.peopleGroups.values()){const A={id:`pg:${i.code}__${u.code}__${f.code||f.label}`,label:`${f.label} (PG)`,color:l,count:f.count,pop:f.pop,filter:o(f.memberIds),children:[]};f.instances.sort((v,b)=>b.pop-v.pop||v.country.localeCompare(b.country));for(const v of f.instances)A.children.push({id:`pgic:${v.id}`,label:`${v.country?`${v.name}, ${v.country}`:v.name} (PGIC)`,color:l,count:1,pop:v.pop,filter:["==",["get","uniqueId"],v.id],children:[]});p.children.push(A)}p.children.sort((f,A)=>A.count-f.count||A.pop-f.pop),c.children.push(p)}c.children.sort((u,p)=>p.count-u.count||p.pop-u.pop),r.push(c)}return r.sort((i,l)=>l.count-i.count||l.pop-i.pop),r});function a(s){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!s){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const r=String(s.id||""),i={kind:null,label:s.label,filterExpr:s.filter};r.startsWith("bloc:")?i.kind="bloc":r.startsWith("cluster:")?i.kind="cluster":r.startsWith("pg:")?i.kind="people-group":r.startsWith("pgic:")&&(i.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:i}))}return{aggregated:t,affinityTree:n,highlight:a}}const pA={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},dA="#95a5a6";function gA(e){return pA[String(e||"").toLowerCase()]||dA}function fA(e){return(e==null?void 0:e.properties)||e||{}}function hA(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function mA(e){var t,o;return String(e.doxaRegion||e.wagfRegion||((o=(t=e._raw)==null?void 0:t.wagf_region)==null?void 0:o.value)||"").trim()}function bA(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_region;return String(e.wagfRegionLabel||e.doxaRegionLabel||(t&&typeof t=="object"?t.label:"")||e.doxaRegion||"").trim()}function $A(e){var t,o;return String(e.wagfBlock||((o=(t=e._raw)==null?void 0:t.wagf_block)==null?void 0:o.value)||"").trim()}function yA(e){var o;const t=(o=e._raw)==null?void 0:o.wagf_block;return String(e.wagfBlockLabel||(t&&typeof t=="object"?t.label:"")||e.wagfBlock||"").trim()}function _A(e){var t,o;return String(e.countryIso||((o=(t=e._raw)==null?void 0:t.country_code)==null?void 0:o.value)||"").trim().toUpperCase()}function vA(e){var o;const t=(o=e._raw)==null?void 0:o.country_code;return String(e.countryIsoLabel||(t&&typeof t=="object"?t.label:"")||e.countryIso||"").trim()}function wg(e){const t=oe(()=>{const a=e&&e.value||[],s=new Map;for(const r of a){const i=fA(r),l=mA(i),c=bA(i)||l||"— Unknown —",u=$A(i),p=yA(i)||u||"— Unknown —",f=_A(i),A=vA(i)||f||"— Unknown —",v=hA(i);if(!l||l==="na"||l==="none")continue;let b=s.get(l);if(b||(b={slug:l,label:c,count:0,pop:0,blocks:new Map},s.set(l,b)),b.count+=1,b.pop+=v,!u||u==="na")continue;let _=b.blocks.get(u);if(_||(_={slug:u,label:p,count:0,pop:0,countries:new Map},b.blocks.set(u,_)),_.count+=1,_.pop+=v,!f)continue;let $=_.countries.get(f);$||($={iso:f,name:A,count:0,pop:0},_.countries.set(f,$)),$.count+=1,$.pop+=v}return s}),o=oe(()=>{const a=t.value,s=[];for(const r of a.values()){const i=gA(r.slug),l=[],c=[],u=[...r.blocks.values()].sort((p,f)=>f.pop-p.pop||p.label.localeCompare(f.label));for(const p of u){const f=[],A=[],v=[...p.countries.values()].sort((b,_)=>_.pop-b.pop||b.name.localeCompare(_.name));for(const b of v)f.push(b.iso),l.push(b.iso),A.push({id:`country:${r.slug}__${p.slug}__${b.iso}`,label:b.name,color:i,count:b.count,pop:b.pop,filter:["==",["get","countryIso"],b.iso],isoCodes:[b.iso],children:[]});c.push({id:`block:${r.slug}__${p.slug}`,label:`${p.label} (Bloc)`,color:i,count:p.count,pop:p.pop,filter:["==",["get","wagfBlock"],p.slug],isoCodes:f,children:A})}s.push({id:`region:${r.slug}`,label:`${r.label} (Region)`,color:i,count:r.count,pop:r.pop,filter:["==",["get","doxaRegion"],r.slug],isoCodes:[...new Set(l)],children:c})}return s.sort((r,i)=>i.pop-r.pop||r.label.localeCompare(i.label)),s});function n(a){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!a){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const s=String(a.id||""),r={kind:null,label:a.label,filterExpr:a.filter};s.startsWith("region:")?r.kind="region":s.startsWith("block:")?r.kind="block":s.startsWith("country:")&&(r.kind="country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:r}))}return{aggregated:t,regionsTree:o,highlight:n}}const kA=["onClick"],wA={key:0,class:"rm-tab-sep","aria-hidden":"true"},xA={class:"rm-map-area"},LA={key:0,class:"rm-loading"},SA={key:1,class:"rm-error"},AA=["data-provider"],PA={class:"rm-legend-mobile-slot"},CA=!0,EA=22,TA=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"research-map",setup(e){var Jg,Qg,ef,tf,of,nf,af,sf,rf;let t=null;function o(E,N){if(E!=null&&E.getLayer("language-family-pins-hitbox"))try{E.setFilter("language-family-pins-hitbox",N)}catch{}}function n(E){var q;let N=E&&E.parentNode;for(;N;){if(N.nodeType===1){const re=getComputedStyle(N);if(/auto|scroll/.test(re.overflowY)&&N.scrollHeight>N.clientHeight+4)return N}if(N=N.parentElement||((q=N.parentNode)==null?void 0:q.host)||(N.parentNode!==N?N.parentNode:null),N&&N.nodeType===9)break}return null}function a(E){if(!(!E||!E.scrollZoom))try{const q=document.documentElement.scrollHeight>window.innerHeight+4,re=E.getContainer&&E.getContainer()||null,_e=re?!!n(re):!1;E.scrollZoom.enable()}catch{}}const s=Hs(()=>oo(()=>Promise.resolve().then(()=>Sg),void 0)),r=Hs(()=>oo(()=>Promise.resolve().then(()=>rx),void 0));wt(` - .mapboxgl-ctrl-top-left { top:12px!important;left:8px!important;width:var(--map-legend-width,380px)!important;max-width:var(--map-legend-width,380px)!important;z-index:1200!important; } - .mapboxgl-ctrl-top-left .mapboxgl-ctrl { margin:0!important;float:none!important; } - .mapboxgl-ctrl-geocoder { width:100%!important;max-width:100%!important;min-width:0!important;border-radius:999px!important;box-shadow:0 2px 8px rgba(0,0,0,0.15)!important;background:#fff;transition:box-shadow 0.12s,border-color 0.12s; } - .mapboxgl-ctrl-geocoder:focus-within { box-shadow:0 2px 8px rgba(0,0,0,0.15),0 0 0 3px rgba(59,70,61,0.18)!important; } - .mapboxgl-ctrl-geocoder--input { border-radius:999px!important;font-size:13px!important; } - .mapboxgl-ctrl-geocoder--input::placeholder { font-size:12px!important; } - .mapboxgl-ctrl-geocoder:has(.mapboxgl-ctrl-geocoder--input:not(:placeholder-shown)) .mapboxgl-ctrl-geocoder--button { display:block!important; } - .mapboxgl-ctrl-geocoder--button { display:none!important;top:50%!important;bottom:auto!important;transform:translateY(-50%)!important;margin:0!important;padding:0!important;width:24px!important;height:24px!important;background:transparent!important;border:none!important;box-shadow:none!important; } - .mapboxgl-ctrl-geocoder--button .mapboxgl-ctrl-geocoder--icon-close { position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;margin:0!important;width:16px!important;height:16px!important; } - .mapboxgl-ctrl-geocoder--suggestions { z-index:1200!important;position:absolute;max-height:60vh!important;overflow-y:auto!important; } - .suggestions { border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.15);max-height:60vh!important;overflow-y:auto!important; } - .mapboxgl-ctrl-geocoder--suggestions::-webkit-scrollbar, - .suggestions::-webkit-scrollbar { width:8px; } - .mapboxgl-ctrl-geocoder--suggestions::-webkit-scrollbar-thumb, - .suggestions::-webkit-scrollbar-thumb { background:rgba(0,0,0,0.3);border-radius:4px; } - .mapboxgl-ctrl-geocoder--suggestions::-webkit-scrollbar-track, - .suggestions::-webkit-scrollbar-track { background:rgba(0,0,0,0.05); } - .dg-main { font-weight:500;font-size:13px;color:#222;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px; } - .dg-main strong { font-weight:700;overflow:hidden;text-overflow:ellipsis; } - .dg-meta { margin-top:2px;display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;color:#555;line-height:1.35; } - .dg-field strong { font-weight:600;color:#333;margin-right:2px; } - .dg-tag { flex:none;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.4px;color:#3b463d;background:rgba(59,70,61,0.10);border-radius:4px;padding:1px 5px;line-height:1.5;white-space:nowrap; } - .dg-agg-label { overflow:hidden;text-overflow:ellipsis; } - .dg-count { flex:none;font-size:11px;font-weight:600;color:#73a17f; } - .dsm-dark .dg-tag { color:#cfe3d6;background:rgba(115,161,127,0.22); } - .dsm-dark .dg-count { color:#9fd0ab; } - .suggestions li:has(.dg-section-header-item) > a { pointer-events:none!important;cursor:default!important;background:none!important;padding:4px 10px 2px!important; } - .dg-section-header-item { font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.6px;color:#9ca3af;padding:2px 0; } - .dsm-dark .dg-section-header-item { color:rgba(243,243,241,0.45); } - @media(max-width:767px){ - } - .dsm-dark .mapboxgl-ctrl-geocoder { background:#4e594f!important;border:1px solid rgba(255,255,255,0.14)!important;box-shadow:0 2px 8px rgba(0,0,0,0.4)!important; } - .dsm-dark .mapboxgl-ctrl-geocoder:focus-within { box-shadow:0 2px 8px rgba(0,0,0,0.4),0 0 0 3px rgba(115,161,127,0.22)!important; } - .dsm-dark .mapboxgl-ctrl-geocoder--input { color:#F3F3F1!important;background:transparent!important; } - .dsm-dark .mapboxgl-ctrl-geocoder--input::placeholder { color:rgba(243,243,241,0.65)!important; } - .dsm-dark .mapboxgl-ctrl-geocoder .mapboxgl-ctrl-geocoder--icon { fill:rgba(243,243,241,0.75)!important; } - .dsm-dark .mapboxgl-ctrl-geocoder--button { background:transparent!important; } - .dsm-dark .mapboxgl-ctrl-geocoder--icon-close { fill:rgba(243,243,241,0.75)!important; } - .dsm-dark .mapboxgl-ctrl-geocoder--button:hover .mapboxgl-ctrl-geocoder--icon-close { fill:#F3F3F1!important; } - .dsm-dark .suggestions { background:#3b463d!important;border:1px solid rgba(255,255,255,0.12)!important; } - .dsm-dark .suggestions > li { background:transparent!important; } - .dsm-dark .suggestions > li > a { background:transparent!important;color:#F3F3F1!important; } - .dsm-dark .suggestions > li.active > a, - .dsm-dark .suggestions > li.selected > a, - .dsm-dark .suggestions > li:hover > a, - .dsm-dark .suggestions > li > a:hover, - .dsm-dark .suggestions > li > a:focus { background:rgba(255,255,255,0.1)!important;color:#F3F3F1!important; } - .dsm-dark .dg-main { color:#F3F3F1!important; } - .dsm-dark .dg-meta { color:rgba(243,243,241,0.75)!important; } - .dsm-dark .dg-field strong { color:#F3F3F1!important; } - .rm-root { position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden;background:#ffffff;color:#1f2937;isolation:isolate; } - .rm-root.rm-dark { background:#1a1a2e;color:#F3F3F1; } - .rm-tab-bar { - flex:0 0 auto;display:flex;align-items:center; - background:#ffffff; - height:44px; - border-top-left-radius:var(--map-radius, 0px); - border-top-right-radius:var(--map-radius, 0px); - padding-inline-start:36px; - padding-inline-end:16px; - scroll-padding-inline:16px; - gap:44px; - z-index:10;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none; - font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; - } - .rm-tab-bar::-webkit-scrollbar{display:none;width:0;height:0;} - .rm-dark .rm-tab-bar { background:#2a332a; } - .rm-tab { - background:none;border:none;padding:0;height:100%; - display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px; - font-family:inherit; - font-size:15px;font-weight:600; - color:#9aa19b; - cursor:pointer; - white-space:nowrap; - transition:color .12s; - } - .rm-tab::after { - content:'';display:block;align-self:stretch;height:4px;border-radius:2px; - background:transparent;transition:background .12s; - } - .rm-tab:hover { color:#3b463d; } - .rm-tab.active { color:#3b463d;font-weight:700; } - .rm-tab.active::after { background:#73A17F; } - .rm-tab-sep { - flex: 0 0 1px; - align-self: center; - width: 1px; - height: 50%; - background: rgba(0, 0, 0, 0.18); - pointer-events: none; - } - .rm-dark .rm-tab.active { color:#92b195; } - .rm-dark .rm-tab { color:rgba(243,243,241,0.55); } - .rm-dark .rm-tab:hover { color:#F3F3F1; } - .rm-dark .rm-tab.active { color:#cbc5b9;border-bottom-color:#cbc5b9; } - @media(max-width:767px){ - .rm-tab-bar { padding-inline:16px; scroll-padding-inline:16px; gap:16px; height:40px; } - .rm-tab { font-size:13px; } - } - .rm-map-area { flex:1 1 0;position:relative;overflow:hidden; } - .rm-root, .rm-map-area, .rm-map-canvas, - .rm-map-canvas .mapboxgl-canvas-container, .rm-map-canvas .mapboxgl-canvas, - .rm-map-canvas .maplibregl-canvas-container, .rm-map-canvas .maplibregl-canvas { border-radius: var(--map-radius-corners, var(--map-radius, 0px)); } - .rm-map-area { clip-path: inset(0 round var(--map-radius-corners, var(--map-radius, 0px))); } - .rm-map-canvas { position:absolute;inset:0; } - .rm-loading { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#f3f3f1;color:#6d766e;font:13px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;z-index:5; } - .rm-error { position:absolute;top:50%;left:12px;right:12px;z-index:7;transform:translateY(-50%);text-align:center;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#fecaca;background:rgba(15,18,22,.95);border:1px solid rgba(254,202,202,.28);border-radius:10px;padding:12px 14px;box-shadow:0 2px 10px rgba(0,0,0,.4); } - .rm-badge { position:absolute;top:10px;right:10px;background:rgba(124,140,248,0.12);color:#7c8cf8;border:1px solid rgba(124,140,248,0.3);padding:3px 9px;border-radius:4px;font-size:11px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;pointer-events:none;z-index:50; } - .rm-provider-badge { position:absolute;bottom:8px;left:8px;z-index:50;pointer-events:none;padding:2px 8px;border-radius:999px;font:600 10px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:.04em;color:#fff;background:rgba(30,41,59,0.72);border:1px solid rgba(255,255,255,0.18);backdrop-filter:blur(2px); } - .rm-provider-badge[data-provider="mapbox"] { background:rgba(37,99,235,0.78);border-color:rgba(147,197,253,0.5); } - .rm-provider-badge[data-provider="maplibre"] { background:rgba(5,150,105,0.80);border-color:rgba(110,231,183,0.5); } - .rm-legend-mobile-slot { display:none; } - @media(max-width:767px){ - .rm-legend-mobile-slot { display:block; } - .rm-legend-desktop-slot { display:none; } - } - .map-scroll-edge { position:absolute;top:0;bottom:0;width:calc(var(--map-btn-size,32px) + 6px);z-index:2;touch-action:pan-y;pointer-events:auto;background:transparent; } - .map-scroll-edge--left { left:0; } - .map-scroll-edge--right { right:0; } -`,"research-map");const i=Ne("profileConfig"),l=Ne("mapboxToken"),c=zd(i),u=oe(()=>{var E;return((E=i==null?void 0:i.value)==null?void 0:E.search)===!1?!1:c==="mapbox"}),p=oe(()=>u.value?null:mg((y==null?void 0:y.value)??y)?"56px":"14px"),f=oe(()=>{var E;return((E=i==null?void 0:i.value)==null?void 0:E.legendTools)!==!1}),A=W1(c),v=Ne("dataSource");Ne("colorSet");const b=Ne("instanceId",null),_=(()=>{var N;const E=(N=i==null?void 0:i.value)==null?void 0:N.locale;return E&&Ba.includes(E)?E:null})(),{locale:$,t:h,te:m}=bt();_&&($.value=_);function w(E){const N="tabs."+((E==null?void 0:E.i18nKey)||(E==null?void 0:E.id));return E&&m(N)?h(N):(E==null?void 0:E.label)??""}const g=Ne("mapStore"),P=Ne("dataStore"),d=Ne("uiStore"),C=d1(d),S={doxaRegions:!0,adoption:!1,share:!0,hamburgerMenu:!1,geocoderPersistAcrossTabs:!1},H=[{id:"prayer",label:"Prayer",colorStrategy:"prayerProgress",legend:"prayer",popup:"pray",feature:null},{id:"adoption",label:"Adoption",colorStrategy:"adoption",legend:"adoption",popup:"adopt",feature:"adoption"},{id:"engagement",label:"Engagement",colorStrategy:"engagement",legend:"engagement",popup:"pray",feature:null,sepAfter:!0},{id:"affinity-blocks",label:"People Groups (Affinity)",colorStrategy:"affinityBlock",legend:"affinity-block",popup:"pray",feature:null},{id:"doxa-regions",label:"Regions",colorStrategy:"doxaRegion",legend:"doxa-regions",popup:"pray",feature:"doxaRegions",i18nKey:"regions"},{id:"language-families",label:"Languages",colorStrategy:"languageFamily",legend:"language-family",popup:"pray",feature:null},{id:"religion",label:"Religions",colorStrategy:"religion",legend:"religion",popup:"pray",feature:null}].filter(E=>!E.feature||S[E.feature]),J=oe(()=>H),U=oe(()=>!0),D=he(null),L=oe(()=>J.value.find(E=>E.id===D.value)??J.value[0]);C.setLook(C.lookFor((Jg=L.value)==null?void 0:Jg.colorStrategy)),Fe(()=>{var E;return(E=L.value)==null?void 0:E.colorStrategy},E=>C.setLook(C.lookFor(E),te.value));const y=oe(()=>{var E;return((E=L.value)==null?void 0:E.legend)??"default"}),R=oe(()=>{var E;return((E=L.value)==null?void 0:E.popup)??"pray"}),z=oe(()=>{var E,N,q,re;return((E=L.value)==null?void 0:E.id)==="language-families"?"Search language family, language, dialect/variety":((N=L.value)==null?void 0:N.id)==="affinity-blocks"?"Search affinity bloc, cluster, people group":((q=L.value)==null?void 0:q.id)==="doxa-regions"?"Search region, country, people group":((re=L.value)==null?void 0:re.id)==="religion"?"Search religion, people group":""}),K={"affinity-blocks":"people-groups",prayer:"people-groups",adoption:"people-groups",engagement:"people-groups","language-families":"language","doxa-regions":"regions",religion:"religion"},Q=oe(()=>{var E;return K[(E=L.value)==null?void 0:E.id]||""}),ie=(b==null?void 0:b.value)||b||"research-map-"+Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,8);vt("mapId",ie);const j=he(null),be=he(null),xe=he(null),fe=new Map;Fe(()=>D==null?void 0:D.value,async(E,N)=>{var _e,Ee,Ae;if(N!==void 0&&E!==N){N&&fe.set(N,d.legendState);const He=fe.get(E)||(d.isMobile?"collapsed":"open");He==="fullyOpen"?(_e=d.fullyOpenLegend)==null||_e.call(d):He==="open"?(Ee=d.openLegend)==null||Ee.call(d):(Ae=d.collapseLegend)==null||Ae.call(d)}await It();const q=be.value,re=q==null?void 0:q.querySelector(".rm-tab.active");if(q&&re&&q.scrollWidth>q.clientWidth+1){const He=q.getBoundingClientRect(),at=re.getBoundingClientRect(),ht=q.scrollLeft+(at.left-He.left)-(He.width-at.width)/2,to=q.scrollWidth-q.clientWidth,Xe=Math.max(0,Math.min(to,ht));typeof q.scrollTo=="function"?q.scrollTo({left:Xe,behavior:"smooth"}):q.scrollLeft=Xe}});const ke=he(null),$e=he(!1),ne=he(null),{map:te,initializeMap:de,destroy:Pe}=ck({containerRef:ke,accessToken:l.value,provider:c,style:((Qg=i==null?void 0:i.value)==null?void 0:Qg.style)??C.bootStyle(),config:C.bootConfig,center:((ef=i==null?void 0:i.value)==null?void 0:ef.center)??uo.center??[20,10],zoom:((tf=i==null?void 0:i.value)==null?void 0:tf.zoom)??uo.zoom??1.8,pitch:((of=i==null?void 0:i.value)==null?void 0:of.pitch)??uo.pitch??0,bearing:((nf=i==null?void 0:i.value)==null?void 0:nf.bearing)??uo.bearing??0,minZoom:((af=i==null?void 0:i.value)==null?void 0:af.minZoom)??uo.minZoom??.5,maxZoom:EA}),T=new cg({sourcesConfig:_n,locale:_}),F=Fk({mapId:ie,dataSourceId:v.value,dataSourceManager:T,dataStore:P,markRaw:E=>E});async function I(E){const N=String(E||"").trim().toUpperCase();if(N.length!==3)return;await Ya();const q=te.value;if(!q||!q.getLayer("regions-fill"))return;q.setLayoutProperty("regions-fill","visibility","visible"),q.setLayoutProperty("regions-border","visibility","visible");const re=["literal",[N]];q.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],re],.3,.02]),q.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],re],"#111827","rgba(60,60,80,0.15)"]),q.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],re],2.5,.3]),q.getLayer("language-family-pins")&&q.moveLayer("language-family-pins")}function W(){var N;me.clearCountry();const E=te.value;!E||!E.getLayer("regions-fill")||(E.setPaintProperty("regions-fill","fill-opacity",.2),E.setPaintProperty("regions-fill","fill-outline-color",null),E.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),E.setPaintProperty("regions-border","line-width",.6),((N=L.value)==null?void 0:N.id)!=="doxa-regions"&&(E.setLayoutProperty("regions-fill","visibility","none"),E.setLayoutProperty("regions-border","visibility","none")))}const Y=_k({getMap:()=>te.value,mapId:ie,getLanguageFamilyColor:E=>{var q,re;const N=So((q=L.value)==null?void 0:q.colorStrategy);return((re=N==null?void 0:N.colors)==null?void 0:re[E])??(N==null?void 0:N.fallback)??"#7c8cf8"},getNormalizedPeopleGroups:()=>F.normalizedPeopleGroups.value||[]});Qd({getMap:()=>te.value,mapId:ie,getLanguageFamilyColor:()=>"#7c8cf8",getNormalizedPeopleGroups:()=>F.normalizedPeopleGroups.value||[]});const O=vk({getMap:()=>te.value,mapId:ie,mapStore:g,defaultCenter:((sf=i==null?void 0:i.value)==null?void 0:sf.center)??[20,10],defaultZoom:((rf=i==null?void 0:i.value)==null?void 0:rf.zoom)??1.8}),ue=wk({getMap:()=>te.value,getActivePinColor:E=>{var q,re;const N=So(((q=L.value)==null?void 0:q.colorStrategy)??"languageFamily");return((re=N==null?void 0:N.getColor)==null?void 0:re.call(N,E))??"#1a1a1a"}});let ee=null,k=null;function x(){return ee?Promise.resolve(ee):(k||(k=oo(()=>Promise.resolve().then(()=>QA),void 0).then(E=>(ee=E.useMapClustering({getMap:()=>te.value,mapId:ie,mapStore:g,getPeopleGroups:()=>F.normalizedPeopleGroups.value||[],getClusterColor:()=>{var N,q;return((q=So((N=L.value)==null?void 0:N.colorStrategy))==null?void 0:q.fallback)??"#7c8cf8"}}),ee))),k)}const B={setData(E){var N;(N=ee==null?void 0:ee.setData)==null||N.call(ee,E)},applyFilters(E){var N;(N=ee==null?void 0:ee.applyFilters)==null||N.call(ee,E)},refreshColors(){var E;(E=ee==null?void 0:ee.refreshColors)==null||E.call(ee)},cleanup(){var E;(E=ee==null?void 0:ee.cleanup)==null||E.call(ee)},async setEnabled(E){var N,q;(q=(N=await x()).setEnabled)==null||q.call(N,E)},async setMode(E){var N,q;(q=(N=await x()).setMode)==null||q.call(N,E)},_pendingSelectionFilter:null,setSelectionFilter(E){this._pendingSelectionFilter=E||null,ee!=null&&ee.setSelectionFilter&&ee.setSelectionFilter(E)},flushSelectionFilter(){ee!=null&&ee.setSelectionFilter&&ee.setSelectionFilter(this._pendingSelectionFilter)}},X=Va({});vt("legendRows",X.rows),vt("normalizedPeopleGroups",F.normalizedPeopleGroups);const me=Pk(()=>te.value),ce=uS(ie);pS(ce);const{onPeopleGroupResult:Z,onAggregateResult:le,onClear:Ce,clearGeocoderProgrammatic:Te}=Ik({map:te,geocoderRef:xe,clustering:B,mapStore:g,uiStore:d,mapLayers:Y,pplrInstance:ce,onSemanticTreeSelect:ra,switchTab:Xa,activeTabId:D,clearAllHighlights:gr,clearCountryHighlight:W,mapId:ie,legendRouters:{country:RP,region:NP,religion:TP}});ce.activeTab.value=1;function qe(E){return E==="affinity-block"?0:E==="language-family"?1:0}Fe(y,E=>{ce.activeTab.value=qe(E)});const nt={get value(){return F.normalizedPeopleGroups.value||[]}},{langTree:Qe}=hl(nt),V=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor (e.g. Indo-European, Afro-Asiatic)."},{id:"language",label:"Language",info:"A language is a system of communication used by a people (e.g. Arabic, Bengali, Hindi)."},{id:"dialect",label:"Dialect/Variety",info:"A dialect/variety is a regional or social form of a language (e.g. Arabic, Sudanese; Pakistan Sign Language)."}],{affinityTree:se}=kg(nt),ve=[{id:"bloc",label:"Affinity Block",info:"Affinity Block (field: rop1) — broadest grouping by cultural/linguistic/geographic kinship. 16 blocks total. Examples: Malay Peoples, South Asian Peoples, Deaf, Arab World."},{id:"cluster",label:"Cluster",info:'Cluster (field: imb_reg_of_people_2, ROP 2) — finer-grained grouping inside a bloc. 194 clusters total. Suffix "(Cluster)" appears on each row to distinguish from PG/PGIC. Example: Borneo-Kalimantan within Malay Peoples.'},{id:"group",label:"People Group",info:'People Group (field: imb_reg_of_people_25, ROP 2.5) — abstract ethnolinguistic identity, country-agnostic. Suffix "(PG)" on each row. 1,736 PGs total; 131 of them have rows in multiple countries (e.g. Deaf in 123 countries). Example: Abai Sungai (PG) is one ROP25 code regardless of where its people live.'},{id:"pgic",label:"PG in Country",info:'PGIC = People Group In Country (field: imb_reg_of_people_3 + country_code) — one row per (people group, country) pair. Suffix "(PGIC)" on each row. 2,106 rows total. Example: "Abai Sungai, Malaysia (PGIC)" is the Abai Sungai PG specifically as it exists in Malaysia.'}],{regionsTree:Se}=wg(nt),Ie=[{id:"region",label:"WAGF Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"WAGF Bloc",info:'WAGF bloc — the organizational sub-grouping within each region (e.g. "South East Asia", "West Africa").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],rt=Va(ys(()=>y.value),cr),je=rt.progress;vt("legendProgress",je);function Gt(E){const N=[];for(const q of E){N.push({id:q.key,label:q.label,color:q.color,count:q.count??0,pop:q.population??0,filter:q.filterKey?["==",["get","_flat_filter"],q.filterKey]:null,children:[]});for(const re of q.children||[])N.push({id:re.key,label:re.label,color:re.color,count:re.count??0,pop:re.population??0,filter:re.filterKey?["==",["get","_flat_filter"],re.filterKey]:null,children:[]})}return N}const ft=oe(()=>["prayer","engagement","adoption","religion"].includes(y.value)),eo=oe(()=>ft.value?Gt(rt.items.value):y.value==="affinity-block"?se.value:y.value==="doxa-regions"?Se.value:Qe.value),xl=oe(()=>ft.value?null:y.value==="affinity-block"?ve:y.value==="doxa-regions"?Ie:V),kP=oe(()=>ft.value),wP=oe(()=>y.value==="religion"?h("legend.colLabel.religion"):y.value==="prayer"?h("legend.colLabel.prayer"):y.value==="engagement"?h("legend.colLabel.engagement"):y.value==="adoption"?h("legend.colLabel.adoption"):ft.value?h("legend.colLabel.status"):""),xP=oe(()=>d.legendState!=="collapsed");function LP(E){E?d.openLegend():d.collapseLegend()}const dr=oe(()=>ft.value?h("legend.titleBar.legend"):y.value==="affinity-block"?h("legend.titleBar.peopleGroups"):y.value==="doxa-regions"?h("legend.titleBar.wagfRegions"):h("legend.titleBar.languages"));function An(E,N){var q;for(const re of E){if(N(re))return re;if((q=re.children)!=null&&q.length){const _e=An(re.children,N);if(_e)return _e}}return null}vt("onSemanticTreeSelect",E=>ra(E)),vt("getActivePinColor",E=>{var q,re;const N=So(((q=L.value)==null?void 0:q.colorStrategy)??"languageFamily");return((re=N==null?void 0:N.getColor)==null?void 0:re.call(N,E))??"#1a1a1a"});function SP(E,N){if(!E||!N)return null;const q=E.id;if(N==="prayer"){const re=["to-number",["get","peoplePraying"]];if(q==="noPrayer")return["==",re,0];if(q==="fullPrayer")return[">=",re,Lo];if(q==="hasPrayer")return["all",[">",re,0],["<",re,Lo]]}else if(N==="engagement"){if(q==="hasEngagement")return["==",["get","engagementStatus"],!0];if(q==="notEngaged")return["==",["get","engagementStatus"],!1]}else if(N==="adoption"){if(q==="hasAdoption")return["==",["get","adoptionStatus"],!0];if(q==="notAdopted")return["==",["get","adoptionStatus"],!1]}else if(N==="religion")return["==",["slice",["coalesce",["get","religion"],""],0,1],q];return null}function ra(E){var re,_e,Ee,Ae,He,at,ht,to;const N=te.value;if(E){const Xe=ft.value?SP(E,y.value):null,Ue=((re=L.value)==null?void 0:re.id)==="doxa-regions",St=Xe?{matchExpr:Xe}:{};Ue&&(St.regionPolygonSource="regions"),(_e=O.zoomToLegendRow)==null||_e.call(O,E,Object.keys(St).length?St:void 0)}if(!E){if(ft.value){const Xe=y.value;Xe==="prayer"?d.setPrayerFilter(null):Xe==="engagement"?d.setEngagementFilter(null):Xe==="adoption"?d.setAdoptionFilter(null):Xe==="religion"&&d.setReligionFilter(null)}if(N&&N.getLayer("language-family-pins")){try{N.setFilter("language-family-pins",null)}catch{}o(N,null),N.setPaintProperty("language-family-pins","circle-opacity",1),N.setPaintProperty("language-family-pins","circle-stroke-opacity",1),N.getLayer("language-family-pins-shadow")&&N.setPaintProperty("language-family-pins-shadow","circle-opacity",1),Y.syncGlowFilter(null)}N&&N.getLayer("regions-fill")&&(N.setPaintProperty("regions-fill","fill-opacity",.7),N.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),N.setPaintProperty("regions-border","line-width",.6)),g.selectedFamily&&g.selectFamily(null),g.selectedLanguage&&g.selectLanguage(null),g.selectedDialect&&((Ee=g.selectDialect)==null||Ee.call(g,null)),g.selectedRegion&&((Ae=g.selectRegion)==null||Ae.call(g,null)),Te();return}if(ft.value){const Xe=y.value;Xe==="prayer"?d.setPrayerFilter(E.id):Xe==="engagement"?d.setEngagementFilter(E.id):Xe==="adoption"?d.setAdoptionFilter(E.id):Xe==="religion"&&d.setReligionFilter(E.id);return}if(N&&N.getLayer("language-family-pins")&&E.filter){try{N.setFilter("language-family-pins",E.filter)}catch{}o(N,E.filter),N.setPaintProperty("language-family-pins","circle-opacity",1),N.setPaintProperty("language-family-pins","circle-stroke-opacity",1),Y.syncGlowFilter(E.filter)}const q=String(E.id||"");if(q.startsWith("fam:"))(He=g.selectFamily)==null||He.call(g,E.label);else if(q.startsWith("lang:"))(at=g.selectLanguage)==null||at.call(g,E.label);else if(q.startsWith("dial:"))(ht=g.selectDialect)==null||ht.call(g,{key:q.slice(5),originalLabels:E.originalLabels||[]});else if(q.startsWith("bloc:")||q.startsWith("cluster:")||q.startsWith("pg:")||q.startsWith("pgic:")){if(N&&N.getLayer("language-family-pins")&&E.filter){try{N.setFilter("language-family-pins",null)}catch{}o(N,E.filter),N.setPaintProperty("language-family-pins","circle-opacity",["case",E.filter,1,0]),N.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",E.filter,1,0]),N.getLayer("language-family-pins-shadow")&&N.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",E.filter,1,0]),Y.syncGlowFilter(E.filter)}}else if(q.startsWith("region:")||q.startsWith("block:")||q.startsWith("country:")){if(N&&N.getLayer("language-family-pins")&&E.filter){try{N.setFilter("language-family-pins",E.filter)}catch{}o(N,E.filter),N.setPaintProperty("language-family-pins","circle-opacity",1),N.setPaintProperty("language-family-pins","circle-stroke-opacity",1)}if(q.startsWith("region:")&&((to=g.selectRegion)==null||to.call(g,q.slice(7))),N&&N.getLayer("regions-fill")){const Xe=E.isoCodes||[];if(Xe.length){const Ue=["literal",Xe];N.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],Ue],.85,.15]),N.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],Ue],"#111827","rgba(60,60,80,0.15)"]),N.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],Ue],2.5,.3])}else N.setPaintProperty("regions-fill","fill-opacity",.7),N.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),N.setPaintProperty("regions-border","line-width",.6)}}}Fe(()=>d.theme,E=>{ce.theme.value=E==="dark"?"dark":"light"},{immediate:!0});function ln(E,N){var re,_e;if(!N){const Ee=ce.selection.value;Ee&&((re=Ee.id)!=null&&re.startsWith(E+":"))&&(ce.selection.value=null);return}const q=ce.selection.value;q&&((_e=q.id)!=null&&_e.startsWith(E+":"))&&q.label===N.label||(ce.selection.value=N)}Fe(()=>g.selectedFamily,E=>{if(!E)return ln("fam",null);const N=An(Qe.value,q=>q.id.startsWith("fam:")&&q.label===E);N&&ln("fam",{...N,depth:0})}),Fe(()=>g.selectedLanguage,E=>{if(!E)return ln("lang",null);const N=An(Qe.value,q=>q.id.startsWith("lang:")&&q.label===E);N&&ln("lang",{...N,depth:1})}),Fe(()=>g.selectedDialect,E=>{if(!(E!=null&&E.key))return ln("dial",null);const N=`dial:${E.key}`,q=An(Qe.value,re=>re.id===N);q&&ln("dial",{...q,depth:2})}),Fe(()=>g.selectedRegion,E=>{if(!E)return ln("region",null);const N=An(Se.value,q=>q.id===`region:${E}`);N&&ln("region",{...N,depth:0})});const ia=he(!1);async function Ll(){var E,N;if(!ia.value){ia.value=!0;try{const[{useMapPoster:q},{defaultPosterSpec:re}]=await Promise.all([oo(()=>Promise.resolve().then(()=>dP),void 0),oo(()=>Promise.resolve().then(()=>Ng),void 0)]),_e=q(()=>te.value),Ee=re({widthIn:8.5,heightIn:11,dpi:200,orientation:"portrait"}),Ae=w(L.value)||dr.value||"Doxa Map";Ee.dir=["ar","fa","he","ur"].includes(String($.value||"").split("-")[0])?"rtl":"ltr",Ee.slots.title={...Ee.slots.title,text:Ae};const He=(rt.items.value||[]).flatMap(Ue=>[Ue,...Ue.children||[]]),at=(He.length?He:((E=X==null?void 0:X.rows)==null?void 0:E.value)||[]).map(Ue=>({label:Ue.label,color:Ue.color}));Ee.slots.legend={...Ee.slots.legend,rows:at,title:dr.value},Ee.slots.scaleBar=!1,Ee.slots.north=!1;const ht=!!(window.maplibregl&&te.value instanceof window.maplibregl.Map);Ee.slots.footer={...Ee.slots.footer,left:"pray.doxa.life",right:new Date().toISOString().slice(0,10),attribution:ht?"© OpenFreeMap © OpenMapTiles © OpenStreetMap":"© Mapbox © OpenStreetMap"};const to=await _e.render(Ee,"png"),Xe=String(((N=L.value)==null?void 0:N.id)||"").replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"").toLowerCase();Hg(to,"doxa-"+(Xe||"map")+"-poster.png")}catch(q){console.error("[research-map] poster export failed:",q)}finally{ia.value=!1}}}const AP=oe(()=>String(h("controls.export_poster")||"Export poster").replace(/\s*…\s*$/,""));function PP(E){if(E==="poster")return Ll();if(E==="packet")return CP()}let Sl=!1;function Hg(E,N){const q=URL.createObjectURL(E),re=document.createElement("a");re.href=q,re.download=N,document.body.appendChild(re),re.click(),re.remove(),setTimeout(()=>URL.revokeObjectURL(q),1e3)}async function CP(){var E;if(!Sl){Sl=!0;try{t||(t=oo(()=>Promise.resolve().then(()=>vP),void 0).then(Ae=>Ae.useMapPacket(()=>te.value)));const N=await t;let q=F.normalizedPeopleGroups.value||[];q.length>50&&(console.warn(`[research-map] packet export truncated ${q.length} → 50 people groups`),q=q.slice(0,50));const{defaultPosterSpec:re}=await oo(async()=>{const{defaultPosterSpec:Ae}=await Promise.resolve().then(()=>Ng);return{defaultPosterSpec:Ae}},void 0),_e=re({widthIn:8.27,heightIn:11.69,dpi:150,orientation:"portrait"});_e.slots.title={..._e.slots.title,text:dr.value||"Doxa Map"},_e.slots.legend={..._e.slots.legend,rows:((E=X==null?void 0:X.rows)==null?void 0:E.value)||[]};const Ee=await N.renderPacket(_e,q,{source:"pray.doxa.life",date:new Date().toISOString().slice(0,10)});Hg(Ee,"packet.pdf")}catch(N){console.error("[research-map] packet export failed:",N)}finally{Sl=!1}}}const Vg=he(!1),Kg=oe(()=>g.selectedFeature),zt=oe(()=>d.isDarkTheme),Al=oe(()=>bd.lightPreset==="night");function Pl(){var q;const E=te.value;if(!E||!E.getLayer("language-family-pins"))return;const N=Al.value?"#ffffff":["case",[">",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"];E.setPaintProperty("language-family-pins","circle-stroke-color",N),E.setPaintProperty("language-family-pins","circle-stroke-width",Al.value?bk((q=L.value)==null?void 0:q.colorStrategy):eg)}Fe(Al,Pl,{immediate:!1}),Fe(()=>{var E;return(E=L.value)==null?void 0:E.id},Pl),Fe(()=>d.theme,()=>C.applyTheme(te.value));function EP(){C.swapTheme(te.value)}const qg=he(!1);let Wa=null;async function Ya(){if(!qg.value)return Wa||(Wa=(async()=>{var E,N,q;try{const re=await((E=F.loadRegionsData)==null?void 0:E.call(F));re&&te.value&&((N=Y.addRegionsLayer)==null||N.call(Y,re,"doxa-regions"),te.value.getLayer("regions-fill")&&((q=L.value)==null?void 0:q.id)!=="doxa-regions"&&(te.value.setLayoutProperty("regions-fill","visibility","none"),te.value.setLayoutProperty("regions-border","visibility","none")),te.value.getLayer("language-family-pins")&&te.value.moveLayer("language-family-pins")),qg.value=!0,F.regionsData.value=null}catch(re){console.warn("[research-map] regions layer failed:",re)}finally{Wa=null}})(),Wa)}function Xa(E){var re,_e,Ee;if(E===D.value)return;D.value=E,(re=d.setActiveTab)==null||re.call(d,E),Te();const N=J.value.find(Ae=>Ae.id===E);if(!N||!te.value)return;C.setLook(C.lookFor(N.colorStrategy),te.value),N.id==="doxa-regions"&&Ya();const q=So(N.colorStrategy);if(te.value.getLayer("language-family-pins")&&(q!=null&&q.buildColorExpression)){const Ae=N.id==="doxa-regions"?"#a30000":q.buildColorExpression();te.value.setPaintProperty("language-family-pins","circle-color",Ae),gr(te.value),N.id==="prayer"?Y.startPrayerGlow():Y.stopPrayerGlow();const He=N.id==="doxa-regions";te.value.getLayer("regions-fill")&&(te.value.setLayoutProperty("regions-fill","visibility",He?"visible":"none"),te.value.setLayoutProperty("regions-border","visibility",He?"visible":"none")),te.value.getLayer("language-family-pins")&&te.value.moveLayer("language-family-pins")}(_e=X.refresh)==null||_e.call(X),(Ee=B.refreshColors)==null||Ee.call(B)}function Wg(E){var q,re;const N=E==null?void 0:E.detail;!N||N.mapId!==ie||(N.center&&Array.isArray(N.center)?(q=O.flyToCoords)==null||q.call(O,{longitude:N.center[0],latitude:N.center[1]},N.zoom??4):N.bounds&&((re=O.fitBounds)==null||re.call(O,N.bounds,60)))}function Yg(E){var at,ht,to;const N=E==null?void 0:E.detail;if(!N||(Tt(N),!((at=N.coords)!=null&&at.length)))return;const q=N.coords;if(q.length===1){(ht=O.flyToCoords)==null||ht.call(O,{longitude:q[0][0],latitude:q[0][1]},3);return}let re=1/0,_e=-1/0,Ee=1/0,Ae=-1/0;for(const[Xe,Ue]of q)Xe_e&&(_e=Xe),UeAe&&(Ae=Ue);const He=N.kind==="region"?2.2:3;(to=O.fitBounds)==null||to.call(O,[[re,Ee],[_e,Ae]],60,{maxZoom:He})}const Wt={family:null,language:null,dialect:null,region:null,prayer:null,engagement:null,adoption:null};function gr(E){E.setPaintProperty("language-family-pins","circle-opacity",1),E.setPaintProperty("language-family-pins","circle-stroke-opacity",1),E.getLayer("language-family-pins-shadow")&&E.setPaintProperty("language-family-pins-shadow","circle-opacity",1),E.setFilter("language-family-pins",null),o(E,null),Y.syncGlowFilter(null),E.getLayer("regions-fill")&&(E.setPaintProperty("regions-fill","fill-opacity",.7),E.setPaintProperty("regions-fill","fill-outline-color",null)),E.getLayer("regions-border")&&(E.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),E.setPaintProperty("regions-border","line-width",.6)),Wt.family=Wt.language=Wt.dialect=Wt.region=null,Wt.prayer=Wt.engagement=Wt.adoption=null,d.prayerFilter&&d.setPrayerFilter(null),d.engagementFilter&&d.setEngagementFilter(null),d.adoptionFilter&&d.setAdoptionFilter(null),d.religionFilter&&d.setReligionFilter(null),B.setSelectionFilter(null),g.selectedFamily&&g.selectFamily(null),g.selectedLanguage&&g.selectLanguage(null),g.selectedDialect&&g.selectDialect(null);try{ce&&ce.selection&&ce.selection.value&&(ce.selection.value=null)}catch{}}let fr=null,hr=0;function Tt(E){var He,at,ht,to,Xe;const N=te.value;if(!N||!N.getLayer("language-family-pins"))return;let q,re,_e;if(E.kind==="family")_e="family",q="languageFamily",re=E.familyKey;else if(E.kind==="language")_e="language",q="language",re=E.languageKey;else if(E.kind==="region")_e="region",q="doxaRegion",re=E.regionKey;else if(E.kind==="prayer")_e="prayer",q=E.property||"peoplePraying",re=E.expectedValue;else if(E.kind==="engagement")_e="engagement",q=E.property||"engagementStatus",re=E.expectedValue;else if(E.kind==="adoption")_e="adoption",q=E.property||"adoptionStatus",re=E.expectedValue;else if(E.kind==="religion")_e="religion",q=E.property||"religion",re=E.expectedValue;else if(E.kind==="dialect")_e="dialect",q="language",re=E.dialectKey||"";else{gr(N),Te();for(const Ue of Object.keys(Wt))Wt[Ue]=null;fr=null,hr=0;return}const Ee=Date.now(),Ae=`${_e}|${re}`;if(!(fr===Ae&&Ee-hr<80)){if(fr=Ae,hr=Ee,Wt[_e]===re){gr(N),Te(),fr=null,hr=0;return}for(const Ue of Object.keys(Wt))Wt[Ue]=null;if(Wt[_e]=re,_e==="family"?(He=g.selectFamily)==null||He.call(g,re):_e==="region"?(at=g.selectRegion)==null||at.call(g,re):_e==="language"?(ht=g.selectLanguage)==null||ht.call(g,re):_e==="dialect"&&((to=g.selectDialect)==null||to.call(g,{key:re,originalLabels:E.originalLabels||[]})),B.setSelectionFilter({property:q,value:re}),_e==="region"){if(N.setFilter("language-family-pins",["==",["get","doxaRegion"],re]),o(N,["==",["get","doxaRegion"],re]),N.setPaintProperty("language-family-pins","circle-opacity",1),N.setPaintProperty("language-family-pins","circle-stroke-opacity",1),N.getLayer("regions-fill")){const Ue=((Xe=Y.regionIsoMap)==null?void 0:Xe.value)||{},St=Cn=>String(Cn).toLowerCase().replace(/[^a-z]/g,""),IP=St(re);let mr=Ue[re]||[];if(!mr.length){for(const[Cn,OP]of Object.entries(Ue))if(St(Cn)===IP){mr=OP;break}}if(mr.length){const Cn=["literal",mr];N.setPaintProperty("regions-fill","fill-opacity",["case",["in",["get","iso_3166_1_alpha_3"],Cn],.85,.15]),N.setPaintProperty("regions-border","line-color",["case",["in",["get","iso_3166_1_alpha_3"],Cn],"#111827","rgba(60,60,80,0.15)"]),N.setPaintProperty("regions-border","line-width",["case",["in",["get","iso_3166_1_alpha_3"],Cn],2.5,.3])}else N.setPaintProperty("regions-fill","fill-opacity",.7),N.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),N.setPaintProperty("regions-border","line-width",.6)}}else{N.setFilter("language-family-pins",null);let Ue;if(_e==="prayer"){const St=["to-number",["get",q]];re==="noPrayer"?Ue=["==",St,0]:re==="fullPrayer"?Ue=[">=",St,Lo]:re==="hasPrayer"?Ue=["all",[">",St,0],["<",St,Lo]]:Ue=["==",["get",q],re]}else if(_e==="engagement")Ue=["==",["get",q],re==="hasEngagement"];else if(_e==="adoption")Ue=["==",["get",q],re==="hasAdoption"];else if(_e==="religion")Ue=["==",["slice",["coalesce",["get",q],""],0,1],re];else if(E.filterExpr)Ue=E.filterExpr;else if(_e==="language")Ue=["any",["==",["get",q],re],["==",["slice",["get",q],0,re.length+1],re+","],["in"," "+re,["get",q]]];else if(_e==="dialect"){const St=E.originalLabels||[];St.length===1?Ue=["==",["get",q],St[0]]:St.length>1?Ue=["in",["get",q],["literal",St]]:Ue=["==",["get",q],re]}else Ue=["==",["get",q],re];N.setPaintProperty("language-family-pins","circle-opacity",["case",Ue,1,0]),N.setPaintProperty("language-family-pins","circle-stroke-opacity",["case",Ue,1,0]),N.getLayer("language-family-pins-shadow")&&N.setPaintProperty("language-family-pins-shadow","circle-opacity",["case",Ue,1,0]),o(N,Ue),Y.syncGlowFilter(Ue),N.getLayer("regions-fill")&&(N.setPaintProperty("regions-fill","fill-opacity",.2),N.setPaintProperty("regions-border","line-color","rgba(60,60,80,0.35)"),N.setPaintProperty("regions-border","line-width",.6))}}}function TP(E,{map:N,filterLayerId:q}){const re=E.label;try{N.setFilter(q,null)}catch{}const _e=Object.keys(Jt).find(Ee=>Jt[Ee]===re);if(_e){const Ee={id:_e,label:re,depth:0},Ae=()=>{try{N.setFilter(q,null)}catch{}ra(Ee),ce&&ce.selection&&(ce.selection.value=Ee)};D.value!=="religion"&&Xa("religion"),It(Ae)}}function NP(E,{map:N,filterLayerId:q}){const re=E.label,_e=at=>String(at).toLowerCase().replace(/[^a-z0-9]/g,""),Ee=at=>String(at||"").replace(/\s*\((?:Region|Bloc)\)\s*$/i,""),Ae=_e(re),He=()=>{try{N.setFilter(q,null)}catch{}const at=An(Se.value,ht=>(ht.id.startsWith("region:")||ht.id.startsWith("block:"))&&_e(Ee(ht.label))===Ae);at&&(ra(at),ce&&ce.selection&&(ce.selection.value=at))};D.value!=="doxa-regions"?(Xa("doxa-regions"),Promise.resolve(Ya()).finally(()=>It(He))):He()}function RP(E){var q,re,_e,Ee;if(Array.isArray(E.bounds)&&E.bounds.length===4){const[Ae,He,at,ht]=E.bounds;(q=O.fitBounds)==null||q.call(O,[[Ae,He],[at,ht]],60)}else Array.isArray(E.center)&&E.center.length===2&&((re=O.flyTo)==null||re.call(O,E.center));const N=Sk(E,F.normalizedPeopleGroups.value||[]);if(N&&I(N),N&&((_e=L.value)==null?void 0:_e.id)!=="doxa-regions"&&me.showCountry(N),N&&((Ee=L.value)==null?void 0:Ee.id)==="doxa-regions"){const Ae=()=>{const He=An(Se.value,at=>at.id.startsWith("country:")&&(at.isoCodes||[]).includes(N));He&&(ra(He),ce&&ce.selection&&(ce.selection.value=He))};Promise.resolve(Ya()).finally(()=>It(Ae))}}Fe(()=>g.filters,()=>{var E,N;(E=Y.applyFilters)==null||E.call(Y,g.filters),(N=B.applyFilters)==null||N.call(B,g.filters)},{deep:!0});let Cl=!1;Fe(()=>{var E;return(E=i==null?void 0:i.value)==null?void 0:E.externalFilters},E=>{var N,q;if(!(!E||typeof E!="object"||!g)){Cl=!0;try{if("region"in E&&((N=g.selectRegion)==null||N.call(g,E.region||null)),"religion"in E){const re=String(E.religion||"").trim(),_e=re?Object.keys(Jt).find(Ee=>String(Jt[Ee]).toLowerCase()===re.toLowerCase()):"";re?_e&&(D.value!=="religion"&&Xa("religion"),It(()=>d.setReligionFilter(_e))):d.religionFilter&&d.setReligionFilter(null)}"language"in E&&((q=g.selectLanguage)==null||q.call(g,E.language||null))}finally{It(()=>{Cl=!1})}}},{deep:!0,immediate:!0}),typeof window<"u"&&(window.__researchMapFilterState=()=>{var E,N;return{selectedRegion:(g==null?void 0:g.selectedRegion)||"",externalRegion:((N=(E=i==null?void 0:i.value)==null?void 0:E.externalFilters)==null?void 0:N.region)||"",religionFamily:Jt[d==null?void 0:d.religionFilter]||"",selectedLanguage:(g==null?void 0:g.selectedLanguage)||""}},window.__researchMapClusterDraw=()=>{var q,re;const E=te.value,N={};try{for(const _e of((re=(q=E==null?void 0:E.getStyle)==null?void 0:q.call(E))==null?void 0:re.layers)||[]){if(!/^(mapbox-clusters|cluster-lines)/.test(_e.id))continue;let Ee=0;try{Ee=E.queryRenderedFeatures({layers:[_e.id]}).length}catch{Ee=-1}N[_e.id]={visibility:_e.layout&&_e.layout.visibility||"visible",rendered:Ee}}}catch{}return N},window.__researchMapVocabulary=E=>{var re;const N=((re=F==null?void 0:F.normalizedPeopleGroups)==null?void 0:re.value)||[],q=new Set;for(const _e of N){if(E==="religionFamily"){const Ae=Jt[String((_e==null?void 0:_e.religion)||"").charAt(0)];Ae&&q.add(Ae);continue}const Ee=_e&&_e[E];typeof Ee=="string"&&Ee&&q.add(Ee)}return[...q].sort()});function MP(){var re,_e,Ee,Ae,He;if(Cl||typeof window>"u")return;const E=(He=(Ae=(Ee=(_e=(re=ko())==null?void 0:re.proxy)==null?void 0:_e.$el)==null?void 0:Ee.getRootNode)==null?void 0:Ae.call(Ee))==null?void 0:He.host;if(!E)return;const N=Jt[d==null?void 0:d.religionFilter]||"",q={region:(g==null?void 0:g.selectedRegion)||"",religion:N,language:(g==null?void 0:g.selectedLanguage)||""};E.dispatchEvent(new CustomEvent("map-filtered",{detail:q,bubbles:!0,composed:!0}))}Fe(()=>[g==null?void 0:g.selectedRegion,g==null?void 0:g.selectedLanguage,d==null?void 0:d.religionFilter],()=>MP()),Fe(()=>g.selectedRegion,E=>{Tt(E?{kind:"region",regionKey:E}:{kind:null})}),Fe(()=>g.selectedFamily,E=>{E?Tt({kind:"family",familyKey:E}):!g.selectedLanguage&&!g.selectedDialect&&Tt({kind:null})}),Fe(()=>g.selectedLanguage,E=>{E?Tt({kind:"language",languageKey:E}):!g.selectedFamily&&!g.selectedDialect&&Tt({kind:null})}),Fe(()=>g.selectedDialect,E=>{E!=null&&E.key?Tt({kind:"dialect",dialectKey:E.key,originalLabels:E.originalLabels||[]}):!g.selectedFamily&&!g.selectedLanguage&&Tt({kind:null})}),Fe(()=>d.prayerFilter,E=>{Tt(E?{kind:"prayer",property:"peoplePraying",expectedValue:E}:{kind:null})}),Fe(()=>d.engagementFilter,E=>{Tt(E?{kind:"engagement",property:"engagementStatus",expectedValue:E}:{kind:null})}),Fe(()=>d.adoptionFilter,E=>{Tt(E?{kind:"adoption",property:"adoptionStatus",expectedValue:E}:{kind:null})}),Fe(()=>d.religionFilter,E=>{Tt(E?{kind:"religion",property:"religion",expectedValue:E}:{kind:null})});let Za=!1;async function Xg(){var E,N,q,re;if(!Za){Za=!0;try{const _e=g.clusteringMode||"off";if(_e==="off"){g.showClusters&&(g.showClusters=!1),await((E=B.setEnabled)==null?void 0:E.call(B,!1));return}g.showClusters||(g.showClusters=!0),await((N=B.setMode)==null?void 0:N.call(B,_e)),(q=B.flushSelectionFilter)==null||q.call(B),await((re=B.setEnabled)==null?void 0:re.call(B,!0))}finally{Za=!1}}}Fe(()=>g.showClusters,async E=>{Za||(E&&(!g.clusteringMode||g.clusteringMode==="off")?g.clusteringMode="mst":!E&&g.clusteringMode!=="off"&&(g.clusteringMode="off"),await Xg())}),Fe(()=>g.clusteringMode,async()=>{Za||await Xg()});async function FP(E){var N,q,re,_e,Ee,Ae,He;g.registerMap(ie,te.value);try{te.value.setProjection("mercator")}catch{}C.applyTheme(te.value),E!=null&&E.length&&(Y.addLanguageFamilyLayer(E,((N=L.value)==null?void 0:N.colorStrategy)??"languageFamily"),((q=L.value)==null?void 0:q.id)==="doxa-regions"&&((re=te.value)!=null&&re.getLayer("language-family-pins"))&&te.value.setPaintProperty("language-family-pins","circle-color","#4b5563"),((_e=L.value)==null?void 0:_e.id)==="prayer"&&Y.startPrayerGlow(),(Ee=B.setData)==null||Ee.call(B,E),(Ae=X.build)==null||Ae.call(X,E),ue.initialize()),((He=L.value)==null?void 0:He.id)==="doxa-regions"&&(typeof window<"u"&&window.requestIdleCallback?ht=>window.requestIdleCallback(ht,{timeout:2e3}):ht=>setTimeout(ht,800))(()=>{Ya()}),Pl(),g.setMapReady(ie),$e.value=!0}let Ja=null,Pn=null;function Zg(E){const N=j.value;N&&(getComputedStyle(N).getPropertyValue("--map-radius").trim()||(N.style.setProperty("--map-radius","16px"),N.style.setProperty("--map-radius-sm","8px")),E>=700?(N.style.setProperty("--map-btn-size","40px"),N.style.setProperty("--map-toolbar-gap","8px"),N.style.setProperty("--map-font-md","13px"),N.style.setProperty("--map-font-sm","11px"),N.style.setProperty("--map-legend-width","380px")):E>=500?(N.style.setProperty("--map-btn-size","36px"),N.style.setProperty("--map-toolbar-gap","6px"),N.style.setProperty("--map-font-md","12px"),N.style.setProperty("--map-font-sm","10px"),N.style.setProperty("--map-legend-width","360px")):(N.style.setProperty("--map-btn-size","32px"),N.style.setProperty("--map-toolbar-gap","5px"),N.style.setProperty("--map-font-md","11px"),N.style.setProperty("--map-font-sm","10px"),N.style.setProperty("--map-legend-width","280px")))}return $o(async()=>{var q,re,_e,Ee;(q=d.init)==null||q.call(d),D.value=((re=J.value[0])==null?void 0:re.id)??"doxa-regions",d.isMobile?(_e=d.collapseLegend)==null||_e.call(d):(Ee=d.openLegend)==null||Ee.call(d),j.value&&(Zg(j.value.getBoundingClientRect().width),typeof ResizeObserver<"u"&&(Ja=new ResizeObserver(Ae=>{for(const He of Ae)Zg(He.contentRect.width)}),Ja.observe(j.value))),window.addEventListener("doxa:legend-row-click",Wg),window.addEventListener("legend:highlight",Yg);const E=F.loadData().catch(Ae=>(console.error("[research-map] data load failed:",Ae),{normalizedPeopleGroups:[]}));try{await de()}catch(Ae){console.error("[research-map] Map failed to initialize —",Ae),ne.value=String((Ae==null?void 0:Ae.message)||Ae);return}{const Ae=te.value?Ke(te.value):null;Ae&&Ae!==te.value&&(te.value=null,te.value=Fn(Ae))}if(!te.value){console.error("[research-map] Map failed to initialize — check token and container"),ne.value="Map failed to initialize — check token and container";return}te.value.once("style.load",async()=>{try{const{normalizedPeopleGroups:Ae}=await E;await FP(Ae)}catch(Ae){console.error("[research-map] onMapReady failed:",Ae),ne.value=String((Ae==null?void 0:Ae.message)||Ae)}}),a(te.value);const N=()=>a(te.value);try{Pn=new ResizeObserver(N);const Ae=te.value.getContainer&&te.value.getContainer()||null;Ae&&Pn.observe(Ae);const He=Ae?n(Ae):null;He&&Pn.observe(He),document.body&&Pn.observe(document.body)}catch{}window.addEventListener("resize",N),Xt(()=>window.removeEventListener("resize",N))}),Xt(()=>{var E,N;window.removeEventListener("doxa:legend-row-click",Wg),window.removeEventListener("legend:highlight",Yg),Ja&&(Ja.disconnect(),Ja=null),Pn&&(Pn.disconnect(),Pn=null),Y.stopPrayerGlow(),(E=B.cleanup)==null||E.call(B),(N=ue.cleanup)==null||N.call(ue),g.unregisterMap(ie),Pe()}),(E,N)=>(ae(),pe("div",{ref_key:"rmRoot",ref:j,class:Re(["rm-root",{"rm-dark":zt.value,"dsm-dark":zt.value}])},[U.value?(ae(),pe("div",{key:0,ref_key:"tabBar",ref:be,class:"rm-tab-bar"},[(ae(!0),pe(ze,null,Rt(J.value,q=>(ae(),pe(ze,{key:q.id},[M("button",{class:Re(["rm-tab",{active:D.value===q.id}]),onClick:re=>Xa(q.id)},ye(w(q)),11,kA),q.sepAfter?(ae(),pe("div",wA)):Le("",!0)],64))),128))],512)):Le("",!0),M("div",xA,[!$e.value&&!ne.value?(ae(),pe("div",LA,"Research map loading…")):Le("",!0),ne.value?(ae(),pe("div",SA,"The map could not be loaded. "+ye(ne.value),1)):Le("",!0),M("div",{ref_key:"mapContainer",ref:ke,class:"rm-map-canvas"},null,512),N[4]||(N[4]=M("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),N[5]||(N[5]=M("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),ge(c)!=="mapbox"?(ae(),pe("div",{key:2,class:"rm-provider-badge","data-provider":ge(c)},ye(ge(A)),9,AA)):Le("",!0),$e.value&&ge(te)&&u.value?(ae(),et(Jx,{key:3,ref_key:"geocoderRef",ref:xe,"map-instance":ge(te),"access-token":ge(l),provider:ge(c),"data-source-id":ge(v),"is-dark":zt.value,placeholder:z.value,"active-context":Q.value,onPeopleGroupResult:ge(Z),onAggregateResult:ge(le),onClear:ge(Ce)},null,8,["map-instance","access-token","provider","data-source-id","is-dark","placeholder","active-context","onPeopleGroupResult","onAggregateResult","onClear"])):Le("",!0),Le("",!0),$e.value&&ge(te)?(ae(),et(xx,{key:5,"has-geocoder":u.value},{default:jt(()=>[tt(Sx,{map:ge(te),"is-dark":zt.value},null,8,["map","is-dark"]),tt(Ax,{map:ge(te),"is-dark":zt.value},null,8,["map","is-dark"]),tt(Px,{map:ge(te),"is-dark":zt.value},null,8,["map","is-dark"]),tt(Tx,{"map-container":ke.value,"is-dark":zt.value},null,8,["map-container","is-dark"]),tt(Rx,{"is-dark":zt.value,onToggle:EP},null,8,["is-dark"]),tt(xn,{"is-dark":zt.value,active:ia.value,disabled:ia.value,title:AP.value,class:"export-poster-btn","aria-busy":ia.value?"true":"false",onClick:Ll},{default:jt(()=>[...N[3]||(N[3]=[M("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[M("path",{d:"M12 3v12M7 10l5 5 5-5M5 21h14"})],-1)])]),_:1},8,["is-dark","active","disabled","title","aria-busy"]),S.share?(ae(),et($L,{key:0,"is-dark":zt.value,"embed-path":"doxa-research-map/research-map/index.html"},null,8,["is-dark"])):Le("",!0)]),_:1},8,["has-geocoder"])):Le("",!0),$e.value&&f.value?(ae(),et(wx,{key:6,"legend-type":y.value,"is-dark":zt.value},null,8,["legend-type","is-dark"])):Le("",!0),$e.value?(ae(),et(FL,{key:7,"is-open":Vg.value,onClose:N[1]||(N[1]=q=>Vg.value=!1),onOpenPoster:Ll},{default:jt(()=>[tt(cS)]),_:1},8,["is-open"])):Le("",!0),M("div",{class:"rm-legend-desktop-slot",style:dt(p.value?{"--stl-top":p.value}:null)},[$e.value&&ge(d).legendMode==="detail"&&ge(d).selectedPeopleGroup?(ae(),et(dx,{key:0,"legend-type":y.value,"popup-action":R.value,"initially-collapsed":!1,"is-dark":zt.value},null,8,["legend-type","popup-action","is-dark"])):Le("",!0),qr(M("div",null,[$e.value?(ae(),et(vg,{key:0,nodes:eo.value,tabs:xl.value,title:dr.value,hideTabs:kP.value,columnLabel:wP.value,progress:ge(je),open:xP.value,"export-enabled":CA,onSelect:ra,onExport:PP,"onUpdate:open":LP},null,8,["nodes","tabs","title","hideTabs","columnLabel","progress","open"])):Le("",!0)],512),[[km,!(ge(d).legendMode==="detail"&&ge(d).selectedPeopleGroup)]])],4),M("div",PA,[$e.value?(ae(),et(ge(s),{key:0,"legend-type":y.value,"popup-action":R.value,"is-dark":zt.value},null,8,["legend-type","popup-action","is-dark"])):Le("",!0)]),$e.value&&Kg.value?(ae(),et(ge(r),{key:8,feature:Kg.value,action:R.value,dark:zt.value,onClose:N[2]||(N[2]=q=>ge(g).selectFeature(null))},null,8,["feature","action","dark"])):Le("",!0)])],2))}}},Symbol.toStringTag,{value:"Module"})),NA="",RA={class:"legend-sheet-root"},MA=["src","alt"],FA={key:0,class:"pull-tab-handle"},IA=["aria-label"],OA=["aria-label"],DA=["aria-label"],BA={class:"collapsed-detail-title"},GA={class:"legend-content"},jA=["aria-label"],UA=["aria-label"],xg=80,zA=48,HA=44,VA=24,Lg="--legend-sheet-h",Sg=Object.freeze(Object.defineProperty({__proto__:null,default:nn({__name:"LegendMobile",props:{legendType:{type:String,required:!0},nodes:{type:Array,default:null},tabs:{type:Array,default:null},defaultTab:{type:Number,default:0},columnLabel:{type:String,default:null},title:{type:String,default:null},columns:{type:Array,default:null},isDark:{type:Boolean,default:!1},popupAction:{type:String,default:"pray",validator:e=>["pray","adopt","none"].includes(e)},disableCollapse:{type:Boolean,default:!1}},setup(e){const{t}=bt();wt(` -.floating-mini-image{position:absolute;left:16px;bottom:calc(30% + 16px);z-index:999;pointer-events:auto;cursor:pointer;} -.mini-image{width:120px;height:150px;object-fit:cover;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.25);display:block;} -.legend-sheet-root{position:absolute;inset:0;pointer-events:none;overflow:hidden;} -.legend-sheet-root>*{pointer-events:auto;} -.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right, -.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{transform:translateY(calc(-1 * min(var(--legend-sheet-h,0px),48px)));} -.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{z-index:3;} -.mapboxgl-ctrl-bottom-right,.maplibregl-ctrl-bottom-right{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:2px;opacity:0.72;transform:translateY(calc(-1 * min(var(--legend-sheet-h,0px),48px))) scale(0.85);transform-origin:bottom right;transition:opacity 0.15s;} -.mapboxgl-ctrl-bottom-right:hover,.maplibregl-ctrl-bottom-right:hover{opacity:1;} -.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,.maplibregl-ctrl-bottom-right .maplibregl-ctrl{margin:0 6px 6px 0;} -.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib.mapboxgl-compact{margin-right:6px;} -.legend-mobile-sheet .stl-row{position:relative;} -.legend-mobile-sheet .stl-row .stl-x-slot{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:auto;} -.legend-mobile-sheet .stl-col-hdr .stl-x-slot{display:none;} -.legend-mobile-sheet{position:absolute;bottom:0;left:0;right:0;z-index:1000;background:white;border-top-left-radius:var(--map-radius,16px);border-top-right-radius:var(--map-radius,16px);box-shadow:0 -4px 20px rgba(0,0,0,0.2);transition:height 0.3s ease-out;display:flex;flex-direction:column;overflow:hidden;max-height:calc(100% - var(--legend-sheet-top-reserve,80px));} -.legend-mobile-sheet.dragging{transition:none!important;} -.sheet-drag-strip{position:absolute;top:0;left:0;right:0;height:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;z-index:2;} -.pull-tab-handle{width:40px;height:4px;background:#ccc;border-radius:2px;} -.mobile-collapse-caret{width:22px;height:20px;display:flex;align-items:center;justify-content:center;background:rgba(208,215,222,0.4);border:1px solid #d0d7de;border-radius:5px;cursor:pointer;color:#57606a;padding:0;transition:transform 0.3s ease-out,color 0.1s,background 0.1s,border-color 0.1s;transform-origin:center;outline:none;-webkit-tap-highlight-color:transparent;flex-shrink:0;} -.mobile-collapse-caret:focus{outline:none;} -@media (pointer:coarse){.mobile-collapse-caret{width:24px;height:24px;}} -.mobile-collapse-caret:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;} -.legend-mobile-sheet.sheet-dark .mobile-collapse-caret{background:rgba(110,118,129,0.15);border-color:#30363d;color:#8b949e;box-shadow:none;} -.legend-mobile-sheet.sheet-dark .mobile-collapse-caret:hover{color:#c9d1d9;background:rgba(59,70,61,0.18);border-color:#73A17F;} -.detail-collapse-btn-mobile{position:absolute;top:10px;left:12px;background:transparent;border:none;padding:0;cursor:pointer;color:transparent;width:28px;height:28px;z-index:3;outline:none;-webkit-tap-highlight-color:transparent;} -.detail-collapse-btn-mobile:focus{outline:none;} -.detail-close-btn{position:absolute;top:10px;right:12px;background:none;border:none;padding:4px;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;z-index:3;transition:color 0.2s ease;} -.detail-close-btn:hover{color:#333;} -.legend-mobile-sheet .pg-name-lead{padding-right:32px;} -.collapsed-detail-footer{position:absolute;top:12px;left:0;right:0;height:36px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;cursor:pointer;background:transparent;z-index:4;} -.collapsed-detail-title{font:600 13px system-ui,sans-serif;letter-spacing:0.02em;line-height:1.4;color:#1f2328;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} -.legend-mobile-sheet.sheet-dark .collapsed-detail-title{color:#F3F3F1;} -.legend-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:12px 0;-webkit-overflow-scrolling:touch;} -.legend-mobile-sheet .legend-content>.stl-panel, -.legend-mobile-sheet .legend-content>.legend-row-group{flex:1;min-height:0;} -.legend-mobile-sheet .legend-row-group{--lrg-caret-col:24px;} -.legend-content::-webkit-scrollbar{width:4px;} -.legend-content::-webkit-scrollbar-track{background:transparent;} -.legend-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.18);border-radius:4px;} -.legend-content::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.3);} -.legend-mobile-sheet.collapsed .legend-content .lrg-row, -.legend-mobile-sheet.collapsed .legend-content .lrg-footer, -.legend-mobile-sheet.collapsed .legend-content .lrg-header-col, -.legend-mobile-sheet.collapsed .legend-content .lft-row, -.legend-mobile-sheet.collapsed .legend-content .lft-row-child, -.legend-mobile-sheet.collapsed .legend-content .lft-header-col{display:none!important;} -.legend-mobile-sheet.collapsed{box-shadow:0 -2px 8px rgba(0,0,0,0.15);height:48px !important;min-height:48px;border-top-left-radius:0;border-top-right-radius:0;} -.legend-mobile-sheet.collapsed .legend-content{padding:0!important;display:flex;align-items:center;height:48px;} -.legend-mobile-sheet.collapsed .lrg-items, -.legend-mobile-sheet.collapsed .lft-items{padding:0!important;align-content:center;height:48px;} -.legend-mobile-sheet .stl-titlebar{padding:8px 10px 8px 8px!important;border-bottom:1px solid rgba(33,38,45,0.10)!important;} -.legend-mobile-sheet .stl-tb-title{text-transform:none!important;letter-spacing:0!important;font:600 14px system-ui,sans-serif!important;color:#1f2328!important;} -.legend-mobile-sheet.sheet-dark .stl-tb-title{color:#F3F3F1!important;} -.legend-mobile-sheet.collapsed .lrg-title-row, -.legend-mobile-sheet.collapsed .lft-title-row, -.legend-mobile-sheet.collapsed .stl-titlebar{padding:0 16px!important;display:flex;align-items:center;justify-content:center;gap:8px;height:48px;min-height:0!important;border-bottom:none!important;} -.legend-mobile-sheet.collapsed .stl-tb-title, -.legend-mobile-sheet.collapsed .lrg-title, -.legend-mobile-sheet.collapsed .lrg-title-row .lrg-title, -.legend-mobile-sheet.collapsed .lft-title{font-size:13px!important;letter-spacing:0.02em!important;line-height:1.4!important;} -.legend-mobile-sheet.collapsed .stl-tabs-wrap, -.legend-mobile-sheet.collapsed .stl-col-hdr, -.legend-mobile-sheet.collapsed .stl-rows, -.legend-mobile-sheet.collapsed .lrg-row, -.legend-mobile-sheet.collapsed .lrg-footer, -.legend-mobile-sheet.collapsed .lrg-header-col, -.legend-mobile-sheet.collapsed .lft-row, -.legend-mobile-sheet.collapsed .lft-row-child, -.legend-mobile-sheet.collapsed .lft-header-col{display:none!important;} -.legend-mobile-sheet .stl-panel{position:static!important;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;width:100%!important;max-width:none!important;z-index:auto!important;display:flex;flex-direction:column;min-height:0;max-height:none!important;} -.legend-mobile-sheet .stl-panel.closed{transform:none!important;opacity:1!important;pointer-events:auto!important;} -.legend-mobile-sheet .stl-inner{border:none!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;} -.legend-mobile-sheet .lrg-item-inner{min-height:28px!important;padding:2px 0!important;} -.legend-mobile-sheet .lrg-items{row-gap:3px!important;} -.legend-mobile-sheet .stl-rows{min-height:0;} -.legend-mobile-sheet .stl-reopen{display:none!important;} -.legend-mobile-sheet .stl-collapse-btn{display:none!important;} -.legend-mobile-sheet .stl-titlebar{border-bottom-color:rgba(0,0,0,0.08)!important;} -.legend-mobile-sheet .lft-row{min-height:44px;column-gap:8px;} -.legend-mobile-sheet .lft-row-child{margin-left:0;} -.legend-mobile-sheet .lft-item-inner{min-height:36px;padding:6px 8px;} -.legend-mobile-sheet .lft-name{font-size:13px;} -.sheet-dark{background:#3b463d!important;box-shadow:0 -4px 20px rgba(0,0,0,0.5)!important;} -.sheet-dark .mobile-collapse-caret{background:rgba(110,118,129,0.15)!important;border-color:#30363d!important;color:#8b949e!important;} -.sheet-dark .mobile-collapse-caret:hover{color:#c9d1d9!important;background:rgba(59,70,61,0.18)!important;border-color:#73A17F!important;} -.sheet-dark .detail-close-btn{color:rgba(243,243,241,0.75)!important;} -.sheet-dark .detail-close-btn:hover{color:#F3F3F1!important;} -.sheet-dark .pull-tab-handle{background:rgba(243,243,241,0.3)!important;} -.sheet-dark .legend-content{background:#3b463d!important;} -.sheet-dark .legend-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);} -`,"legend-mobile-sheet");const o=e,n=Ne("uiStore");Ne("mapStore");const a=Ne("dataStore"),s=Ne("onSemanticTreeSelect",()=>{}),r=Ne("onLegendExport",null),i=oe(()=>typeof r=="function"),l=ys(o,"legendType"),{items:c,columns:u,title:p,activeFilter:f,setFilter:A,totalCount:v,totalPopulation:b,fmtPop:_,fmtCount:$}=Va(l,cr),h=Ne("normalizedPeopleGroups",null),m=oe(()=>{var x,B;if((x=h==null?void 0:h.value)!=null&&x.length)return h.value;const k=[];for(const X in(a==null?void 0:a.sources)||{}){const me=a.sources[X];(B=me==null?void 0:me.features)!=null&&B.length&&k.push(...me.features)}return k}),w={get value(){return m.value}},{langTree:g}=hl(w),{affinityTree:P}=kg(w),{regionsTree:d}=wg(w),C=[{id:"family",label:"Lang Family",info:"A language family is a group of languages descended from a common ancestor."},{id:"language",label:"Language",info:"A language is a system of communication used by a people."},{id:"dialect",label:"Dialect",info:"A dialect/variety is a regional or social form of a language."}],S=[{id:"bloc",label:"Block",info:"Affinity Block (rop1) — broadest grouping. 16 blocks total."},{id:"cluster",label:"Cluster",info:"Cluster (imb_reg_of_people_2, ROP 2) — finer grouping inside a block. 194 total."},{id:"group",label:"PG",info:"People Group (imb_reg_of_people_25, ROP 2.5) — abstract identity. 1,736 PGs."},{id:"pgic",label:"PGIC",info:"PG in Country (imb_reg_of_people_3 + country_code) — one row per PG-country pair. 2,106 rows."}],G=[{id:"region",label:"Region",info:'WAGF macro-region (e.g. "Asia", "Africa"). Color-coded on the map.'},{id:"block",label:"Bloc",info:'WAGF bloc — organizational sub-grouping within each region (e.g. "South East Asia").'},{id:"country",label:"Country",info:"Individual countries, listed by unreached-population size within their bloc."}],H=oe(()=>["prayer","engagement","adoption","religion"].includes(o.legendType));function J(k){const x=[];for(const B of k){x.push({id:B.key,label:B.label,color:B.color,count:B.count??0,pop:B.population??0,filter:B.filterKey?["==",["get","_flat_filter"],B.filterKey]:null,children:[]});for(const X of B.children||[])x.push({id:X.key,label:X.label,color:X.color,count:X.count??0,pop:X.population??0,filter:X.filterKey?["==",["get","_flat_filter"],X.filterKey]:null,children:[]})}return x}const U=oe(()=>o.nodes?o.nodes:H.value?J(c.value):o.legendType==="affinity-block"?P.value:o.legendType==="doxa-regions"?d.value:g.value),D=oe(()=>o.nodes?o.tabs:H.value?null:o.legendType==="affinity-block"?S:o.legendType==="doxa-regions"?G:C),L=oe(()=>o.title?o.title:H.value?t("legend.titleBar.legend"):o.legendType==="affinity-block"?t("legend.titleBar.peopleGroups"):o.legendType==="doxa-regions"?t("legend.titleBar.wagfRegions"):t("legend.titleBar.languages")),y=oe(()=>o.columnLabel!==null?o.columnLabel:["religion","prayer","engagement","adoption"].includes(o.legendType)?t("legend.colLabel."+o.legendType):H.value?t("legend.colLabel.status"):""),R=he(null),z=he(!1),K={pending:null,active:!1,startY:0,startH:0,startState:"",containerH:0,maxH:0,lastH:0,contentEl:null};let Q=0;const ie=()=>Date.now()-Q<400,j=oe(()=>n.legendState),be=oe(()=>n.legendHeight),xe=oe(()=>n.caretRotation),fe=oe(()=>n.showPullTab),ke=oe(()=>n.legendMode),$e=oe(()=>n.selectedPeopleGroup),ne=oe(()=>{var k;return ke.value==="detail"&&$e.value?((k=$e.value.properties)==null?void 0:k.name)||t("legend.header.peopleGroupFallback"):j.value==="collapsed"?o.title||t("legend.header.collapsed"):o.title||p.value});function te(k){n.handleLegendItemClick(),A(k)}function de(){ie()||n.toggleLegend()}function Pe(){ie()||(n.selectPeopleGroup(null),n.openLegend())}const T=oe(()=>{var x;if(!$e.value)return null;const k=$e.value.properties||{};return k.imageUrl||((x=k._raw)==null?void 0:x.ImageURL)||null});function F(k){var ce;if(j.value==="collapsed")return;const x=k.touches[0],B=R.value;if(!x||!B)return;const me=x.clientY-B.getBoundingClientRect().top<=HA?"grab":ke.value==="detail"?"content":null;me&&(K.pending=me,K.active=!1,K.startY=x.clientY,K.startH=B.offsetHeight,K.lastH=K.startH,K.startState=j.value,K.containerH=((ce=B.parentElement)==null?void 0:ce.offsetHeight)||window.innerHeight,K.maxH=K.containerH-xg,K.contentEl=B.querySelector(".legend-content"))}function I(k){if(!K.pending&&!K.active)return;const x=k.touches[0];if(!x)return;const B=K.startY-x.clientY;if(!K.active){if(B===0)return;let me=K.pending==="grab";if(K.pending==="content"){const ce=!K.contentEl||K.contentEl.scrollTop<=0;me=B>0?K.startH0?n.fullyOpenLegend():K.startState==="fullyOpen"?n.openLegend():n.collapseLegend()}function Y(k){k==="fullyOpen"?n.fullyOpenLegend():k==="collapsed"?n.collapseLegend():n.openLegend()}let O=null,ue=null,ee=null;return $o(()=>{const k=R.value;if(!k||typeof ResizeObserver>"u")return;const x=k.getRootNode();ue=x instanceof ShadowRoot?x.host:x.documentElement||null,ue&&(ee=k,O=new ResizeObserver(()=>{const B=k.offsetHeight;B<=0||(ue.style.setProperty(Lg,`${B}px`),ue.__legendSheetVarOwner=k)}),O.observe(k))}),Xt(()=>{O&&(O.disconnect(),O=null),ue&&ue.__legendSheetVarOwner===ee&&(ue.style.removeProperty(Lg),ue.__legendSheetVarOwner=null),ue=null,ee=null}),(k,x)=>{var B;return ae(),pe("div",RA,[ke.value==="detail"&&$e.value&&j.value==="open"&&T.value?(ae(),pe("div",{key:0,class:"floating-mini-image",onClick:x[0]||(x[0]=X=>ge(n).fullyOpenLegend())},[M("img",{src:T.value,alt:(B=$e.value.properties)==null?void 0:B.name,class:"mini-image"},null,8,MA)])):Le("",!0),M("div",{ref_key:"sheetRef",ref:R,class:Re(["legend-mobile-sheet",[j.value,{"sheet-dark":e.isDark,dragging:z.value}]]),style:dt({height:be.value,"--legend-sheet-top-reserve":xg+"px"}),onTouchstart:F,onTouchmove:I,onTouchend:W,onTouchcancel:W},[M("div",{class:"sheet-drag-strip",onClick:de},[fe.value?(ae(),pe("div",FA)):Le("",!0)]),ke.value==="detail"&&j.value!=="collapsed"?(ae(),pe("button",{key:0,class:"detail-collapse-btn-mobile",onClick:gt(de,["stop"]),"aria-label":ge(t)("aria.toggleLegend")},null,8,IA)):Le("",!0),ke.value==="detail"&&j.value!=="collapsed"?(ae(),pe("button",{key:1,class:"detail-close-btn",onClick:gt(Pe,["stop"]),"aria-label":ge(t)("aria.backToLegend")},[...x[2]||(x[2]=[M("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[M("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,OA)):Le("",!0),j.value==="collapsed"&&ke.value==="detail"&&$e.value?(ae(),pe("div",{key:2,class:"collapsed-detail-footer",onClick:de},[M("button",{class:"mobile-collapse-caret",style:dt({transform:`rotate(${xe.value}deg)`}),"aria-label":ge(t)("aria.toggleLegend"),tabindex:"-1"},[...x[3]||(x[3]=[M("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[M("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,DA),M("span",BA,ye(ne.value),1)])):Le("",!0),M("div",GA,[ke.value==="detail"&&$e.value?(ae(),pe(ze,{key:0},[j.value!=="collapsed"?(ae(),et(bl,{key:0,peopleGroup:$e.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):Le("",!0)],64)):e.legendType!=="default"?(ae(),et(vg,{key:1,nodes:U.value,tabs:D.value,"default-tab":e.defaultTab,title:ne.value||L.value,hideTabs:e.nodes?!e.tabs:H.value,columnLabel:y.value,columns:e.columns||["count","pop"],"export-enabled":i.value,onSelect:ge(s),onExport:x[1]||(x[1]=X=>ge(r)&&ge(r)(X))},{"title-caret":jt(()=>[M("button",{class:"mobile-collapse-caret",style:dt({transform:`rotate(${xe.value}deg)`}),onClick:gt(de,["stop"]),"aria-label":ge(t)("aria.toggleLegend")},[...x[4]||(x[4]=[M("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[M("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,jA)]),_:1},8,["nodes","tabs","default-tab","title","hideTabs","columnLabel","columns","export-enabled","onSelect"])):(ae(),et(pg,{key:2,title:ne.value,items:ge(c),columns:ge(u),activeFilter:ge(f),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:ge(v),totalPopulation:ge(b),fmtPop:ge(_),fmtCount:ge($),onFilterClick:te},{"title-caret":jt(()=>[M("button",{class:"mobile-collapse-caret",style:dt({transform:`rotate(${xe.value}deg)`}),onClick:gt(de,["stop"]),"aria-label":ge(t)("aria.toggleLegend")},[...x[5]||(x[5]=[M("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[M("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,UA)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount"]))])],38)])}}},[["styles",[NA]],["__scopeId","data-v-f1552af9"]])},Symbol.toStringTag,{value:"Module"})),Ag={regular:"Noto Sans Regular",medium:"Noto Sans Bold",bold:"Noto Sans Bold"};function KA(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function qA(e,{weight:t="regular",mapbox:o}={}){return KA(e)?{"text-font":[Ag[t]||Ag.regular]}:Array.isArray(o)&&o.length?{"text-font":o}:{}}function Pg(e,t,o,n){const a=parseFloat(t)-parseFloat(n),s=parseFloat(e)-parseFloat(o);return Math.sqrt(a*a+s*s)}function WA(e,t){const o={};for(const n of e){const a=t(n);o[a]||(o[a]=[]),o[a].push(n)}return o}const YA=Object.freeze({cluster:!0,clusterMaxZoom:6,clusterRadius:40}),XA=Object.freeze(["step",["get","point_count"],"#51bbd6",10,"#f1f075",50,"#f28cb1",500,"#e74c3c"]),ZA=Object.freeze(["step",["get","point_count"],15,10,20,50,25,500,35]);class Cg{constructor(t={}){this.maxConnectionDistance=t.maxConnectionDistance??1/0}_calculateDistance(t,o){return Pg(parseFloat(t.latitude),parseFloat(t.longitude),parseFloat(o.latitude),parseFloat(o.longitude))}_createUnionFind(t){const o=Array.from({length:t},(r,i)=>i),n=new Array(t).fill(0),a=r=>(o[r]!==r&&(o[r]=a(o[r])),o[r]);return{find:a,union:(r,i)=>{const l=a(r),c=a(i);return l===c?!1:(n[l]n[c]?o[c]=l:(o[c]=l,n[l]++),!0)}}}generateMSTLines(t,o={}){const n=o.maxConnectionDistance??this.maxConnectionDistance;if(!t||t.length<2)return[];const a=t.filter(p=>{const f=parseFloat(p.latitude),A=parseFloat(p.longitude);return!isNaN(f)&&!isNaN(A)});if(a.length<2)return[];const s=[];for(let p=0;pp.distance-f.distance);const r=this._createUnionFind(a.length),i=[];let l=0;const c=a.length-1;for(const p of s){if(l>=c)break;r.union(p.from,p.to)&&(i.push(p),l++)}const u=i.map(p=>({type:"Feature",geometry:{type:"LineString",coordinates:[[parseFloat(p.fromPoint.longitude),parseFloat(p.fromPoint.latitude)],[parseFloat(p.toPoint.longitude),parseFloat(p.toPoint.latitude)]]},properties:{distance:p.distance,algorithm:"MST"}}));return i.length${n} deg).`),u}generateMultiGroupMSTLines(t,o=null,n={}){const a={},s=Object.keys(t).sort((r,i)=>t[i].length-t[r].length);for(const r of s){const i=t[r];if(!i||i.length<2){a[r]={lines:[],count:0,pointCount:(i==null?void 0:i.length)||0};continue}const l=this.generateMSTLines(i,n);if(typeof o=="function"){const c=o(r);l.forEach(u=>{u.properties={...u.properties,group:r,color:c}})}else l.forEach(c=>{c.properties={...c.properties,group:r}});a[r]={lines:l,count:l.length,pointCount:i.length}}return a}generateAllMSTLines(t,o=null,n={}){const a=this.generateMultiGroupMSTLines(t,o,n),s=[];for(const r in a)s.push(...a[r].lines);return s}getMSTStats(t,o={}){const n=this.generateMultiGroupMSTLines(t,null,o);let a=0,s=0;const r=[];for(const l in n){const{lines:c,pointCount:u}=n[l];a+=c.length,s+=u;const p=Math.max(0,u-1),f=u>1?(c.length/p*100).toFixed(1):100;r.push({name:l,points:u,lines:c.length,expected:p,coverage:f+"%",hasOrphans:c.lengthc.points-l.points);const i=r.filter(l=>l.hasOrphans).length;return{algorithm:"MST (Minimum Spanning Tree)",totalGroups:Object.keys(t).length,totalPoints:s,totalLines:a,expectedLines:Math.max(0,s-Object.keys(t).length),groupsWithOrphans:i,allPointsConnected:i===0,groups:r}}}new Cg;class Eg{constructor(t={}){this.maxDistance=t.maxDistance??15,this.maxNeighbors=t.maxNeighbors??15,this.sortKey=t.sortKey??"longitude"}_calculateDistance(t,o,n,a){return Pg(t,o,n,a)}generateNetworkLines(t,o={}){const n=o.maxDistance??this.maxDistance,a=o.maxNeighbors??this.maxNeighbors,s=o.sortKey??this.sortKey,r=o.connectOrphans??!0;if(!t||t.length<2)return[];const i=t.filter(p=>{const f=parseFloat(p.latitude),A=parseFloat(p.longitude);return!isNaN(f)&&!isNaN(A)});if(i.length<2)return[];const l=[],c=new Set,u=[...i].sort((p,f)=>parseFloat(p[s])-parseFloat(f[s]));for(let p=0;pt[i].length-t[r].length);for(const r of s){const i=t[r];if(!i||i.length<2){a[r]={lines:[],count:0,pointCount:(i==null?void 0:i.length)||0};continue}const l=this.generateNetworkLines(i,n);if(typeof o=="function"){const c=o(r);l.forEach(u=>{u.properties={...u.properties,group:r,color:c}})}else l.forEach(c=>{c.properties={...c.properties,group:r}});a[r]={lines:l,count:l.length,pointCount:i.length}}return a}generateAllNetworkLines(t,o=null,n={}){const a=this.generateMultiGroupNetworkLines(t,o,n),s=[];for(const r in a)s.push(...a[r].lines);return s}getClusteringStats(t,o={}){const n=this.generateMultiGroupNetworkLines(t,null,o);let a=0,s=0;const r=[];for(const i in n){const{lines:l,pointCount:c}=n[i];a+=l.length,s+=c,r.push({name:i,points:c,lines:l.length,ratio:c>0?(l.length/c).toFixed(2):0})}return r.sort((i,l)=>l.points-i.points),{algorithm:"Network (nearest-neighbor)",totalGroups:Object.keys(t).length,totalPoints:s,totalLines:a,avgLinesPerPoint:s>0?(a/s).toFixed(2):0,groups:r}}}new Eg({maxDistance:15,maxNeighbors:15,sortKey:"longitude"});const na="cluster-lines-source",aa="cluster-lines",rn="mapbox-clusters",Qt="mapbox-clusters-circle",sa="mapbox-clusters-count",JA=Object.freeze({type:"FeatureCollection",features:[]});function Tg(e={}){const{getMap:t=()=>null,mapId:o="unknown",getPeopleGroups:n=()=>[],pinSourceId:a="language-families",pinLayerId:s="language-family-pins",groupKey:r="languageFamily",getGroupColor:i=null,mapboxClusterOptions:l={}}=e,c=Ne("mapStore",null),u=new Cg({maxConnectionDistance:1/0}),p=new Eg({maxDistance:15,maxNeighbors:15,sortKey:"longitude"}),f=he(!1),A=he("mapbox"),v=oe(()=>c&&"clusteringEnabled"in c?!!c.clusteringEnabled:f.value),b=oe(()=>c&&c.clusteringMode?c.clusteringMode:A.value),_=he([]);let $=null,h=null,m=null;function w(j){const be=["mapbox","mst","network"];if(!be.includes(j)){console.warn(`[${o}] useMapClustering.setMode: unknown mode "${j}". Allowed: ${be.join(", ")}`);return}c&&typeof c.setClusteringMode=="function"?c.setClusteringMode(j):c&&"clusteringMode"in c?c.clusteringMode=j:A.value=j,v.value&&(G(),S())}function g(j){const be=!!j;c&&typeof c.setClusteringEnabled=="function"?c.setClusteringEnabled(be):c&&"clusteringEnabled"in c?c.clusteringEnabled=be:f.value=be,be?S():G()}function P(j){!j||!j.property||j.value==null?m=null:m={property:j.property,value:j.value},c&&("clusterFilterProperty"in c&&(c.clusterFilterProperty=(m==null?void 0:m.property)??null),"clusterFilterValue"in c&&(c.clusterFilterValue=(m==null?void 0:m.value)??null)),v.value&&(G(),S())}function d(j){if(!m)return j;const{property:be,value:xe}=m,fe=$e=>String($e||"").toLowerCase().replace(/[^a-z0-9]+/g,""),ke=fe(xe);return ke?j.filter($e=>{var te,de;const ne=($e==null?void 0:$e[be])??((te=$e==null?void 0:$e.properties)==null?void 0:te[be])??((de=$e==null?void 0:$e._normalized)==null?void 0:de[be]);return fe(ne)===ke}):j}function C(j){$=j}function S(){const j=t();if(j){switch(G(),b.value){case"mapbox":D(j);break;case"mst":L(j,"mst");break;case"network":L(j,"network");break;default:console.warn(`[${o}] Unknown clustering mode: ${b.value}`)}ie(j,!0)}}function G(){const j=t();j&&(J(j,sa,!1),J(j,Qt,!1),U(j,rn),J(j,aa,!1),U(j,na),_.value=[],R(j),ie(j,!1))}function H(){const j=t();j&&(R(j),j.getLayer(sa)&&j.removeLayer(sa),j.getLayer(Qt)&&j.removeLayer(Qt),j.getSource(rn)&&j.removeSource(rn),j.getLayer(aa)&&j.removeLayer(aa),j.getSource(na)&&j.removeSource(na),ie(j,!1)),_.value=[],$=null}function J(j,be,xe){if(j.getLayer(be))try{j.setLayoutProperty(be,"visibility",xe?"visible":"none")}catch{}}function U(j,be){const xe=j.getSource(be);if(xe&&typeof xe.setData=="function")try{xe.setData(JA)}catch{}}function D(j){const be=d(n());if(!be.length)return;const xe=be.map($e=>{const ne=parseFloat($e.longitude??$e.lng),te=parseFloat($e.latitude??$e.lat);return isNaN(ne)||isNaN(te)?null:{type:"Feature",geometry:{type:"Point",coordinates:[ne,te]},properties:{...$e.properties||$e}}}).filter(Boolean),fe={type:"FeatureCollection",features:xe},ke=j.getSource(rn);ke&&typeof ke.setData=="function"?ke.setData(fe):j.addSource(rn,{type:"geojson",data:fe,...YA,...l}),j.getLayer(Qt)?J(j,Qt,!0):j.addLayer({id:Qt,type:"circle",source:rn,filter:["has","point_count"],paint:{"circle-color":XA,"circle-radius":ZA,"circle-stroke-width":2,"circle-stroke-color":"#ffffff",...Ao(j),"circle-opacity":.85}}),j.getLayer(sa)?J(j,sa,!0):j.addLayer({id:sa,type:"symbol",source:rn,filter:["has","point_count"],layout:{"text-field":["get","point_count_abbreviated"],...qA(j,{weight:"medium",mapbox:["DIN Offc Pro Medium","Arial Unicode MS Bold"]}),"text-size":12},paint:{"text-color":"#000000"}}),y(j),console.log(`[${o}] Clustering: mapbox-native applied (${xe.length} features)`)}function L(j,be){const xe=d(n());if(!xe.length)return;const fe=WA(xe,Pe=>{var T;return Pe[r]??((T=Pe._normalized)==null?void 0:T[r])??"Unknown"}),ke=typeof i=="function"?i:()=>"#666666";let $e=[],ne=null;if(be==="mst"?($e=u.generateAllMSTLines(fe,ke),ne=u.getMSTStats(fe)):($e=p.generateAllNetworkLines(fe,ke),ne=p.getClusteringStats(fe)),_.value=$e,$e.length===0)return;const te={type:"FeatureCollection",features:$e},de=j.getSource(na);if(de&&typeof de.setData=="function"?de.setData(te):j.addSource(na,{type:"geojson",data:te}),j.getLayer(aa))J(j,aa,!0);else{const Pe={id:aa,type:"line",source:na,paint:{"line-color":["coalesce",["get","color"],"#666666"],"line-width":["interpolate",["linear"],["zoom"],0,.5,4,.75,8,1,12,1.5],...Ao(j,"line"),"line-opacity":.5},layout:{"line-cap":"round","line-join":"round"}};j.getLayer(s)?j.addLayer(Pe,s):j.addLayer(Pe)}console.log(`[${o}] Clustering: ${be} applied — ${$e.length} lines across ${(ne==null?void 0:ne.totalGroups)??0} groups`)}function y(j){j.getLayer(Qt)&&(j.on("click",Qt,z),j.on("mouseenter",Qt,K),j.on("mouseleave",Qt,Q),h=Qt)}function R(j){if(!h)return;const be=h;try{j.off("click",be,z),j.off("mouseenter",be,K),j.off("mouseleave",be,Q)}catch{}h=null}function z(j){const be=t();if(!be)return;const xe=be.queryRenderedFeatures(j.point,{layers:[Qt]});if(!xe.length)return;const fe=xe[0],ke=fe.properties.cluster_id,$e=fe.geometry.coordinates,ne=fe.properties.point_count;if(typeof $=="function"){$({clusterId:ke,coordinates:$e,pointCount:ne,originalEvent:j});return}const te=be.getSource(rn);!te||typeof te.getClusterExpansionZoom!="function"||te.getClusterExpansionZoom(ke,(de,Pe)=>{de||be.easeTo({center:$e,zoom:Pe})})}function K(){const j=t();j&&(j.getCanvas().style.cursor="pointer")}function Q(){const j=t();j&&(j.getCanvas().style.cursor="")}function ie(j,be){if(j.getLayer(s))try{j.setPaintProperty(s,"circle-opacity",be?.25:.9)}catch{}}return{enabled:v,mode:b,clusterLines:_,setMode:w,setEnabled:g,setSelectionFilter:P,onClusterClick:C,applyClustering:S,clearClustering:G,cleanup:H,mstUtil:u,networkUtil:p}}const QA=Object.freeze(Object.defineProperty({__proto__:null,default:Tg,useMapClustering:Tg},Symbol.toStringTag,{value:"Module"})),yt={dpi:300,margins:{top:.75,right:.75,bottom:.75,left:.75},bleed:.125,gutter:{in:.2},title:{heightIn:1.25,fontFamily:'Inter, system-ui, -apple-system, "Segoe UI", sans-serif',fontWeightTitle:700,fontWeightSubtitle:500,fontSizeTitlePt:36,fontSizeSubtitlePt:16,color:"#0a0a0a"},legend:{widthIn:3,fontFamily:"Inter, system-ui, sans-serif",fontSizePt:11,swatchSize:14,backgroundColor:"rgba(255,255,255,0.94)",borderColor:"#cccccc"},chromeBand:{heightIn:.6},scaleBar:{widthIn:2.5,units:"both",color:"#111",backgroundColor:"rgba(255,255,255,0.9)"},north:{sizeIn:.6,color:"#111"},footer:{heightIn:.45,fontFamily:"Inter, system-ui, sans-serif",fontSizePt:10,color:"#222",attribution:"© Mapbox © OpenStreetMap",backgroundColor:"rgba(255,255,255,0.92)"}};function eP(e){return{widthIn:e.widthIn,heightIn:e.heightIn,dpi:e.dpi||yt.dpi,orientation:e.orientation||(e.heightIn>=e.widthIn?"portrait":"landscape"),margins:{...yt.margins},bleed:yt.bleed,slots:{title:{text:"Untitled",subtitle:"",heightIn:yt.title.heightIn},legend:{rows:[],type:"generic",widthIn:yt.legend.widthIn},scaleBar:!0,north:!0,footer:{left:"",right:"",attribution:yt.footer.attribution,heightIn:yt.footer.heightIn}},renderPath:"auto"}}const Ng=Object.freeze(Object.defineProperty({__proto__:null,defaultPosterSpec:eP,posterDefaults:yt},Symbol.toStringTag,{value:"Module"}));function Mt(e,t){return Math.round(e*t)}function tP(e,t){var g,P,d,C,S,G,H,J;const o=t.dpi,n=e.margins||yt.margins,a={x:0,y:0,w:t.width,h:t.height},s={x:Mt(n.left,o),y:Mt(n.top,o),w:t.width-Mt(n.left+n.right,o),h:t.height-Mt(n.top+n.bottom,o)},r=(g=e.slots)!=null&&g.title?Mt(e.slots.title.heightIn||yt.title.heightIn,o):0,i={x:s.x,y:s.y,w:s.w,h:r},l=Mt(((d=(P=e.slots)==null?void 0:P.footer)==null?void 0:d.heightIn)||yt.footer.heightIn,o),c={x:s.x,y:s.y+s.h-l,w:s.w,h:l},u=(C=e.slots)!=null&&C.legend?Mt(e.slots.legend.widthIn||yt.legend.widthIn,o):0,p=(S=e.slots)!=null&&S.scaleBar||(G=e.slots)!=null&&G.north?Mt(yt.chromeBand.heightIn,o):0,f=s.y+r+(r?Mt(yt.gutter.in,o):0),A=c.y-p-(p?Mt(yt.gutter.in,o):0),v={x:s.x,y:f,w:s.w-(u?u+Mt(yt.gutter.in,o):0),h:A-f},b=u?{x:s.x+s.w-u,y:f,w:u,h:v.h}:{x:0,y:0,w:0,h:0},_=Mt(yt.scaleBar.widthIn,o),$=p,h=(H=e.slots)!=null&&H.scaleBar?{x:s.x,y:A+(p?Mt(yt.gutter.in,o):0),w:_,h:$}:{x:0,y:0,w:0,h:0},m=Mt(yt.north.sizeIn,o),w=(J=e.slots)!=null&&J.north?{x:s.x+s.w-m-(u?u+Mt(yt.gutter.in,o):0),y:A+(p?Mt(yt.gutter.in,o):0),w:m,h:m}:{x:0,y:0,w:0,h:0};return{page:a,content:s,title:i,map:v,legend:b,scaleBar:h,north:w,footer:c}}const Ln=4096,Co=2048,Rg=15e3;function Mg(e){const t=he({phase:"idle",completed:0,total:0,message:"",fraction:0,percent:0}),o=he(!1);let n=null;async function a(v,b="png"){if(o.value)throw new Error("useMapPoster: already rendering");const _=e();if(!_)throw new Error("useMapPoster: no source map");n=new AbortController;const $=rP(v.signal,n.signal);o.value=!0,l=0,c("init",1,1,"preparing render");try{const h=Fg(v),m=oP(v.renderPath||"auto",h);m==="single"&&(h.width>Ln||h.height>Ln)&&console.warn(`[useMapPoster] requested single-canvas ${h.width}×${h.height}px > ${Ln}; auto-switching to tile-stitch.`);const g=(m==="single"&&(h.width>Ln||h.height>Ln)?"stitch":m)==="single"?await u(_,h,$):await p(_,h,$);c("compose",0,1,"compositing overlay");const P=await f(g,v,h);c("encode",0,1,`encoding ${b.toUpperCase()}`);const d=b==="pdf"?await sP(P,v):await aP(P,"image/png");return c("done",1,1,"render complete"),d}finally{o.value=!1,n=null}}function s(){n&&n.abort()}const r={init:.02,"hidden-map":.3,stitch:.42,capture:.14,compose:.06,encode:.05,done:.01},i=["init","hidden-map","stitch","capture","compose","encode","done"];let l=0;function c(v,b,_,$){const h=i.indexOf(v);let m=0;for(let P=0;P0?Math.min(1,b/_):0,g=m+(r[v]||0)*w;l=v==="init"?g:Math.max(l,g),t.value={phase:v,completed:b,total:_,message:$,fraction:Math.min(1,l),percent:Math.round(Math.min(1,l)*100)}}async function u(v,b,_){c("hidden-map",0,3,"creating hidden map");const{hiddenMap:$,restoreDpr:h,container:m}=await Ig(v,b.width,b.height);try{kl(_),c("hidden-map",1,3,"loading map tiles"),await Dg($),c("hidden-map",3,3,"tiles loaded"),kl(_),c("capture",0,1,"capturing canvas");const w=$.getCanvas().toDataURL("image/png"),g=await Bg(w),P=document.createElement("canvas");return P.width=b.width,P.height=b.height,P.getContext("2d").drawImage(g,0,0,b.width,b.height),P}finally{try{$.remove()}catch{}m!=null&&m.parentNode&&m.parentNode.removeChild(m),h()}}async function p(v,b,_){const $=Math.ceil(b.width/Co),h=Math.ceil(b.height/Co),m=$*h;c("hidden-map",0,m,`creating hidden map (${$}×${h} tiles)`);const w=v.getBounds(),g=v.getCenter(),P=v.getZoom(),d=v.getBearing(),C=v.getPitch(),{hiddenMap:S,restoreDpr:G,container:H}=await Ig(v,Co,Co,{preserveBounds:!0,bounds:w});try{const J=document.createElement("canvas");J.width=b.width,J.height=b.height;const U=J.getContext("2d"),D=w.getNorthEast(),L=w.getSouthWest(),y=D.lng-L.lng,R=D.lat-L.lat,z=y/$,K=R/h;let Q=0;for(let ie=0;iet&&([t,o]=[o,t]),e.orientation==="portrait"&&t>o&&([t,o]=[o,t]);const n=e.dpi||300;return{width:Math.round(t*n),height:Math.round(o*n),dpi:n}}function oP(e,t){return e==="single"||e==="stitch"?e:t.width>Ln||t.height>Ln?"stitch":"single"}async function Ig(e,t,o,n={}){const a=document.createElement("div");a.style.cssText=` - position: fixed; top: -100000px; left: -100000px; - width: ${t}px; height: ${o}px; pointer-events: none; visibility: hidden; - `,document.body.appendChild(a);const s=window.devicePixelRatio,r=()=>{try{Object.defineProperty(window,"devicePixelRatio",{value:s,configurable:!0})}catch{}};try{Object.defineProperty(window,"devicePixelRatio",{value:1,configurable:!0})}catch{}const i=typeof window<"u"?window:{},l=!!i.maplibregl&&e instanceof i.maplibregl.Map,c=nr(e);if(!c)throw new Error("useMapPoster: "+(l?"maplibregl":"mapboxgl")+" global not found");const u=e.getStyle();l&&u&&typeof u.projection=="string"&&(u.projection={type:u.projection});const p=new c.Map({container:a,style:u,center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch(),interactive:!1,attributionControl:!1,preserveDrawingBuffer:!0,canvasContextAttributes:{preserveDrawingBuffer:!0},fadeDuration:0});let f="";await new Promise((A,v)=>{let b=!1;const _=m=>{b||(b=!0,clearTimeout($),clearInterval(h),m?v(m):A())},$=setTimeout(()=>_(new Error("useMapPoster: hidden map style.load timeout"+(f?" ("+f+")":""))),Rg),h=setInterval(()=>{try{p.isStyleLoaded()&&_()}catch{}},100);p.once("style.load",()=>_()),p.once("load",()=>_()),p.on("error",m=>{var w;f=String(((w=m==null?void 0:m.error)==null?void 0:w.message)||(m==null?void 0:m.message)||m).slice(0,160)})});try{const A=typeof e.getLanguage=="function"?e.getLanguage():null;A&&typeof p.setLanguage=="function"&&p.setLanguage(A)}catch{}return n.preserveBounds&&n.bounds&&p.fitBounds(n.bounds,{padding:0,animate:!1,duration:0}),{hiddenMap:p,restoreDpr:r,container:a}}const Og=6e4;function Dg(e){return new Promise(t=>{let o=!1;const n=[],a=r=>{o||(o=!0,n.forEach(clearTimeout),r&&console.warn("[useMapPoster] "+r),requestAnimationFrame(()=>t()))},s=()=>{try{return typeof e.areTilesLoaded=="function"&&e.areTilesLoaded()}catch{return!1}};n.push(setTimeout(()=>{s()&&a()},Rg)),n.push(setTimeout(()=>a("hidden map not idle after "+Og/1e3+"s; capturing what is drawn"),Og)),e.loaded()&&!e.isMoving()?a():e.once("idle",()=>a())})}function Bg(e){return new Promise((t,o)=>{const n=new Image;n.crossOrigin="anonymous",n.onload=()=>t(n),n.onerror=a=>o(new Error("image load failed: "+((a==null?void 0:a.message)||"unknown"))),n.src=typeof e=="string"?e:URL.createObjectURL(e)})}function nP(e,t,o){const n=new Blob([e],{type:"image/svg+xml;charset=utf-8"}),a=URL.createObjectURL(n);return new Promise((s,r)=>{const i=new Image;i.onload=()=>{URL.revokeObjectURL(a),s(i)},i.onerror=l=>{URL.revokeObjectURL(a),r(new Error("svg load failed: "+((l==null?void 0:l.message)||"unknown")))},i.width=t,i.height=o,i.src=a})}function aP(e,t){return new Promise((o,n)=>{e.toBlob(a=>a?o(a):n(new Error("toBlob failed")),t)})}async function sP(e,t){let o;try{const r=await oo(()=>import("https://esm.sh/jspdf@4.2.1"),void 0);o=r.jsPDF||r.default}catch{throw new Error("useMapPoster.toPdf: jspdf not installed (npm i jspdf svg2pdf.js)")}const n=e.toDataURL("image/png"),a=e.width>e.height?"l":"p",s=new o({orientation:a,unit:"in",format:[t.widthIn,t.heightIn]});return s.addImage(n,"PNG",0,0,t.widthIn,t.heightIn),s.output("blob")}function kl(e){if(e!=null&&e.aborted)throw new DOMException("useMapPoster: aborted","AbortError")}function rP(...e){const t=new AbortController;for(const o of e)if(o){if(o.aborted){t.abort();break}o.addEventListener("abort",()=>t.abort(),{once:!0})}return t.signal}function Gg(e){return(e==null?void 0:e.dir)==="rtl"}function wl(e,t,o){return Gg(e)?`x="${t.w-o}" text-anchor="start" direction="rtl"`:`x="${o}"`}function iP(e,t){var a,s,r,i;const o=(((s=(a=e.slots)==null?void 0:a.title)==null?void 0:s.text)||"").replace(/[<>&]/g,Sn),n=(((i=(r=e.slots)==null?void 0:r.title)==null?void 0:i.subtitle)||"").replace(/[<>&]/g,Sn);return` - - - ${o} - ${n?`${n}`:""} - `}function lP(e,t){var A,v,b,_;const o=(((v=(A=e.slots)==null?void 0:A.legend)==null?void 0:v.rows)||[]).slice(0,24),n=(((_=(b=e.slots)==null?void 0:b.legend)==null?void 0:_.title)||"Legend").replace(/[<>&]/g,Sn),a=Gg(e),s=Math.max(14,Math.round(t.w/26)),r=Math.round(s*1.9),i=Math.round(s*1.2),l=Math.round(s*1.1),c=Math.min(t.h,l*2+r*(o.length+1)),u=a?t.w-l-i:l,p=a?`x="${t.w-l-i-Math.round(s*.7)}" text-anchor="start" direction="rtl"`:`x="${l+i+Math.round(s*.7)}"`,f=o.map(($,h)=>{const m=l+r*(h+1.5),w=($.color||"#999").replace(/[<>&]/g,Sn),g=($.label||"").replace(/[<>&]/g,Sn);return`${g}`}).join("");return` - - - ${n} - ${f} - `}function cP(e,t){return` - - - scale - `}function uP(e,t){const o=Math.min(t.w,t.h);return` - - - N - `}function pP(e,t){var s,r,i,l,c,u;const o=(((r=(s=e.slots)==null?void 0:s.footer)==null?void 0:r.left)||"").replace(/[<>&]/g,Sn),n=(((l=(i=e.slots)==null?void 0:i.footer)==null?void 0:l.right)||"").replace(/[<>&]/g,Sn),a=((u=(c=e.slots)==null?void 0:c.footer)==null?void 0:u.attribution)||"© Mapbox © OpenStreetMap";return` - - - ${o} - ${a} - ${n} - `}function Sn(e){return e==="<"?"<":e===">"?">":"&"}const dP=Object.freeze(Object.defineProperty({__proto__:null,posterPixels:Fg,useMapPoster:Mg},Symbol.toStringTag,{value:"Module"}));function gP(e){const t=he({phase:"idle",completed:0,total:0,message:""}),o=he(!1);function n(s,r,i,l){t.value={phase:s,completed:r,total:i,message:l}}async function a(s,r,i={}){if(o.value)throw new Error("useMapPacket: already rendering");o.value=!0;const l=Array.isArray(r)?r:[],c=1+l.length;try{n("map",0,c,"rendering map page");const u=await Mg(e).render(s,"png"),p=await _P(u);n("pdf-init",1,c,"building PDF");let f;try{const $=await oo(()=>import("https://esm.sh/jspdf@4.2.1"),void 0);f=$.jsPDF||$.default}catch{throw new Error("useMapPacket: jspdf not installed (npm i jspdf)")}const A=new f({orientation:s.widthIn>s.heightIn?"l":"p",unit:"in",format:[s.widthIn,s.heightIn]}),v=s.widthIn,b=s.heightIn,_=hP(i);A.addImage(p,"PNG",0,0,v,b),jg(A,v,b,_);for(let $=0;$0&&s<=1?s*100:s).toFixed(1)}%`}function yP(e){var a;const t=Ka(e),o=qa(t.peoplePraying,(a=t._raw)==null?void 0:a.people_praying,e.peoplePraying);if(o===void 0)return"—";const n=Number(o);return Number.isNaN(n)?"—":n.toLocaleString()}function _P(e){return new Promise((t,o)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=()=>o(new Error("useMapPacket: failed to read map blob")),n.readAsDataURL(e)})}const vP=Object.freeze(Object.defineProperty({__proto__:null,useMapPacket:gP},Symbol.toStringTag,{value:"Module"}))})(); diff --git a/public/doxa-maps/research-map-plus-grid/research-map-plus-grid.js b/public/doxa-maps/research-map-plus-grid/research-map-plus-grid.js deleted file mode 100644 index 77b5ce55f..000000000 --- a/public/doxa-maps/research-map-plus-grid/research-map-plus-grid.js +++ /dev/null @@ -1,47 +0,0 @@ -(function(){"use strict";var Pt=typeof document<"u"?document.currentScript:null;/** -* @vue/shared v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function wt(e){const o=Object.create(null);for(const t of e.split(","))o[t]=1;return t=>t in o}const V={},oo=[],ye=()=>{},hn=()=>!1,Mo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Go=e=>e.startsWith("onUpdate:"),X=Object.assign,Lt=(e,o)=>{const t=e.indexOf(o);t>-1&&e.splice(t,1)},ma=Object.prototype.hasOwnProperty,M=(e,o)=>ma.call(e,o),T=Array.isArray,Ie=e=>uo(e)==="[object Map]",No=e=>uo(e)==="[object Set]",_n=e=>uo(e)==="[object Date]",O=e=>typeof e=="function",W=e=>typeof e=="string",he=e=>typeof e=="symbol",B=e=>e!==null&&typeof e=="object",fn=e=>(B(e)||O(e))&&O(e.then)&&O(e.catch),mn=Object.prototype.toString,uo=e=>mn.call(e),ba=e=>uo(e).slice(8,-1),Do=e=>uo(e)==="[object Object]",St=e=>W(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,go=wt(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Bo=e=>{const o=Object.create(null);return t=>o[t]||(o[t]=e(t))},ya=/-\w/g,ie=Bo(e=>e.replace(ya,o=>o.slice(1).toUpperCase())),va=/\B([A-Z])/g,$e=Bo(e=>e.replace(va,"-$1").toLowerCase()),bn=Bo(e=>e.charAt(0).toUpperCase()+e.slice(1)),At=Bo(e=>e?`on${bn(e)}`:""),Fe=(e,o)=>!Object.is(e,o),Rt=(e,...o)=>{for(let t=0;t{Object.defineProperty(e,o,{configurable:!0,enumerable:!1,writable:n,value:t})},ka=e=>{const o=parseFloat(e);return isNaN(o)?e:o},vn=e=>{const o=W(e)?Number(e):NaN;return isNaN(o)?e:o};let kn;const Uo=()=>kn||(kn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Io(e){if(T(e)){const o={};for(let t=0;t{if(t){const n=t.split(wa);n.length>1&&(o[n[0].trim()]=n[1].trim())}}),o}function Vo(e){let o="";if(W(e))o=e;else if(T(e))for(let t=0;t!!(e&&e.__v_isRef===!0),zo=e=>W(e)?e:e==null?"":T(e)||B(e)&&(e.toString===mn||!O(e.toString))?Ln(e)?zo(e.value):JSON.stringify(e,Sn,2):String(e),Sn=(e,o)=>Ln(o)?Sn(e,o.value):Ie(o)?{[`Map(${o.size})`]:[...o.entries()].reduce((t,[n,s],a)=>(t[xt(n,a)+" =>"]=s,t),{})}:No(o)?{[`Set(${o.size})`]:[...o.values()].map(t=>xt(t))}:he(o)?xt(o):B(o)&&!T(o)&&!Do(o)?String(o):o,xt=(e,o="")=>{var t;return he(e)?`Symbol(${(t=e.description)!=null?t:o})`:e};/** -* @vue/reactivity v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let J;class xa{constructor(o=!1){this.detached=o,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!o&&J&&(J.active?(this.parent=J,this.index=(J.scopes||(J.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let o,t;if(this.scopes){const n=this.scopes.slice();for(o=0,t=n.length;o0&&--this._on===0){if(J===this)J=this.prevScope;else{let o=J;for(;o;){if(o.prevScope===this){o.prevScope=this.prevScope;break}o=o.prevScope}}this.prevScope=void 0}}stop(o){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t0)return;if(ho){let o=ho;for(ho=void 0;o;){const t=o.next;o.next=void 0,o.flags&=-9,o=t}}let e;for(;$o;){let o=$o;for($o=void 0;o;){const t=o.next;if(o.next=void 0,o.flags&=-9,o.flags&1)try{o.trigger()}catch(n){e||(e=n)}o=t}}if(e)throw e}function Cn(e){for(let o=e.deps;o;o=o.nextDep)o.version=-1,o.prevActiveLink=o.dep.activeLink,o.dep.activeLink=o}function Tn(e){let o,t=e.depsTail,n=t;for(;n;){const s=n.prevDep;n.version===-1?(n===t&&(t=s),Et(n),Ta(n)):o=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=s}e.deps=o,e.depsTail=t}function Ot(e){for(let o=e.deps;o;o=o.nextDep)if(o.dep.version!==o.version||o.dep.computed&&(Fn(o.dep.computed)||o.dep.version!==o.version))return!0;return!!e._dirty}function Fn(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===_o)||(e.globalVersion=_o,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ot(e))))return;e.flags|=2;const o=e.dep,t=j,n=_e;j=e,_e=!0;try{Cn(e);const s=e.fn(e._value);(o.version===0||Fe(s,e._value))&&(e.flags|=128,e._value=s,o.version++)}catch(s){throw o.version++,s}finally{j=t,_e=n,Tn(e),e.flags&=-3}}function Et(e,o=!1){const{dep:t,prevSub:n,nextSub:s}=e;if(n&&(n.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=n,e.nextSub=void 0),t.subs===e&&(t.subs=n,!n&&t.computed)){t.computed.flags&=-5;for(let a=t.computed.deps;a;a=a.nextDep)Et(a,!0)}!o&&!--t.sc&&t.map&&t.map.delete(t.key)}function Ta(e){const{prevDep:o,nextDep:t}=e;o&&(o.nextDep=t,e.prevDep=void 0),t&&(t.prevDep=o,e.nextDep=void 0)}let _e=!0;const On=[];function ve(){On.push(_e),_e=!1}function ke(){const e=On.pop();_e=e===void 0?!0:e}function En(e){const{cleanup:o}=e;if(e.cleanup=void 0,o){const t=j;j=void 0;try{o()}finally{j=t}}}let _o=0;class Fa{constructor(o,t){this.sub=o,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Mn{constructor(o){this.computed=o,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(o){if(!j||!_e||j===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==j)t=this.activeLink=new Fa(j,this),j.deps?(t.prevDep=j.depsTail,j.depsTail.nextDep=t,j.depsTail=t):j.deps=j.depsTail=t,Gn(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const n=t.nextDep;n.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=n),t.prevDep=j.depsTail,t.nextDep=void 0,j.depsTail.nextDep=t,j.depsTail=t,j.deps===t&&(j.deps=n)}return t}trigger(o){this.version++,_o++,this.notify(o)}notify(o){Tt();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{Ft()}}}function Gn(e){if(e.dep.sc++,e.sub.flags&4){const o=e.dep.computed;if(o&&!e.dep.subs){o.flags|=20;for(let n=o.deps;n;n=n.nextDep)Gn(n)}const t=e.dep.subs;t!==e&&(e.prevSub=t,t&&(t.nextSub=e)),e.dep.subs=e}}const Mt=new WeakMap,We=Symbol(""),Gt=Symbol(""),fo=Symbol("");function oe(e,o,t){if(_e&&j){let n=Mt.get(e);n||Mt.set(e,n=new Map);let s=n.get(t);s||(n.set(t,s=new Mn),s.map=n,s.key=t),s.track()}}function Oe(e,o,t,n,s,a){const r=Mt.get(e);if(!r){_o++;return}const i=l=>{l&&l.trigger()};if(Tt(),o==="clear")r.forEach(i);else{const l=T(e),g=l&&St(t);if(l&&t==="length"){const u=Number(n);r.forEach(($,S)=>{(S==="length"||S===fo||!he(S)&&S>=u)&&i($)})}else switch((t!==void 0||r.has(void 0))&&i(r.get(t)),g&&i(r.get(fo)),o){case"add":l?g&&i(r.get("length")):(i(r.get(We)),Ie(e)&&i(r.get(Gt)));break;case"delete":l||(i(r.get(We)),Ie(e)&&i(r.get(Gt)));break;case"set":Ie(e)&&i(r.get(We));break}}Ft()}function to(e){const o=N(e);return o===e?o:(oe(o,"iterate",fo),fe(e)?o:o.map(Me))}function Ho(e){return oe(e=N(e),"iterate",fo),e}function Pe(e,o){return Ve(e)?no(qe(e)?Me(o):o):Me(o)}const Oa={__proto__:null,[Symbol.iterator](){return Nt(this,Symbol.iterator,e=>Pe(this,e))},concat(...e){return to(this).concat(...e.map(o=>T(o)?to(o):o))},entries(){return Nt(this,"entries",e=>(e[1]=Pe(this,e[1]),e))},every(e,o){return Ee(this,"every",e,o,void 0,arguments)},filter(e,o){return Ee(this,"filter",e,o,t=>t.map(n=>Pe(this,n)),arguments)},find(e,o){return Ee(this,"find",e,o,t=>Pe(this,t),arguments)},findIndex(e,o){return Ee(this,"findIndex",e,o,void 0,arguments)},findLast(e,o){return Ee(this,"findLast",e,o,t=>Pe(this,t),arguments)},findLastIndex(e,o){return Ee(this,"findLastIndex",e,o,void 0,arguments)},forEach(e,o){return Ee(this,"forEach",e,o,void 0,arguments)},includes(...e){return Dt(this,"includes",e)},indexOf(...e){return Dt(this,"indexOf",e)},join(e){return to(this).join(e)},lastIndexOf(...e){return Dt(this,"lastIndexOf",e)},map(e,o){return Ee(this,"map",e,o,void 0,arguments)},pop(){return mo(this,"pop")},push(...e){return mo(this,"push",e)},reduce(e,...o){return Nn(this,"reduce",e,o)},reduceRight(e,...o){return Nn(this,"reduceRight",e,o)},shift(){return mo(this,"shift")},some(e,o){return Ee(this,"some",e,o,void 0,arguments)},splice(...e){return mo(this,"splice",e)},toReversed(){return to(this).toReversed()},toSorted(e){return to(this).toSorted(e)},toSpliced(...e){return to(this).toSpliced(...e)},unshift(...e){return mo(this,"unshift",e)},values(){return Nt(this,"values",e=>Pe(this,e))}};function Nt(e,o,t){const n=Ho(e),s=n[o]();return n!==e&&!fe(e)&&(s._next=s.next,s.next=()=>{const a=s._next();return a.done||(a.value=t(a.value)),a}),s}const Ea=Array.prototype;function Ee(e,o,t,n,s,a){const r=Ho(e),i=r!==e&&!fe(e),l=r[o];if(l!==Ea[o]){const $=l.apply(e,a);return i?Me($):$}let g=t;r!==e&&(i?g=function($,S){return t.call(this,Pe(e,$),S,e)}:t.length>2&&(g=function($,S){return t.call(this,$,S,e)}));const u=l.call(r,g,n);return i&&s?s(u):u}function Nn(e,o,t,n){const s=Ho(e),a=s!==e&&!fe(e);let r=t,i=!1;s!==e&&(a?(i=n.length===0,r=function(g,u,$){return i&&(i=!1,g=Pe(e,g)),t.call(this,g,Pe(e,u),$,e)}):t.length>3&&(r=function(g,u,$){return t.call(this,g,u,$,e)}));const l=s[o](r,...n);return i?Pe(e,l):l}function Dt(e,o,t){const n=N(e);oe(n,"iterate",fo);const s=n[o](...t);return(s===-1||s===!1)&&It(t[0])?(t[0]=N(t[0]),n[o](...t)):s}function mo(e,o,t=[]){ve(),Tt();const n=N(e)[o].apply(e,t);return Ft(),ke(),n}const Ma=wt("__proto__,__v_isRef,__isVue"),Dn=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(he));function Ga(e){he(e)||(e=String(e));const o=N(this);return oe(o,"has",e),o.hasOwnProperty(e)}class Bn{constructor(o=!1,t=!1){this._isReadonly=o,this._isShallow=t}get(o,t,n){if(t==="__v_skip")return o.__v_skip;const s=this._isReadonly,a=this._isShallow;if(t==="__v_isReactive")return!s;if(t==="__v_isReadonly")return s;if(t==="__v_isShallow")return a;if(t==="__v_raw")return n===(s?a?Hn:zn:a?jn:Vn).get(o)||Object.getPrototypeOf(o)===Object.getPrototypeOf(n)?o:void 0;const r=T(o);if(!s){let l;if(r&&(l=Oa[t]))return l;if(t==="hasOwnProperty")return Ga}const i=Reflect.get(o,t,te(o)?o:n);if((he(t)?Dn.has(t):Ma(t))||(s||oe(o,"get",t),a))return i;if(te(i)){const l=r&&St(t)?i:i.value;return s&&B(l)?Ut(l):l}return B(i)?s?Ut(i):Xo(i):i}}class Un extends Bn{constructor(o=!1){super(!1,o)}set(o,t,n,s){let a=o[t];const r=T(o)&&St(t);if(!this._isShallow){const g=Ve(a);if(!fe(n)&&!Ve(n)&&(a=N(a),n=N(n)),!r&&te(a)&&!te(n))return g||(a.value=n),!0}const i=r?Number(t)e,Wo=e=>Reflect.getPrototypeOf(e);function Ia(e,o,t){return function(...n){const s=this.__v_raw,a=N(s),r=Ie(a),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,g=s[e](...n),u=t?Bt:o?no:Me;return!o&&oe(a,"iterate",l?Gt:We),X(Object.create(g),{next(){const{value:$,done:S}=g.next();return S?{value:$,done:S}:{value:i?[u($[0]),u($[1])]:u($),done:S}}})}}function qo(e){return function(...o){return e==="delete"?!1:e==="clear"?void 0:this}}function Va(e,o){const t={get(s){const a=this.__v_raw,r=N(a),i=N(s);e||(Fe(s,i)&&oe(r,"get",s),oe(r,"get",i));const{has:l}=Wo(r),g=o?Bt:e?no:Me;if(l.call(r,s))return g(a.get(s));if(l.call(r,i))return g(a.get(i));a!==r&&a.get(s)},get size(){const s=this.__v_raw;return!e&&oe(N(s),"iterate",We),s.size},has(s){const a=this.__v_raw,r=N(a),i=N(s);return e||(Fe(s,i)&&oe(r,"has",s),oe(r,"has",i)),s===i?a.has(s):a.has(s)||a.has(i)},forEach(s,a){const r=this,i=r.__v_raw,l=N(i),g=o?Bt:e?no:Me;return!e&&oe(l,"iterate",We),i.forEach((u,$)=>s.call(a,g(u),g($),r))}};return X(t,e?{add:qo("add"),set:qo("set"),delete:qo("delete"),clear:qo("clear")}:{add(s){const a=N(this),r=Wo(a),i=N(s),l=!o&&!fe(s)&&!Ve(s)?i:s;return r.has.call(a,l)||Fe(s,l)&&r.has.call(a,s)||Fe(i,l)&&r.has.call(a,i)||(a.add(l),Oe(a,"add",l,l)),this},set(s,a){!o&&!fe(a)&&!Ve(a)&&(a=N(a));const r=N(this),{has:i,get:l}=Wo(r);let g=i.call(r,s);g||(s=N(s),g=i.call(r,s));const u=l.call(r,s);return r.set(s,a),g?Fe(a,u)&&Oe(r,"set",s,a):Oe(r,"add",s,a),this},delete(s){const a=N(this),{has:r,get:i}=Wo(a);let l=r.call(a,s);l||(s=N(s),l=r.call(a,s)),i&&i.call(a,s);const g=a.delete(s);return l&&Oe(a,"delete",s,void 0),g},clear(){const s=N(this),a=s.size!==0,r=s.clear();return a&&Oe(s,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(s=>{t[s]=Ia(s,e,o)}),t}function Ko(e,o){const t=Va(e,o);return(n,s,a)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?n:Reflect.get(M(t,s)&&s in n?t:n,s,a)}const ja={get:Ko(!1,!1)},za={get:Ko(!1,!0)},Ha={get:Ko(!0,!1)},Wa={get:Ko(!0,!0)},Vn=new WeakMap,jn=new WeakMap,zn=new WeakMap,Hn=new WeakMap;function qa(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Xo(e){return Ve(e)?e:Zo(e,!1,Na,ja,Vn)}function Ka(e){return Zo(e,!1,Ba,za,jn)}function Ut(e){return Zo(e,!0,Da,Ha,zn)}function Pl(e){return Zo(e,!0,Ua,Wa,Hn)}function Zo(e,o,t,n,s){if(!B(e)||e.__v_raw&&!(o&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const a=s.get(e);if(a)return a;const r=qa(ba(e));if(r===0)return e;const i=new Proxy(e,r===2?n:t);return s.set(e,i),i}function qe(e){return Ve(e)?qe(e.__v_raw):!!(e&&e.__v_isReactive)}function Ve(e){return!!(e&&e.__v_isReadonly)}function fe(e){return!!(e&&e.__v_isShallow)}function It(e){return e?!!e.__v_raw:!1}function N(e){const o=e&&e.__v_raw;return o?N(o):e}function Xa(e){return!M(e,"__v_skip")&&Object.isExtensible(e)&&yn(e,"__v_skip",!0),e}const Me=e=>B(e)?Xo(e):e,no=e=>B(e)?Ut(e):e;function te(e){return e?e.__v_isRef===!0:!1}function Wn(e){return te(e)?e.value:e}const Za={get:(e,o,t)=>o==="__v_raw"?e:Wn(Reflect.get(e,o,t)),set:(e,o,t,n)=>{const s=e[o];return te(s)&&!te(t)?(s.value=t,!0):Reflect.set(e,o,t,n)}};function qn(e){return qe(e)?e:new Proxy(e,Za)}class Ya{constructor(o,t,n){this.fn=o,this.setter=t,this._value=void 0,this.dep=new Mn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=_o-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&j!==this)return xn(this,!0),!0}get value(){const o=this.dep.track();return Fn(this),o&&(o.version=this.dep.version),this._value}set value(o){this.setter&&this.setter(o)}}function Ja(e,o,t=!1){let n,s;return O(e)?n=e:(n=e.get,s=e.set),new Ya(n,s,t)}const Yo={},Jo=new WeakMap;let Ke;function Qa(e,o=!1,t=Ke){if(t){let n=Jo.get(t);n||Jo.set(t,n=[]),n.push(e)}}function er(e,o,t=V){const{immediate:n,deep:s,once:a,scheduler:r,augmentJob:i,call:l}=t,g=P=>s?P:fe(P)||s===!1||s===0?je(P,1):je(P);let u,$,S,R,G=!1,w=!1;if(te(e)?($=()=>e.value,G=fe(e)):qe(e)?($=()=>g(e),G=!0):T(e)?(w=!0,G=e.some(P=>qe(P)||fe(P)),$=()=>e.map(P=>{if(te(P))return P.value;if(qe(P))return g(P);if(O(P))return l?l(P,2):P()})):O(e)?o?$=l?()=>l(e,2):e:$=()=>{if(S){ve();try{S()}finally{ke()}}const P=Ke;Ke=u;try{return l?l(e,3,[R]):e(R)}finally{Ke=P}}:$=ye,o&&s){const P=$,D=s===!0?1/0:s;$=()=>je(P(),D)}const K=Ca(),z=()=>{u.stop(),K&&K.active&&Lt(K.effects,u)};if(a&&o){const P=o;o=(...D)=>{const Y=P(...D);return z(),Y}}let f=w?new Array(e.length).fill(Yo):Yo;const A=P=>{if(!(!(u.flags&1)||!u.dirty&&!P))if(o){const D=u.run();if(P||s||G||(w?D.some((Y,Q)=>Fe(Y,f[Q])):Fe(D,f))){S&&S();const Y=Ke;Ke=u;try{const Q=[D,f===Yo?void 0:w&&f[0]===Yo?[]:f,R];f=D,l?l(o,3,Q):o(...Q)}finally{Ke=Y}}}else u.run()};return i&&i(A),u=new An($),u.scheduler=r?()=>r(A,!1):A,R=P=>Qa(P,!1,u),S=u.onStop=()=>{const P=Jo.get(u);if(P){if(l)l(P,4);else for(const D of P)D();Jo.delete(u)}},o?n?A(!0):f=u.run():r?r(A.bind(null,!0),!0):u.run(),z.pause=u.pause.bind(u),z.resume=u.resume.bind(u),z.stop=z,z}function je(e,o=1/0,t){if(o<=0||!B(e)||e.__v_skip||(t=t||new Map,(t.get(e)||0)>=o))return e;if(t.set(e,o),o--,te(e))je(e.value,o,t);else if(T(e))for(let n=0;n{je(n,o,t)});else if(Do(e)){for(const n in e)je(e[n],o,t);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&je(e[n],o,t)}return e}/** -* @vue/runtime-core v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const bo=[];let Vt=!1;function wl(e,...o){if(Vt)return;Vt=!0,ve();const t=bo.length?bo[bo.length-1].component:null,n=t&&t.appContext.config.warnHandler,s=or();if(n)so(n,t,11,[e+o.map(a=>{var r,i;return(i=(r=a.toString)==null?void 0:r.call(a))!=null?i:JSON.stringify(a)}).join(""),t&&t.proxy,s.map(({vnode:a})=>`at <${zs(t,a.type)}>`).join(` -`),s]);else{const a=[`[Vue warn]: ${e}`,...o];s.length&&a.push(` -`,...tr(s)),console.warn(...a)}ke(),Vt=!1}function or(){let e=bo[bo.length-1];if(!e)return[];const o=[];for(;e;){const t=o[0];t&&t.vnode===e?t.recurseCount++:o.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return o}function tr(e){const o=[];return e.forEach((t,n)=>{o.push(...n===0?[]:[` -`],...nr(t))}),o}function nr({vnode:e,recurseCount:o}){const t=o>0?`... (${o} recursive calls)`:"",n=e.component?e.component.parent==null:!1,s=` at <${zs(e.component,e.type,n)}`,a=">"+t;return e.props?[s,...sr(e.props),a]:[s+a]}function sr(e){const o=[],t=Object.keys(e);return t.slice(0,3).forEach(n=>{o.push(...Kn(n,e[n]))}),t.length>3&&o.push(" ..."),o}function Kn(e,o,t){return W(o)?(o=JSON.stringify(o),t?o:[`${e}=${o}`]):typeof o=="number"||typeof o=="boolean"||o==null?t?o:[`${e}=${o}`]:te(o)?(o=Kn(e,N(o.value),!0),t?o:[`${e}=Ref<`,o,">"]):O(o)?[`${e}=fn${o.name?`<${o.name}>`:""}`]:(o=N(o),t?o:[`${e}=`,o])}function so(e,o,t,n){try{return n?e(...n):e()}catch(s){Qo(s,o,t)}}function me(e,o,t,n){if(O(e)){const s=so(e,o,t,n);return s&&fn(s)&&s.catch(a=>{Qo(a,o,t)}),s}if(T(e)){const s=[];for(let a=0;a>>1,s=ne[n],a=yo(s);a=yo(t)?ne.push(e):ne.splice(rr(o),0,e),e.flags|=1,Yn()}}function Yn(){et||(et=Xn.then(es))}function ir(e){if(!T(e))ze&&e.id===-1?ze.splice(ro+1,0,e):e.flags&1||(ao.push(e),e.flags|=1);else for(let o=0;oyo(t)-yo(n));if(ao.length=0,ze){for(let t=0;te.id==null?e.flags&2?-1:1/0:e.id;function es(e){try{for(we=0;we{n._d&&Ns(-1);const a=ot(o),r=Ne.length;let i;try{i=e(...s)}finally{for(let l=Ne.length;l>r;l--)sn();ot(a),n._d&&Ns(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function Xe(e,o,t,n){const s=e.dirs,a=o&&o.dirs;for(let r=0;r1)return t&&O(o)?o.call(n&&n.proxy):o}}const pr=Symbol.for("v-scx"),ur=()=>tt(pr);function gr(e,o){return zt(e,null,o)}function nt(e,o,t){return zt(e,o,t)}function zt(e,o,t=V){const{immediate:n,deep:s,flush:a,once:r}=t,i=X({},t),l=o&&n||!o&&a!=="post";let g;if(Ro){if(a==="sync"){const R=ur();g=R.__watcherHandles||(R.__watcherHandles=[])}else if(!l){const R=()=>{};return R.stop=ye,R.resume=ye,R.pause=ye,R}}const u=ae;i.call=(R,G,w)=>me(R,u,G,w);let $=!1;a==="post"?i.scheduler=R=>{ce(R,u&&u.suspense)}:a!=="sync"&&($=!0,i.scheduler=(R,G)=>{G?R():jt(R)}),i.augmentJob=R=>{o&&(R.flags|=4),$&&(R.flags|=2,u&&(R.id=u.uid,R.i=u))};const S=er(e,o,i);return Ro&&(g?g.push(S):l&&S()),S}function dr(e,o,t){const n=this.proxy,s=W(e)?e.includes(".")?ts(n,e):()=>n[e]:e.bind(n,n);let a;O(o)?a=o:(a=o.handler,t=o);const r=Ao(this),i=zt(s,a.bind(n),t);return r(),i}function ts(e,o){const t=o.split(".");return()=>{let n=e;for(let s=0;se.__isTeleport,Ht=Symbol("_leaveCb");function hr(e){let o=e[0];if(e.length>1){for(const t of e)if(t.type!==Le){o=t;break}}return o}function ns(e){if(!qt(e))return st(e.type)&&e.children?hr(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:o,children:t}=e;if(t){if(o&16)return t[0];if(o&32&&O(t.default))return t.default()}}function Wt(e,o){if(e.shapeFlag&6&&e.component){e.transition=o;const t=e.component.subTree;Wt(st(t.type)&&ns(t)||t,o)}else e.shapeFlag&128?(e.ssContent.transition=o.clone(e.ssContent),e.ssFallback.transition=o.clone(e.ssFallback)):e.transition=o}function ss(e,o){return O(e)?X({name:e.name},o,{setup:e}):e}function as(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function rs(e,o){let t;return!!((t=Object.getOwnPropertyDescriptor(e,o))&&!t.configurable)}const at=new WeakMap;function vo(e,o,t,n,s=!1){if(T(e)){e.forEach((w,K)=>vo(w,o&&(T(o)?o[K]:o),t,n,s));return}if(io(n)&&!s){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&vo(e,o,t,n.component.subTree);return}const a=n.shapeFlag&4?ln(n.component):n.el,r=s?null:a,{i,r:l}=e,g=o&&o.r,u=i.refs===V?i.refs={}:i.refs,$=i.setupState,S=N($),R=$===V?hn:w=>rs(u,w)?!1:M(S,w),G=(w,K)=>!(K&&rs(u,K));if(g!=null&&g!==l){if(is(o),W(g))u[g]=null,R(g)&&($[g]=null);else if(te(g)){const w=o;G(g,w.k)&&(g.value=null),w.k&&(u[w.k]=null)}}if(O(l))so(l,i,12,[r,u]);else{const w=W(l),K=te(l);if(w||K){const z=()=>{if(e.f){const f=w?R(l)?$[l]:u[l]:G()||!e.k?l.value:u[e.k];if(s)T(f)&&Lt(f,a);else if(T(f))f.includes(a)||f.push(a);else if(w)u[l]=[a],R(l)&&($[l]=u[l]);else{const A=[a];G(l,e.k)&&(l.value=A),e.k&&(u[e.k]=A)}}else w?(u[l]=r,R(l)&&($[l]=r)):K&&(G(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const f=()=>{z(),at.delete(e)};f.id=-1,at.set(e,f),ce(f,t)}else is(e),z()}}}function is(e){const o=at.get(e);o&&(o.flags|=8,at.delete(e))}Uo().requestIdleCallback,Uo().cancelIdleCallback;const io=e=>!!e.type.__asyncLoader,qt=e=>e.type.__isKeepAlive;function _r(e,o){ls(e,"a",o)}function fr(e,o){ls(e,"da",o)}function ls(e,o,t=ae){const n=e.__wdc||(e.__wdc=()=>{let s=t;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(rt(o,n,t),t){let s=t.parent;for(;s&&s.parent;)qt(s.parent.vnode)&&mr(n,o,t,s),s=s.parent}}function mr(e,o,t,n){const s=rt(o,e,n,!0);ps(()=>{Lt(n[o],s)},t)}function rt(e,o,t=ae,n=!1){if(t){const s=t[e]||(t[e]=[]),a=o.__weh||(o.__weh=(...r)=>{ve();const i=Ao(t),l=me(o,t,e,r);return i(),ke(),l});return n?s.unshift(a):s.push(a),a}}const Ge=e=>(o,t=ae)=>{(!Ro||e==="sp")&&rt(e,(...n)=>o(...n),t)},br=Ge("bm"),Kt=Ge("m"),yr=Ge("bu"),vr=Ge("u"),cs=Ge("bum"),ps=Ge("um"),kr=Ge("sp"),Pr=Ge("rtg"),wr=Ge("rtc");function Lr(e,o=ae){rt("ec",e,o)}const Sr=Symbol.for("v-ndc");function Ar(e,o,t,n){let s;const a=t,r=T(e);if(r||W(e)){const i=r&&qe(e);let l=!1,g=!1;i&&(l=!fe(e),g=Ve(e),e=Ho(e)),s=new Array(e.length);for(let u=0,$=e.length;u<$;u++)s[u]=o(l?g?no(Me(e[u])):Me(e[u]):e[u],u,void 0,a)}else if(typeof e=="number"){s=new Array(e);for(let i=0;io(i,l,void 0,a));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,g=i.length;l0;return o!=="default"&&(g.name=o),ge(),ut(pe,null,[be("slot",g,n)],u?-2:64)}let r=e[o];r&&r._c&&(r._d=!1);const i=Ne.length;ge();let l;try{const g=r&&us(r(t)),u=t.key||a||g&&g.key;l=ut(pe,{key:(u&&!he(u)?u:`_${o}`)+(!g&&n?"_fb":"")},g||(n?n():[]),g&&e._===1?64:-2)}catch(g){for(let u=Ne.length;u>i;u--)sn();throw g}finally{r&&r._c&&(r._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function us(e){return e.some(o=>an(o)?!(o.type===Le||o.type===pe&&!us(o.children)):!0)?e:null}const Xt=e=>e?Is(e)?ln(e):Xt(e.parent):null,ko=X(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Xt(e.parent),$root:e=>Xt(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>hs(e),$forceUpdate:e=>e.f||(e.f=()=>{jt(e.update)}),$nextTick:e=>e.n||(e.n=Zn.bind(e.proxy)),$watch:e=>dr.bind(e)}),Zt=(e,o)=>e!==V&&!e.__isScriptSetup&&M(e,o),Rr={get({_:e},o){if(o==="__v_skip")return!0;const{ctx:t,setupState:n,data:s,props:a,accessCache:r,type:i,appContext:l}=e;if(o[0]!=="$"){const S=r[o];if(S!==void 0)switch(S){case 1:return n[o];case 2:return s[o];case 4:return t[o];case 3:return a[o]}else{if(Zt(n,o))return r[o]=1,n[o];if(s!==V&&M(s,o))return r[o]=2,s[o];if(M(a,o))return r[o]=3,a[o];if(t!==V&&M(t,o))return r[o]=4,t[o];Yt&&(r[o]=0)}}const g=ko[o];let u,$;if(g)return o==="$attrs"&&oe(e.attrs,"get",""),g(e);if((u=i.__cssModules)&&(u=u[o]))return u;if(t!==V&&M(t,o))return r[o]=4,t[o];if($=l.config.globalProperties,M($,o))return $[o]},set({_:e},o,t){const{data:n,setupState:s,ctx:a}=e;return Zt(s,o)?(s[o]=t,!0):n!==V&&M(n,o)?(n[o]=t,!0):M(e.props,o)||o[0]==="$"&&o.slice(1)in e?!1:(a[o]=t,!0)},has({_:{data:e,setupState:o,accessCache:t,ctx:n,appContext:s,props:a,type:r}},i){let l;return!!(t[i]||e!==V&&i[0]!=="$"&&M(e,i)||Zt(o,i)||M(a,i)||M(n,i)||M(ko,i)||M(s.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,o,t){return t.get!=null?e._.accessCache[o]=0:M(t,"value")&&this.set(e,o,t.value,null),Reflect.defineProperty(e,o,t)}};function gs(e){return T(e)?e.reduce((o,t)=>(o[t]=null,o),{}):e}let Yt=!0;function xr(e){const o=hs(e),t=e.proxy,n=e.ctx;Yt=!1,o.beforeCreate&&ds(o.beforeCreate,e,"bc");const{data:s,computed:a,methods:r,watch:i,provide:l,inject:g,created:u,beforeMount:$,mounted:S,beforeUpdate:R,updated:G,activated:w,deactivated:K,beforeDestroy:z,beforeUnmount:f,destroyed:A,unmounted:P,render:D,renderTracked:Y,renderTriggered:Q,errorCaptured:He,serverPrefetch:mt,expose:Je,inheritAttrs:To,components:bt,directives:yt,filters:dn}=o;if(g&&Cr(g,n,null),r)for(const q in r){const H=r[q];O(H)&&(n[q]=H.bind(t))}if(s){const q=s.call(t,t);B(q)&&(e.data=Xo(q))}if(Yt=!0,a)for(const q in a){const H=a[q],Qe=O(H)?H.bind(t,t):O(H.get)?H.get.bind(t,t):ye,vt=!O(H)&&O(H.set)?H.set.bind(t):ye,eo=po({get:Qe,set:vt});Object.defineProperty(n,q,{enumerable:!0,configurable:!0,get:()=>eo.value,set:Re=>eo.value=Re})}if(i)for(const q in i)$s(i[q],n,t,q);if(l){const q=O(l)?l.call(t):l;Reflect.ownKeys(q).forEach(H=>{cr(H,q[H])})}u&&ds(u,e,"c");function re(q,H){T(H)?H.forEach(Qe=>q(Qe.bind(t))):H&&q(H.bind(t))}if(re(br,$),re(Kt,S),re(yr,R),re(vr,G),re(_r,w),re(fr,K),re(Lr,He),re(wr,Y),re(Pr,Q),re(cs,f),re(ps,P),re(kr,mt),T(Je))if(Je.length){const q=e.exposed||(e.exposed={});Je.forEach(H=>{Object.defineProperty(q,H,{get:()=>t[H],set:Qe=>t[H]=Qe,enumerable:!0})})}else e.exposed||(e.exposed={});D&&e.render===ye&&(e.render=D),To!=null&&(e.inheritAttrs=To),bt&&(e.components=bt),yt&&(e.directives=yt),mt&&as(e)}function Cr(e,o,t=ye){T(e)&&(e=Jt(e));for(const n in e){const s=e[n];let a;B(s)?"default"in s?a=tt(s.from||n,s.default,!0):a=tt(s.from||n):a=tt(s),te(a)?Object.defineProperty(o,n,{enumerable:!0,configurable:!0,get:()=>a.value,set:r=>a.value=r}):o[n]=a}}function ds(e,o,t){me(T(e)?e.map(n=>n.bind(o.proxy)):e.bind(o.proxy),o,t)}function $s(e,o,t,n){let s=n.includes(".")?ts(t,n):()=>t[n];if(W(e)){const a=o[e];O(a)&&nt(s,a)}else if(O(e))nt(s,e.bind(t));else if(B(e))if(T(e))e.forEach(a=>$s(a,o,t,n));else{const a=O(e.handler)?e.handler.bind(t):o[e.handler];O(a)&&nt(s,a,e)}}function hs(e){const o=e.type,{mixins:t,extends:n}=o,{mixins:s,optionsCache:a,config:{optionMergeStrategies:r}}=e.appContext,i=a.get(o);let l;return i?l=i:!s.length&&!t&&!n?l=o:(l={},s.length&&s.forEach(g=>lt(l,g,r,!0)),lt(l,o,r)),B(o)&&a.set(o,l),l}function lt(e,o,t,n=!1){const{mixins:s,extends:a}=o;a&<(e,a,t,!0),s&&s.forEach(r=>lt(e,r,t,!0));for(const r in o)if(!(n&&r==="expose")){const i=Tr[r]||t&&t[r];e[r]=i?i(e[r],o[r]):o[r]}return e}const Tr={data:_s,props:fs,emits:fs,methods:Po,computed:Po,beforeCreate:se,created:se,beforeMount:se,mounted:se,beforeUpdate:se,updated:se,beforeDestroy:se,beforeUnmount:se,destroyed:se,unmounted:se,activated:se,deactivated:se,errorCaptured:se,serverPrefetch:se,components:Po,directives:Po,watch:Or,provide:_s,inject:Fr};function _s(e,o){return o?e?function(){return X(O(e)?e.call(this,this):e,O(o)?o.call(this,this):o)}:o:e}function Fr(e,o){return Po(Jt(e),Jt(o))}function Jt(e){if(T(e)){const o={};for(let t=0;to==="modelValue"||o==="model-value"?e.modelModifiers:e[`${o}Modifiers`]||e[`${ie(o)}Modifiers`]||e[`${$e(o)}Modifiers`];function Nr(e,o,...t){if(e.isUnmounted)return;const n=e.vnode.props||V;let s=t;const a=o.startsWith("update:"),r=a&&Gr(n,o.slice(7));r&&(r.trim&&(s=t.map(u=>W(u)?u.trim():u)),r.number&&(s=s.map(ka)));let i,l=n[i=At(o)]||n[i=At(ie(o))];!l&&a&&(l=n[i=At($e(o))]),l&&me(l,e,6,s);const g=n[i+"Once"];if(g){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,me(g,e,6,s)}}const Dr=new WeakMap;function bs(e,o,t=!1){const n=t?Dr:o.emitsCache,s=n.get(e);if(s!==void 0)return s;const a=e.emits;let r={},i=!1;if(!O(e)){const l=g=>{const u=bs(g,o,!0);u&&(i=!0,X(r,u))};!t&&o.mixins.length&&o.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!i?(B(e)&&n.set(e,null),null):(T(a)?a.forEach(l=>r[l]=null):X(r,a),B(e)&&n.set(e,r),r)}function ct(e,o){return!e||!Mo(o)?!1:(o=o.slice(2),o=o==="Once"?o:o.replace(/Once$/,""),M(e,o[0].toLowerCase()+o.slice(1))||M(e,$e(o))||M(e,o))}function Ll(){}function ys(e){const{type:o,vnode:t,proxy:n,withProxy:s,propsOptions:[a],slots:r,attrs:i,emit:l,render:g,renderCache:u,props:$,data:S,setupState:R,ctx:G,inheritAttrs:w}=e,K=ot(e);let z,f;try{if(t.shapeFlag&4){const P=s||n,D=P;z=Se(g.call(D,P,u,$,R,S,G)),f=i}else{const P=o;z=Se(P.length>1?P($,{attrs:i,slots:r,emit:l}):P($,null)),f=o.props?i:Br(i)}}catch(P){Ne.length=0,Qo(P,e,1),z=be(Le)}let A=z;if(f&&w!==!1){const P=Object.keys(f),{shapeFlag:D}=A;P.length&&D&7&&(a&&P.some(Go)&&(f=Ur(f,a)),A=co(A,f,!1,!0))}if(t.dirs&&(A=co(A,null,!1,!0),A.dirs=A.dirs?A.dirs.concat(t.dirs):t.dirs),t.transition){const P=st(A.type)&&ns(A)||A;Wt(P,t.transition)}return z=A,ot(K),z}const Br=e=>{let o;for(const t in e)(t==="class"||t==="style"||Mo(t))&&((o||(o={}))[t]=e[t]);return o},Ur=(e,o)=>{const t={};for(const n in e)(!Go(n)||!(n.slice(9)in o))&&(t[n]=e[n]);return t};function Ir(e,o,t){const{props:n,children:s,component:a}=e,{props:r,children:i,patchFlag:l}=o,g=a.emitsOptions;if(o.dirs||o.transition)return!0;if(t&&l>=0){if(l&1024)return!0;if(l&16)return n?vs(n,r,g):!!r;if(l&8){const u=o.dynamicProps;for(let $=0;$Object.create(Ps),Ls=e=>Object.getPrototypeOf(e)===Ps;function jr(e,o,t,n=!1){const s={},a=ws();e.propsDefaults=Object.create(null),Ss(e,o,s,a);for(const r in e.propsOptions[0])r in s||(s[r]=void 0);t?e.props=n?s:Ka(s):e.type.props?e.props=s:e.props=a,e.attrs=a}function zr(e,o,t,n){const{props:s,attrs:a,vnode:{patchFlag:r}}=e,i=N(s),[l]=e.propsOptions;let g=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let $=0;${l=!0;const[S,R]=As($,o,!0);X(r,S),R&&i.push(...R)};!t&&o.mixins.length&&o.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!a&&!l)return B(e)&&n.set(e,oo),oo;if(T(a))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",on=e=>T(e)?e.map(Se):[Se(e)],Wr=(e,o,t)=>{if(o._n)return o;const n=lr((...s)=>on(o(...s)),t);return n._c=!1,n},xs=(e,o,t)=>{const n=e._ctx;for(const s in e){if(en(s))continue;const a=e[s];if(O(a))o[s]=Wr(s,a,n);else if(a!=null){const r=on(a);o[s]=()=>r}}},Cs=(e,o)=>{const t=on(o);e.slots.default=()=>t},Ts=(e,o,t)=>{for(const n in o)(t||!en(n))&&(e[n]=o[n])},qr=(e,o,t)=>{const n=e.slots=ws();if(e.vnode.shapeFlag&32){const s=o._;s?(Ts(n,o,t),t&&yn(n,"_",s,!0)):xs(o,n)}else o&&Cs(e,o)},Kr=(e,o,t)=>{const{vnode:n,slots:s}=e;let a=!0,r=V;if(n.shapeFlag&32){const i=o._;i?t&&i===1?a=!1:Ts(s,o,t):(a=!o.$stable,xs(o,s)),r=o}else o&&(Cs(e,o),r={default:1});if(a)for(const i in s)!en(i)&&r[i]==null&&delete s[i]},ce=Qr;function Xr(e){return Zr(e)}function Zr(e,o){const t=Uo();t.__VUE__=!0;const{insert:n,remove:s,patchProp:a,createElement:r,createText:i,createComment:l,setText:g,setElementText:u,parentNode:$,nextSibling:S,setScopeId:R=ye,insertStaticContent:G}=e,w=(c,p,d,b=null,m=null,h=null,k=void 0,v=null,y=!!p.dynamicChildren)=>{if(c===p)return;c&&!Lo(c,p)&&(b=kt(c),Re(c,m,h,!0),c=null),p.patchFlag===-2&&(y=!1,p.dynamicChildren=null);const{type:_,ref:C,shapeFlag:L}=p;switch(_){case pt:K(c,p,d,b);break;case Le:z(c,p,d,b);break;case nn:c==null&&f(p,d,b,k);break;case pe:bt(c,p,d,b,m,h,k,v,y);break;default:L&1?D(c,p,d,b,m,h,k,v,y):L&6?yt(c,p,d,b,m,h,k,v,y):(L&64||L&128)&&_.process(c,p,d,b,m,h,k,v,y,Oo)}C!=null&&m?vo(C,c&&c.ref,h,p||c,!p):C==null&&c&&c.ref!=null&&vo(c.ref,null,h,c,!0)},K=(c,p,d,b)=>{if(c==null)n(p.el=i(p.children),d,b);else{const m=p.el=c.el;p.children!==c.children&&g(m,p.children)}},z=(c,p,d,b)=>{c==null?n(p.el=l(p.children||""),d,b):p.el=c.el},f=(c,p,d,b)=>{[c.el,c.anchor]=G(c.children,p,d,b,c.el,c.anchor)},A=({el:c,anchor:p},d,b)=>{let m;for(;c&&c!==p;)m=S(c),n(c,d,b),c=m;n(p,d,b)},P=({el:c,anchor:p})=>{let d;for(;c&&c!==p;)d=S(c),s(c),c=d;s(p)},D=(c,p,d,b,m,h,k,v,y)=>{if(p.type==="svg"?k="svg":p.type==="math"&&(k="mathml"),c==null)Y(p,d,b,m,h,k,v,y);else{const _=c.el&&c.el._isVueCE?c.el:null;try{_&&_._beginPatch(),mt(c,p,m,h,k,v,y)}finally{_&&_._endPatch()}}},Y=(c,p,d,b,m,h,k,v)=>{let y,_;const{props:C,shapeFlag:L,transition:x,dirs:F}=c;if(y=c.el=r(c.type,h,C&&C.is,C),L&8?u(y,c.children):L&16&&He(c.children,y,null,b,m,tn(c,h),k,v),F&&Xe(c,null,b,"created"),Q(y,c,c.scopeId,k,b),C){for(const I in C)I!=="value"&&!go(I)&&a(y,I,null,C[I],h,b);"value"in C&&a(y,"value",null,C.value,h),(_=C.onVnodeBeforeMount)&&Ae(_,b,c)}F&&Xe(c,null,b,"beforeMount");const E=Yr(m,x);E&&x.beforeEnter(y),n(y,p,d),((_=C&&C.onVnodeMounted)||E||F)&&ce(()=>{try{_&&Ae(_,b,c),E&&x.enter(y),F&&Xe(c,null,b,"mounted")}finally{}},m)},Q=(c,p,d,b,m)=>{if(d&&R(c,d),b)for(let h=0;h{for(let _=y;_{const v=p.el=c.el;let{patchFlag:y,dynamicChildren:_,dirs:C}=p;y|=c.patchFlag&16;const L=c.props||V,x=p.props||V;let F;if(d&&Ze(d,!1),(F=x.onVnodeBeforeUpdate)&&Ae(F,d,p,c),C&&Xe(p,c,d,"beforeUpdate"),d&&Ze(d,!0),_&&(!c.dynamicChildren||c.dynamicChildren.length!==_.length)&&(y=0,k=!1,_=null),(L.innerHTML&&x.innerHTML==null||L.textContent&&x.textContent==null)&&u(v,""),_?Je(c.dynamicChildren,_,v,d,b,tn(p,m),h):k||H(c,p,v,null,d,b,tn(p,m),h,!1),y>0){if(y&16)To(v,L,x,d,m);else if(y&2&&L.class!==x.class&&a(v,"class",null,x.class,m),y&4&&a(v,"style",L.style,x.style,m),y&8){const E=p.dynamicProps;for(let I=0;I{F&&Ae(F,d,p,c),C&&Xe(p,c,d,"updated")},b)},Je=(c,p,d,b,m,h,k)=>{for(let v=0;v{if(p!==d){if(p!==V)for(const h in p)!go(h)&&!(h in d)&&a(c,h,p[h],null,m,b);for(const h in d){if(go(h))continue;const k=d[h],v=p[h];k!==v&&h!=="value"&&a(c,h,v,k,m,b)}"value"in d&&a(c,"value",p.value,d.value,m)}},bt=(c,p,d,b,m,h,k,v,y)=>{const _=p.el=c?c.el:i(""),C=p.anchor=c?c.anchor:i("");let{patchFlag:L,dynamicChildren:x,slotScopeIds:F}=p;F&&(v=v?v.concat(F):F),c==null?(n(_,d,b),n(C,d,b),He(p.children||[],d,C,m,h,k,v,y)):L>0&&L&64&&x&&c.dynamicChildren&&c.dynamicChildren.length===x.length?(Je(c.dynamicChildren,x,d,m,h,k,v),(p.key!=null||m&&p===m.subTree)&&Fs(c,p,!0)):H(c,p,d,C,m,h,k,v,y)},yt=(c,p,d,b,m,h,k,v,y)=>{p.slotScopeIds=v,c==null?p.shapeFlag&512?m.ctx.activate(p,d,b,k,y):dn(p,d,b,m,h,k,y):ga(c,p,y)},dn=(c,p,d,b,m,h,k)=>{const v=c.component=ri(c,b,m);if(qt(c)&&(v.ctx.renderer=Oo),ii(v,!1,k),v.asyncDep){if(m&&m.registerDep(v,re,k),!c.el){const y=v.subTree=be(Le);z(null,y,p,d),c.placeholder=y.el}}else re(v,c,p,d,m,h,k)},ga=(c,p,d)=>{const b=p.component=c.component;if(Ir(c,p,d))if(b.asyncDep&&!b.asyncResolved){q(b,p,d);return}else b.next=p,b.update();else p.el=c.el,b.vnode=p},re=(c,p,d,b,m,h,k)=>{const v=()=>{if(c.isMounted){let{next:L,bu:x,u:F,parent:E,vnode:I}=c;{const Ce=Os(c);if(Ce){L&&(L.el=I.el,q(c,L,k)),Ce.asyncDep.then(()=>{ce(()=>{c.isUnmounted||_()},m)});return}}let U=L,Z;Ze(c,!1),L?(L.el=I.el,q(c,L,k)):L=I,x&&Rt(x),(Z=L.props&&L.props.onVnodeBeforeUpdate)&&Ae(Z,E,L,I),Ze(c,!0);const ee=ys(c),xe=c.subTree;c.subTree=ee,w(xe,ee,$(xe.el),kt(xe),c,m,h),L.el=ee.el,U===null&&Vr(c,ee.el),F&&ce(F,m),(Z=L.props&&L.props.onVnodeUpdated)&&ce(()=>Ae(Z,E,L,I),m)}else{let L;const{el:x,props:F}=p,{bm:E,m:I,parent:U,root:Z,type:ee}=c,xe=io(p);Ze(c,!1),E&&Rt(E),!xe&&(L=F&&F.onVnodeBeforeMount)&&Ae(L,U,p),Ze(c,!0);{Z.ce&&Z.ce._hasShadowRoot()&&Z.ce._injectChildStyle(ee,c.parent?c.parent.type:void 0);const Ce=c.subTree=ys(c);w(null,Ce,d,b,c,m,h),p.el=Ce.el}if(I&&ce(I,m),!xe&&(L=F&&F.onVnodeMounted)){const Ce=p;ce(()=>Ae(L,U,Ce),m)}(p.shapeFlag&256||U&&io(U.vnode)&&U.vnode.shapeFlag&256)&&c.a&&ce(c.a,m),c.isMounted=!0,p=d=b=null}};c.scope.on();const y=c.effect=new An(v);c.scope.off();const _=c.update=y.run.bind(y),C=c.job=y.runIfDirty.bind(y);C.i=c,C.id=c.uid,y.scheduler=()=>jt(C),Ze(c,!0),_()},q=(c,p,d)=>{p.component=c;const b=c.vnode.props;c.vnode=p,c.next=null,zr(c,p.props,b,d),Kr(c,p.children,d),ve(),Jn(c),ke()},H=(c,p,d,b,m,h,k,v,y=!1)=>{const _=c&&c.children,C=c?c.shapeFlag:0,L=p.children,{patchFlag:x,shapeFlag:F}=p;if(x>0){if(x&128){vt(_,L,d,b,m,h,k,v,y);return}else if(x&256){Qe(_,L,d,b,m,h,k,v,y);return}}F&8?(C&16&&Fo(_,m,h),L!==_&&u(d,L)):C&16?F&16?vt(_,L,d,b,m,h,k,v,y):Fo(_,m,h,!0):(C&8&&u(d,""),F&16&&He(L,d,b,m,h,k,v,y))},Qe=(c,p,d,b,m,h,k,v,y)=>{c=c||oo,p=p||oo;const _=c.length,C=p.length,L=Math.min(_,C);let x;for(x=0;xC?Fo(c,m,h,!0,!1,L):He(p,d,b,m,h,k,v,y,L)},vt=(c,p,d,b,m,h,k,v,y)=>{let _=0;const C=p.length;let L=c.length-1,x=C-1;for(;_<=L&&_<=x;){const F=c[_],E=p[_]=y?Be(p[_]):Se(p[_]);if(Lo(F,E))w(F,E,d,null,m,h,k,v,y);else break;_++}for(;_<=L&&_<=x;){const F=c[L],E=p[x]=y?Be(p[x]):Se(p[x]);if(Lo(F,E))w(F,E,d,null,m,h,k,v,y);else break;L--,x--}if(_>L){if(_<=x){const F=x+1,E=Fx)for(;_<=L;)Re(c[_],m,h,!0),_++;else{const F=_,E=_,I=new Map;for(_=E;_<=x;_++){const de=p[_]=y?Be(p[_]):Se(p[_]);de.key!=null&&I.set(de.key,_)}let U,Z=0;const ee=x-E+1;let xe=!1,Ce=0;const Eo=new Array(ee);for(_=0;_=ee){Re(de,m,h,!0);continue}let Te;if(de.key!=null)Te=I.get(de.key);else for(U=E;U<=x;U++)if(Eo[U-E]===0&&Lo(de,p[U])){Te=U;break}Te===void 0?Re(de,m,h,!0):(Eo[Te-E]=_+1,Te>=Ce?Ce=Te:xe=!0,w(de,p[Te],d,null,m,h,k,v,y),Z++)}const ha=xe?Jr(Eo):oo;for(U=ha.length-1,_=ee-1;_>=0;_--){const de=E+_,Te=p[de],_a=p[de+1],fa=de+1{const{el:h,type:k,transition:v,children:y,shapeFlag:_}=c;if(_&6){eo(c.component.subTree,p,d,b);return}if(_&128){c.suspense.move(p,d,b);return}if(_&64){k.move(c,p,d,Oo);return}if(k===pe){n(h,p,d);for(let L=0;Lv.enter(h),m));else{const{leave:L,delayLeave:x,afterLeave:F}=v,E=()=>{c.ctx.isUnmounted?s(h):n(h,p,d)},I=()=>{const U=h._isLeaving||!!h[Ht];h._isLeaving&&h[Ht](!0),v.persisted&&!U?E():L(h,()=>{E(),F&&F()})};x?x(h,E,I):I()}else n(h,p,d)},Re=(c,p,d,b=!1,m=!1)=>{const{type:h,props:k,ref:v,children:y,dynamicChildren:_,shapeFlag:C,patchFlag:L,dirs:x,cacheIndex:F,memo:E}=c;if(L===-2&&(m=!1),v!=null&&(ve(),vo(v,null,d,c,!0),ke()),F!=null&&(p.renderCache[F]=void 0),C&256){p.ctx.deactivate(c);return}const I=C&1&&x,U=!io(c);let Z;if(U&&(Z=k&&k.onVnodeBeforeUnmount)&&Ae(Z,p,c),C&6)vl(c.component,d,b);else{if(C&128){c.suspense.unmount(d,b);return}I&&Xe(c,null,p,"beforeUnmount"),C&64?c.type.remove(c,p,d,Oo,b):_&&!_.hasOnce&&(h!==pe||L>0&&L&64)?Fo(_,p,d,!1,!0):(h===pe&&L&384||!m&&C&16)&&Fo(y,p,d),b&&da(c)}const ee=E!=null&&F==null;(U&&(Z=k&&k.onVnodeUnmounted)||I||ee)&&ce(()=>{Z&&Ae(Z,p,c),I&&Xe(c,null,p,"unmounted"),ee&&(c.el=null)},d)},da=c=>{const{type:p,el:d,anchor:b,transition:m}=c;if(p===pe){yl(d,b);return}if(p===nn){P(c);return}const h=()=>{s(d),m&&!m.persisted&&m.afterLeave&&m.afterLeave()};if(c.shapeFlag&1&&m&&!m.persisted){const{leave:k,delayLeave:v}=m,y=()=>k(d,h);v?v(c.el,h,y):y()}else h()},yl=(c,p)=>{let d;for(;c!==p;)d=S(c),s(c),c=d;s(p)},vl=(c,p,d)=>{const{bum:b,scope:m,job:h,subTree:k,um:v,m:y,a:_}=c;Es(y),Es(_),b&&Rt(b),m.stop(),h&&(h.flags|=8,Re(k,c,p,d)),v&&ce(v,p),ce(()=>{c.isUnmounted=!0},p)},Fo=(c,p,d,b=!1,m=!1,h=0)=>{for(let k=h;k{if(c.shapeFlag&6)return kt(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const p=S(c.anchor||c.el),d=p&&p[$r];return d?S(d):p};let $n=!1;const $a=(c,p,d)=>{let b;c==null?p._vnode&&(Re(p._vnode,null,null,!0),b=p._vnode.component):w(p._vnode||null,c,p,null,null,null,d),p._vnode=c,$n||($n=!0,Jn(b),Qn(),$n=!1)},Oo={p:w,um:Re,m:eo,r:da,mt:dn,mc:He,pc:H,pbc:Je,n:kt,o:e};return{render:$a,hydrate:void 0,createApp:Mr($a)}}function tn({type:e,props:o},t){return t==="svg"&&e==="foreignObject"||t==="mathml"&&e==="annotation-xml"&&o&&o.encoding&&o.encoding.includes("html")?void 0:t}function Ze({effect:e,job:o},t){t?(e.flags|=32,o.flags|=4):(e.flags&=-33,o.flags&=-5)}function Yr(e,o){return(!e||e&&!e.pendingBranch)&&o&&!o.persisted}function Fs(e,o,t=!1){const n=e.children,s=o.children;if(T(n)&&T(s))for(let a=0;a>1,e[t[i]]0&&(o[n]=t[a-1]),t[a]=n)}}for(a=t.length,r=t[a-1];a-- >0;)t[a]=r,r=o[r];return t}function Os(e){const o=e.subTree.component;if(o)return o.asyncDep&&!o.asyncResolved?o:Os(o)}function Es(e){if(e)for(let o=0;oe.__isSuspense;function Qr(e,o){o&&o.pendingBranch?T(e)?o.effects.push(...e):o.effects.push(e):ir(e)}const pe=Symbol.for("v-fgt"),pt=Symbol.for("v-txt"),Le=Symbol.for("v-cmt"),nn=Symbol.for("v-stc"),Ne=[];let ue=null;function ge(e=!1){Ne.push(ue=e?null:[])}function sn(){Ne.pop(),ue=Ne[Ne.length-1]||null}let wo=1;function Ns(e,o=!1){wo+=e,e<0&&ue&&o&&(ue.hasOnce=!0)}function Ds(e){return e.dynamicChildren=wo>0?ue||oo:null,sn(),wo>0&&ue&&ue.push(e),e}function De(e,o,t,n,s,a){return Ds(Ye(e,o,t,n,s,a,!0))}function ut(e,o,t,n,s){return Ds(be(e,o,t,n,s,!0))}function an(e){return e?e.__v_isVNode===!0:!1}function Lo(e,o){return e.type===o.type&&e.key===o.key}const Bs=({key:e})=>e??null,gt=({ref:e,ref_key:o,ref_for:t})=>(typeof e=="number"&&(e=""+e),e!=null?W(e)||te(e)||O(e)?{i:le,r:e,k:o,f:!!t}:e:null);function Ye(e,o=null,t=null,n=0,s=null,a=e===pe?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:o,key:o&&Bs(o),ref:o&>(o),scopeId:os,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:le};return i?($t(l,t),a&128&&e.normalize(l)):t&&(l.shapeFlag|=W(t)?8:16),wo>0&&!r&&ue&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&ue.push(l),l}const be=ei;function ei(e,o=null,t=null,n=0,s=null,a=!1){if((!e||e===Sr)&&(e=Le),an(e)){const i=co(e,o,!0);return t&&$t(i,t),wo>0&&!a&&ue&&(i.shapeFlag&6?ue[ue.indexOf(e)]=i:ue.push(i)),i.patchFlag=-2,i}if($i(e)&&(e=e.__vccOpts),o){o=oi(o);let{class:i,style:l}=o;i&&!W(i)&&(o.class=Vo(i)),B(l)&&(It(l)&&!T(l)&&(l=X({},l)),o.style=Io(l))}const r=W(e)?1:Gs(e)?128:st(e)?64:B(e)?4:O(e)?2:0;return Ye(e,o,t,n,s,r,a,!0)}function oi(e){return e?It(e)||Ls(e)?X({},e):e:null}function co(e,o,t=!1,n=!1){const{props:s,ref:a,patchFlag:r,children:i,transition:l}=e,g=o?ni(s||{},o):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:g,key:g&&Bs(g),ref:o&&o.ref?t&&a?T(a)?a.concat(gt(o)):[a,gt(o)]:gt(o):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:o&&e.type!==pe?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&co(e.ssContent),ssFallback:e.ssFallback&&co(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Wt(u,l.clone(u)),u}function ti(e=" ",o=0){return be(pt,null,e,o)}function dt(e="",o=!1){return o?(ge(),ut(Le,null,e)):be(Le,null,e)}function Se(e){return e==null||typeof e=="boolean"?be(Le):T(e)?be(pe,null,e.slice()):an(e)?Be(e):be(pt,null,String(e))}function Be(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:co(e)}function $t(e,o){let t=0;const{shapeFlag:n}=e;if(o==null)o=null;else if(T(o))t=16;else if(typeof o=="object")if(n&65){const s=o.default;s&&(s._c&&(s._d=!1),$t(e,s()),s._c&&(s._d=!0));return}else{t=32;const s=o._;!s&&!Ls(o)?o._ctx=le:s===3&&le&&(le.slots._===1?o._=1:(o._=2,e.patchFlag|=1024))}else if(O(o)){if(n&65){$t(e,{default:o});return}o={default:o,_ctx:le},t=32}else o=String(o),n&64?(t=16,o=[ti(o)]):t=8;e.children=o,e.shapeFlag|=t}function ni(...e){const o={};for(let t=0;tae||le;let ht,So;{const e=Uo(),o=(t,n)=>{let s;return(s=e[t])||(s=e[t]=[]),s.push(n),a=>{s.length>1?s.forEach(r=>r(a)):s[0](a)}};ht=o("__VUE_INSTANCE_SETTERS__",t=>ae=t),So=o("__VUE_SSR_SETTERS__",t=>Ro=t)}const Ao=e=>{const o=ae;return ht(e),e.scope.on(),()=>{e.scope.off(),ht(o)}},Us=()=>{ae&&ae.scope.off(),ht(null)};function Is(e){return e.vnode.shapeFlag&4}let Ro=!1;function ii(e,o=!1,t=!1){o&&So(o);const{props:n,children:s}=e.vnode,a=Is(e);jr(e,n,a,o),qr(e,s,t||o);const r=a?li(e,o):void 0;return o&&So(!1),r}function li(e,o){const t=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Rr);const{setup:n}=t;if(n){ve();const s=e.setupContext=n.length>1?pi(e):null,a=Ao(e),r=so(n,e,0,[e.props,s]),i=fn(r);if(ke(),a(),(i||e.sp)&&!io(e)&&as(e),i){if(r.then(Us,Us),o)return r.then(l=>{So(!0);try{Vs(e,l,o)}finally{So(!1)}}).catch(l=>{Qo(l,e,0)});e.asyncDep=r}else Vs(e,r)}else js(e)}function Vs(e,o,t){O(o)?e.type.__ssrInlineRender?e.ssrRender=o:e.render=o:B(o)&&(e.setupState=qn(o)),js(e)}function js(e,o,t){const n=e.type;e.render||(e.render=n.render||ye);{const s=Ao(e);ve();try{xr(e)}finally{ke(),s()}}}const ci={get(e,o){return oe(e,"get",""),e[o]}};function pi(e){const o=t=>{e.exposed=t||{}};return{attrs:new Proxy(e.attrs,ci),slots:e.slots,emit:e.emit,expose:o}}function ln(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(qn(Xa(e.exposed)),{get(o,t){if(t in o)return o[t];if(t in ko)return ko[t](e)},has(o,t){return t in o||t in ko}})):e.proxy}const ui=/(?:^|[-_])\w/g,gi=e=>e.replace(ui,o=>o.toUpperCase()).replace(/[-_]/g,"");function di(e,o=!0){return O(e)?e.displayName||e.name:e.name||o&&e.__name}function zs(e,o,t=!1){let n=di(o);if(!n&&o.__file){const s=o.__file.match(/([^/\\]+)\.\w+$/);s&&(n=s[1])}if(!n&&e){const s=a=>{for(const r in a)if(a[r]===o)return r};n=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return n?gi(n):t?"App":"Anonymous"}function $i(e){return O(e)&&"__vccOpts"in e}const po=(e,o)=>Ja(e,o,Ro),hi="3.5.42";/** -* @vue/runtime-dom v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let cn;const Hs=typeof window<"u"&&window.trustedTypes;if(Hs)try{cn=Hs.createPolicy("vue",{createHTML:e=>e})}catch{}const Ws=cn?e=>cn.createHTML(e):e=>e,_i="http://www.w3.org/2000/svg",fi="http://www.w3.org/1998/Math/MathML",Ue=typeof document<"u"?document:null,qs=Ue&&Ue.createElement("template"),mi={insert:(e,o,t)=>{o.insertBefore(e,t||null)},remove:e=>{const o=e.parentNode;o&&o.removeChild(e)},createElement:(e,o,t,n)=>{const s=o==="svg"?Ue.createElementNS(_i,e):o==="mathml"?Ue.createElementNS(fi,e):t?Ue.createElement(e,{is:t}):Ue.createElement(e);return e==="select"&&n&&n.multiple!=null&&s.setAttribute("multiple",n.multiple),s},createText:e=>Ue.createTextNode(e),createComment:e=>Ue.createComment(e),setText:(e,o)=>{e.nodeValue=o},setElementText:(e,o)=>{e.textContent=o},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ue.querySelector(e),setScopeId(e,o){e.setAttribute(o,"")},insertStaticContent(e,o,t,n,s,a){const r=t?t.previousSibling:o.lastChild;if(s&&(s===a||s.nextSibling))for(;o.insertBefore(s.cloneNode(!0),t),!(s===a||!(s=s.nextSibling)););else{qs.innerHTML=Ws(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=qs.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}o.insertBefore(i,t)}return[r?r.nextSibling:o.firstChild,t?t.previousSibling:o.lastChild]}},bi=Symbol("_vtc");function yi(e,o,t){const n=e[bi];n&&(o=(o?[o,...n]:[...n]).join(" ")),o==null?e.removeAttribute("class"):t?e.setAttribute("class",o):e.className=o}const Ks=Symbol("_vod"),vi=Symbol("_vsh"),ki=Symbol(""),Pi=/(?:^|;)\s*display\s*:/;function wi(e,o,t){const n=e.style,s=W(t);let a=!1;if(t&&!s){if(o)if(W(o))for(const r of o.split(";")){const i=r.slice(0,r.indexOf(":")).trim();t[i]==null&&xo(n,i,"")}else for(const r in o)t[r]==null&&xo(n,r,"");for(const r in t){r==="display"&&(a=!0);const i=t[r];i!=null?Si(e,r,!W(o)&&o?o[r]:void 0,i)||xo(n,r,i):xo(n,r,"")}}else if(s){if(o!==t){const r=n[ki];r&&(t+=";"+r),n.cssText=t,a=Pi.test(t)}}else o&&e.removeAttribute("style");Ks in e&&(e[Ks]=a?n.display:"",e[vi]&&(n.display="none"))}const _t=/\s*!important$/;function xo(e,o,t){if(T(t))t.forEach(n=>xo(e,o,n));else if(t==null&&(t=""),o.startsWith("--"))_t.test(t)?e.setProperty(o,t.replace(_t,""),"important"):e.setProperty(o,t);else{const n=Li(e,o);_t.test(t)?e.setProperty($e(n),t.replace(_t,""),"important"):e[n]=t}}const Xs=["Webkit","Moz","ms"],pn={};function Li(e,o){const t=pn[o];if(t)return t;let n=ie(o);if(n!=="filter"&&n in e)return pn[o]=n;n=bn(n);for(let s=0;sun||(Oi.then(()=>un=0),un=Date.now());function Mi(e,o){const t=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=t.attached)return;const s=t.value;if(T(s)){const a=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{a.call(n),n._stopped=!0};const r=s.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Gi=(e,o,t,n,s,a)=>{const r=s==="svg";o==="class"?yi(e,n,r):o==="style"?wi(e,t,n):Mo(o)?Go(o)||xi(e,o,t,n,a):(o[0]==="."?(o=o.slice(1),!0):o[0]==="^"?(o=o.slice(1),!1):Ni(e,o,n,r))?(Js(e,o,n),!e.tagName.includes("-")&&(o==="value"||o==="checked"||o==="selected")&&Ys(e,o,n,r,a,o!=="value")):e._isVueCE&&(Di(e,o)||e._def.__asyncLoader&&(/[A-Z]/.test(o)||!W(n)))?Js(e,ie(o),n,a,o):(o==="true-value"?e._trueValue=n:o==="false-value"&&(e._falseValue=n),Ys(e,o,n,r))};function Ni(e,o,t,n){if(n)return!!(o==="innerHTML"||o==="textContent"||o in e&&ea(o)&&O(t));if(o==="spellcheck"||o==="draggable"||o==="translate"||o==="autocorrect"||o==="sandbox"&&e.tagName==="IFRAME"||o==="form"||o==="list"&&e.tagName==="INPUT"||o==="type"&&e.tagName==="TEXTAREA")return!1;if(o==="width"||o==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return ea(o)&&W(t)?!1:o in e}function Di(e,o){const t=e._def.props;if(!t)return!1;const n=ie(o);return Array.isArray(t)?t.some(s=>ie(s)===n):Object.keys(t).some(s=>ie(s)===n)}const oa={};function Bi(e,o,t){let n=ss(e,o);Do(n)&&(n=X({},n,o));class s extends gn{constructor(r){super(n,r,t)}}return s.def=n,s}const Ui=typeof HTMLElement<"u"?HTMLElement:class{};class gn extends Ui{constructor(o,t={},n=sa){super(),this._def=o,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==sa?this._root=this.shadowRoot:o.shadowRoot!==!1?(this.attachShadow(X({},o.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let o=this;for(;o=o&&(o.assignedSlot||o.parentNode||o.host);)if(o instanceof gn){this._parent=o;break}this._instance||(this._resolved?this._mount(this._def):o&&o._pendingResolve?this._pendingResolve=o._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(o=this._parent){o&&(this._instance.parent=o._instance,this._inheritParentContext(o))}_inheritParentContext(o=this._parent){o&&this._app&&Object.setPrototypeOf(this._app._context.provides,o._instance.provides)}disconnectedCallback(){this._connected=!1,Zn(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(o){for(const t of o)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:a,styles:r}=n;let i;if(a&&!T(a))for(const l in a){const g=a[l];(g===Number||g&&g.type===Number)&&(l in this._props&&(this._props[l]=vn(this._props[l])),(i||(i=Object.create(null)))[ie(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(r),this._mount(n)},t=this._def.__asyncLoader;if(t)return this._pendingResolve=t().then(n=>{n.configureApp=this._def.configureApp,o(this._def=n,!0)}),this._pendingResolve;o(this._def)}_mount(o){this._app=this._createApp(o),this._inheritParentContext(),o.configureApp&&o.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const t=this._instance&&this._instance.exposed;if(t)for(const n in t)M(this,n)||Object.defineProperty(this,n,{get:()=>Wn(t[n])})}_resolveProps(o){const{props:t}=o,n=T(t)?t:Object.keys(t||{});for(const s of Object.keys(this))s[0]!=="_"&&n.includes(s)&&this._setProp(s,this[s]);for(const s of n.map(ie))Object.defineProperty(this,s,{get(){return this._getProp(s)},set(a){this._setProp(s,a,!0,!this._patching)}})}_setAttr(o){if(o.startsWith("data-v-"))return;const t=this.hasAttribute(o);let n=t?this.getAttribute(o):oa;const s=ie(o);t&&this._numberProps&&this._numberProps[s]&&(n=vn(n)),this._setProp(s,n,!1,!0)}_getProp(o){return this._props[o]}_setProp(o,t,n=!0,s=!1){if(t!==this._props[o]&&(this._dirty=!0,t===oa?delete this._props[o]:(this._props[o]=t,o==="key"&&this._app&&(this._app._ceVNode.key=t)),s&&this._instance&&this._update(),n)){const a=this._ob;a&&(this._processMutations(a.takeRecords()),a.disconnect()),t===!0?this.setAttribute($e(o),""):typeof t=="string"||typeof t=="number"?this.setAttribute($e(o),t+""):t||this.removeAttribute($e(o)),a&&a.observe(this,{attributes:!0})}}_update(){const o=this._createVNode();this._app&&(o.appContext=this._app._context),Vi(o,this._root)}_createVNode(){const o={};this.shadowRoot||(o.onVnodeMounted=o.onVnodeUpdated=this._renderSlots.bind(this));const t=be(this._def,X(o,this._props));return this._instance||(t.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const s=(a,r)=>{this.dispatchEvent(new CustomEvent(a,Do(r[0])?X({detail:r},r[0]):{detail:r}))};n.emit=(a,...r)=>{s(a,r),$e(a)!==a&&s($e(a),r)},this._setParent()}),t}_applyStyles(o,t,n){if(!o)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}const s=this._nonce,a=this.shadowRoot,r=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(a);let i=null;for(let l=o.length-1;l>=0;l--){const g=document.createElement("style");s&&g.setAttribute("nonce",s),g.textContent=o[l],a.insertBefore(g,i||r),i=g,l===0&&(n||this._styleAnchors.set(this._def,g),t&&this._styleAnchors.set(t,g))}}_getStyleAnchor(o){if(!o)return null;const t=this._styleAnchors.get(o);return t&&t.parentNode===this.shadowRoot?t:(t&&this._styleAnchors.delete(o),null)}_getRootStyleInsertionAnchor(o){for(let t=0;t{na().render(...e)},sa=(...e)=>{const o=na().createApp(...e),{mount:t}=o;return o.mount=n=>{const s=zi(n);if(!s)return;const a=o._component;!O(a)&&!a.render&&!a.template&&(a.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const r=t(s,!1,ji(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),r},o};function ji(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function zi(e){return W(e)?document.querySelector(e):e}const Hi=Object.assign({"./locales/ar/allPeopleGroups.json":{title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},"./locales/ar/aria.json":{backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},"./locales/ar/buttons.json":{prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف"},"./locales/ar/connectivity.json":{title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},"./locales/ar/controls.json":{research_controls:"أدوات البحث",clustering:"التجميع",filters:"عوامل التصفية",pin_dim:"خفوت النقاط",export_poster:"تصدير ملصق…",reload_data:"إعادة تحميل البيانات",off:"إيقاف",native:"أصلي",mst:"الشجرة الممتدة",network:"شبكة",off_desc:"إظهار كل نقطة على حدة",native_desc:"تجميع دوائر Mapbox (الأسرع)",mst_desc:"شبكات تقارب بالشجرة الممتدة الصغرى",network_desc:"خطوط ربط بأقرب جار",search_languages:"ابحث عن اللغات…",search_religions:"ابحث عن الأديان…",reset_all:"إعادة تعيين الكل",no_languages:"لم تُحمَّل أي لغات بعد",no_religions:"لم تُحمَّل أي أديان بعد",unadopted:"غير متبنّى",min:"الأدنى",max:"الأعلى",adopted:"متبنَّاة",adoption:"التبني",engaged:"مُخْدُومَة",engagement:"المشاركة",unengaged:"يحتاج إلى انخراط",language:"اللغة",religion:"الدين",population:"السكان",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",close:"إغلاق",clear:"مسح",map_controls:"أدوات التحكم بالخريطة"},"./locales/ar/dashboard.json":{bloc:"كتلة التقارب",gospel_access:"الوصول إلى الإنجيل",people:"الشعوب",people_name:"الشعب (الاسم)",praying:"يصلّون",religion_family:"عائلة الأديان",search_language:"ابحث عن لغة",search_people:"ابحث عن شعب",search_place:"ابحث عن مكان",search_religion:"ابحث عن دين",upgs_in_scope:"الشعوب ضمن النطاق",countries_touched:"الدول المشمولة",unreached:"غير موصولين",sum_population:"مجموع السكان",sum_praying:"مجموع المصلّين",charts:"الرسوم البيانية",table:"الجدول",cluster:"المجموعة",country:"الدولة",engagement:"المشاركة",language:"اللغة",language_family:"عائلة اللغة",people_group:"الشعب",population:"السكان",prayer:"الصلاة",region:"المنطقة",religion:"الدين",status:"الحالة",adopted:"متبنَّاة",filters:"عوامل التصفية",gospel_resources:"موارد الإنجيل",map:"الخريطة",search_placeholder:"ابحث عن الشعوب والأماكن واللغات والأديان…",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",map_controls:"أدوات التحكم بالخريطة",close:"إغلاق",clear:"مسح",dashboard_title:"لوحة البحث الشاملة",align_dashboard:"محاذاة اللوحة",align_dashboard_tip:"إعادة تخطيط اللوحة إلى المحاذاة الافتراضية",selected:"المحدد",world:"العالم",vertical_legend:"مفتاح عمودي",groups_in_scope:"مجموعة ضمن النطاق",filter_by:"تصفية حسب",remove_filter:"إزالة التصفية",groups:"مجموعة",expand:"توسيع",collapse:"طيّ",place:"المكان"},"./locales/ar/detail.json":{labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},"./locales/ar/gospel.json":{_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"الملاحظات التوضيحية أدناه باللغة الإنجليزية."},mode:{gap:"الفجوة",coverage:"الموارد المتوفرة"},search:{placeholder:"ابحث عن شعب أو لغة أو رمز ISO",clear:"مسح البحث",none:"لا شيء يطابق هذا الاسم أو اللغة أو الرمز.",placeholderShort:"شعب أو لغة أو رمز ISO"},legend:{title:"شعوب غير مبلَّغة ولا يوجد لها أي مورد إنجيلي",band60:"⁦60%+⁩ بلا أي مورد",band30:"⁦30–59%⁩",bandSome:"بعض الشعوب",bandAll:"كل الشعوب لديها شيء",tier2:"الكتاب المقدس والفيلم",tier1:"وُجد بعض الموارد",tier0:"لا شيء",hnr:"يمكنهم السماع، ولا يوجد نص",showAll:"عرض كل الشعوب",titleCoverage:"شعوب غير مبلَّغة ويوجد لها بعض الموارد الإنجيلية",cov80:"⁦80%+⁩ لديهم شيء",cov50:"⁦50–79%⁩",cov1:"⁦1–49%⁩",cov0:"لا شيء لأي منهم",tallyEach:"كل",tallyIs:"هو شعب واحد —",tallyOf:"منها،",tallyLink:"لديها رابط",doxa0:"لدى الجميع شيء",doxa1:"‪1–4‬ بلا شيء",doxa5:"‪5–14‬",doxa15:"‪15–39‬",doxa40:"‪40+‬",cvd1:"‪1–4‬ لديهم موارد",cvd5:"‪5–14‬",cvd15:"‪15–39‬",cvd40:"‪40+‬",onMap:"شعوب دوكسا على هذه الخريطة",notPlaced:"ضمن القائمة، بلا موقع بعد",outOfScope:"لا توجد شعوب دوكسا — غير ملوَّنة"},tabs:{groups:"أكبر الشعوب",countries:"حسب البلد",regions:"حسب المنطقة",noprayer:"لا أحد يصلّي",hnr:"يسمعون، بلا نص"},stat:{language:"اللغة",population:"عدد السكان",countries:"البلدان",peopleGroups:"الشعوب",noResource:"لا يوجد أي مورد",peopleAffected:"الأشخاص المتأثرون",haveScripture:"لديهم الكتاب المقدس",haveFilm:"لديهم الفيلم",haveAudio:"لديهم كتاب مقدس مسموع",signLanguages:"لغات الإشارة",growingUnreached:"متزايدون وغير مبلَّغين",deathsDay:"الوفيات المقدَّرة يوميًا"},sheet:{ownLanguage:"بلغتهم الأم",close:"إغلاق",loading:"جارٍ تحميل الموارد…",pray:"صلِّ من أجل",everyResource:"كل الموارد بـ",alsoSpeak:"يتحدثون أيضًا"},res:{scripture:"الكتاب المقدس",film:"الفيلم",audio:"صوتي",bibleVideo:"فيديو كتابي",bibleStories:"Open Bible Stories",gospelAudio:"صوتيات الإنجيل",gospelPresentation:"عرض للإنجيل",scriptureEarth:"Scripture Earth",training:"تدريب على التلمذة",jesusFilm:"فيلم يسوع",audioScripture:"الكتاب المقدس الصوتي",bibleStoriesPlain:"قصص الكتاب المقدس"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"},guide:{dotVsCountry:"كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",noneFoundShort:"«لا شيء» تعني غير موجود في المصادر التي بحثنا فيها — وليست دليلًا على عدم وجوده.",tapCountry:"اضغط على بلد لترى الموارد الفعلية، شعبًا شعبًا."},tables:{title:"موارد الإنجيل — البيانات",showing:"عرض",of:"من",for:"لـ",filteredTo:"مصفّى حسب",showAll:"عرض كل الموارد",t_doxa:"دوكسا — الوصول إلى الإنجيل",t_links:"كل مورد ورابطه",t_nothing:"حيث لا يوجد شيء",t_countrygap:"الفجوة حسب البلد",t_translation:"يسمعون ولا نص لديهم",t_translationcountry:"أين نترجم",t_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"},list:{noText:"بلا نص مقدس",hasScripture:"لديها الكتاب المقدس",allLanguages:"كل اللغات",peopleGroup:"شعب",peopleGroups:"شعوب",scriptureHere:"الكتاب المقدس بهذه اللغة"},columns:{"People group":"الشعب",Country:"البلد",Region:"المنطقة",Language:"اللغة",Population:"عدد السكان",Religion:"الديانة","Gospel access":"الوصول إلى الإنجيل",Resources:"الموارد",Scripture:"الكتاب المقدس","Bible video":"فيديو كتابي","Gospel presentation":"عرض للإنجيل",Countries:"البلدان","People groups":"الشعوب"},charts:{scriptureAny:"الكتاب المقدس (أي نوع)",fullBible:"الكتاب المقدس كاملاً",newTestament:"العهد الجديد",filmAny:"الفيلم (أي نوع)",nothingInPools:"لا شيء في المصادر التي جرى البحث فيها",nothingInPoolsLower:"لا شيء في المصادر التي جرى البحث فيها",noResourceInPools:"لم يُعثر على أي مورد في المصادر التي جرى البحث فيها",aResourceFound:"وُجد مورد",tabCoverage:"تغطية الموارد",tabGap:"أكبر الفجوات",keyScripture:"الكتاب المقدس",keyFilmStories:"الفيلم / القصص",keyAudioEtc:"صوتيات / عرض / تدريب",unresolvedCode:"رمز خارج ISO 639-3 — غير محسوم، لم يُقَس"}},"./locales/ar/grid.json":{search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},"./locales/ar/legend.json":{title:{adoption:"تقدم التبني",affinityBlocs:"كتل القرابة",doxaRegions:"مناطق Doxa",engagement:"تقدم الانخراط",gospelResources:"موارد الإنجيل",languageFamilies:"العائلات اللغوية",prayer:"تقدم الصلاة",upg100List:"قائمة UPG 100 الخاصة بي"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"},tabInfo:{upg100Region:"المنطقة — ترتّب قوائم UPG-100 حسب منطقة العالم (أفريقيا، الهند، الشرق الأوسط، الصمّ، …). الأعداد هي مجموع UUPG والسكان لكل قائمة تحتها.",upg100Zone:"قوائم UPG-100 — كل واحدة هي قائمة صلاة للشعوب غير الموصول إليها في منطقة ما، وهي ما ترسمه الخريطة وتلوّنه. تُطبع كل قائمة ككُتيّب خاص بها.",upg100Group:"مجموعة شعبية — المجموعات غير الموصول إليها داخل القائمة، الأكثر حاجة للصلاة أولاً. كل نقطة على الخريطة هي واحدة منها."},a11y:{expandRow:"توسيع {label}",collapseRow:"طي {label}",clearSelection:"إلغاء التحديد"}},"./locales/ar/messages.json":{menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},"./locales/ar/options.json":{clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},"./locales/ar/popup.json":{country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},"./locales/ar/prayerLaps.json":{header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},"./locales/ar/regions.json":{"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة بشرية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة البشرية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مُخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة بشرية غير مبشرة تتبناها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات البشرية غير المُبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة بشرية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة البشرية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعات بشرية في %country%. تحقق من الخريطة لمعرفة المجموعات البشرية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مُخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},"./locales/ar/search.json":{placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"},upg100Placeholder:"ابحث عن شعب أو قائمة UPG-100 أو منطقة…"},"./locales/ar/studio.json":{title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده",mapToken:"رمز الخريطة",tokenPaste:"رمز Mapbox العام (pk.…)",tokenUrlLabel:"…أو رابط خدمة الرموز",tokenApply:"استخدام",tokenClear:"مسح",tokenStoredHere:"يُحفظ في هذا المتصفح فقط.",tokenSourceYours:"يُستخدم رمزك",tokenSourceUrl:"يُستخدم رمز من {url}",tokenSourceBuilt:"يُستخدم الرمز المضمَّن في هذه الصفحة",tokenSourceNone:"لا يوجد رمز Mapbox: لا يمكن تحميل خرائط Mapbox (خرائط MapLibre لا تحتاج رمزًا)",tokenSecret:"هذا رمز سري (sk.…). الصق رمزًا عامًا (pk.…): هذه الصفحة عامة.",tokenNotPk:"يبدأ رمز Mapbox العام بـ pk.",tokenUrlFailed:"تعذّر الحصول على رمز من هذا الرابط: {why}"},"./locales/ar/tabs.json":{prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية",selectView:"اختر العرض",views:"العروض",prayerResources:"موارد الصلاة",map:"الخريطة"},"./locales/ar/vision.json":{kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},"./locales/de/allPeopleGroups.json":{title:"Alle Volksgruppen",locations:"{n} Standorte (Gruppe × Land)",doxa:"DOXA-Volksgruppen",frontier:"Frontier — noch nichts begonnen",unreached:"Unerreicht — Arbeit beginnt",reached:"Erreicht — Gemeinde ist da",hint:"Zeile anklicken, um alle zu sehen · erneut klicken für alle",loading:"Alle Volksgruppen werden geladen…",loadError:"Die Karte konnte nicht geladen werden.",pray:"Für sie beten →",population:"Einw. {n}"},"./locales/de/aria.json":{backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},"./locales/de/buttons.json":{prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},"./locales/de/connectivity.json":{title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},"./locales/de/controls.json":{research_controls:"Forschungssteuerung",clustering:"Clustering",filters:"Filter",pin_dim:"Pin-Transparenz",export_poster:"Poster exportieren…",reload_data:"Daten neu laden",off:"Aus",native:"Nativ",mst:"MST",network:"Netzwerk",off_desc:"Jeden Pin einzeln anzeigen",native_desc:"Mapbox-Kreiscluster (am schnellsten)",mst_desc:"Affinitätsnetze über minimalen Spannbaum",network_desc:"Verbindungslinien zum nächsten Nachbarn",search_languages:"Sprachen suchen…",search_religions:"Religionen suchen…",reset_all:"Alles zurücksetzen",no_languages:"Noch keine Sprachen geladen",no_religions:"Noch keine Religionen geladen",unadopted:"Nicht adoptiert",min:"min",max:"max",adopted:"Adoptiert",adoption:"Adoption",engaged:"Engagiert",engagement:"Engagement",unengaged:"Braucht Engagement",language:"Sprache",religion:"Religion",population:"Bevölkerung",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",close:"Schließen",clear:"Zurücksetzen",map_controls:"Kartensteuerung"},"./locales/de/dashboard.json":{bloc:"Affinitätsblock",gospel_access:"Zugang zum Evangelium",people:"Völker",people_name:"Volk (Name)",praying:"Betend",religion_family:"Religionsfamilie",search_language:"Sprache suchen",search_people:"Volk suchen",search_place:"Ort suchen",search_religion:"Religion suchen",upgs_in_scope:"UPGs im Bereich",countries_touched:"berührte Länder",unreached:"unerreicht",sum_population:"Σ Bevölkerung",sum_praying:"Σ Betende",charts:"Diagramme",table:"Tabelle",cluster:"Cluster",country:"Land",engagement:"Engagement",language:"Sprache",language_family:"Sprachfamilie",people_group:"Volk",population:"Bevölkerung",prayer:"Gebet",region:"Region",religion:"Religion",status:"Status",adopted:"Adoptiert",filters:"Filter",gospel_resources:"Evangeliumsressourcen",map:"Karte",search_placeholder:"Volksgruppen, Orte, Sprachen, Religionen suchen…",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",map_controls:"Kartensteuerung",close:"Schließen",clear:"Zurücksetzen",dashboard_title:"Big-Picture-Forschungsdashboard",align_dashboard:"Layout ausrichten",align_dashboard_tip:"Das Dashboard-Layout auf die Standardausrichtung zurücksetzen",selected:"Ausgewählt",world:"Welt",vertical_legend:"Vertikale Legende",groups_in_scope:"Volksgruppen im Bereich",filter_by:"Filtern nach",remove_filter:"Filter entfernen",groups:"Volksgruppen",expand:"Aufklappen",collapse:"Zuklappen",place:"Ort"},"./locales/de/detail.json":{labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},"./locales/de/gospel.json":{_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film",audioScripture:"Audio-Bibeltext",bibleStoriesPlain:"Bibelgeschichten"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"},list:{noText:"Kein Bibeltext",hasScripture:"Hat Bibeltext",allLanguages:"Alle Sprachen",peopleGroup:"Volksgruppe",peopleGroups:"Volksgruppen",scriptureHere:"Bibeltext in dieser Sprache"},columns:{"People group":"Volksgruppe",Country:"Land",Region:"Region",Language:"Sprache",Population:"Bevölkerung",Religion:"Religion","Gospel access":"Zugang zum Evangelium",Resources:"Ressourcen",Scripture:"Bibeltext","Bible video":"Bibelvideo","Gospel presentation":"Evangeliums-Darstellung",Countries:"Länder","People groups":"Volksgruppen"},charts:{scriptureAny:"Bibeltext (beliebig)",fullBible:"Vollbibel",newTestament:"Neues Testament",filmAny:"Film (beliebig)",nothingInPools:"Nichts in den geprüften Quellen gefunden",nothingInPoolsLower:"nichts in den geprüften Quellen gefunden",noResourceInPools:"keine Ressource in den geprüften Quellen gefunden",aResourceFound:"eine Ressource gefunden",tabCoverage:"Ressourcenabdeckung",tabGap:"Größte Lücken",keyScripture:"Bibeltext",keyFilmStories:"Film / Geschichten",keyAudioEtc:"Audio / Präsentation / Schulung",unresolvedCode:"Code außerhalb ISO 639-3 — ungeklärt, nicht gemessen"}},"./locales/de/grid.json":{search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter."},"./locales/de/legend.json":{title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"}},"./locales/de/messages.json":{menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},"./locales/de/options.json":{clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},"./locales/de/popup.json":{country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},"./locales/de/prayerLaps.json":{header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},"./locales/de/regions.json":{"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},"./locales/de/search.json":{placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"},upg100Placeholder:"Volksgruppe, UPG-100-Liste oder Region suchen…"},"./locales/de/studio.json":{title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht",mapToken:"Karten-Token",tokenPaste:"Öffentlicher Mapbox-Token (pk.…)",tokenUrlLabel:"…oder die URL eines Token-Dienstes",tokenApply:"Verwenden",tokenClear:"Löschen",tokenStoredHere:"Nur in diesem Browser gespeichert.",tokenSourceYours:"Ihr Token wird verwendet",tokenSourceUrl:"Token von {url} wird verwendet",tokenSourceBuilt:"Der in diese Seite eingebaute Token wird verwendet",tokenSourceNone:"Kein Mapbox-Token: Mapbox-Karten können nicht laden (MapLibre-Karten brauchen keinen)",tokenSecret:"Das ist ein geheimer Token (sk.…). Fügen Sie einen öffentlichen ein (pk.…): Diese Seite ist öffentlich.",tokenNotPk:"Ein öffentlicher Mapbox-Token beginnt mit pk.",tokenUrlFailed:"Von dieser URL kam kein Token: {why}"},"./locales/de/tabs.json":{prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe",selectView:"Ansicht wählen",views:"Ansichten",prayerResources:"Gebetsressourcen",map:"Karte"},"./locales/de/vision.json":{kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},"./locales/en/allPeopleGroups.json":{title:"All People Groups",locations:"{n} group–country locations",doxa:"DOXA people groups",frontier:"Frontier — nothing started",unreached:"Unreached — work beginning",reached:"Reached — church is there",hint:"Click a row to see all of them · click again for everything",loading:"Loading every people group…",loadError:"The map could not be loaded.",pray:"Pray for them →",population:"pop {n}"},"./locales/en/aria.json":{backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},"./locales/en/buttons.json":{prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},"./locales/en/connectivity.json":{title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",note:"National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification."}},"./locales/en/controls.json":{research_controls:"Research controls",clustering:"Clustering",filters:"Filters",pin_dim:"Pin dim",export_poster:"Export poster…",reload_data:"Reload data",off:"Off",native:"Native",mst:"MST",network:"Network",off_desc:"Show every pin individually",native_desc:"Mapbox circle clusters (fastest)",mst_desc:"Minimum-spanning-tree affinity webs",network_desc:"Nearest-neighbor connection lines",search_languages:"Search languages…",search_religions:"Search religions…",reset_all:"Reset all",no_languages:"No languages loaded yet",no_religions:"No religions loaded yet",unadopted:"Unadopted",min:"min",max:"max",adopted:"Adopted",adoption:"Adoption",engaged:"Engaged",engagement:"Engagement",unengaged:"Unengaged",language:"Language",religion:"Religion",population:"Population",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",close:"Close",clear:"Clear",map_controls:"Research map controls"},"./locales/en/dashboard.json":{bloc:"Bloc",gospel_access:"Gospel Access",people:"People",people_name:"People (name)",praying:"Praying",religion_family:"Religion Family",search_language:"Search language",search_people:"Search people",search_place:"Search place",search_religion:"Search religion",upgs_in_scope:"UPGs in scope",countries_touched:"countries touched",unreached:"unreached",sum_population:"Σ population",sum_praying:"Σ praying",charts:"Charts",table:"Table",cluster:"Cluster",country:"Country",engagement:"Engagement",language:"Language",language_family:"Language Family",people_group:"People Group",population:"Population",prayer:"Prayer",region:"Region",religion:"Religion",status:"Status",adopted:"Adopted",filters:"Filters",gospel_resources:"Gospel Resources",map:"Map",search_placeholder:"Search people groups, place, language, religion…",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",map_controls:"Research map controls",close:"Close",clear:"Clear",dashboard_title:"Big Picture Research Dashboard",align_dashboard:"Align Dashboard",align_dashboard_tip:"Reset the dashboard layout to its default alignment",selected:"Selected",world:"World",vertical_legend:"Vertical Legend",groups_in_scope:"groups in scope",filter_by:"Filter by",remove_filter:"Remove filter",groups:"groups",expand:"Expand",collapse:"Collapse",place:"Place"},"./locales/en/detail.json":{labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},"./locales/en/gospel.json":{_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film",audioScripture:"Audio Scripture",bibleStoriesPlain:"Bible Stories"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"},list:{noText:"No text Scripture",hasScripture:"Has scripture",allLanguages:"All languages",peopleGroup:"people group",peopleGroups:"people groups",scriptureHere:"Scripture in this language"},columns:{"People group":"People group",Country:"Country",Region:"Region",Language:"Language",Population:"Population",Religion:"Religion","Gospel access":"Gospel access",Resources:"Resources",Scripture:"Scripture","Bible video":"Bible video","Gospel presentation":"Gospel presentation",Countries:"Countries","People groups":"People groups"},charts:{scriptureAny:"Scripture (any)",fullBible:"Full Bible",newTestament:"New Testament",filmAny:"Film (any)",nothingInPools:"Nothing found in pools checked",nothingInPoolsLower:"nothing found in pools checked",noResourceInPools:"no resource found in pools checked",aResourceFound:"a resource found",tabCoverage:"Resource coverage",tabGap:"Largest gaps",keyScripture:"scripture",keyFilmStories:"film / stories",keyAudioEtc:"audio / presentation / training",unresolvedCode:"code outside ISO 639-3 — unresolved, not measured"}},"./locales/en/grid.json":{search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load More",full_profile:"Full Profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter."},"./locales/en/legend.json":{title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"}},"./locales/en/messages.json":{menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them by their people group name."},"./locales/en/options.json":{clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},"./locales/en/popup.json":{country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},"./locales/en/prayerLaps.json":{header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},"./locales/en/regions.json":{"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},"./locales/en/search.json":{placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"},upg100Placeholder:"Search people group, UPG-100 list, or region…"},"./locales/en/studio.json":{title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own",mapToken:"Map token",tokenPaste:"Mapbox public token (pk.…)",tokenUrlLabel:"…or the URL of a token service",tokenApply:"Use",tokenClear:"Clear",tokenStoredHere:"Kept in this browser only.",tokenSourceYours:"Using your token",tokenSourceUrl:"Using a token from {url}",tokenSourceBuilt:"Using the token built into this page",tokenSourceNone:"No Mapbox token: Mapbox maps cannot load (MapLibre maps need none)",tokenSecret:"That is a secret token (sk.…). Paste a public one (pk.…): this page is public.",tokenNotPk:"A Mapbox public token starts with pk.",tokenUrlFailed:"Could not get a token from that URL: {why}"},"./locales/en/tabs.json":{prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group",selectView:"Select View",views:"Views",prayerResources:"Prayer Resources",map:"Map"},"./locales/en/vision.json":{kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},"./locales/es/allPeopleGroups.json":{title:"Todos los grupos étnicos",locations:"{n} ubicaciones (grupo × país)",doxa:"Grupos étnicos de DOXA",frontier:"Frontera — nada iniciado",unreached:"No alcanzados — el trabajo comienza",reached:"Alcanzados — la iglesia está ahí",hint:"Haga clic en una fila para verlos todos · de nuevo para ver todo",loading:"Cargando todos los grupos étnicos…",loadError:"No se pudo cargar el mapa.",pray:"Ore por ellos →",population:"pobl. {n}"},"./locales/es/aria.json":{backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},"./locales/es/buttons.json":{prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},"./locales/es/connectivity.json":{title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},"./locales/es/controls.json":{research_controls:"Controles de investigación",clustering:"Agrupación",filters:"Filtros",pin_dim:"Atenuar puntos",export_poster:"Exportar póster…",reload_data:"Recargar datos",off:"Desactivado",native:"Nativo",mst:"MST",network:"Red",off_desc:"Mostrar cada punto por separado",native_desc:"Grupos circulares de Mapbox (lo más rápido)",mst_desc:"Redes de afinidad por árbol de expansión mínima",network_desc:"Líneas de conexión al vecino más cercano",search_languages:"Buscar idiomas…",search_religions:"Buscar religiones…",reset_all:"Restablecer todo",no_languages:"Aún no se han cargado idiomas",no_religions:"Aún no se han cargado religiones",unadopted:"No adoptado",min:"mín",max:"máx",adopted:"Adoptado",adoption:"Adopción",engaged:"Comprometido",engagement:"Compromiso",unengaged:"Necesita implicación",language:"Idioma",religion:"Religión",population:"Población",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",close:"Cerrar",clear:"Borrar",map_controls:"Controles del mapa"},"./locales/es/dashboard.json":{bloc:"Bloque de afinidad",gospel_access:"Acceso al evangelio",people:"Pueblos",people_name:"Pueblo (nombre)",praying:"Orando",religion_family:"Familia religiosa",search_language:"Buscar idioma",search_people:"Buscar pueblo",search_place:"Buscar lugar",search_religion:"Buscar religión",upgs_in_scope:"UPG en el ámbito",countries_touched:"países alcanzados",unreached:"no alcanzados",sum_population:"Σ población",sum_praying:"Σ orando",charts:"Gráficos",table:"Tabla",cluster:"Clúster",country:"País",engagement:"Compromiso",language:"Idioma",language_family:"Familia lingüística",people_group:"Pueblo",population:"Población",prayer:"Oración",region:"Región",religion:"Religión",status:"Estado",adopted:"Adoptado",filters:"Filtros",gospel_resources:"Recursos del Evangelio",map:"Mapa",search_placeholder:"Buscar pueblos, lugares, idiomas, religiones…",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",map_controls:"Controles del mapa",close:"Cerrar",clear:"Borrar",dashboard_title:"Panel de investigación general",align_dashboard:"Alinear panel",align_dashboard_tip:"Restablecer la disposición del panel a su alineación predeterminada",selected:"Seleccionado",world:"Mundo",vertical_legend:"Leyenda vertical",groups_in_scope:"pueblos en el ámbito",filter_by:"Filtrar por",remove_filter:"Quitar filtro",groups:"pueblos",expand:"Expandir",collapse:"Contraer",place:"Lugar"},"./locales/es/detail.json":{labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},"./locales/es/gospel.json":{_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS",audioScripture:"Escrituras en audio",bibleStoriesPlain:"Historias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"},list:{noText:"Sin texto bíblico",hasScripture:"Tiene Escrituras",allLanguages:"Todos los idiomas",peopleGroup:"pueblo",peopleGroups:"pueblos",scriptureHere:"Escrituras en este idioma"},columns:{"People group":"Pueblo",Country:"País",Region:"Región",Language:"Idioma",Population:"Población",Religion:"Religión","Gospel access":"Acceso al evangelio",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Video bíblico","Gospel presentation":"Presentación del evangelio",Countries:"Países","People groups":"Pueblos"},charts:{scriptureAny:"Escrituras (cualquiera)",fullBible:"Biblia completa",newTestament:"Nuevo Testamento",filmAny:"Película (cualquiera)",nothingInPools:"No se encontró nada en las fuentes consultadas",nothingInPoolsLower:"no se encontró nada en las fuentes consultadas",noResourceInPools:"no se encontró ningún recurso en las fuentes consultadas",aResourceFound:"se encontró un recurso",tabCoverage:"Cobertura de recursos",tabGap:"Mayores brechas",keyScripture:"escrituras",keyFilmStories:"película / historias",keyAudioEtc:"audio / presentación / formación",unresolvedCode:"código fuera de ISO 639-3 — sin resolver, no medido"}},"./locales/es/grid.json":{search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro."},"./locales/es/legend.json":{title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"}},"./locales/es/messages.json":{menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo."},"./locales/es/options.json":{clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},"./locales/es/popup.json":{country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},"./locales/es/prayerLaps.json":{header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},"./locales/es/regions.json":{"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},"./locales/es/search.json":{placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"},upg100Placeholder:"Buscar pueblo, lista UPG-100 o región…"},"./locales/es/studio.json":{title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado",mapToken:"Token del mapa",tokenPaste:"Token público de Mapbox (pk.…)",tokenUrlLabel:"…o la URL de un servicio de tokens",tokenApply:"Usar",tokenClear:"Borrar",tokenStoredHere:"Se guarda solo en este navegador.",tokenSourceYours:"Usando tu token",tokenSourceUrl:"Usando un token de {url}",tokenSourceBuilt:"Usando el token integrado en esta página",tokenSourceNone:"Sin token de Mapbox: los mapas de Mapbox no cargan (los de MapLibre no lo necesitan)",tokenSecret:"Ese es un token secreto (sk.…). Pega uno público (pk.…): esta página es pública.",tokenNotPk:"Un token público de Mapbox empieza por pk.",tokenUrlFailed:"No se pudo obtener un token de esa URL: {why}"},"./locales/es/tabs.json":{prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Seleccionar vista",views:"Vistas",prayerResources:"Recursos de oración",map:"Mapa"},"./locales/es/vision.json":{kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},"./locales/fr/allPeopleGroups.json":{title:"Tous les groupes ethniques",locations:"{n} emplacements (groupe × pays)",doxa:"Groupes ethniques DOXA",frontier:"Frontière — rien n’a commencé",unreached:"Non atteints — le travail commence",reached:"Atteints — l’Église est là",hint:"Cliquez sur une ligne pour les voir tous · recliquez pour tout voir",loading:"Chargement de tous les groupes ethniques…",loadError:"La carte n’a pas pu être chargée.",pray:"Priez pour eux →",population:"pop. {n}"},"./locales/fr/aria.json":{backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende"},"./locales/fr/buttons.json":{prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},"./locales/fr/connectivity.json":{title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},"./locales/fr/controls.json":{research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},"./locales/fr/dashboard.json":{bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu"},"./locales/fr/detail.json":{labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},"./locales/fr/gospel.json":{_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS",audioScripture:"Écritures en audio",bibleStoriesPlain:"Histoires bibliques"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"},list:{noText:"Pas de texte biblique",hasScripture:"A les Écritures",allLanguages:"Toutes les langues",peopleGroup:"peuple",peopleGroups:"peuples",scriptureHere:"Écritures dans cette langue"},columns:{"People group":"Peuple",Country:"Pays",Region:"Région",Language:"Langue",Population:"Population",Religion:"Religion","Gospel access":"Accès à l'Évangile",Resources:"Ressources",Scripture:"Écritures","Bible video":"Vidéo biblique","Gospel presentation":"Présentation de l'Évangile",Countries:"Pays","People groups":"Peuples"},charts:{scriptureAny:"Écritures (toutes)",fullBible:"Bible complète",newTestament:"Nouveau Testament",filmAny:"Film (tous)",nothingInPools:"Rien trouvé dans les sources consultées",nothingInPoolsLower:"rien trouvé dans les sources consultées",noResourceInPools:"aucune ressource trouvée dans les sources consultées",aResourceFound:"une ressource trouvée",tabCoverage:"Couverture des ressources",tabGap:"Plus grands écarts",keyScripture:"écritures",keyFilmStories:"film / histoires",keyAudioEtc:"audio / présentation / formation",unresolvedCode:"code hors ISO 639-3 — non résolu, non mesuré"}},"./locales/fr/grid.json":{search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre."},"./locales/fr/legend.json":{title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"}},"./locales/fr/messages.json":{menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple."},"./locales/fr/options.json":{clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},"./locales/fr/popup.json":{country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},"./locales/fr/prayerLaps.json":{header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},"./locales/fr/regions.json":{"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},"./locales/fr/search.json":{placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"},upg100Placeholder:"Rechercher un peuple, une liste UPG-100 ou une région…"},"./locales/fr/studio.json":{title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule",mapToken:"Jeton de carte",tokenPaste:"Jeton public Mapbox (pk.…)",tokenUrlLabel:"…ou l’URL d’un service de jetons",tokenApply:"Utiliser",tokenClear:"Effacer",tokenStoredHere:"Conservé dans ce navigateur uniquement.",tokenSourceYours:"Votre jeton est utilisé",tokenSourceUrl:"Jeton obtenu de {url}",tokenSourceBuilt:"Jeton intégré à cette page",tokenSourceNone:"Aucun jeton Mapbox : les cartes Mapbox ne peuvent pas charger (MapLibre n’en a pas besoin)",tokenSecret:"C’est un jeton secret (sk.…). Collez un jeton public (pk.…) : cette page est publique.",tokenNotPk:"Un jeton public Mapbox commence par pk.",tokenUrlFailed:"Impossible d’obtenir un jeton depuis cette URL : {why}"},"./locales/fr/tabs.json":{prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples",selectView:"Choisir la vue",views:"Vues",prayerResources:"Ressources de prière",map:"Carte"},"./locales/fr/vision.json":{kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},"./locales/hi/allPeopleGroups.json":{title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},"./locales/hi/aria.json":{backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},"./locales/hi/buttons.json":{prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},"./locales/hi/connectivity.json":{title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},"./locales/hi/controls.json":{research_controls:"शोध नियंत्रण",clustering:"क्लस्टरिंग",filters:"फ़िल्टर",pin_dim:"पिन धुंधलापन",export_poster:"पोस्टर निर्यात करें…",reload_data:"डेटा फिर से लोड करें",off:"बंद",native:"नेटिव",mst:"MST",network:"नेटवर्क",off_desc:"हर पिन अलग-अलग दिखाएँ",native_desc:"Mapbox वृत्त क्लस्टर (सबसे तेज़)",mst_desc:"न्यूनतम स्पैनिंग ट्री आधारित जाल",network_desc:"निकटतम पड़ोसी को जोड़ने वाली रेखाएँ",search_languages:"भाषाएँ खोजें…",search_religions:"धर्म खोजें…",reset_all:"सब रीसेट करें",no_languages:"अभी कोई भाषा लोड नहीं हुई",no_religions:"अभी कोई धर्म लोड नहीं हुआ",unadopted:"अ-गोद लिया",min:"न्यून",max:"अधि",adopted:"गोद लिया गया",adoption:"गोद लेना",engaged:"संपर्कित",engagement:"सहभागिता",unengaged:"सहभागिता चाहिए",language:"भाषा",religion:"धर्म",population:"जनसंख्या",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",close:"बंद करें",clear:"साफ़ करें",map_controls:"मानचित्र नियंत्रण"},"./locales/hi/dashboard.json":{bloc:"समानता समूह",gospel_access:"सुसमाचार पहुँच",people:"जनसमूह",people_name:"जनसमूह (नाम)",praying:"प्रार्थना कर रहे",religion_family:"धर्म परिवार",search_language:"भाषा खोजें",search_people:"जनसमूह खोजें",search_place:"स्थान खोजें",search_religion:"धर्म खोजें",upgs_in_scope:"दायरे में UPG",countries_touched:"छुए गए देश",unreached:"अनपहुँचे",sum_population:"Σ जनसंख्या",sum_praying:"Σ प्रार्थना",charts:"चार्ट",table:"तालिका",cluster:"क्लस्टर",country:"देश",engagement:"सहभागिता",language:"भाषा",language_family:"भाषा परिवार",people_group:"जनसमूह",population:"जनसंख्या",prayer:"प्रार्थना",region:"क्षेत्र",religion:"धर्म",status:"स्थिति",adopted:"गोद लिया गया",filters:"फ़िल्टर",gospel_resources:"सुसमाचार संसाधन",map:"नक्शा",search_placeholder:"जनसमूह, स्थान, भाषा, धर्म खोजें…",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",map_controls:"मानचित्र नियंत्रण",close:"बंद करें",clear:"साफ़ करें",dashboard_title:"बिग पिक्चर शोध डैशबोर्ड",align_dashboard:"डैशबोर्ड संरेखित करें",align_dashboard_tip:"डैशबोर्ड लेआउट को डिफ़ॉल्ट संरेखण पर लौटाएँ",selected:"चयनित",world:"विश्व",vertical_legend:"लंबवत लेजेंड",groups_in_scope:"दायरे में जनसमूह",filter_by:"इससे फ़िल्टर करें",remove_filter:"फ़िल्टर हटाएँ",groups:"जनसमूह",expand:"विस्तार करें",collapse:"संक्षिप्त करें",place:"स्थान"},"./locales/hi/detail.json":{labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},"./locales/hi/gospel.json":{_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म",audioScripture:"ऑडियो पवित्र शास्त्र",bibleStoriesPlain:"बाइबल की कहानियाँ"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"},list:{noText:"कोई लिखित शास्त्र नहीं",hasScripture:"शास्त्र उपलब्ध",allLanguages:"सभी भाषाएँ",peopleGroup:"जनसमूह",peopleGroups:"जनसमूह",scriptureHere:"इस भाषा में पवित्र शास्त्र"},columns:{"People group":"जनसमूह",Country:"देश",Region:"क्षेत्र",Language:"भाषा",Population:"जनसंख्या",Religion:"धर्म","Gospel access":"सुसमाचार पहुँच",Resources:"संसाधन",Scripture:"पवित्र शास्त्र","Bible video":"बाइबल वीडियो","Gospel presentation":"सुसमाचार प्रस्तुति",Countries:"देश","People groups":"जनसमूह"},charts:{scriptureAny:"पवित्र शास्त्र (कोई भी)",fullBible:"पूरी बाइबल",newTestament:"नया नियम",filmAny:"फ़िल्म (कोई भी)",nothingInPools:"जाँचे गए स्रोतों में कुछ नहीं मिला",nothingInPoolsLower:"जाँचे गए स्रोतों में कुछ नहीं मिला",noResourceInPools:"जाँचे गए स्रोतों में कोई संसाधन नहीं मिला",aResourceFound:"एक संसाधन मिला",tabCoverage:"संसाधन कवरेज",tabGap:"सबसे बड़े अंतराल",keyScripture:"पवित्र शास्त्र",keyFilmStories:"फ़िल्म / कहानियाँ",keyAudioEtc:"ऑडियो / प्रस्तुति / प्रशिक्षण",unresolvedCode:"ISO 639-3 से बाहर कोड — अनसुलझा, मापा नहीं गया"}},"./locales/hi/grid.json":{search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},"./locales/hi/legend.json":{title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"}},"./locales/hi/messages.json":{menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},"./locales/hi/options.json":{clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},"./locales/hi/popup.json":{country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},"./locales/hi/prayerLaps.json":{header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},"./locales/hi/regions.json":{"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},"./locales/hi/search.json":{placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"},upg100Placeholder:"जनसमूह, UPG-100 सूची या क्षेत्र खोजें…"},"./locales/hi/studio.json":{title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं",mapToken:"मानचित्र टोकन",tokenPaste:"Mapbox सार्वजनिक टोकन (pk.…)",tokenUrlLabel:"…या किसी टोकन सेवा का URL",tokenApply:"उपयोग करें",tokenClear:"साफ़ करें",tokenStoredHere:"केवल इसी ब्राउज़र में रखा जाता है।",tokenSourceYours:"आपका टोकन उपयोग हो रहा है",tokenSourceUrl:"{url} से टोकन उपयोग हो रहा है",tokenSourceBuilt:"इस पेज में बना टोकन उपयोग हो रहा है",tokenSourceNone:"कोई Mapbox टोकन नहीं: Mapbox मानचित्र लोड नहीं हो सकते (MapLibre को इसकी ज़रूरत नहीं)",tokenSecret:"यह एक गुप्त टोकन है (sk.…)। सार्वजनिक टोकन (pk.…) चिपकाएँ: यह पेज सार्वजनिक है।",tokenNotPk:"Mapbox सार्वजनिक टोकन pk. से शुरू होता है",tokenUrlFailed:"उस URL से टोकन नहीं मिल सका: {why}"},"./locales/hi/tabs.json":{prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह",selectView:"दृश्य चुनें",views:"दृश्य",prayerResources:"प्रार्थना संसाधन",map:"मानचित्र"},"./locales/hi/vision.json":{kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},"./locales/it/allPeopleGroups.json":{title:"Tutti i gruppi etnici",locations:"{n} località (gruppo × paese)",doxa:"Gruppi etnici DOXA",frontier:"Frontiera — non è iniziato nulla",unreached:"Non raggiunti — il lavoro inizia",reached:"Raggiunti — la chiesa c’è",hint:"Fai clic su una riga per vederli tutti · di nuovo per vedere tutto",loading:"Caricamento di tutti i gruppi etnici…",loadError:"Impossibile caricare la mappa.",pray:"Prega per loro →",population:"pop. {n}"},"./locales/it/aria.json":{backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},"./locales/it/buttons.json":{prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},"./locales/it/connectivity.json":{title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},"./locales/it/controls.json":{research_controls:"Controlli di ricerca",clustering:"Raggruppamento",filters:"Filtri",pin_dim:"Opacità dei punti",export_poster:"Esporta poster…",reload_data:"Ricarica i dati",off:"Disattivato",native:"Nativo",mst:"MST",network:"Rete",off_desc:"Mostra ogni punto singolarmente",native_desc:"Cluster circolari Mapbox (il più veloce)",mst_desc:"Reti di affinità ad albero ricoprente minimo",network_desc:"Linee verso il vicino più prossimo",search_languages:"Cerca lingue…",search_religions:"Cerca religioni…",reset_all:"Reimposta tutto",no_languages:"Nessuna lingua ancora caricata",no_religions:"Nessuna religione ancora caricata",unadopted:"Non adottato",min:"min",max:"max",adopted:"Adottato",adoption:"Adozione",engaged:"Coinvolto",engagement:"Impegno",unengaged:"Necessita impegno",language:"Lingua",religion:"Religione",population:"Popolazione",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",close:"Chiudi",clear:"Cancella",map_controls:"Controlli della mappa"},"./locales/it/dashboard.json":{bloc:"Blocco di affinità",gospel_access:"Accesso al vangelo",people:"Popoli",people_name:"Popolo (nome)",praying:"In preghiera",religion_family:"Famiglia religiosa",search_language:"Cerca lingua",search_people:"Cerca popolo",search_place:"Cerca luogo",search_religion:"Cerca religione",upgs_in_scope:"UPG nell’ambito",countries_touched:"paesi toccati",unreached:"non raggiunti",sum_population:"Σ popolazione",sum_praying:"Σ in preghiera",charts:"Grafici",table:"Tabella",cluster:"Cluster",country:"Paese",engagement:"Impegno",language:"Lingua",language_family:"Famiglia linguistica",people_group:"Popolo",population:"Popolazione",prayer:"Preghiera",region:"Regione",religion:"Religione",status:"Stato",adopted:"Adottato",filters:"Filtri",gospel_resources:"Risorse del Vangelo",map:"Mappa",search_placeholder:"Cerca popoli, luoghi, lingue, religioni…",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",map_controls:"Controlli della mappa",close:"Chiudi",clear:"Cancella",dashboard_title:"Cruscotto di ricerca generale",align_dashboard:"Allinea cruscotto",align_dashboard_tip:"Ripristina la disposizione predefinita del cruscotto",selected:"Selezionato",world:"Mondo",vertical_legend:"Legenda verticale",groups_in_scope:"popoli nell’ambito",filter_by:"Filtra per",remove_filter:"Rimuovi filtro",groups:"popoli",expand:"Espandi",collapse:"Comprimi",place:"Luogo"},"./locales/it/detail.json":{labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},"./locales/it/gospel.json":{_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ",audioScripture:"Scritture in audio",bibleStoriesPlain:"Storie bibliche"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"},list:{noText:"Nessun testo biblico",hasScripture:"Ha le Scritture",allLanguages:"Tutte le lingue",peopleGroup:"popolo",peopleGroups:"popoli",scriptureHere:"Scritture in questa lingua"},columns:{"People group":"Popolo",Country:"Paese",Region:"Regione",Language:"Lingua",Population:"Popolazione",Religion:"Religione","Gospel access":"Accesso al Vangelo",Resources:"Risorse",Scripture:"Scritture","Bible video":"Video biblico","Gospel presentation":"Presentazione del Vangelo",Countries:"Paesi","People groups":"Popoli"},charts:{scriptureAny:"Scritture (qualsiasi)",fullBible:"Bibbia completa",newTestament:"Nuovo Testamento",filmAny:"Film (qualsiasi)",nothingInPools:"Nulla trovato nelle fonti controllate",nothingInPoolsLower:"nulla trovato nelle fonti controllate",noResourceInPools:"nessuna risorsa trovata nelle fonti controllate",aResourceFound:"una risorsa trovata",tabCoverage:"Copertura delle risorse",tabGap:"Lacune maggiori",keyScripture:"scritture",keyFilmStories:"film / storie",keyAudioEtc:"audio / presentazione / formazione",unresolvedCode:"codice fuori ISO 639-3 — non risolto, non misurato"}},"./locales/it/grid.json":{search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro."},"./locales/it/legend.json":{title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"}},"./locales/it/messages.json":{menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo."},"./locales/it/options.json":{clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},"./locales/it/popup.json":{country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},"./locales/it/prayerLaps.json":{header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},"./locales/it/regions.json":{"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},"./locales/it/search.json":{placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"},upg100Placeholder:"Cerca popolo, elenco UPG-100 o regione…"},"./locales/it/studio.json":{title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola",mapToken:"Token mappa",tokenPaste:"Token pubblico Mapbox (pk.…)",tokenUrlLabel:"…o l’URL di un servizio di token",tokenApply:"Usa",tokenClear:"Cancella",tokenStoredHere:"Conservato solo in questo browser.",tokenSourceYours:"Uso il tuo token",tokenSourceUrl:"Uso un token da {url}",tokenSourceBuilt:"Uso il token integrato in questa pagina",tokenSourceNone:"Nessun token Mapbox: le mappe Mapbox non si caricano (MapLibre non ne ha bisogno)",tokenSecret:"Questo è un token segreto (sk.…). Incolla un token pubblico (pk.…): questa pagina è pubblica.",tokenNotPk:"Un token pubblico Mapbox inizia con pk.",tokenUrlFailed:"Impossibile ottenere un token da quell’URL: {why}"},"./locales/it/tabs.json":{prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico",selectView:"Seleziona vista",views:"Viste",prayerResources:"Risorse di preghiera",map:"Mappa"},"./locales/it/vision.json":{kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},"./locales/pt/allPeopleGroups.json":{title:"Todos os grupos étnicos",locations:"{n} locais (grupo × país)",doxa:"Grupos étnicos da DOXA",frontier:"Fronteira — nada iniciado",unreached:"Não alcançados — o trabalho começa",reached:"Alcançados — a igreja está lá",hint:"Clique em uma linha para ver todos · clique de novo para ver tudo",loading:"Carregando todos os grupos étnicos…",loadError:"Não foi possível carregar o mapa.",pray:"Ore por eles →",population:"pop. {n}"},"./locales/pt/aria.json":{backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},"./locales/pt/buttons.json":{prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},"./locales/pt/connectivity.json":{title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},"./locales/pt/controls.json":{research_controls:"Controlos de pesquisa",clustering:"Agrupamento",filters:"Filtros",pin_dim:"Esbater pontos",export_poster:"Exportar cartaz…",reload_data:"Recarregar dados",off:"Desligado",native:"Nativo",mst:"MST",network:"Rede",off_desc:"Mostrar cada ponto individualmente",native_desc:"Grupos circulares Mapbox (mais rápido)",mst_desc:"Redes de afinidade por árvore geradora mínima",network_desc:"Linhas para o vizinho mais próximo",search_languages:"Pesquisar idiomas…",search_religions:"Pesquisar religiões…",reset_all:"Repor tudo",no_languages:"Ainda não há idiomas carregados",no_religions:"Ainda não há religiões carregadas",unadopted:"Não adotado",min:"mín",max:"máx",adopted:"Adotado",adoption:"Adoção",engaged:"Engajado",engagement:"Engajamento",unengaged:"Precisa de envolvimento",language:"Idioma",religion:"Religião",population:"População",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",close:"Fechar",clear:"Limpar",map_controls:"Controlos do mapa"},"./locales/pt/dashboard.json":{bloc:"Bloco de afinidade",gospel_access:"Acesso ao evangelho",people:"Povos",people_name:"Povo (nome)",praying:"A orar",religion_family:"Família religiosa",search_language:"Pesquisar idioma",search_people:"Pesquisar povo",search_place:"Pesquisar lugar",search_religion:"Pesquisar religião",upgs_in_scope:"UPG no âmbito",countries_touched:"países alcançados",unreached:"não alcançados",sum_population:"Σ população",sum_praying:"Σ a orar",charts:"Gráficos",table:"Tabela",cluster:"Agrupamento",country:"País",engagement:"Engajamento",language:"Idioma",language_family:"Família linguística",people_group:"Povo",population:"População",prayer:"Oração",region:"Região",religion:"Religião",status:"Status",adopted:"Adotado",filters:"Filtros",gospel_resources:"Recursos do Evangelho",map:"Mapa",search_placeholder:"Pesquisar povos, lugares, idiomas, religiões…",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",map_controls:"Controlos do mapa",close:"Fechar",clear:"Limpar",dashboard_title:"Painel de pesquisa geral",align_dashboard:"Alinhar painel",align_dashboard_tip:"Repor a disposição do painel para o alinhamento predefinido",selected:"Selecionado",world:"Mundo",vertical_legend:"Legenda vertical",groups_in_scope:"povos no âmbito",filter_by:"Filtrar por",remove_filter:"Remover filtro",groups:"povos",expand:"Expandir",collapse:"Recolher",place:"Lugar"},"./locales/pt/detail.json":{labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},"./locales/pt/gospel.json":{_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS",audioScripture:"Escrituras em áudio",bibleStoriesPlain:"Histórias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"},list:{noText:"Sem texto bíblico",hasScripture:"Tem Escrituras",allLanguages:"Todos os idiomas",peopleGroup:"povo",peopleGroups:"povos",scriptureHere:"Escrituras neste idioma"},columns:{"People group":"Povo",Country:"País",Region:"Região",Language:"Idioma",Population:"População",Religion:"Religião","Gospel access":"Acesso ao evangelho",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Vídeo bíblico","Gospel presentation":"Apresentação do evangelho",Countries:"Países","People groups":"Povos"},charts:{scriptureAny:"Escrituras (qualquer)",fullBible:"Bíblia completa",newTestament:"Novo Testamento",filmAny:"Filme (qualquer)",nothingInPools:"Nada encontrado nas fontes consultadas",nothingInPoolsLower:"nada encontrado nas fontes consultadas",noResourceInPools:"nenhum recurso encontrado nas fontes consultadas",aResourceFound:"um recurso encontrado",tabCoverage:"Cobertura de recursos",tabGap:"Maiores lacunas",keyScripture:"escrituras",keyFilmStories:"filme / histórias",keyAudioEtc:"áudio / apresentação / treinamento",unresolvedCode:"código fora da ISO 639-3 — não resolvido, não medido"}},"./locales/pt/grid.json":{search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro."},"./locales/pt/legend.json":{title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"}},"./locales/pt/messages.json":{menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo."},"./locales/pt/options.json":{clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},"./locales/pt/popup.json":{country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},"./locales/pt/prayerLaps.json":{header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},"./locales/pt/regions.json":{"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},"./locales/pt/search.json":{placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"},upg100Placeholder:"Procurar povo, lista UPG-100 ou região…"},"./locales/pt/studio.json":{title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente",mapToken:"Token do mapa",tokenPaste:"Token público do Mapbox (pk.…)",tokenUrlLabel:"…ou o URL de um serviço de tokens",tokenApply:"Usar",tokenClear:"Limpar",tokenStoredHere:"Guardado apenas neste navegador.",tokenSourceYours:"A usar o seu token",tokenSourceUrl:"A usar um token de {url}",tokenSourceBuilt:"A usar o token incorporado nesta página",tokenSourceNone:"Sem token do Mapbox: os mapas Mapbox não carregam (os MapLibre não precisam)",tokenSecret:"Esse é um token secreto (sk.…). Cole um público (pk.…): esta página é pública.",tokenNotPk:"Um token público do Mapbox começa por pk.",tokenUrlFailed:"Não foi possível obter um token desse URL: {why}"},"./locales/pt/tabs.json":{prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Selecionar vista",views:"Vistas",prayerResources:"Recursos de oração",map:"Mapa"},"./locales/pt/vision.json":{kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},"./locales/ro/allPeopleGroups.json":{title:"Toate grupurile etnice",locations:"{n} locații (grup × țară)",doxa:"Grupuri etnice DOXA",frontier:"Frontieră — nimic început",unreached:"Neatinse — lucrarea începe",reached:"Atinse — biserica este acolo",hint:"Faceți clic pe un rând pentru a le vedea pe toate · din nou pentru tot",loading:"Se încarcă toate grupurile etnice…",loadError:"Harta nu a putut fi încărcată.",pray:"Rugați-vă pentru ei →",population:"pop. {n}"},"./locales/ro/aria.json":{backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},"./locales/ro/buttons.json":{prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},"./locales/ro/connectivity.json":{title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},"./locales/ro/controls.json":{research_controls:"Comenzi de cercetare",clustering:"Grupare",filters:"Filtre",pin_dim:"Estompare puncte",export_poster:"Exportă posterul…",reload_data:"Reîncarcă datele",off:"Oprit",native:"Nativ",mst:"MST",network:"Rețea",off_desc:"Arată fiecare punct separat",native_desc:"Grupuri circulare Mapbox (cel mai rapid)",mst_desc:"Rețele de afinitate prin arbore minim de acoperire",network_desc:"Linii către cel mai apropiat vecin",search_languages:"Caută limbi…",search_religions:"Caută religii…",reset_all:"Resetează tot",no_languages:"Nicio limbă încărcată încă",no_religions:"Nicio religie încărcată încă",unadopted:"Neadoptat",min:"min",max:"max",adopted:"Adoptat",adoption:"Adopție",engaged:"Implicat",engagement:"Implicare",unengaged:"Necesită implicare",language:"Limbă",religion:"Religie",population:"Populație",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",close:"Închide",clear:"Șterge",map_controls:"Comenzile hărții"},"./locales/ro/dashboard.json":{bloc:"Bloc de afinitate",gospel_access:"Acces la Evanghelie",people:"Popoare",people_name:"Popor (nume)",praying:"Se roagă",religion_family:"Familie religioasă",search_language:"Caută limbă",search_people:"Caută popor",search_place:"Caută loc",search_religion:"Caută religie",upgs_in_scope:"UPG în domeniu",countries_touched:"țări atinse",unreached:"neatinși",sum_population:"Σ populație",sum_praying:"Σ se roagă",charts:"Grafice",table:"Tabel",cluster:"Grup",country:"Țară",engagement:"Implicare",language:"Limbă",language_family:"Familie de limbi",people_group:"Popor",population:"Populație",prayer:"Rugăciune",region:"Regiune",religion:"Religie",status:"Stare",adopted:"Adoptat",filters:"Filtre",gospel_resources:"Resurse ale Evangheliei",map:"Hartă",search_placeholder:"Caută popoare, locuri, limbi, religii…",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",map_controls:"Comenzile hărții",close:"Închide",clear:"Șterge",dashboard_title:"Tablou de bord de cercetare general",align_dashboard:"Aliniază tabloul",align_dashboard_tip:"Readu aranjarea tabloului la alinierea implicită",selected:"Selectat",world:"Lume",vertical_legend:"Legendă verticală",groups_in_scope:"popoare în domeniu",filter_by:"Filtrează după",remove_filter:"Elimină filtrul",groups:"popoare",expand:"Extinde",collapse:"Restrânge",place:"Loc"},"./locales/ro/detail.json":{labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},"./locales/ro/gospel.json":{_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS",audioScripture:"Scripturi audio",bibleStoriesPlain:"Povestiri biblice"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"},list:{noText:"Fără text biblic",hasScripture:"Are Scripturi",allLanguages:"Toate limbile",peopleGroup:"popor",peopleGroups:"popoare",scriptureHere:"Scripturi în această limbă"},columns:{"People group":"Popor",Country:"Țară",Region:"Regiune",Language:"Limbă",Population:"Populație",Religion:"Religie","Gospel access":"Acces la Evanghelie",Resources:"Resurse",Scripture:"Scripturi","Bible video":"Video biblic","Gospel presentation":"Prezentarea Evangheliei",Countries:"Țări","People groups":"Popoare"},charts:{scriptureAny:"Scripturi (oricare)",fullBible:"Biblia completă",newTestament:"Noul Testament",filmAny:"Film (oricare)",nothingInPools:"Nimic găsit în sursele verificate",nothingInPoolsLower:"nimic găsit în sursele verificate",noResourceInPools:"nicio resursă găsită în sursele verificate",aResourceFound:"o resursă găsită",tabCoverage:"Acoperirea resurselor",tabGap:"Cele mai mari lacune",keyScripture:"scripturi",keyFilmStories:"film / povestiri",keyAudioEtc:"audio / prezentare / instruire",unresolvedCode:"cod în afara ISO 639-3 — nerezolvat, nemăsurat"}},"./locales/ro/grid.json":{search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului."},"./locales/ro/legend.json":{title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"}},"./locales/ro/messages.json":{menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor."},"./locales/ro/options.json":{clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},"./locales/ro/popup.json":{country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},"./locales/ro/prayerLaps.json":{header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},"./locales/ro/regions.json":{"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},"./locales/ro/search.json":{placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"},upg100Placeholder:"Caută popor, listă UPG-100 sau regiune…"},"./locales/ro/studio.json":{title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat",mapToken:"Token hartă",tokenPaste:"Token public Mapbox (pk.…)",tokenUrlLabel:"…sau adresa URL a unui serviciu de tokenuri",tokenApply:"Folosește",tokenClear:"Șterge",tokenStoredHere:"Păstrat doar în acest browser.",tokenSourceYours:"Se folosește tokenul tău",tokenSourceUrl:"Se folosește un token de la {url}",tokenSourceBuilt:"Se folosește tokenul inclus în această pagină",tokenSourceNone:"Niciun token Mapbox: hărțile Mapbox nu se pot încărca (MapLibre nu are nevoie)",tokenSecret:"Acesta este un token secret (sk.…). Lipește unul public (pk.…): pagina este publică.",tokenNotPk:"Un token public Mapbox începe cu pk.",tokenUrlFailed:"Nu s-a putut obține un token de la acea adresă: {why}"},"./locales/ro/tabs.json":{prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic",selectView:"Alege vizualizarea",views:"Vizualizări",prayerResources:"Resurse de rugăciune",map:"Hartă"},"./locales/ro/vision.json":{kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},"./locales/ru/allPeopleGroups.json":{title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},"./locales/ru/aria.json":{backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},"./locales/ru/buttons.json":{prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},"./locales/ru/connectivity.json":{title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},"./locales/ru/controls.json":{research_controls:"Инструменты исследования",clustering:"Кластеризация",filters:"Фильтры",pin_dim:"Прозрачность точек",export_poster:"Экспорт постера…",reload_data:"Обновить данные",off:"Выкл.",native:"Встроенная",mst:"MST",network:"Сеть",off_desc:"Показывать каждую точку отдельно",native_desc:"Круговые кластеры Mapbox (быстрее всего)",mst_desc:"Сети родства по минимальному остовному дереву",network_desc:"Линии до ближайшего соседа",search_languages:"Поиск языков…",search_religions:"Поиск религий…",reset_all:"Сбросить всё",no_languages:"Языки ещё не загружены",no_religions:"Религии ещё не загружены",unadopted:"Не усыновлён",min:"мин",max:"макс",adopted:"Ответственность взята",adoption:"Усыновление",engaged:"Вовлечён",engagement:"Вовлечённость",unengaged:"Нуждается в вовлечённости",language:"Язык",religion:"Религия",population:"Население",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",close:"Закрыть",clear:"Очистить",map_controls:"Элементы управления картой"},"./locales/ru/dashboard.json":{bloc:"Блок родства",gospel_access:"Доступ к Евангелию",people:"Народы",people_name:"Народ (название)",praying:"Молятся",religion_family:"Семья религий",search_language:"Поиск языка",search_people:"Поиск народа",search_place:"Поиск места",search_religion:"Поиск религии",upgs_in_scope:"UPG в выборке",countries_touched:"затронутых стран",unreached:"неохваченные",sum_population:"Σ население",sum_praying:"Σ молящихся",charts:"Графики",table:"Таблица",cluster:"Кластер",country:"Страна",engagement:"Вовлечённость",language:"Язык",language_family:"Языковая семья",people_group:"Народ",population:"Население",prayer:"Молитва",region:"Регион",religion:"Религия",status:"Статус",adopted:"Ответственность взята",filters:"Фильтры",gospel_resources:"Евангельские ресурсы",map:"Карта",search_placeholder:"Поиск народов, мест, языков, религий…",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",map_controls:"Элементы управления картой",close:"Закрыть",clear:"Очистить",dashboard_title:"Обзорная исследовательская панель",align_dashboard:"Выровнять панель",align_dashboard_tip:"Вернуть расположение панели к виду по умолчанию",selected:"Выбрано",world:"Мир",vertical_legend:"Вертикальная легенда",groups_in_scope:"народов в выборке",filter_by:"Фильтровать по",remove_filter:"Убрать фильтр",groups:"народов",expand:"Развернуть",collapse:"Свернуть",place:"Место"},"./locales/ru/detail.json":{labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},"./locales/ru/gospel.json":{_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»",audioScripture:"Аудио с Писанием",bibleStoriesPlain:"Библейские истории"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"},list:{noText:"Нет текста Писания",hasScripture:"Есть Писание",allLanguages:"Все языки",peopleGroup:"народ",peopleGroups:"народов",scriptureHere:"Писание на этом языке"},columns:{"People group":"Народ",Country:"Страна",Region:"Регион",Language:"Язык",Population:"Численность",Religion:"Религия","Gospel access":"Доступ к Евангелию",Resources:"Ресурсы",Scripture:"Писание","Bible video":"Библейское видео","Gospel presentation":"Изложение Евангелия",Countries:"Страны","People groups":"Народы"},charts:{scriptureAny:"Писание (любое)",fullBible:"Полная Библия",newTestament:"Новый Завет",filmAny:"Фильм (любой)",nothingInPools:"Ничего не найдено в проверенных источниках",nothingInPoolsLower:"ничего не найдено в проверенных источниках",noResourceInPools:"ни одного ресурса не найдено в проверенных источниках",aResourceFound:"ресурс найден",tabCoverage:"Охват ресурсами",tabGap:"Наибольшие пробелы",keyScripture:"писание",keyFilmStories:"фильм / истории",keyAudioEtc:"аудио / презентация / обучение",unresolvedCode:"код вне ISO 639-3 — не определён, не измерен"}},"./locales/ru/grid.json":{search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},"./locales/ru/legend.json":{title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"}},"./locales/ru/messages.json":{menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},"./locales/ru/options.json":{clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},"./locales/ru/popup.json":{country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},"./locales/ru/prayerLaps.json":{header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},"./locales/ru/regions.json":{"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},"./locales/ru/search.json":{placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"},upg100Placeholder:"Поиск народа, списка UPG-100 или региона…"},"./locales/ru/studio.json":{title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно",mapToken:"Токен карты",tokenPaste:"Публичный токен Mapbox (pk.…)",tokenUrlLabel:"…или адрес службы токенов",tokenApply:"Применить",tokenClear:"Очистить",tokenStoredHere:"Хранится только в этом браузере.",tokenSourceYours:"Используется ваш токен",tokenSourceUrl:"Используется токен с {url}",tokenSourceBuilt:"Используется токен, встроенный в страницу",tokenSourceNone:"Нет токена Mapbox: карты Mapbox не загрузятся (MapLibre он не нужен)",tokenSecret:"Это секретный токен (sk.…). Вставьте публичный (pk.…): эта страница общедоступна.",tokenNotPk:"Публичный токен Mapbox начинается с pk.",tokenUrlFailed:"Не удалось получить токен по этому адресу: {why}"},"./locales/ru/tabs.json":{prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ",selectView:"Выбрать вид",views:"Виды",prayerResources:"Молитвенные ресурсы",map:"Карта"},"./locales/ru/vision.json":{kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},"./locales/zh/allPeopleGroups.json":{title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},"./locales/zh/aria.json":{backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},"./locales/zh/buttons.json":{prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},"./locales/zh/connectivity.json":{title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},"./locales/zh/controls.json":{research_controls:"研究控件",clustering:"聚类",filters:"筛选",pin_dim:"圆点淡化",export_poster:"导出海报…",reload_data:"重新加载数据",off:"关闭",native:"原生",mst:"MST",network:"网络",off_desc:"逐个显示每个圆点",native_desc:"Mapbox 圆形聚类(最快)",mst_desc:"最小生成树亲缘网络",network_desc:"最近邻连接线",search_languages:"搜索语言…",search_religions:"搜索宗教…",reset_all:"全部重置",no_languages:"尚未加载语言",no_religions:"尚未加载宗教",unadopted:"未认领",min:"最小",max:"最大",adopted:"已认领",adoption:"认领",engaged:"已参与",engagement:"参与",unengaged:"需要参与",language:"语言",religion:"宗教",population:"人口",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",close:"关闭",clear:"清除",map_controls:"地图控件"},"./locales/zh/dashboard.json":{bloc:"亲缘板块",gospel_access:"福音可及性",people:"民族",people_name:"民族(名称)",praying:"正在代祷",religion_family:"宗教族系",search_language:"搜索语言",search_people:"搜索民族",search_place:"搜索地点",search_religion:"搜索宗教",upgs_in_scope:"范围内的 UPG",countries_touched:"涉及国家",unreached:"未得之民",sum_population:"Σ 人口",sum_praying:"Σ 代祷",charts:"图表",table:"表格",cluster:"民族群",country:"國家",engagement:"参与",language:"语言",language_family:"语系",people_group:"民族",population:"人口",prayer:"祷告",region:"区域",religion:"宗教",status:"状态",adopted:"已认领",filters:"筛选",gospel_resources:"福音资源",map:"地图",search_placeholder:"搜索民族、地点、语言、宗教…",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",map_controls:"地图控件",close:"关闭",clear:"清除",dashboard_title:"全局研究仪表板",align_dashboard:"对齐仪表板",align_dashboard_tip:"将仪表板布局恢复为默认对齐",selected:"已选择",world:"世界",vertical_legend:"垂直图例",groups_in_scope:"个民族在范围内",filter_by:"筛选",remove_filter:"移除筛选",groups:"个民族",expand:"展开",collapse:"收起",place:"地点"},"./locales/zh/detail.json":{labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},"./locales/zh/gospel.json":{_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》",audioScripture:"音频圣经",bibleStoriesPlain:"圣经故事"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"},list:{noText:"没有文字圣经",hasScripture:"有圣经",allLanguages:"全部语言",peopleGroup:"个族群",peopleGroups:"个族群",scriptureHere:"本语言的圣经"},columns:{"People group":"族群",Country:"国家",Region:"地区",Language:"语言",Population:"人口",Religion:"宗教","Gospel access":"福音可及性",Resources:"资源",Scripture:"圣经","Bible video":"圣经视频","Gospel presentation":"福音简介",Countries:"国家","People groups":"族群"},charts:{scriptureAny:"圣经(任意)",fullBible:"全本圣经",newTestament:"新约",filmAny:"影片(任意)",nothingInPools:"在已检索的资源库中一无所获",nothingInPoolsLower:"在已检索的资源库中一无所获",noResourceInPools:"在已检索的资源库中未找到资源",aResourceFound:"找到资源",tabCoverage:"资源覆盖",tabGap:"最大缺口",keyScripture:"圣经",keyFilmStories:"影片 / 故事",keyAudioEtc:"音频 / 简介 / 训练",unresolvedCode:"ISO 639-3 之外的代码 — 未确定,未测量"}},"./locales/zh/grid.json":{search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。"},"./locales/zh/legend.json":{title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"}},"./locales/zh/messages.json":{menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},"./locales/zh/options.json":{clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},"./locales/zh/popup.json":{country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},"./locales/zh/prayerLaps.json":{header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},"./locales/zh/regions.json":{"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},"./locales/zh/search.json":{placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"},upg100Placeholder:"搜索民族、UPG-100 名单或区域…"},"./locales/zh/studio.json":{title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布",mapToken:"地图令牌",tokenPaste:"Mapbox 公开令牌 (pk.…)",tokenUrlLabel:"…或令牌服务的网址",tokenApply:"使用",tokenClear:"清除",tokenStoredHere:"仅保存在此浏览器中。",tokenSourceYours:"正在使用您的令牌",tokenSourceUrl:"正在使用来自 {url} 的令牌",tokenSourceBuilt:"正在使用此页面内置的令牌",tokenSourceNone:"没有 Mapbox 令牌:Mapbox 地图无法加载(MapLibre 地图不需要)",tokenSecret:"这是秘密令牌 (sk.…)。请粘贴公开令牌 (pk.…):此页面是公开的。",tokenNotPk:"Mapbox 公开令牌以 pk. 开头",tokenUrlFailed:"无法从该网址获取令牌:{why}"},"./locales/zh/tabs.json":{prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群",selectView:"選擇檢視",views:"檢視",prayerResources:"禱告資源",map:"地圖"},"./locales/zh/vision.json":{kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"}}),ft={};for(const[e,o]of Object.entries(Hi)){const t=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!t)continue;const[,n,s]=t;ft[n]??(ft[n]={}),ft[n][s]=o}const aa=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],Wi="__DOXA_PAGE_LOCALE";function qi(e){const o=String(e||"").split("-")[0].toLowerCase();if(aa.includes(o))try{typeof window<"u"&&(window[Wi]=o)}catch{}}function Ki(e,o){const t=o;Kt(()=>{var i;const n=rn();if(!n)return;const s=(i=n.proxy)==null?void 0:i.$el;if(!s)return;const a=s.getRootNode();if(!(a instanceof ShadowRoot)||a.querySelector(`style[data-shadow-styles="${t}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",t),r.textContent=e,a.appendChild(r)})}const Xi=Pt&&Pt.tagName.toUpperCase()==="SCRIPT"&&Pt.src||new URL("research-map-plus-grid.js",document.baseURI).href,ra=e=>String(e||"").trim().replace(/\/+$/,"");function ia(){try{const o=String(Xi||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!o||o[2]!==o[3]?null:o[1]||null}catch{return null}}function Zi(e){if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return ra(o)}return ra(ia()||"")}const Yi=".stl{display:flow-root;width:100%;min-height:100%;background:#f3f3f1;color:#3b463d;font-family:Public Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;--stl-accent:#92b195;--stl-border:#d1d4cd;--stl-elevated:#ffffff;--stl-muted:#6d766e}.stl-top{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--stl-border);background:#fff;position:sticky;top:0;z-index:5}.stl-brand{display:inline-flex;align-items:center}.stl-brand:empty{display:none}.stl-title{font-size:15px;font-weight:600;letter-spacing:-.01em;color:#3b463d}.stl-meta{color:var(--stl-muted);font-size:12px;margin-left:auto;display:inline-flex;align-items:center;gap:8px}.stl-stack{display:flex;flex-direction:column}.stl-sec{display:flex;flex-direction:column;min-width:0;border-bottom:1px solid var(--stl-border)}.stl-sec:last-child{border-bottom:0}.stl-sec-head{padding:12px 16px 8px;display:flex;align-items:baseline;gap:10px}.stl-sec-title{font-size:13px;font-weight:600;letter-spacing:.02em;color:#3b463d}.stl-sec-sub{font-size:12px;color:var(--stl-muted)}.stl-host{display:block;width:100%;min-width:0;position:relative}.stl-host>*{display:block;width:100%}.stl-host>*[style*=absolute],.stl-host>*[style*=fixed]{position:static!important;inset:auto!important}.stl-slot{display:block;width:100%}.stl-tail:empty{display:none}.stl-sec-fill{position:relative;overflow:hidden}.stl-sec-fill>.stl-host,.stl-sec-fill>.stl-slot{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.stl-sec-fill>.stl-host>*,.stl-sec-fill>.stl-slot>*{height:100%}.stl,.stl *{scrollbar-width:thin;scrollbar-color:#c4c8c0 transparent}.stl ::-webkit-scrollbar{width:8px;height:8px}.stl ::-webkit-scrollbar-track{background:transparent}.stl ::-webkit-scrollbar-thumb{background:#c4c8c0;border-radius:8px}.stl ::-webkit-scrollbar-thumb:hover{background:#9aa197}.stl ::-webkit-scrollbar-corner{background:transparent}",la=(e,o)=>{const t=e.__vccOpts||e;for(const[n,s]of o)t[n]=s;return t},Co={};function Ji(e){if(!e||/^(https?:)?\/\//.test(e)||e.startsWith("/"))return e;const o=e.replace(/^(\.\.\/)+/,"").replace(/^\.\//,""),t=/^(.*\/doxa-maps\/)/.exec(window.location.pathname);if(t)return t[1]+o;const n=ia();return n?String(n).replace(/\/+$/,"")+"/"+o:e}function Qi(e){const o=Ji(e);return o?(Co[o]||(Co[o]=new Promise((t,n)=>{const s=document.createElement("script");s.src=o,(/^\/plugin-designs\//.test(o)||/\/index\.js(\?|$)/.test(o))&&(s.type="module"),s.onload=()=>t(),s.onerror=()=>{delete Co[o],n(new Error("failed to load "+o))},document.head.appendChild(s)})),Co[o]):Promise.resolve()}function el(e,o=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((t,n)=>setTimeout(()=>n(new Error("timeout waiting for <"+e+">")),o))]):Promise.resolve()}const ol=` -.stl { display:flow-root; width:100%; min-height:100%; background:#f3f3f1; color:#3b463d; font-family:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif; -webkit-font-smoothing:antialiased; --stl-accent:#92b195; --stl-border:#d1d4cd; --stl-elevated:#ffffff; --stl-muted:#6d766e; } -.stl-top { display:flex; align-items:center; gap:10px; padding:11px 16px; border-bottom:1px solid var(--stl-border); background:#ffffff; position:sticky; top:0; z-index:5; } -.stl-brand { display:inline-flex; align-items:center; } -.stl-brand:empty { display:none; } -.stl-title { font-size:15px; font-weight:600; letter-spacing:-0.01em; color:#3b463d; } -.stl-meta { color:var(--stl-muted); font-size:12px; margin-left:auto; display:inline-flex; align-items:center; gap:8px; } -.stl-stack { display:flex; flex-direction:column; } -.stl-sec { display:flex; flex-direction:column; min-width:0; border-bottom:1px solid var(--stl-border); } -.stl-sec:last-child { border-bottom:0; } -.stl-sec-head { padding:12px 16px 8px; display:flex; align-items:baseline; gap:10px; } -.stl-sec-title { font-size:13px; font-weight:600; letter-spacing:.02em; color:#3b463d; } -.stl-sec-sub { font-size:12px; color:var(--stl-muted); } -.stl-host { display:block; width:100%; min-width:0; position:relative; } -.stl-host > * { display:block; width:100%; } -.stl-host > *[style*="absolute"], .stl-host > *[style*="fixed"] { position:static !important; inset:auto !important; } -.stl-slot { display:block; width:100%; } -.stl-tail:empty { display:none; } -.stl-sec-fill { position:relative; overflow:hidden; } -.stl-sec-fill > .stl-host, .stl-sec-fill > .stl-slot { position:absolute; inset:0; overflow:hidden; } -.stl-sec-fill > .stl-host > *, .stl-sec-fill > .stl-slot > * { height:100%; } -.stl, .stl * { scrollbar-width:thin; scrollbar-color:#c4c8c0 transparent; } -.stl ::-webkit-scrollbar { width:8px; height:8px; } -.stl ::-webkit-scrollbar-track { background:transparent; } -.stl ::-webkit-scrollbar-thumb { background:#c4c8c0; border-radius:8px; } -.stl ::-webkit-scrollbar-thumb:hover { background:#9aa197; } -.stl ::-webkit-scrollbar-corner { background:transparent; } -`,tl=ss({name:"StackLayout",props:{sections:{type:Array,default:()=>[]},title:{type:String,default:""},maxSectionHeight:{type:String,default:""},minSectionHeight:{type:String,default:""}},setup(){Ki(ol,"stack-layout")},data(){return{_hosts:{},_mounted:{}}},mounted(){for(const e of this.sections||[])e.element&&this.mountSection(e)},methods:{registerHost(e,o){o&&(this._hosts[e]=o)},sectionStyle(e){const o={},t=e.maxHeight||this.maxSectionHeight,n=e.minHeight||this.minSectionHeight,s=!!(t&&n&&t===n);return t&&(o.maxHeight=t,s||(o.overflow="auto")),n&&(o.minHeight=n),Object.keys(o).length?o:null},hasDefiniteHeight(e){const o=e.maxHeight||this.maxSectionHeight,t=e.minHeight||this.minSectionHeight;return!!(o&&t&&o===t)},mountSection(e){if(this._mounted[e.key])return;this._mounted[e.key]=!0;const o=this._hosts[e.key];o&&Qi(e.src).then(()=>el(e.element)).then(()=>{if(!customElements.get(e.element))return;const t=document.createElement(e.element),n=e.attrs||{};for(const s in n){const a=n[s];try{t[s]=a}catch{}try{t.setAttribute(s,a==null?"":String(a))}catch{}}o.innerHTML="",o.appendChild(t)}).catch(t=>{const n=t&&t.message||String(t);console.error('[StackLayout] section "'+e.key+'" failed to mount <'+e.element+">"+(e.src?" from "+e.src:"")+": "+n);try{o.innerHTML="";const s=document.createElement("div");s.setAttribute("role","status"),s.style.cssText="box-sizing:border-box;max-width:100%;padding:16px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#6d766e;background:#fff;border:1px solid #d1d4cd;border-radius:8px;margin:12px 0;overflow-wrap:anywhere;word-break:break-word",s.textContent="Could not load <"+e.element+">"+(e.src?" from "+e.src:"")+" — "+n,o.appendChild(s)}catch{}})}}}),nl={class:"stl"},sl={key:0,class:"stl-top"},al={class:"stl-brand"},rl={key:0,class:"stl-title"},il={class:"stl-meta"},ll={class:"stl-stack"},cl={key:0,class:"stl-sec-head"},pl={class:"stl-sec-title"},ul={key:0,class:"stl-sec-sub"},gl={key:2,class:"stl-slot"},dl={class:"stl-tail"};function $l(e,o,t,n,s,a){return ge(),De("div",nl,[e.$slots.brand||e.$slots.meta||e.title?(ge(),De("header",sl,[Ye("span",al,[it(e.$slots,"brand")]),e.title?(ge(),De("b",rl,zo(e.title),1)):dt("",!0),Ye("span",il,[it(e.$slots,"meta")])])):dt("",!0),Ye("div",ll,[(ge(!0),De(pe,null,Ar(e.sections,r=>(ge(),De("section",{key:r.key,class:Vo(["stl-sec",{"stl-sec-fill":e.hasDefiniteHeight(r)}]),style:Io(e.sectionStyle(r))},[r.title?(ge(),De("div",cl,[Ye("b",pl,zo(r.title),1),r.sub?(ge(),De("span",ul,zo(r.sub),1)):dt("",!0)])):dt("",!0),r.element?(ge(),De("div",{key:1,class:"stl-host",ref_for:!0,ref:i=>e.registerHost(r.key,i)},null,512)):(ge(),De("div",gl,[it(e.$slots,"section-"+r.key)]))],6))),128)),Ye("div",dl,[it(e.$slots,"default")])])])}const hl=la(tl,[["render",$l],["styles",[Yi]]]),ca="__doxaMapToken",_l="doxa:map-token",pa=()=>{if(typeof window>"u")return"";const e=window[ca];return typeof e=="string"?e:""};function fl(e){if(typeof window>"u")return"";const o=typeof e=="string"?e.trim():"";if(!o||o===pa())return pa();window[ca]=o;try{window.dispatchEvent(new CustomEvent(_l,{detail:o}))}catch{}return o}const ml=":host{display:block;width:100%}",ua="88svh",bl=Bi(la(Object.assign({inheritAttrs:!1},{__name:"research-map-plus-grid",props:{profileConfig:{type:[String,Object],default:null}},setup(e){const o=e,t=po(()=>{const f=o.profileConfig;if(!f)return{};if(typeof f=="object")return f;try{return JSON.parse(f)}catch{return{}}}),n=po(()=>{var A;const f=(A=t.value)==null?void 0:A.tk;return typeof f=="string"&&f?f:""});n.value&&fl(n.value);const s=po(()=>{var A;const f=(A=t.value)==null?void 0:A.provider;return f==="maplibre"||f==="mapbox"?f:""}),a=po(()=>{var A,P;const f=String(((A=t.value)==null?void 0:A.lang)||((P=t.value)==null?void 0:P.locale)||"").split("-")[0].toLowerCase();return aa.includes(f)?f:""});gr(()=>{a.value&&qi(a.value)});const r=(()=>{const f=(Zi()||"").replace(/\/+$/,""),A="research-map-plus-grid/research-map-plus-grid/index.html";return f?f+"/"+A:A})(),i=(f,A)=>`../../${f}/${A}.js`,l=Xo({region:{value:"",label:""},religion:"",language:""});function g(f){f!=="region"&&(l.region.value||l.region.label)&&(l.region.value="",l.region.label=""),f!=="religion"&&l.religion&&(l.religion=""),f!=="language"&&l.language&&(l.language="")}const u=f=>String(f||"").toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_|_$/g,"");let $=!1;function S(f){if(f){if(f.region&&(f.region.value||f.region.label)){const A=f.region.value||"",P=f.region.label||"";(A!==l.region.value||P!==l.region.label)&&(l.region.value=A,l.region.label=P,g("region"));return}if(f.religion){f.religion!==l.religion&&(l.religion=f.religion,g("religion"));return}if(f.language){f.language!==l.language&&(l.language=f.language,g("language"));return}("region"in f||"religion"in f||"language"in f)&&g(null)}}function R(f){var Y;if($)return;const A=((Y=f==null?void 0:f.detail)==null?void 0:Y.activeFilters)||{},P=A.wagf_region,D=Q=>Q&&(Q.label||Q.value)||"";S({region:{value:P&&(P.value??P)||"",label:P&&P.label||""},religion:D(A.__religion_family),language:D(A.primary_language)})}function G(f){var P,D,Y;if($)return;const A=((P=f==null?void 0:f.detail)==null?void 0:P.region)||"";S({region:{value:A?u(A):"",label:A},religion:((D=f==null?void 0:f.detail)==null?void 0:D.religion)||"",language:((Y=f==null?void 0:f.detail)==null?void 0:Y.language)||""})}let w=null;function K(){if(!(w!=null&&w.querySelector))return;$=!0,setTimeout(()=>{$=!1},1200);const f=w.querySelector("doxa-research-map");if(f){let P={};try{P=JSON.parse(f.getAttribute("profile-config")||"{}")}catch{P={}}P.externalFilters={region:l.region.value,religion:l.religion,language:l.language},f.setAttribute("profile-config",JSON.stringify(P))}const A=w.querySelector("people-groups-grid");A&&(A.setAttribute("wagf-region",l.region.value),A.setAttribute("religion-family",l.religion),A.setAttribute("primary-language",l.language))}nt(l,K,{deep:!0}),Kt(()=>{var f,A,P,D,Y,Q;w=((D=(P=(A=(f=rn())==null?void 0:f.proxy)==null?void 0:A.$el)==null?void 0:P.getRootNode)==null?void 0:D.call(P))||null,(Y=w==null?void 0:w.addEventListener)==null||Y.call(w,"groups-filtered",R),(Q=w==null?void 0:w.addEventListener)==null||Q.call(w,"map-filtered",G)}),cs(()=>{var f,A;(f=w==null?void 0:w.removeEventListener)==null||f.call(w,"groups-filtered",R),(A=w==null?void 0:w.removeEventListener)==null||A.call(w,"map-filtered",G)});const z=po(()=>[{key:"map",element:"doxa-research-map",src:i("doxa-research-map","doxa-research-map"),attrs:{"profile-config":JSON.stringify({profile:"research-map",dataSource:"pray-tools",instanceId:"rmpg-research-map",legendTools:!1,...n.value?{tk:n.value}:{},...s.value?{provider:s.value}:{},...a.value?{lang:a.value}:{},externalFilters:{region:l.region.value,religion:l.religion,language:l.language},assetsBase:"../../assets",shareUrl:r})},minHeight:ua,maxHeight:ua},{key:"grid",element:"people-groups-grid",src:i("people-groups-grid","people-groups-grid"),attrs:{"show-search":"true","show-filters":"true","show-total":"true","wagf-region":l.region.value,"religion-family":l.religion,"primary-language":l.language}}]);return(f,A)=>(ge(),ut(hl,{sections:z.value},null,8,["sections"]))}}),[["styles",[ml]]]));typeof customElements<"u"&&(customElements.get("research-map-plus-grid")||customElements.define("research-map-plus-grid",bl))})(); diff --git a/public/doxa-maps/wall-of-people-groups/wall-of-people-groups.js b/public/doxa-maps/wall-of-people-groups/wall-of-people-groups.js deleted file mode 100644 index f3559012e..000000000 --- a/public/doxa-maps/wall-of-people-groups/wall-of-people-groups.js +++ /dev/null @@ -1,75 +0,0 @@ -(function(){"use strict";const mb="modulepreload",_b=function(e){return"/"+e},bb={},zl=function(o,t,n){let a=Promise.resolve();function s(r){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=r,window.dispatchEvent(i),!i.defaultPrevented)throw r}return a.then(r=>{for(const i of r||[])i.status==="rejected"&&s(i.reason);return o().catch(s)})};/** -* @vue/shared v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function as(e){const o=Object.create(null);for(const t of e.split(","))o[t]=1;return t=>t in o}const de={},at=[],co=()=>{},ma=()=>!1,en=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),on=e=>e.startsWith("onUpdate:"),Le=Object.assign,rs=(e,o)=>{const t=e.indexOf(o);t>-1&&e.splice(t,1)},Wl=Object.prototype.hasOwnProperty,le=(e,o)=>Wl.call(e,o),X=Array.isArray,Do=e=>St(e)==="[object Map]",tn=e=>St(e)==="[object Set]",_a=e=>St(e)==="[object Date]",ee=e=>typeof e=="function",me=e=>typeof e=="string",Ze=e=>typeof e=="symbol",ce=e=>e!==null&&typeof e=="object",ba=e=>(ce(e)||ee(e))&&ee(e.then)&&ee(e.catch),ya=Object.prototype.toString,St=e=>ya.call(e),Hl=e=>St(e).slice(8,-1),nn=e=>St(e)==="[object Object]",sn=e=>me(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,At=as(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),an=e=>{const o=Object.create(null);return t=>o[t]||(o[t]=e(t))},ql=/-\w/g,Ce=an(e=>e.replace(ql,o=>o.slice(1).toUpperCase())),Kl=/\B([A-Z])/g,Je=an(e=>e.replace(Kl,"-$1").toLowerCase()),rn=an(e=>e.charAt(0).toUpperCase()+e.slice(1)),is=an(e=>e?`on${rn(e)}`:""),uo=(e,o)=>!Object.is(e,o),ln=(e,...o)=>{for(let t=0;t{Object.defineProperty(e,o,{configurable:!0,enumerable:!1,writable:n,value:t})},ls=e=>{const o=parseFloat(e);return isNaN(o)?e:o},Pa=e=>{const o=me(e)?Number(e):NaN;return isNaN(o)?e:o};let ka;const cn=()=>ka||(ka=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function cs(e){if(X(e)){const o={};for(let t=0;t{if(t){const n=t.split(Yl);n.length>1&&(o[n[0].trim()]=n[1].trim())}}),o}function rt(e){let o="";if(me(e))o=e;else if(X(e))for(let t=0;t!!(e&&e.__v_isRef===!0),ye=e=>me(e)?e:e==null?"":X(e)||ce(e)&&(e.toString===ya||!ee(e.toString))?Sa(e)?ye(e.value):JSON.stringify(e,Aa,2):String(e),Aa=(e,o)=>Sa(o)?Aa(e,o.value):Do(o)?{[`Map(${o.size})`]:[...o.entries()].reduce((t,[n,a],s)=>(t[us(n,s)+" =>"]=a,t),{})}:tn(o)?{[`Set(${o.size})`]:[...o.values()].map(t=>us(t))}:Ze(o)?us(o):ce(o)&&!X(o)&&!nn(o)?String(o):o,us=(e,o="")=>{var t;return Ze(e)?`Symbol(${(t=e.description)!=null?t:o})`:e};/** -* @vue/reactivity v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let xe;class xa{constructor(o=!1){this.detached=o,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!o&&xe&&(xe.active?(this.parent=xe,this.index=(xe.scopes||(xe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let o,t;if(this.scopes){const n=this.scopes.slice();for(o=0,t=n.length;o0&&--this._on===0){if(xe===this)xe=this.prevScope;else{let o=xe;for(;o;){if(o.prevScope===this){o.prevScope=this.prevScope;break}o=o.prevScope}}this.prevScope=void 0}}stop(o){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t0)return;if(Et){let o=Et;for(Et=void 0;o;){const t=o.next;o.next=void 0,o.flags&=-9,o=t}}let e;for(;xt;){let o=xt;for(xt=void 0;o;){const t=o.next;if(o.next=void 0,o.flags&=-9,o.flags&1)try{o.trigger()}catch(n){e||(e=n)}o=t}}if(e)throw e}function Oa(e){for(let o=e.deps;o;o=o.nextDep)o.version=-1,o.prevActiveLink=o.dep.activeLink,o.dep.activeLink=o}function Na(e){let o,t=e.depsTail,n=t;for(;n;){const a=n.prevDep;n.version===-1?(n===t&&(t=a),hs(n),tc(n)):o=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=o,e.depsTail=t}function fs(e){for(let o=e.deps;o;o=o.nextDep)if(o.dep.version!==o.version||o.dep.computed&&(Ia(o.dep.computed)||o.dep.version!==o.version))return!0;return!!e._dirty}function Ia(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Ct)||(e.globalVersion=Ct,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!fs(e))))return;e.flags|=2;const o=e.dep,t=ge,n=oo;ge=e,oo=!0;try{Oa(e);const a=e.fn(e._value);(o.version===0||uo(a,e._value))&&(e.flags|=128,e._value=a,o.version++)}catch(a){throw o.version++,a}finally{ge=t,oo=n,Na(e),e.flags&=-3}}function hs(e,o=!1){const{dep:t,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),t.subs===e&&(t.subs=n,!n&&t.computed)){t.computed.flags&=-5;for(let s=t.computed.deps;s;s=s.nextDep)hs(s,!0)}!o&&!--t.sc&&t.map&&t.map.delete(t.key)}function tc(e){const{prevDep:o,nextDep:t}=e;o&&(o.nextDep=t,e.prevDep=void 0),t&&(t.prevDep=o,e.nextDep=void 0)}let oo=!0;const Fa=[];function po(){Fa.push(oo),oo=!1}function go(){const e=Fa.pop();oo=e===void 0?!0:e}function Ma(e){const{cleanup:o}=e;if(e.cleanup=void 0,o){const t=ge;ge=void 0;try{o()}finally{ge=t}}}let Ct=0;class nc{constructor(o,t){this.sub=o,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ms{constructor(o){this.computed=o,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(o){if(!ge||!oo||ge===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==ge)t=this.activeLink=new nc(ge,this),ge.deps?(t.prevDep=ge.depsTail,ge.depsTail.nextDep=t,ge.depsTail=t):ge.deps=ge.depsTail=t,Da(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const n=t.nextDep;n.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=n),t.prevDep=ge.depsTail,t.nextDep=void 0,ge.depsTail.nextDep=t,ge.depsTail=t,ge.deps===t&&(ge.deps=n)}return t}trigger(o){this.version++,Ct++,this.notify(o)}notify(o){gs();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{$s()}}}function Da(e){if(e.dep.sc++,e.sub.flags&4){const o=e.dep.computed;if(o&&!e.dep.subs){o.flags|=20;for(let n=o.deps;n;n=n.nextDep)Da(n)}const t=e.dep.subs;t!==e&&(e.prevSub=t,t&&(t.nextSub=e)),e.dep.subs=e}}const pn=new WeakMap,Xo=Symbol(""),_s=Symbol(""),Rt=Symbol("");function Fe(e,o,t){if(oo&&ge){let n=pn.get(e);n||pn.set(e,n=new Map);let a=n.get(t);a||(n.set(t,a=new ms),a.map=n,a.key=t),a.track()}}function Po(e,o,t,n,a,s){const r=pn.get(e);if(!r){Ct++;return}const i=l=>{l&&l.trigger()};if(gs(),o==="clear")r.forEach(i);else{const l=X(e),c=l&&sn(t);if(l&&t==="length"){const u=Number(n);r.forEach((g,$)=>{($==="length"||$===Rt||!Ze($)&&$>=u)&&i(g)})}else switch((t!==void 0||r.has(void 0))&&i(r.get(t)),c&&i(r.get(Rt)),o){case"add":l?c&&i(r.get("length")):(i(r.get(Xo)),Do(e)&&i(r.get(_s)));break;case"delete":l||(i(r.get(Xo)),Do(e)&&i(r.get(_s)));break;case"set":Do(e)&&i(r.get(Xo));break}}$s()}function sc(e,o){const t=pn.get(e);return t&&t.get(o)}function it(e){const o=re(e);return o===e?o:(Fe(o,"iterate",Rt),We(e)?o:o.map(to))}function dn(e){return Fe(e=re(e),"iterate",Rt),e}function $o(e,o){return wo(e)?lt(Lo(e)?to(o):o):to(o)}const ac={__proto__:null,[Symbol.iterator](){return bs(this,Symbol.iterator,e=>$o(this,e))},concat(...e){return it(this).concat(...e.map(o=>X(o)?it(o):o))},entries(){return bs(this,"entries",e=>(e[1]=$o(this,e[1]),e))},every(e,o){return ko(this,"every",e,o,void 0,arguments)},filter(e,o){return ko(this,"filter",e,o,t=>t.map(n=>$o(this,n)),arguments)},find(e,o){return ko(this,"find",e,o,t=>$o(this,t),arguments)},findIndex(e,o){return ko(this,"findIndex",e,o,void 0,arguments)},findLast(e,o){return ko(this,"findLast",e,o,t=>$o(this,t),arguments)},findLastIndex(e,o){return ko(this,"findLastIndex",e,o,void 0,arguments)},forEach(e,o){return ko(this,"forEach",e,o,void 0,arguments)},includes(...e){return ys(this,"includes",e)},indexOf(...e){return ys(this,"indexOf",e)},join(e){return it(this).join(e)},lastIndexOf(...e){return ys(this,"lastIndexOf",e)},map(e,o){return ko(this,"map",e,o,void 0,arguments)},pop(){return Tt(this,"pop")},push(...e){return Tt(this,"push",e)},reduce(e,...o){return Ga(this,"reduce",e,o)},reduceRight(e,...o){return Ga(this,"reduceRight",e,o)},shift(){return Tt(this,"shift")},some(e,o){return ko(this,"some",e,o,void 0,arguments)},splice(...e){return Tt(this,"splice",e)},toReversed(){return it(this).toReversed()},toSorted(e){return it(this).toSorted(e)},toSpliced(...e){return it(this).toSpliced(...e)},unshift(...e){return Tt(this,"unshift",e)},values(){return bs(this,"values",e=>$o(this,e))}};function bs(e,o,t){const n=dn(e),a=n[o]();return n!==e&&!We(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=t(s.value)),s}),a}const rc=Array.prototype;function ko(e,o,t,n,a,s){const r=dn(e),i=r!==e&&!We(e),l=r[o];if(l!==rc[o]){const g=l.apply(e,s);return i?to(g):g}let c=t;r!==e&&(i?c=function(g,$){return t.call(this,$o(e,g),$,e)}:t.length>2&&(c=function(g,$){return t.call(this,g,$,e)}));const u=l.call(r,c,n);return i&&a?a(u):u}function Ga(e,o,t,n){const a=dn(e),s=a!==e&&!We(e);let r=t,i=!1;a!==e&&(s?(i=n.length===0,r=function(c,u,g){return i&&(i=!1,c=$o(e,c)),t.call(this,c,$o(e,u),g,e)}):t.length>3&&(r=function(c,u,g){return t.call(this,c,u,g,e)}));const l=a[o](r,...n);return i?$o(e,l):l}function ys(e,o,t){const n=re(e);Fe(n,"iterate",Rt);const a=n[o](...t);return(a===-1||a===!1)&&_n(t[0])?(t[0]=re(t[0]),n[o](...t)):a}function Tt(e,o,t=[]){po(),gs();const n=re(e)[o].apply(e,t);return $s(),go(),n}const ic=as("__proto__,__v_isRef,__isVue"),Ua=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ze));function lc(e){Ze(e)||(e=String(e));const o=re(this);return Fe(o,"has",e),o.hasOwnProperty(e)}class Ba{constructor(o=!1,t=!1){this._isReadonly=o,this._isShallow=t}get(o,t,n){if(t==="__v_skip")return o.__v_skip;const a=this._isReadonly,s=this._isShallow;if(t==="__v_isReactive")return!a;if(t==="__v_isReadonly")return a;if(t==="__v_isShallow")return s;if(t==="__v_raw")return n===(a?s?qa:Ha:s?Wa:za).get(o)||Object.getPrototypeOf(o)===Object.getPrototypeOf(n)?o:void 0;const r=X(o);if(!a){let l;if(r&&(l=ac[t]))return l;if(t==="hasOwnProperty")return lc}const i=Reflect.get(o,t,ve(o)?o:n);if((Ze(t)?Ua.has(t):ic(t))||(a||Fe(o,"get",t),s))return i;if(ve(i)){const l=r&&sn(t)?i:i.value;return a&&ce(l)?Ps(l):l}return ce(i)?a?Ps(i):hn(i):i}}class Va extends Ba{constructor(o=!1){super(!1,o)}set(o,t,n,a){let s=o[t];const r=X(o)&&sn(t);if(!this._isShallow){const c=wo(s);if(!We(n)&&!wo(n)&&(s=re(s),n=re(n)),!r&&ve(s)&&!ve(n))return c||(s.value=n),!0}const i=r?Number(t)e,gn=e=>Reflect.getPrototypeOf(e);function gc(e,o,t){return function(...n){const a=this.__v_raw,s=re(a),r=Do(s),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=a[e](...n),u=t?vs:o?lt:to;return!o&&Fe(s,"iterate",l?_s:Xo),Le(Object.create(c),{next(){const{value:g,done:$}=c.next();return $?{value:g,done:$}:{value:i?[u(g[0]),u(g[1])]:u(g),done:$}}})}}function $n(e){return function(...o){return e==="delete"?!1:e==="clear"?void 0:this}}function $c(e,o){const t={get(a){const s=this.__v_raw,r=re(s),i=re(a);e||(uo(a,i)&&Fe(r,"get",a),Fe(r,"get",i));const{has:l}=gn(r),c=o?vs:e?lt:to;if(l.call(r,a))return c(s.get(a));if(l.call(r,i))return c(s.get(i));s!==r&&s.get(a)},get size(){const a=this.__v_raw;return!e&&Fe(re(a),"iterate",Xo),a.size},has(a){const s=this.__v_raw,r=re(s),i=re(a);return e||(uo(a,i)&&Fe(r,"has",a),Fe(r,"has",i)),a===i?s.has(a):s.has(a)||s.has(i)},forEach(a,s){const r=this,i=r.__v_raw,l=re(i),c=o?vs:e?lt:to;return!e&&Fe(l,"iterate",Xo),i.forEach((u,g)=>a.call(s,c(u),c(g),r))}};return Le(t,e?{add:$n("add"),set:$n("set"),delete:$n("delete"),clear:$n("clear")}:{add(a){const s=re(this),r=gn(s),i=re(a),l=!o&&!We(a)&&!wo(a)?i:a;return r.has.call(s,l)||uo(a,l)&&r.has.call(s,a)||uo(i,l)&&r.has.call(s,i)||(s.add(l),Po(s,"add",l,l)),this},set(a,s){!o&&!We(s)&&!wo(s)&&(s=re(s));const r=re(this),{has:i,get:l}=gn(r);let c=i.call(r,a);c||(a=re(a),c=i.call(r,a));const u=l.call(r,a);return r.set(a,s),c?uo(s,u)&&Po(r,"set",a,s):Po(r,"add",a,s),this},delete(a){const s=re(this),{has:r,get:i}=gn(s);let l=r.call(s,a);l||(a=re(a),l=r.call(s,a)),i&&i.call(s,a);const c=s.delete(a);return l&&Po(s,"delete",a,void 0),c},clear(){const a=re(this),s=a.size!==0,r=a.clear();return s&&Po(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{t[a]=gc(a,e,o)}),t}function fn(e,o){const t=$c(e,o);return(n,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(le(t,a)&&a in n?t:n,a,s)}const fc={get:fn(!1,!1)},hc={get:fn(!1,!0)},mc={get:fn(!0,!1)},_c={get:fn(!0,!0)},za=new WeakMap,Wa=new WeakMap,Ha=new WeakMap,qa=new WeakMap;function bc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function hn(e){return wo(e)?e:mn(e,!1,cc,fc,za)}function yc(e){return mn(e,!1,pc,hc,Wa)}function Ps(e){return mn(e,!0,uc,mc,Ha)}function vb(e){return mn(e,!0,dc,_c,qa)}function mn(e,o,t,n,a){if(!ce(e)||e.__v_raw&&!(o&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=a.get(e);if(s)return s;const r=bc(Hl(e));if(r===0)return e;const i=new Proxy(e,r===2?n:t);return a.set(e,i),i}function Lo(e){return wo(e)?Lo(e.__v_raw):!!(e&&e.__v_isReactive)}function wo(e){return!!(e&&e.__v_isReadonly)}function We(e){return!!(e&&e.__v_isShallow)}function _n(e){return e?!!e.__v_raw:!1}function re(e){const o=e&&e.__v_raw;return o?re(o):e}function Ot(e){return!le(e,"__v_skip")&&Object.isExtensible(e)&&va(e,"__v_skip",!0),e}const to=e=>ce(e)?hn(e):e,lt=e=>ce(e)?Ps(e):e;function ve(e){return e?e.__v_isRef===!0:!1}function He(e){return Xa(e,!1)}function Ka(e){return Xa(e,!0)}function Xa(e,o){return ve(e)?e:new vc(e,o)}class vc{constructor(o,t){this.dep=new ms,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?o:re(o),this._value=t?o:to(o),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(o){const t=this._rawValue,n=this.__v_isShallow||We(o)||wo(o);o=n?o:re(o),uo(o,t)&&(this._rawValue=o,this._value=n?o:to(o),this.dep.trigger())}}function bn(e){return ve(e)?e.value:e}const Pc={get:(e,o,t)=>o==="__v_raw"?e:bn(Reflect.get(e,o,t)),set:(e,o,t,n)=>{const a=e[o];return ve(a)&&!ve(t)?(a.value=t,!0):Reflect.set(e,o,t,n)}};function Ya(e){return Lo(e)?e:new Proxy(e,Pc)}function kc(e){const o=X(e)?new Array(e.length):{};for(const t in e)o[t]=wc(e,t);return o}class Lc{constructor(o,t,n){this._object=o,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Ze(t)?t:String(t),this._raw=re(o);let a=!0,s=o;if(!X(o)||Ze(this._key)||!sn(this._key))do a=!_n(s)||We(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let o=this._object[this._key];return this._shallow&&(o=bn(o)),this._value=o===void 0?this._defaultValue:o}set value(o){if(this._shallow&&ve(this._raw[this._key])){const t=this._object[this._key];if(ve(t)){t.value=o;return}}this._object[this._key]=o}get dep(){return sc(this._raw,this._key)}}function wc(e,o,t){return new Lc(e,o,t)}class Sc{constructor(o,t,n){this.fn=o,this.setter=t,this._value=void 0,this.dep=new ms(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ct-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&ge!==this)return Ta(this,!0),!0}get value(){const o=this.dep.track();return Ia(this),o&&(o.version=this.dep.version),this._value}set value(o){this.setter&&this.setter(o)}}function Ac(e,o,t=!1){let n,a;return ee(e)?n=e:(n=e.get,a=e.set),new Sc(n,a,t)}const yn={},vn=new WeakMap;let Yo;function xc(e,o=!1,t=Yo){if(t){let n=vn.get(t);n||vn.set(t,n=[]),n.push(e)}}function Ec(e,o,t=de){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:i,call:l}=t,c=_=>a?_:We(_)||a===!1||a===0?So(_,1):So(_);let u,g,$,y,E=!1,L=!1;if(ve(e)?(g=()=>e.value,E=We(e)):Lo(e)?(g=()=>c(e),E=!0):X(e)?(L=!0,E=e.some(_=>Lo(_)||We(_)),g=()=>e.map(_=>{if(ve(_))return _.value;if(Lo(_))return c(_);if(ee(_))return l?l(_,2):_()})):ee(e)?o?g=l?()=>l(e,2):e:g=()=>{if($){po();try{$()}finally{go()}}const _=Yo;Yo=u;try{return l?l(e,3,[y]):e(y)}finally{Yo=_}}:g=co,o&&a){const _=g,S=a===!0?1/0:a;g=()=>So(_(),S)}const N=Ea(),O=()=>{u.stop(),N&&N.active&&rs(N.effects,u)};if(s&&o){const _=o;o=(...S)=>{const x=_(...S);return O(),x}}let M=L?new Array(e.length).fill(yn):yn;const b=_=>{if(!(!(u.flags&1)||!u.dirty&&!_))if(o){const S=u.run();if(_||a||E||(L?S.some((x,A)=>uo(x,M[A])):uo(S,M))){$&&$();const x=Yo;Yo=u;try{const A=[S,M===yn?void 0:L&&M[0]===yn?[]:M,y];M=S,l?l(o,3,A):o(...A)}finally{Yo=x}}}else u.run()};return i&&i(b),u=new Ca(g),u.scheduler=r?()=>r(b,!1):b,y=_=>xc(_,!1,u),$=u.onStop=()=>{const _=vn.get(u);if(_){if(l)l(_,4);else for(const S of _)S();vn.delete(u)}},o?n?b(!0):M=u.run():r?r(b.bind(null,!0),!0):u.run(),O.pause=u.pause.bind(u),O.resume=u.resume.bind(u),O.stop=O,O}function So(e,o=1/0,t){if(o<=0||!ce(e)||e.__v_skip||(t=t||new Map,(t.get(e)||0)>=o))return e;if(t.set(e,o),o--,ve(e))So(e.value,o,t);else if(X(e))for(let n=0;n{So(n,o,t)});else if(nn(e)){for(const n in e)So(e[n],o,t);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&So(e[n],o,t)}return e}/** -* @vue/runtime-core v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const Nt=[];let ks=!1;function Pb(e,...o){if(ks)return;ks=!0,po();const t=Nt.length?Nt[Nt.length-1].component:null,n=t&&t.appContext.config.warnHandler,a=Cc();if(n)ct(n,t,11,[e+o.map(s=>{var r,i;return(i=(r=s.toString)==null?void 0:r.call(s))!=null?i:JSON.stringify(s)}).join(""),t&&t.proxy,a.map(({vnode:s})=>`at <${Zr(t,s.type)}>`).join(` -`),a]);else{const s=[`[Vue warn]: ${e}`,...o];a.length&&s.push(` -`,...Rc(a)),console.warn(...s)}go(),ks=!1}function Cc(){let e=Nt[Nt.length-1];if(!e)return[];const o=[];for(;e;){const t=o[0];t&&t.vnode===e?t.recurseCount++:o.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return o}function Rc(e){const o=[];return e.forEach((t,n)=>{o.push(...n===0?[]:[` -`],...Tc(t))}),o}function Tc({vnode:e,recurseCount:o}){const t=o>0?`... (${o} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Zr(e.component,e.type,n)}`,s=">"+t;return e.props?[a,...Oc(e.props),s]:[a+s]}function Oc(e){const o=[],t=Object.keys(e);return t.slice(0,3).forEach(n=>{o.push(...Za(n,e[n]))}),t.length>3&&o.push(" ..."),o}function Za(e,o,t){return me(o)?(o=JSON.stringify(o),t?o:[`${e}=${o}`]):typeof o=="number"||typeof o=="boolean"||o==null?t?o:[`${e}=${o}`]:ve(o)?(o=Za(e,re(o.value),!0),t?o:[`${e}=Ref<`,o,">"]):ee(o)?[`${e}=fn${o.name?`<${o.name}>`:""}`]:(o=re(o),t?o:[`${e}=`,o])}function ct(e,o,t,n){try{return n?e(...n):e()}catch(a){It(a,o,t)}}function no(e,o,t,n){if(ee(e)){const a=ct(e,o,t,n);return a&&ba(a)&&a.catch(s=>{It(s,o,t)}),a}if(X(e)){const a=[];for(let s=0;s>>1,a=De[n],s=Ft(a);s=Ft(t)?De.push(e):De.splice(Ic(o),0,e),e.flags|=1,Qa()}}function Qa(){Pn||(Pn=Ja.then(tr))}function Fc(e){if(!X(e))Go&&e.id===-1?Go.splice(pt+1,0,e):e.flags&1||(ut.push(e),e.flags|=1);else for(let o=0;oFt(t)-Ft(n));if(ut.length=0,Go){for(let t=0;te.id==null?e.flags&2?-1:1/0:e.id;function tr(e){try{for(fo=0;fo{n._d&&In(-1);const s=Ln(o),r=et.length;let i;try{i=e(...a)}finally{for(let l=et.length;l>r;l--)jr();Ln(s),n._d&&In(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function sr(e,o){if(qe===null)return e;const t=Un(qe),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return t&&ee(o)?o.call(n&&n.proxy):o}}function Dc(){return!!(Ro()||Jo)}const Gc=Symbol.for("v-scx"),Uc=()=>so(Gc);function Bc(e,o){return ws(e,null,o)}function Ao(e,o,t){return ws(e,o,t)}function ws(e,o,t=de){const{immediate:n,deep:a,flush:s,once:r}=t,i=Le({},t),l=o&&n||!o&&s!=="post";let c;if(gt){if(s==="sync"){const y=Uc();c=y.__watcherHandles||(y.__watcherHandles=[])}else if(!l){const y=()=>{};return y.stop=co,y.resume=co,y.pause=co,y}}const u=Oe;i.call=(y,E,L)=>no(y,u,E,L);let g=!1;s==="post"?i.scheduler=y=>{je(y,u&&u.suspense)}:s!=="sync"&&(g=!0,i.scheduler=(y,E)=>{E?y():Ls(y)}),i.augmentJob=y=>{o&&(y.flags|=4),g&&(y.flags|=2,u&&(y.id=u.uid,y.i=u))};const $=Ec(e,o,i);return gt&&(c?c.push($):l&&$()),$}function Vc(e,o,t){const n=this.proxy,a=me(e)?e.includes(".")?ar(n,e):()=>n[e]:e.bind(n,n);let s;ee(o)?s=o:(s=o.handler,t=o);const r=qt(this),i=ws(a,s.bind(n),t);return r(),i}function ar(e,o){const t=o.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,Ss=Symbol("_leaveCb");function zc(e){let o=e[0];if(e.length>1){for(const t of e)if(t.type!==Eo){o=t;break}}return o}function rr(e){if(!xn(e))return wn(e.type)&&e.children?zc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:o,children:t}=e;if(t){if(o&16)return t[0];if(o&32&&ee(t.default))return t.default()}}function As(e,o){if(e.shapeFlag&6&&e.component){e.transition=o;const t=e.component.subTree;As(wn(t.type)&&rr(t)||t,o)}else e.shapeFlag&128?(e.ssContent.transition=o.clone(e.ssContent),e.ssFallback.transition=o.clone(e.ssFallback)):e.transition=o}function Mt(e,o){return ee(e)?Le({name:e.name},o,{setup:e}):e}function xs(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ir(e,o){let t;return!!((t=Object.getOwnPropertyDescriptor(e,o))&&!t.configurable)}const Sn=new WeakMap;function Dt(e,o,t,n,a=!1){if(X(e)){e.forEach((L,N)=>Dt(L,o&&(X(o)?o[N]:o),t,n,a));return}if(Gt(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Dt(e,o,t,n.component.subTree);return}const s=n.shapeFlag&4?Un(n.component):n.el,r=a?null:s,{i,r:l}=e,c=o&&o.r,u=i.refs===de?i.refs={}:i.refs,g=i.setupState,$=re(g),y=g===de?ma:L=>ir(u,L)?!1:le($,L),E=(L,N)=>!(N&&ir(u,N));if(c!=null&&c!==l){if(lr(o),me(c))u[c]=null,y(c)&&(g[c]=null);else if(ve(c)){const L=o;E(c,L.k)&&(c.value=null),L.k&&(u[L.k]=null)}}if(ee(l))ct(l,i,12,[r,u]);else{const L=me(l),N=ve(l);if(L||N){const O=()=>{if(e.f){const M=L?y(l)?g[l]:u[l]:E()||!e.k?l.value:u[e.k];if(a)X(M)&&rs(M,s);else if(X(M))M.includes(s)||M.push(s);else if(L)u[l]=[s],y(l)&&(g[l]=u[l]);else{const b=[s];E(l,e.k)&&(l.value=b),e.k&&(u[e.k]=b)}}else L?(u[l]=r,y(l)&&(g[l]=r)):N&&(E(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const M=()=>{O(),Sn.delete(e)};M.id=-1,Sn.set(e,M),je(M,t)}else lr(e),O()}}}function lr(e){const o=Sn.get(e);o&&(o.flags|=8,Sn.delete(e))}const cr=e=>e.nodeType===8;cn().requestIdleCallback,cn().cancelIdleCallback;function Wc(e,o){if(cr(e)&&e.data==="["){let t=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(o(n)===!1)break}else if(cr(n))if(n.data==="]"){if(--t===0)break}else n.data==="["&&t++;n=n.nextSibling}}else o(e)}const Gt=e=>!!e.type.__asyncLoader;function Hc(e){ee(e)&&(e={loader:e});const{loader:o,loadingComponent:t,errorComponent:n,delay:a=200,hydrate:s,timeout:r,suspensible:i=!0,onError:l}=e;let c=null,u,g=0;const $=()=>(g++,c=null,y()),y=()=>{let E;return c||(E=c=o().catch(L=>{if(L=L instanceof Error?L:new Error(String(L)),l)return new Promise((N,O)=>{l(L,()=>N($()),()=>O(L),g+1)});throw L}).then(L=>E!==c&&c?c:(L&&(L.__esModule||L[Symbol.toStringTag]==="Module")&&(L=L.default),u=L,L)))};return Mt({name:"AsyncComponentWrapper",__asyncLoader:y,__asyncHydrate(E,L,N){const O=E.isConnected;let M=!1;(L.bu||(L.bu=[])).push(()=>M=!0);const b=()=>{M||!E.parentNode||O&&!E.isConnected||N()},_=s?()=>{const S=s(b,x=>Wc(E,x));S&&(L.bum||(L.bum=[])).push(S)}:b;u?_():y().then(()=>!L.isUnmounted&&_())},get __asyncResolved(){return u},setup(){const E=Oe;if(xs(E),u)return()=>An(u,E);const L=S=>{c=null,It(S,E,13,!n)};if(i&&E.suspense||gt)return y().then(S=>()=>An(S,E)).catch(S=>(L(S),()=>n?we(n,{error:S}):null));const N=He(!1),O=He(),M=He(!!a);let b,_;return Rn(()=>{b!=null&&clearTimeout(b),_!=null&&clearTimeout(_)}),a&&(_=setTimeout(()=>{E.isUnmounted||(M.value=!1)},a)),r!=null&&(b=setTimeout(()=>{if(!E.isUnmounted&&!N.value&&!O.value){const S=new Error(`Async component timed out after ${r}ms.`);L(S),O.value=S}},r)),y().then(()=>{E.isUnmounted||(N.value=!0,E.parent&&xn(E.parent.vnode)&&E.parent.update())}).catch(S=>{if(E.isUnmounted){c=null;return}L(S),O.value=S}),()=>{if(N.value&&u)return An(u,E);if(O.value&&n)return we(n,{error:O.value});if(t&&!M.value)return An(t,E)}}})}function An(e,o){const{ref:t,props:n,children:a,ce:s}=o.vnode,r=we(e,n,a);return r.ref=t,r.ce=s,delete o.vnode.ce,r}const xn=e=>e.type.__isKeepAlive;function qc(e,o){ur(e,"a",o)}function Kc(e,o){ur(e,"da",o)}function ur(e,o,t=Oe){const n=e.__wdc||(e.__wdc=()=>{let a=t;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(En(o,n,t),t){let a=t.parent;for(;a&&a.parent;)xn(a.parent.vnode)&&Xc(n,o,t,a),a=a.parent}}function Xc(e,o,t,n){const a=En(o,e,n,!0);Rn(()=>{rs(n[o],a)},t)}function En(e,o,t=Oe,n=!1){if(t){const a=t[e]||(t[e]=[]),s=o.__weh||(o.__weh=(...r)=>{po();const i=qt(t),l=no(o,t,e,r);return i(),go(),l});return n?a.unshift(s):a.push(s),s}}const xo=e=>(o,t=Oe)=>{(!gt||e==="sp")&&En(e,(...n)=>o(...n),t)},pr=xo("bm"),Cn=xo("m"),Yc=xo("bu"),Zc=xo("u"),Es=xo("bum"),Rn=xo("um"),Jc=xo("sp"),Qc=xo("rtg"),eu=xo("rtc");function ou(e,o=Oe){En("ec",e,o)}const dr="components";function Tn(e,o){return fr(dr,e,!0,o)||e}const gr=Symbol.for("v-ndc");function $r(e){return me(e)?fr(dr,e,!1)||e:e||gr}function fr(e,o,t=!0,n=!1){const a=qe||Oe;if(a){const s=a.type;{const i=Yr(s,!1);if(i&&(i===o||i===Ce(o)||i===rn(Ce(o))))return s}const r=hr(a[e]||s[e],o)||hr(a.appContext[e],o);return!r&&n?s:r}}function hr(e,o){return e&&(e[o]||e[Ce(o)]||e[rn(Ce(o))])}function mr(e,o,t,n){let a;const s=t,r=X(e);if(r||me(e)){const i=r&&Lo(e);let l=!1,c=!1;i&&(l=!We(e),c=wo(e),e=dn(e)),a=new Array(e.length);for(let u=0,g=e.length;uo(i,l,void 0,s));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;le?qr(e)?Un(e):Cs(e.parent):null,Ut=Le(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Cs(e.parent),$root:e=>Cs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>vr(e),$forceUpdate:e=>e.f||(e.f=()=>{Ls(e.update)}),$nextTick:e=>e.n||(e.n=kn.bind(e.proxy)),$watch:e=>Vc.bind(e)}),Rs=(e,o)=>e!==de&&!e.__isScriptSetup&&le(e,o),tu={get({_:e},o){if(o==="__v_skip")return!0;const{ctx:t,setupState:n,data:a,props:s,accessCache:r,type:i,appContext:l}=e;if(o[0]!=="$"){const $=r[o];if($!==void 0)switch($){case 1:return n[o];case 2:return a[o];case 4:return t[o];case 3:return s[o]}else{if(Rs(n,o))return r[o]=1,n[o];if(a!==de&&le(a,o))return r[o]=2,a[o];if(le(s,o))return r[o]=3,s[o];if(t!==de&&le(t,o))return r[o]=4,t[o];Ts&&(r[o]=0)}}const c=Ut[o];let u,g;if(c)return o==="$attrs"&&Fe(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[o]))return u;if(t!==de&&le(t,o))return r[o]=4,t[o];if(g=l.config.globalProperties,le(g,o))return g[o]},set({_:e},o,t){const{data:n,setupState:a,ctx:s}=e;return Rs(a,o)?(a[o]=t,!0):n!==de&&le(n,o)?(n[o]=t,!0):le(e.props,o)||o[0]==="$"&&o.slice(1)in e?!1:(s[o]=t,!0)},has({_:{data:e,setupState:o,accessCache:t,ctx:n,appContext:a,props:s,type:r}},i){let l;return!!(t[i]||e!==de&&i[0]!=="$"&&le(e,i)||Rs(o,i)||le(s,i)||le(n,i)||le(Ut,i)||le(a.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,o,t){return t.get!=null?e._.accessCache[o]=0:le(t,"value")&&this.set(e,o,t.value,null),Reflect.defineProperty(e,o,t)}};function _r(e){return X(e)?e.reduce((o,t)=>(o[t]=null,o),{}):e}let Ts=!0;function nu(e){const o=vr(e),t=e.proxy,n=e.ctx;Ts=!1,o.beforeCreate&&br(o.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:g,mounted:$,beforeUpdate:y,updated:E,activated:L,deactivated:N,beforeDestroy:O,beforeUnmount:M,destroyed:b,unmounted:_,render:S,renderTracked:x,renderTriggered:A,errorCaptured:P,serverPrefetch:k,expose:z,inheritAttrs:K,components:W,directives:ne,filters:J}=o;if(c&&su(c,n,null),r)for(const H in r){const Z=r[H];ee(Z)&&(n[H]=Z.bind(t))}if(a){const H=a.call(t,t);ce(H)&&(e.data=hn(H))}if(Ts=!0,s)for(const H in s){const Z=s[H],be=ee(Z)?Z.bind(t,t):ee(Z.get)?Z.get.bind(t,t):co,Me=!ee(Z)&&ee(Z.set)?Z.set.bind(t):co,ke=$e({get:be,set:Me});Object.defineProperty(n,H,{enumerable:!0,configurable:!0,get:()=>ke.value,set:Ae=>ke.value=Ae})}if(i)for(const H in i)yr(i[H],n,t,H);if(l){const H=ee(l)?l.call(t):l;Reflect.ownKeys(H).forEach(Z=>{ho(Z,H[Z])})}u&&br(u,e,"c");function Q(H,Z){X(Z)?Z.forEach(be=>H(be.bind(t))):Z&&H(Z.bind(t))}if(Q(pr,g),Q(Cn,$),Q(Yc,y),Q(Zc,E),Q(qc,L),Q(Kc,N),Q(ou,P),Q(eu,x),Q(Qc,A),Q(Es,M),Q(Rn,_),Q(Jc,k),X(z))if(z.length){const H=e.exposed||(e.exposed={});z.forEach(Z=>{Object.defineProperty(H,Z,{get:()=>t[Z],set:be=>t[Z]=be,enumerable:!0})})}else e.exposed||(e.exposed={});S&&e.render===co&&(e.render=S),K!=null&&(e.inheritAttrs=K),W&&(e.components=W),ne&&(e.directives=ne),k&&xs(e)}function su(e,o,t=co){X(e)&&(e=Os(e));for(const n in e){const a=e[n];let s;ce(a)?"default"in a?s=so(a.from||n,a.default,!0):s=so(a.from||n):s=so(a),ve(s)?Object.defineProperty(o,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):o[n]=s}}function br(e,o,t){no(X(e)?e.map(n=>n.bind(o.proxy)):e.bind(o.proxy),o,t)}function yr(e,o,t,n){let a=n.includes(".")?ar(t,n):()=>t[n];if(me(e)){const s=o[e];ee(s)&&Ao(a,s)}else if(ee(e))Ao(a,e.bind(t));else if(ce(e))if(X(e))e.forEach(s=>yr(s,o,t,n));else{const s=ee(e.handler)?e.handler.bind(t):o[e.handler];ee(s)&&Ao(a,s,e)}}function vr(e){const o=e.type,{mixins:t,extends:n}=o,{mixins:a,optionsCache:s,config:{optionMergeStrategies:r}}=e.appContext,i=s.get(o);let l;return i?l=i:!a.length&&!t&&!n?l=o:(l={},a.length&&a.forEach(c=>On(l,c,r,!0)),On(l,o,r)),ce(o)&&s.set(o,l),l}function On(e,o,t,n=!1){const{mixins:a,extends:s}=o;s&&On(e,s,t,!0),a&&a.forEach(r=>On(e,r,t,!0));for(const r in o)if(!(n&&r==="expose")){const i=au[r]||t&&t[r];e[r]=i?i(e[r],o[r]):o[r]}return e}const au={data:Pr,props:kr,emits:kr,methods:Bt,computed:Bt,beforeCreate:Ge,created:Ge,beforeMount:Ge,mounted:Ge,beforeUpdate:Ge,updated:Ge,beforeDestroy:Ge,beforeUnmount:Ge,destroyed:Ge,unmounted:Ge,activated:Ge,deactivated:Ge,errorCaptured:Ge,serverPrefetch:Ge,components:Bt,directives:Bt,watch:iu,provide:Pr,inject:ru};function Pr(e,o){return o?e?function(){return Le(ee(e)?e.call(this,this):e,ee(o)?o.call(this,this):o)}:o:e}function ru(e,o){return Bt(Os(e),Os(o))}function Os(e){if(X(e)){const o={};for(let t=0;to==="modelValue"||o==="model-value"?e.modelModifiers:e[`${o}Modifiers`]||e[`${Ce(o)}Modifiers`]||e[`${Je(o)}Modifiers`];function pu(e,o,...t){if(e.isUnmounted)return;const n=e.vnode.props||de;let a=t;const s=o.startsWith("update:"),r=s&&uu(n,o.slice(7));r&&(r.trim&&(a=t.map(u=>me(u)?u.trim():u)),r.number&&(a=a.map(ls)));let i,l=n[i=is(o)]||n[i=is(Ce(o))];!l&&s&&(l=n[i=is(Je(o))]),l&&no(l,e,6,a);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,no(c,e,6,a)}}const du=new WeakMap;function wr(e,o,t=!1){const n=t?du:o.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},i=!1;if(!ee(e)){const l=c=>{const u=wr(c,o,!0);u&&(i=!0,Le(r,u))};!t&&o.mixins.length&&o.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(ce(e)&&n.set(e,null),null):(X(s)?s.forEach(l=>r[l]=null):Le(r,s),ce(e)&&n.set(e,r),r)}function Nn(e,o){return!e||!en(o)?!1:(o=o.slice(2),o=o==="Once"?o:o.replace(/Once$/,""),le(e,o[0].toLowerCase()+o.slice(1))||le(e,Je(o))||le(e,o))}function kb(){}function Sr(e){const{type:o,vnode:t,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:g,data:$,setupState:y,ctx:E,inheritAttrs:L}=e,N=Ln(e);let O,M;try{if(t.shapeFlag&4){const _=a||n,S=_;O=mo(c.call(S,_,u,g,y,$,E)),M=i}else{const _=o;O=mo(_.length>1?_(g,{attrs:i,slots:r,emit:l}):_(g,null)),M=o.props?i:gu(i)}}catch(_){et.length=0,It(_,e,1),O=we(Eo)}let b=O;if(M&&L!==!1){const _=Object.keys(M),{shapeFlag:S}=b;_.length&&S&7&&(s&&_.some(on)&&(M=$u(M,s)),b=dt(b,M,!1,!0))}if(t.dirs&&(b=dt(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(t.dirs):t.dirs),t.transition){const _=wn(b.type)&&rr(b)||b;As(_,t.transition)}return O=b,Ln(N),O}const gu=e=>{let o;for(const t in e)(t==="class"||t==="style"||en(t))&&((o||(o={}))[t]=e[t]);return o},$u=(e,o)=>{const t={};for(const n in e)(!on(n)||!(n.slice(9)in o))&&(t[n]=e[n]);return t};function fu(e,o,t){const{props:n,children:a,component:s}=e,{props:r,children:i,patchFlag:l}=o,c=s.emitsOptions;if(o.dirs||o.transition)return!0;if(t&&l>=0){if(l&1024)return!0;if(l&16)return n?Ar(n,r,c):!!r;if(l&8){const u=o.dynamicProps;for(let g=0;gObject.create(Er),Rr=e=>Object.getPrototypeOf(e)===Er;function mu(e,o,t,n=!1){const a={},s=Cr();e.propsDefaults=Object.create(null),Tr(e,o,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);t?e.props=n?a:yc(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function _u(e,o,t,n){const{props:a,attrs:s,vnode:{patchFlag:r}}=e,i=re(a),[l]=e.propsOptions;let c=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let g=0;g{l=!0;const[$,y]=Or(g,o,!0);Le(r,$),y&&i.push(...y)};!t&&o.mixins.length&&o.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return ce(e)&&n.set(e,at),at;if(X(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Fs=e=>X(e)?e.map(mo):[mo(e)],yu=(e,o,t)=>{if(o._n)return o;const n=Mc((...a)=>Fs(o(...a)),t);return n._c=!1,n},Ir=(e,o,t)=>{const n=e._ctx;for(const a in e){if(Is(a))continue;const s=e[a];if(ee(s))o[a]=yu(a,s,n);else if(s!=null){const r=Fs(s);o[a]=()=>r}}},Fr=(e,o)=>{const t=Fs(o);e.slots.default=()=>t},Mr=(e,o,t)=>{for(const n in o)(t||!Is(n))&&(e[n]=o[n])},vu=(e,o,t)=>{const n=e.slots=Cr();if(e.vnode.shapeFlag&32){const a=o._;a?(Mr(n,o,t),t&&va(n,"_",a,!0)):Ir(o,n)}else o&&Fr(e,o)},Pu=(e,o,t)=>{const{vnode:n,slots:a}=e;let s=!0,r=de;if(n.shapeFlag&32){const i=o._;i?t&&i===1?s=!1:Mr(a,o,t):(s=!o.$stable,Ir(o,a)),r=o}else o&&(Fr(e,o),r={default:1});if(s)for(const i in a)!Is(i)&&r[i]==null&&delete a[i]},je=Au;function ku(e){return Lu(e)}function Lu(e,o){const t=cn();t.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:g,nextSibling:$,setScopeId:y=co,insertStaticContent:E}=e,L=(f,m,h,C=null,F=null,I=null,B=void 0,U=null,p=!!m.dynamicChildren)=>{if(f===m)return;f&&!Wt(f,m)&&(C=Fo(f),Ae(f,F,I,!0),f=null),m.patchFlag===-2&&(p=!1,m.dynamicChildren=null);const{type:d,ref:w,shapeFlag:R}=m;switch(d){case Vt:N(f,m,h,C);break;case Eo:O(f,m,h,C);break;case Ds:f==null&&M(m,h,C,B);break;case Ke:W(f,m,h,C,F,I,B,U,p);break;default:R&1?S(f,m,h,C,F,I,B,U,p):R&6?ne(f,m,h,C,F,I,B,U,p):(R&64||R&128)&&d.process(f,m,h,C,F,I,B,U,p,eo)}w!=null&&F?Dt(w,f&&f.ref,I,m||f,!m):w==null&&f&&f.ref!=null&&Dt(f.ref,null,I,f,!0)},N=(f,m,h,C)=>{if(f==null)n(m.el=i(m.children),h,C);else{const F=m.el=f.el;m.children!==f.children&&c(F,m.children)}},O=(f,m,h,C)=>{f==null?n(m.el=l(m.children||""),h,C):m.el=f.el},M=(f,m,h,C)=>{[f.el,f.anchor]=E(f.children,m,h,C,f.el,f.anchor)},b=({el:f,anchor:m},h,C)=>{let F;for(;f&&f!==m;)F=$(f),n(f,h,C),f=F;n(m,h,C)},_=({el:f,anchor:m})=>{let h;for(;f&&f!==m;)h=$(f),a(f),f=h;a(m)},S=(f,m,h,C,F,I,B,U,p)=>{if(m.type==="svg"?B="svg":m.type==="math"&&(B="mathml"),f==null)x(m,h,C,F,I,B,U,p);else{const d=f.el&&f.el._isVueCE?f.el:null;try{d&&d._beginPatch(),k(f,m,F,I,B,U,p)}finally{d&&d._endPatch()}}},x=(f,m,h,C,F,I,B,U)=>{let p,d;const{props:w,shapeFlag:R,transition:V,dirs:D}=f;if(p=f.el=r(f.type,I,w&&w.is,w),R&8?u(p,f.children):R&16&&P(f.children,p,null,C,F,Ms(f,I),B,U),D&&Zo(f,null,C,"created"),A(p,f,f.scopeId,B,C),w){for(const T in w)T!=="value"&&!At(T)&&s(p,T,null,w[T],I,C);"value"in w&&s(p,"value",null,w.value,I),(d=w.onVnodeBeforeMount)&&_o(d,C,f)}D&&Zo(f,null,C,"beforeMount");const v=wu(F,V);v&&V.beforeEnter(p),n(p,m,h),((d=w&&w.onVnodeMounted)||v||D)&&je(()=>{try{d&&_o(d,C,f),v&&V.enter(p),D&&Zo(f,null,C,"mounted")}finally{}},F)},A=(f,m,h,C,F)=>{if(h&&y(f,h),C)for(let I=0;I{for(let d=p;d{const U=m.el=f.el;let{patchFlag:p,dynamicChildren:d,dirs:w}=m;p|=f.patchFlag&16;const R=f.props||de,V=m.props||de;let D;if(h&&Qo(h,!1),(D=V.onVnodeBeforeUpdate)&&_o(D,h,m,f),w&&Zo(m,f,h,"beforeUpdate"),h&&Qo(h,!0),d&&(!f.dynamicChildren||f.dynamicChildren.length!==d.length)&&(p=0,B=!1,d=null),(R.innerHTML&&V.innerHTML==null||R.textContent&&V.textContent==null)&&u(U,""),d?z(f.dynamicChildren,d,U,h,C,Ms(m,F),I):B||Z(f,m,U,null,h,C,Ms(m,F),I,!1),p>0){if(p&16)K(U,R,V,h,F);else if(p&2&&R.class!==V.class&&s(U,"class",null,V.class,F),p&4&&s(U,"style",R.style,V.style,F),p&8){const v=m.dynamicProps;for(let T=0;T{D&&_o(D,h,m,f),w&&Zo(m,f,h,"updated")},C)},z=(f,m,h,C,F,I,B)=>{for(let U=0;U{if(m!==h){if(m!==de)for(const I in m)!At(I)&&!(I in h)&&s(f,I,m[I],null,F,C);for(const I in h){if(At(I))continue;const B=h[I],U=m[I];B!==U&&I!=="value"&&s(f,I,U,B,F,C)}"value"in h&&s(f,"value",m.value,h.value,F)}},W=(f,m,h,C,F,I,B,U,p)=>{const d=m.el=f?f.el:i(""),w=m.anchor=f?f.anchor:i("");let{patchFlag:R,dynamicChildren:V,slotScopeIds:D}=m;D&&(U=U?U.concat(D):D),f==null?(n(d,h,C),n(w,h,C),P(m.children||[],h,w,F,I,B,U,p)):R>0&&R&64&&V&&f.dynamicChildren&&f.dynamicChildren.length===V.length?(z(f.dynamicChildren,V,h,F,I,B,U),(m.key!=null||F&&m===F.subTree)&&Dr(f,m,!0)):Z(f,m,h,w,F,I,B,U,p)},ne=(f,m,h,C,F,I,B,U,p)=>{m.slotScopeIds=U,f==null?m.shapeFlag&512?F.ctx.activate(m,h,C,B,p):J(m,h,C,F,I,B,p):ae(f,m,p)},J=(f,m,h,C,F,I,B)=>{const U=f.component=Ou(f,C,F);if(xn(f)&&(U.ctx.renderer=eo),Nu(U,!1,B),U.asyncDep){if(F&&F.registerDep(U,Q,B),!f.el){const p=U.subTree=we(Eo);O(null,p,m,h),f.placeholder=p.el}}else Q(U,f,m,h,F,I,B)},ae=(f,m,h)=>{const C=m.component=f.component;if(fu(f,m,h))if(C.asyncDep&&!C.asyncResolved){H(C,m,h);return}else C.next=m,C.update();else m.el=f.el,C.vnode=m},Q=(f,m,h,C,F,I,B)=>{const U=()=>{if(f.isMounted){let{next:R,bu:V,u:D,parent:v,vnode:T}=f;{const Ie=Gr(f);if(Ie){R&&(R.el=T.el,H(f,R,B)),Ie.asyncDep.then(()=>{je(()=>{f.isUnmounted||d()},F)});return}}let q=R,te;Qo(f,!1),R?(R.el=T.el,H(f,R,B)):R=T,V&&ln(V),(te=R.props&&R.props.onVnodeBeforeUpdate)&&_o(te,v,R,T),Qo(f,!0);const he=Sr(f),Ve=f.subTree;f.subTree=he,L(Ve,he,g(Ve.el),Fo(Ve),f,F,I),R.el=he.el,q===null&&hu(f,he.el),D&&je(D,F),(te=R.props&&R.props.onVnodeUpdated)&&je(()=>_o(te,v,R,T),F)}else{let R;const{el:V,props:D}=m,{bm:v,m:T,parent:q,root:te,type:he}=f,Ve=Gt(m);Qo(f,!1),v&&ln(v),!Ve&&(R=D&&D.onVnodeBeforeMount)&&_o(R,q,m),Qo(f,!0);{te.ce&&te.ce._hasShadowRoot()&&te.ce._injectChildStyle(he,f.parent?f.parent.type:void 0);const Ie=f.subTree=Sr(f);L(null,Ie,h,C,f,F,I),m.el=Ie.el}if(T&&je(T,F),!Ve&&(R=D&&D.onVnodeMounted)){const Ie=m;je(()=>_o(R,q,Ie),F)}(m.shapeFlag&256||q&&Gt(q.vnode)&&q.vnode.shapeFlag&256)&&f.a&&je(f.a,F),f.isMounted=!0,m=h=C=null}};f.scope.on();const p=f.effect=new Ca(U);f.scope.off();const d=f.update=p.run.bind(p),w=f.job=p.runIfDirty.bind(p);w.i=f,w.id=f.uid,p.scheduler=()=>Ls(w),Qo(f,!0),d()},H=(f,m,h)=>{m.component=f;const C=f.vnode.props;f.vnode=m,f.next=null,_u(f,m.props,C,h),Pu(f,m.children,h),po(),er(f),go()},Z=(f,m,h,C,F,I,B,U,p=!1)=>{const d=f&&f.children,w=f?f.shapeFlag:0,R=m.children,{patchFlag:V,shapeFlag:D}=m;if(V>0){if(V&128){Me(d,R,h,C,F,I,B,U,p);return}else if(V&256){be(d,R,h,C,F,I,B,U,p);return}}D&8?(w&16&&lo(d,F,I),R!==d&&u(h,R)):w&16?D&16?Me(d,R,h,C,F,I,B,U,p):lo(d,F,I,!0):(w&8&&u(h,""),D&16&&P(R,h,C,F,I,B,U,p))},be=(f,m,h,C,F,I,B,U,p)=>{f=f||at,m=m||at;const d=f.length,w=m.length,R=Math.min(d,w);let V;for(V=0;Vw?lo(f,F,I,!0,!1,R):P(m,h,C,F,I,B,U,p,R)},Me=(f,m,h,C,F,I,B,U,p)=>{let d=0;const w=m.length;let R=f.length-1,V=w-1;for(;d<=R&&d<=V;){const D=f[d],v=m[d]=p?Co(m[d]):mo(m[d]);if(Wt(D,v))L(D,v,h,null,F,I,B,U,p);else break;d++}for(;d<=R&&d<=V;){const D=f[R],v=m[V]=p?Co(m[V]):mo(m[V]);if(Wt(D,v))L(D,v,h,null,F,I,B,U,p);else break;R--,V--}if(d>R){if(d<=V){const D=V+1,v=DV)for(;d<=R;)Ae(f[d],F,I,!0),d++;else{const D=d,v=d,T=new Map;for(d=v;d<=V;d++){const Ye=m[d]=p?Co(m[d]):mo(m[d]);Ye.key!=null&&T.set(Ye.key,d)}let q,te=0;const he=V-v+1;let Ve=!1,Ie=0;const st=new Array(he);for(d=0;d=he){Ae(Ye,F,I,!0);continue}let vo;if(Ye.key!=null)vo=T.get(Ye.key);else for(q=v;q<=V;q++)if(st[q-v]===0&&Wt(Ye,m[q])){vo=q;break}vo===void 0?Ae(Ye,F,I,!0):(st[vo-v]=d+1,vo>=Ie?Ie=vo:Ve=!0,L(Ye,m[vo],h,null,F,I,B,U,p),te++)}const ha=Ve?Su(st):at;for(q=ha.length-1,d=he-1;d>=0;d--){const Ye=v+d,vo=m[Ye],Vl=m[Ye+1],jl=Ye+1{const{el:I,type:B,transition:U,children:p,shapeFlag:d}=f;if(d&6){ke(f.component.subTree,m,h,C);return}if(d&128){f.suspense.move(m,h,C);return}if(d&64){B.move(f,m,h,eo);return}if(B===Ke){n(I,m,h);for(let R=0;RU.enter(I),F));else{const{leave:R,delayLeave:V,afterLeave:D}=U,v=()=>{f.ctx.isUnmounted?a(I):n(I,m,h)},T=()=>{const q=I._isLeaving||!!I[Ss];I._isLeaving&&I[Ss](!0),U.persisted&&!q?v():R(I,()=>{v(),D&&D()})};V?V(I,v,T):T()}else n(I,m,h)},Ae=(f,m,h,C=!1,F=!1)=>{const{type:I,props:B,ref:U,children:p,dynamicChildren:d,shapeFlag:w,patchFlag:R,dirs:V,cacheIndex:D,memo:v}=f;if(R===-2&&(F=!1),U!=null&&(po(),Dt(U,null,h,f,!0),go()),D!=null&&(m.renderCache[D]=void 0),w&256){m.ctx.deactivate(f);return}const T=w&1&&V,q=!Gt(f);let te;if(q&&(te=B&&B.onVnodeBeforeUnmount)&&_o(te,m,f),w&6)nt(f.component,h,C);else{if(w&128){f.suspense.unmount(h,C);return}T&&Zo(f,null,m,"beforeUnmount"),w&64?f.type.remove(f,m,h,eo,C):d&&!d.hasOnce&&(I!==Ke||R>0&&R&64)?lo(d,m,h,!1,!0):(I===Ke&&R&384||!F&&w&16)&&lo(p,m,h),C&&Ho(f)}const he=v!=null&&D==null;(q&&(te=B&&B.onVnodeUnmounted)||T||he)&&je(()=>{te&&_o(te,m,f),T&&Zo(f,null,m,"unmounted"),he&&(f.el=null)},h)},Ho=f=>{const{type:m,el:h,anchor:C,transition:F}=f;if(m===Ke){qo(h,C);return}if(m===Ds){_(f);return}const I=()=>{a(h),F&&!F.persisted&&F.afterLeave&&F.afterLeave()};if(f.shapeFlag&1&&F&&!F.persisted){const{leave:B,delayLeave:U}=F,p=()=>B(h,I);U?U(f.el,I,p):p()}else I()},qo=(f,m)=>{let h;for(;f!==m;)h=$(f),a(f),f=h;a(m)},nt=(f,m,h)=>{const{bum:C,scope:F,job:I,subTree:B,um:U,m:p,a:d}=f;Ur(p),Ur(d),C&&ln(C),F.stop(),I&&(I.flags|=8,Ae(B,f,m,h)),U&&je(U,m),je(()=>{f.isUnmounted=!0},m)},lo=(f,m,h,C=!1,F=!1,I=0)=>{for(let B=I;B{if(f.shapeFlag&6)return Fo(f.component.subTree);if(f.shapeFlag&128)return f.suspense.next();const m=$(f.anchor||f.el),h=m&&m[jc];return h?$(h):m};let Mo=!1;const Ko=(f,m,h)=>{let C;f==null?m._vnode&&(Ae(m._vnode,null,null,!0),C=m._vnode.component):L(m._vnode||null,f,m,null,null,null,h),m._vnode=f,Mo||(Mo=!0,er(C),or(),Mo=!1)},eo={p:L,um:Ae,m:ke,r:Ho,mt:J,mc:P,pc:Z,pbc:z,n:Fo,o:e};return{render:Ko,hydrate:void 0,createApp:cu(Ko)}}function Ms({type:e,props:o},t){return t==="svg"&&e==="foreignObject"||t==="mathml"&&e==="annotation-xml"&&o&&o.encoding&&o.encoding.includes("html")?void 0:t}function Qo({effect:e,job:o},t){t?(e.flags|=32,o.flags|=4):(e.flags&=-33,o.flags&=-5)}function wu(e,o){return(!e||e&&!e.pendingBranch)&&o&&!o.persisted}function Dr(e,o,t=!1){const n=e.children,a=o.children;if(X(n)&&X(a))for(let s=0;s>1,e[t[i]]0&&(o[n]=t[s-1]),t[s]=n)}}for(s=t.length,r=t[s-1];s-- >0;)t[s]=r,r=o[r];return t}function Gr(e){const o=e.subTree.component;if(o)return o.asyncDep&&!o.asyncResolved?o:Gr(o)}function Ur(e){if(e)for(let o=0;oe.__isSuspense;function Au(e,o){o&&o.pendingBranch?X(e)?o.effects.push(...e):o.effects.push(e):Fc(e)}const Ke=Symbol.for("v-fgt"),Vt=Symbol.for("v-txt"),Eo=Symbol.for("v-cmt"),Ds=Symbol.for("v-stc"),et=[];let Xe=null;function ue(e=!1){et.push(Xe=e?null:[])}function jr(){et.pop(),Xe=et[et.length-1]||null}let jt=1;function In(e,o=!1){jt+=e,e<0&&Xe&&o&&(Xe.hasOnce=!0)}function zr(e){return e.dynamicChildren=jt>0?Xe||at:null,jr(),jt>0&&Xe&&Xe.push(e),e}function Pe(e,o,t,n,a,s){return zr(G(e,o,t,n,a,s,!0))}function zt(e,o,t,n,a){return zr(we(e,o,t,n,a,!0))}function Fn(e){return e?e.__v_isVNode===!0:!1}function Wt(e,o){return e.type===o.type&&e.key===o.key}const Wr=({key:e})=>e??null,Mn=({ref:e,ref_key:o,ref_for:t})=>(typeof e=="number"&&(e=""+e),e!=null?me(e)||ve(e)||ee(e)?{i:qe,r:e,k:o,f:!!t}:e:null);function G(e,o=null,t=null,n=0,a=null,s=e===Ke?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:o,key:o&&Wr(o),ref:o&&Mn(o),scopeId:nr,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:qe};return i?(Dn(l,t),s&128&&e.normalize(l)):t&&(l.shapeFlag|=me(t)?8:16),jt>0&&!r&&Xe&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Xe.push(l),l}const we=xu;function xu(e,o=null,t=null,n=0,a=null,s=!1){if((!e||e===gr)&&(e=Eo),Fn(e)){const i=dt(e,o,!0);return t&&Dn(i,t),jt>0&&!s&&Xe&&(i.shapeFlag&6?Xe[Xe.indexOf(e)]=i:Xe.push(i)),i.patchFlag=-2,i}if(Uu(e)&&(e=e.__vccOpts),o){o=Eu(o);let{class:i,style:l}=o;i&&!me(i)&&(o.class=rt(i)),ce(l)&&(_n(l)&&!X(l)&&(l=Le({},l)),o.style=cs(l))}const r=me(e)?1:Vr(e)?128:wn(e)?64:ce(e)?4:ee(e)?2:0;return G(e,o,t,n,a,r,s,!0)}function Eu(e){return e?_n(e)||Rr(e)?Le({},e):e:null}function dt(e,o,t=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=o?Cu(a||{},o):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Wr(c),ref:o&&o.ref?t&&s?X(s)?s.concat(Mn(o)):[s,Mn(o)]:Mn(o):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:o&&e.type!==Ke?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&dt(e.ssContent),ssFallback:e.ssFallback&&dt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&As(u,l.clone(u)),u}function Te(e=" ",o=0){return we(Vt,null,e,o)}function Ue(e="",o=!1){return o?(ue(),zt(Eo,null,e)):we(Eo,null,e)}function mo(e){return e==null||typeof e=="boolean"?we(Eo):X(e)?we(Ke,null,e.slice()):Fn(e)?Co(e):we(Vt,null,String(e))}function Co(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:dt(e)}function Dn(e,o){let t=0;const{shapeFlag:n}=e;if(o==null)o=null;else if(X(o))t=16;else if(typeof o=="object")if(n&65){const a=o.default;a&&(a._c&&(a._d=!1),Dn(e,a()),a._c&&(a._d=!0));return}else{t=32;const a=o._;!a&&!Rr(o)?o._ctx=qe:a===3&&qe&&(qe.slots._===1?o._=1:(o._=2,e.patchFlag|=1024))}else if(ee(o)){if(n&65){Dn(e,{default:o});return}o={default:o,_ctx:qe},t=32}else o=String(o),n&64?(t=16,o=[Te(o)]):t=8;e.children=o,e.shapeFlag|=t}function Cu(...e){const o={};for(let t=0;tOe||qe;let Gn,Ht;{const e=cn(),o=(t,n)=>{let a;return(a=e[t])||(a=e[t]=[]),a.push(n),s=>{a.length>1?a.forEach(r=>r(s)):a[0](s)}};Gn=o("__VUE_INSTANCE_SETTERS__",t=>Oe=t),Ht=o("__VUE_SSR_SETTERS__",t=>gt=t)}const qt=e=>{const o=Oe;return Gn(e),e.scope.on(),()=>{e.scope.off(),Gn(o)}},Hr=()=>{Oe&&Oe.scope.off(),Gn(null)};function qr(e){return e.vnode.shapeFlag&4}let gt=!1;function Nu(e,o=!1,t=!1){o&&Ht(o);const{props:n,children:a}=e.vnode,s=qr(e);mu(e,n,s,o),vu(e,a,t||o);const r=s?Iu(e,o):void 0;return o&&Ht(!1),r}function Iu(e,o){const t=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,tu);const{setup:n}=t;if(n){po();const a=e.setupContext=n.length>1?Mu(e):null,s=qt(e),r=ct(n,e,0,[e.props,a]),i=ba(r);if(go(),s(),(i||e.sp)&&!Gt(e)&&xs(e),i){if(r.then(Hr,Hr),o)return r.then(l=>{Ht(!0);try{Kr(e,l,o)}finally{Ht(!1)}}).catch(l=>{It(l,e,0)});e.asyncDep=r}else Kr(e,r)}else Xr(e)}function Kr(e,o,t){ee(o)?e.type.__ssrInlineRender?e.ssrRender=o:e.render=o:ce(o)&&(e.setupState=Ya(o)),Xr(e)}function Xr(e,o,t){const n=e.type;e.render||(e.render=n.render||co);{const a=qt(e);po();try{nu(e)}finally{go(),a()}}}const Fu={get(e,o){return Fe(e,"get",""),e[o]}};function Mu(e){const o=t=>{e.exposed=t||{}};return{attrs:new Proxy(e.attrs,Fu),slots:e.slots,emit:e.emit,expose:o}}function Un(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ya(Ot(e.exposed)),{get(o,t){if(t in o)return o[t];if(t in Ut)return Ut[t](e)},has(o,t){return t in o||t in Ut}})):e.proxy}const Du=/(?:^|[-_])\w/g,Gu=e=>e.replace(Du,o=>o.toUpperCase()).replace(/[-_]/g,"");function Yr(e,o=!0){return ee(e)?e.displayName||e.name:e.name||o&&e.__name}function Zr(e,o,t=!1){let n=Yr(o);if(!n&&o.__file){const a=o.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=s=>{for(const r in s)if(s[r]===o)return r};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?Gu(n):t?"App":"Anonymous"}function Uu(e){return ee(e)&&"__vccOpts"in e}const $e=(e,o)=>Ac(e,o,gt);function Jr(e,o,t){try{In(-1);const n=arguments.length;return n===2?ce(o)&&!X(o)?Fn(o)?we(e,null,[o]):we(e,o):we(e,null,o):(n>3?t=Array.prototype.slice.call(arguments,2):n===3&&Fn(t)&&(t=[t]),we(e,o,t))}finally{In(1)}}const Bu="3.5.42";/** -* @vue/runtime-dom v3.5.42 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Gs;const Qr=typeof window<"u"&&window.trustedTypes;if(Qr)try{Gs=Qr.createPolicy("vue",{createHTML:e=>e})}catch{}const ei=Gs?e=>Gs.createHTML(e):e=>e,Vu="http://www.w3.org/2000/svg",ju="http://www.w3.org/1998/Math/MathML",To=typeof document<"u"?document:null,oi=To&&To.createElement("template"),zu={insert:(e,o,t)=>{o.insertBefore(e,t||null)},remove:e=>{const o=e.parentNode;o&&o.removeChild(e)},createElement:(e,o,t,n)=>{const a=o==="svg"?To.createElementNS(Vu,e):o==="mathml"?To.createElementNS(ju,e):t?To.createElement(e,{is:t}):To.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>To.createTextNode(e),createComment:e=>To.createComment(e),setText:(e,o)=>{e.nodeValue=o},setElementText:(e,o)=>{e.textContent=o},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>To.querySelector(e),setScopeId(e,o){e.setAttribute(o,"")},insertStaticContent(e,o,t,n,a,s){const r=t?t.previousSibling:o.lastChild;if(a&&(a===s||a.nextSibling))for(;o.insertBefore(a.cloneNode(!0),t),!(a===s||!(a=a.nextSibling)););else{oi.innerHTML=ei(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=oi.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}o.insertBefore(i,t)}return[r?r.nextSibling:o.firstChild,t?t.previousSibling:o.lastChild]}},Wu=Symbol("_vtc");function Hu(e,o,t){const n=e[Wu];n&&(o=(o?[o,...n]:[...n]).join(" ")),o==null?e.removeAttribute("class"):t?e.setAttribute("class",o):e.className=o}const ti=Symbol("_vod"),qu=Symbol("_vsh"),Ku=Symbol(""),Xu=/(?:^|;)\s*display\s*:/;function Yu(e,o,t){const n=e.style,a=me(t);let s=!1;if(t&&!a){if(o)if(me(o))for(const r of o.split(";")){const i=r.slice(0,r.indexOf(":")).trim();t[i]==null&&Kt(n,i,"")}else for(const r in o)t[r]==null&&Kt(n,r,"");for(const r in t){r==="display"&&(s=!0);const i=t[r];i!=null?Ju(e,r,!me(o)&&o?o[r]:void 0,i)||Kt(n,r,i):Kt(n,r,"")}}else if(a){if(o!==t){const r=n[Ku];r&&(t+=";"+r),n.cssText=t,s=Xu.test(t)}}else o&&e.removeAttribute("style");ti in e&&(e[ti]=s?n.display:"",e[qu]&&(n.display="none"))}const Bn=/\s*!important$/;function Kt(e,o,t){if(X(t))t.forEach(n=>Kt(e,o,n));else if(t==null&&(t=""),o.startsWith("--"))Bn.test(t)?e.setProperty(o,t.replace(Bn,""),"important"):e.setProperty(o,t);else{const n=Zu(e,o);Bn.test(t)?e.setProperty(Je(n),t.replace(Bn,""),"important"):e[n]=t}}const ni=["Webkit","Moz","ms"],Us={};function Zu(e,o){const t=Us[o];if(t)return t;let n=Ce(o);if(n!=="filter"&&n in e)return Us[o]=n;n=rn(n);for(let a=0;aBs||(sp.then(()=>Bs=0),Bs=Date.now());function rp(e,o){const t=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=t.attached)return;const a=t.value;if(X(a)){const s=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{s.call(n),n._stopped=!0};const r=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ip=(e,o,t,n,a,s)=>{const r=a==="svg";o==="class"?Hu(e,n,r):o==="style"?Yu(e,t,n):en(o)?on(o)||ep(e,o,t,n,s):(o[0]==="."?(o=o.slice(1),!0):o[0]==="^"?(o=o.slice(1),!1):lp(e,o,n,r))?(ri(e,o,n),!e.tagName.includes("-")&&(o==="value"||o==="checked"||o==="selected")&&ai(e,o,n,r,s,o!=="value")):e._isVueCE&&(cp(e,o)||e._def.__asyncLoader&&(/[A-Z]/.test(o)||!me(n)))?ri(e,Ce(o),n,s,o):(o==="true-value"?e._trueValue=n:o==="false-value"&&(e._falseValue=n),ai(e,o,n,r))};function lp(e,o,t,n){if(n)return!!(o==="innerHTML"||o==="textContent"||o in e&&li(o)&&ee(t));if(o==="spellcheck"||o==="draggable"||o==="translate"||o==="autocorrect"||o==="sandbox"&&e.tagName==="IFRAME"||o==="form"||o==="list"&&e.tagName==="INPUT"||o==="type"&&e.tagName==="TEXTAREA")return!1;if(o==="width"||o==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return li(o)&&me(t)?!1:o in e}function cp(e,o){const t=e._def.props;if(!t)return!1;const n=Ce(o);return Array.isArray(t)?t.some(a=>Ce(a)===n):Object.keys(t).some(a=>Ce(a)===n)}const ci={};function up(e,o,t){let n=Mt(e,o);nn(n)&&(n=Le({},n,o));class a extends Vs{constructor(r){super(n,r,t)}}return a.def=n,a}const pp=typeof HTMLElement<"u"?HTMLElement:class{};class Vs extends pp{constructor(o,t={},n=hi){super(),this._def=o,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==hi?this._root=this.shadowRoot:o.shadowRoot!==!1?(this.attachShadow(Le({},o.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let o=this;for(;o=o&&(o.assignedSlot||o.parentNode||o.host);)if(o instanceof Vs){this._parent=o;break}this._instance||(this._resolved?this._mount(this._def):o&&o._pendingResolve?this._pendingResolve=o._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(o=this._parent){o&&(this._instance.parent=o._instance,this._inheritParentContext(o))}_inheritParentContext(o=this._parent){o&&this._app&&Object.setPrototypeOf(this._app._context.provides,o._instance.provides)}disconnectedCallback(){this._connected=!1,kn(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(o){for(const t of o)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:s,styles:r}=n;let i;if(s&&!X(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Pa(this._props[l])),(i||(i=Object.create(null)))[Ce(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(r),this._mount(n)},t=this._def.__asyncLoader;if(t)return this._pendingResolve=t().then(n=>{n.configureApp=this._def.configureApp,o(this._def=n,!0)}),this._pendingResolve;o(this._def)}_mount(o){this._app=this._createApp(o),this._inheritParentContext(),o.configureApp&&o.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const t=this._instance&&this._instance.exposed;if(t)for(const n in t)le(this,n)||Object.defineProperty(this,n,{get:()=>bn(t[n])})}_resolveProps(o){const{props:t}=o,n=X(t)?t:Object.keys(t||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(Ce))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(s){this._setProp(a,s,!0,!this._patching)}})}_setAttr(o){if(o.startsWith("data-v-"))return;const t=this.hasAttribute(o);let n=t?this.getAttribute(o):ci;const a=Ce(o);t&&this._numberProps&&this._numberProps[a]&&(n=Pa(n)),this._setProp(a,n,!1,!0)}_getProp(o){return this._props[o]}_setProp(o,t,n=!0,a=!1){if(t!==this._props[o]&&(this._dirty=!0,t===ci?delete this._props[o]:(this._props[o]=t,o==="key"&&this._app&&(this._app._ceVNode.key=t)),a&&this._instance&&this._update(),n)){const s=this._ob;s&&(this._processMutations(s.takeRecords()),s.disconnect()),t===!0?this.setAttribute(Je(o),""):typeof t=="string"||typeof t=="number"?this.setAttribute(Je(o),t+""):t||this.removeAttribute(Je(o)),s&&s.observe(this,{attributes:!0})}}_update(){const o=this._createVNode();this._app&&(o.appContext=this._app._context),hp(o,this._root)}_createVNode(){const o={};this.shadowRoot||(o.onVnodeMounted=o.onVnodeUpdated=this._renderSlots.bind(this));const t=we(this._def,Le(o,this._props));return this._instance||(t.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(s,r)=>{this.dispatchEvent(new CustomEvent(s,nn(r[0])?Le({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Je(s)!==s&&a(Je(s),r)},this._setParent()}),t}_applyStyles(o,t,n){if(!o)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}const a=this._nonce,s=this.shadowRoot,r=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(s);let i=null;for(let l=o.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=o[l],s.insertBefore(c,i||r),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),t&&this._styleAnchors.set(t,c))}}_getStyleAnchor(o){if(!o)return null;const t=this._styleAnchors.get(o);return t&&t.parentNode===this.shadowRoot?t:(t&&this._styleAnchors.delete(o),null)}_getRootStyleInsertionAnchor(o){for(let t=0;t{const o=e.props["onUpdate:modelValue"]||!1;return X(o)?t=>ln(o,t):o};function dp(e){e.target.composing=!0}function pi(e){const o=e.target;o.composing&&(o.composing=!1,o.dispatchEvent(new Event("input")))}const Vn=Symbol("_assign"),jn=Symbol("_initialValue");function js(e,o,t){return o&&(e=e.trim()),t&&(e=ls(e)),e}const di={created(e,{modifiers:{lazy:o,trim:t,number:n}},a){e.parentNode&&(e.type==="text"?e[jn]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[jn]=e.defaultValue.replace(/\r\n?/g,` -`))),e[Vn]=ui(a);const s=n||a.props&&a.props.type==="number";$t(e,o?"change":"input",r=>{r.target.composing||e[Vn](js(e.value,t,s))}),(t||s)&&$t(e,"change",()=>{e.value=js(e.value,t,s)}),o||($t(e,"compositionstart",dp),$t(e,"compositionend",pi),$t(e,"change",pi))},mounted(e,{value:o,modifiers:{trim:t,number:n}}){const a=o??"",s=e[jn];delete e[jn],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[Vn](js(e.value,t,n)):e.value=a},beforeUpdate(e,{value:o,oldValue:t,modifiers:{lazy:n,trim:a,number:s}},r){if(e[Vn]=ui(r),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?ls(e.value):e.value,l=o??"";if(i===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(n&&o===t||a&&e.value.trim()===l)||(e.value=l)}},gp=["ctrl","shift","alt","meta"],$p={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,o)=>gp.some(t=>e[`${t}Key`]&&!o.includes(t))},gi=(e,o)=>{if(!e)return e;const t=e._withMods||(e._withMods={}),n=o.join(".");return t[n]||(t[n]=(a,...s)=>{for(let r=0;r{fi().render(...e)},hi=(...e)=>{const o=fi().createApp(...e),{mount:t}=o;return o.mount=n=>{const a=_p(n);if(!a)return;const s=o._component;!ee(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=t(a,!1,mp(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},o};function mp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function _p(e){return me(e)?document.querySelector(e):e}/*! - * pinia v2.3.1 - * (c) 2025 Eduardo San Martin Morote - * @license MIT - */let mi;const zn=e=>mi=e,_i=Symbol();function zs(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Xt;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Xt||(Xt={}));function bp(){const e=ps(!0),o=e.run(()=>He({}));let t=[],n=[];const a=Ot({install(s){zn(a),a._a=s,s.provide(_i,a),s.config.globalProperties.$pinia=a,n.forEach(r=>t.push(r)),n=[]},use(s){return this._a?t.push(s):n.push(s),this},_p:t,_a:null,_e:e,_s:new Map,state:o});return a}const bi=()=>{};function yi(e,o,t,n=bi){e.push(o);const a=()=>{const s=e.indexOf(o);s>-1&&(e.splice(s,1),n())};return!t&&Ea()&&oc(a),a}function ft(e,...o){e.slice().forEach(t=>{t(...o)})}const yp=e=>e(),vi=Symbol(),Ws=Symbol();function Hs(e,o){e instanceof Map&&o instanceof Map?o.forEach((t,n)=>e.set(n,t)):e instanceof Set&&o instanceof Set&&o.forEach(e.add,e);for(const t in o){if(!o.hasOwnProperty(t))continue;const n=o[t],a=e[t];zs(a)&&zs(n)&&e.hasOwnProperty(t)&&!ve(n)&&!Lo(n)?e[t]=Hs(a,n):e[t]=n}return e}const vp=Symbol();function Pp(e){return!zs(e)||!e.hasOwnProperty(vp)}const{assign:Uo}=Object;function kp(e){return!!(ve(e)&&e.effect)}function Lp(e,o,t,n){const{state:a,actions:s,getters:r}=o,i=t.state.value[e];let l;function c(){i||(t.state.value[e]=a?a():{});const u=kc(t.state.value[e]);return Uo(u,s,Object.keys(r||{}).reduce((g,$)=>(g[$]=Ot($e(()=>{zn(t);const y=t._s.get(e);return r[$].call(y,y)})),g),{}))}return l=Pi(e,c,o,t,n,!0),l}function Pi(e,o,t={},n,a,s){let r;const i=Uo({actions:{}},t),l={deep:!0};let c,u,g=[],$=[],y;const E=n.state.value[e];!s&&!E&&(n.state.value[e]={});let L;function N(P){let k;c=u=!1,typeof P=="function"?(P(n.state.value[e]),k={type:Xt.patchFunction,storeId:e,events:y}):(Hs(n.state.value[e],P),k={type:Xt.patchObject,payload:P,storeId:e,events:y});const z=L=Symbol();kn().then(()=>{L===z&&(c=!0)}),u=!0,ft(g,k,n.state.value[e])}const O=s?function(){const{state:k}=t,z=k?k():{};this.$patch(K=>{Uo(K,z)})}:bi;function M(){r.stop(),g=[],$=[],n._s.delete(e)}const b=(P,k="")=>{if(vi in P)return P[Ws]=k,P;const z=function(){zn(n);const K=Array.from(arguments),W=[],ne=[];function J(H){W.push(H)}function ae(H){ne.push(H)}ft($,{args:K,name:z[Ws],store:S,after:J,onError:ae});let Q;try{Q=P.apply(this&&this.$id===e?this:S,K)}catch(H){throw ft(ne,H),H}return Q instanceof Promise?Q.then(H=>(ft(W,H),H)).catch(H=>(ft(ne,H),Promise.reject(H))):(ft(W,Q),Q)};return z[vi]=!0,z[Ws]=k,z},_={_p:n,$id:e,$onAction:yi.bind(null,$),$patch:N,$reset:O,$subscribe(P,k={}){const z=yi(g,P,k.detached,()=>K()),K=r.run(()=>Ao(()=>n.state.value[e],W=>{(k.flush==="sync"?u:c)&&P({storeId:e,type:Xt.direct,events:y},W)},Uo({},l,k)));return z},$dispose:M},S=hn(_);n._s.set(e,S);const A=(n._a&&n._a.runWithContext||yp)(()=>n._e.run(()=>(r=ps()).run(()=>o({action:b}))));for(const P in A){const k=A[P];if(ve(k)&&!kp(k)||Lo(k))s||(E&&Pp(k)&&(ve(k)?k.value=E[P]:Hs(k,E[P])),n.state.value[e][P]=k);else if(typeof k=="function"){const z=b(k,P);A[P]=z,i.actions[P]=k}}return Uo(S,A),Uo(re(S),A),Object.defineProperty(S,"$state",{get:()=>n.state.value[e],set:P=>{N(k=>{Uo(k,P)})}}),n._p.forEach(P=>{Uo(S,r.run(()=>P({store:S,app:n._a,pinia:n,options:i})))}),E&&s&&t.hydrate&&t.hydrate(S.$state,E),c=!0,u=!0,S}/*! #__NO_SIDE_EFFECTS__ */function Wn(e,o,t){let n,a;const s=typeof o=="function";typeof e=="string"?(n=e,a=s?t:o):(a=e,n=e.id);function r(i,l){const c=Dc();return i=i||(c?so(_i,null):null),i&&zn(i),i=mi,i._s.has(n)||(s?Pi(n,o,a,i):Lp(n,a,i)),i._s.get(n)}return r.$id=n,r}const qs="__doxaMapToken",Ks="doxa:map-token",ki="__doxaMapTokenBridge",ht=()=>{if(typeof window>"u")return"";const e=window[qs];return typeof e=="string"?e:""};function Li(e){if(typeof window>"u")return"";const o=typeof e=="string"?e.trim():"";if(!o||o===ht())return ht();window[qs]=o;try{window.dispatchEvent(new CustomEvent(Ks,{detail:o}))}catch{}return o}function wp(){if(typeof window>"u"||window[ki])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!ht()&&(window[qs]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return ht()},set(o){Li(o)}}),window[ki]=!0}catch{}}function Sp(){wp();const e=He(ht());if(typeof window<"u"){const o=()=>{e.value=ht()};window.addEventListener(Ks,o);try{Es(()=>window.removeEventListener(Ks,o))}catch{}}return e}function Ap(e){return Hc({loader:e,onError(o,t,n,a){a<=3?setTimeout(t,a*500):n()}})}const xp={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},Ep={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},Cp={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف"},Rp={title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},Tp={research_controls:"أدوات البحث",clustering:"التجميع",filters:"عوامل التصفية",pin_dim:"خفوت النقاط",export_poster:"تصدير ملصق…",reload_data:"إعادة تحميل البيانات",off:"إيقاف",native:"أصلي",mst:"الشجرة الممتدة",network:"شبكة",off_desc:"إظهار كل نقطة على حدة",native_desc:"تجميع دوائر Mapbox (الأسرع)",mst_desc:"شبكات تقارب بالشجرة الممتدة الصغرى",network_desc:"خطوط ربط بأقرب جار",search_languages:"ابحث عن اللغات…",search_religions:"ابحث عن الأديان…",reset_all:"إعادة تعيين الكل",no_languages:"لم تُحمَّل أي لغات بعد",no_religions:"لم تُحمَّل أي أديان بعد",unadopted:"غير متبنّى",min:"الأدنى",max:"الأعلى",adopted:"متبنَّاة",adoption:"التبني",engaged:"مُخْدُومَة",engagement:"المشاركة",unengaged:"يحتاج إلى انخراط",language:"اللغة",religion:"الدين",population:"السكان",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",close:"إغلاق",clear:"مسح",map_controls:"أدوات التحكم بالخريطة"},Op={bloc:"كتلة التقارب",gospel_access:"الوصول إلى الإنجيل",people:"الشعوب",people_name:"الشعب (الاسم)",praying:"يصلّون",religion_family:"عائلة الأديان",search_language:"ابحث عن لغة",search_people:"ابحث عن شعب",search_place:"ابحث عن مكان",search_religion:"ابحث عن دين",upgs_in_scope:"الشعوب ضمن النطاق",countries_touched:"الدول المشمولة",unreached:"غير موصولين",sum_population:"مجموع السكان",sum_praying:"مجموع المصلّين",charts:"الرسوم البيانية",table:"الجدول",cluster:"المجموعة",country:"الدولة",engagement:"المشاركة",language:"اللغة",language_family:"عائلة اللغة",people_group:"الشعب",population:"السكان",prayer:"الصلاة",region:"المنطقة",religion:"الدين",status:"الحالة",adopted:"متبنَّاة",filters:"عوامل التصفية",gospel_resources:"موارد الإنجيل",map:"الخريطة",search_placeholder:"ابحث عن الشعوب والأماكن واللغات والأديان…",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",map_controls:"أدوات التحكم بالخريطة",close:"إغلاق",clear:"مسح",dashboard_title:"لوحة البحث الشاملة",align_dashboard:"محاذاة اللوحة",align_dashboard_tip:"إعادة تخطيط اللوحة إلى المحاذاة الافتراضية",selected:"المحدد",world:"العالم",vertical_legend:"مفتاح عمودي",groups_in_scope:"مجموعة ضمن النطاق",filter_by:"تصفية حسب",remove_filter:"إزالة التصفية",groups:"مجموعة",expand:"توسيع",collapse:"طيّ",place:"المكان"},Np={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Ip={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"الملاحظات التوضيحية أدناه باللغة الإنجليزية."},mode:{gap:"الفجوة",coverage:"الموارد المتوفرة"},search:{placeholder:"ابحث عن شعب أو لغة أو رمز ISO",clear:"مسح البحث",none:"لا شيء يطابق هذا الاسم أو اللغة أو الرمز.",placeholderShort:"شعب أو لغة أو رمز ISO"},legend:{title:"شعوب غير مبلَّغة ولا يوجد لها أي مورد إنجيلي",band60:"⁦60%+⁩ بلا أي مورد",band30:"⁦30–59%⁩",bandSome:"بعض الشعوب",bandAll:"كل الشعوب لديها شيء",tier2:"الكتاب المقدس والفيلم",tier1:"وُجد بعض الموارد",tier0:"لا شيء",hnr:"يمكنهم السماع، ولا يوجد نص",showAll:"عرض كل الشعوب",titleCoverage:"شعوب غير مبلَّغة ويوجد لها بعض الموارد الإنجيلية",cov80:"⁦80%+⁩ لديهم شيء",cov50:"⁦50–79%⁩",cov1:"⁦1–49%⁩",cov0:"لا شيء لأي منهم",tallyEach:"كل",tallyIs:"هو شعب واحد —",tallyOf:"منها،",tallyLink:"لديها رابط",doxa0:"لدى الجميع شيء",doxa1:"‪1–4‬ بلا شيء",doxa5:"‪5–14‬",doxa15:"‪15–39‬",doxa40:"‪40+‬",cvd1:"‪1–4‬ لديهم موارد",cvd5:"‪5–14‬",cvd15:"‪15–39‬",cvd40:"‪40+‬",onMap:"شعوب دوكسا على هذه الخريطة",notPlaced:"ضمن القائمة، بلا موقع بعد",outOfScope:"لا توجد شعوب دوكسا — غير ملوَّنة"},tabs:{groups:"أكبر الشعوب",countries:"حسب البلد",regions:"حسب المنطقة",noprayer:"لا أحد يصلّي",hnr:"يسمعون، بلا نص"},stat:{language:"اللغة",population:"عدد السكان",countries:"البلدان",peopleGroups:"الشعوب",noResource:"لا يوجد أي مورد",peopleAffected:"الأشخاص المتأثرون",haveScripture:"لديهم الكتاب المقدس",haveFilm:"لديهم الفيلم",haveAudio:"لديهم كتاب مقدس مسموع",signLanguages:"لغات الإشارة",growingUnreached:"متزايدون وغير مبلَّغين",deathsDay:"الوفيات المقدَّرة يوميًا"},sheet:{ownLanguage:"بلغتهم الأم",close:"إغلاق",loading:"جارٍ تحميل الموارد…",pray:"صلِّ من أجل",everyResource:"كل الموارد بـ",alsoSpeak:"يتحدثون أيضًا"},res:{scripture:"الكتاب المقدس",film:"الفيلم",audio:"صوتي",bibleVideo:"فيديو كتابي",bibleStories:"Open Bible Stories",gospelAudio:"صوتيات الإنجيل",gospelPresentation:"عرض للإنجيل",scriptureEarth:"Scripture Earth",training:"تدريب على التلمذة",jesusFilm:"فيلم يسوع",audioScripture:"الكتاب المقدس الصوتي",bibleStoriesPlain:"قصص الكتاب المقدس"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"},guide:{dotVsCountry:"كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",noneFoundShort:"«لا شيء» تعني غير موجود في المصادر التي بحثنا فيها — وليست دليلًا على عدم وجوده.",tapCountry:"اضغط على بلد لترى الموارد الفعلية، شعبًا شعبًا."},tables:{title:"موارد الإنجيل — البيانات",showing:"عرض",of:"من",for:"لـ",filteredTo:"مصفّى حسب",showAll:"عرض كل الموارد",t_doxa:"دوكسا — الوصول إلى الإنجيل",t_links:"كل مورد ورابطه",t_nothing:"حيث لا يوجد شيء",t_countrygap:"الفجوة حسب البلد",t_translation:"يسمعون ولا نص لديهم",t_translationcountry:"أين نترجم",t_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"},list:{noText:"بلا نص مقدس",hasScripture:"لديها الكتاب المقدس",allLanguages:"كل اللغات",peopleGroup:"شعب",peopleGroups:"شعوب",scriptureHere:"الكتاب المقدس بهذه اللغة"},columns:{"People group":"الشعب",Country:"البلد",Region:"المنطقة",Language:"اللغة",Population:"عدد السكان",Religion:"الديانة","Gospel access":"الوصول إلى الإنجيل",Resources:"الموارد",Scripture:"الكتاب المقدس","Bible video":"فيديو كتابي","Gospel presentation":"عرض للإنجيل",Countries:"البلدان","People groups":"الشعوب"},charts:{scriptureAny:"الكتاب المقدس (أي نوع)",fullBible:"الكتاب المقدس كاملاً",newTestament:"العهد الجديد",filmAny:"الفيلم (أي نوع)",nothingInPools:"لا شيء في المصادر التي جرى البحث فيها",nothingInPoolsLower:"لا شيء في المصادر التي جرى البحث فيها",noResourceInPools:"لم يُعثر على أي مورد في المصادر التي جرى البحث فيها",aResourceFound:"وُجد مورد",tabCoverage:"تغطية الموارد",tabGap:"أكبر الفجوات",keyScripture:"الكتاب المقدس",keyFilmStories:"الفيلم / القصص",keyAudioEtc:"صوتيات / عرض / تدريب",unresolvedCode:"رمز خارج ISO 639-3 — غير محسوم، لم يُقَس"}},Fp={search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},Mp={title:{adoption:"تقدم التبني",affinityBlocs:"كتل القرابة",doxaRegions:"مناطق Doxa",engagement:"تقدم الانخراط",gospelResources:"موارد الإنجيل",languageFamilies:"العائلات اللغوية",prayer:"تقدم الصلاة",upg100List:"قائمة UPG 100 الخاصة بي"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"},tabInfo:{upg100Region:"المنطقة — ترتّب قوائم UPG-100 حسب منطقة العالم (أفريقيا، الهند، الشرق الأوسط، الصمّ، …). الأعداد هي مجموع UUPG والسكان لكل قائمة تحتها.",upg100Zone:"قوائم UPG-100 — كل واحدة هي قائمة صلاة للشعوب غير الموصول إليها في منطقة ما، وهي ما ترسمه الخريطة وتلوّنه. تُطبع كل قائمة ككُتيّب خاص بها.",upg100Group:"مجموعة شعبية — المجموعات غير الموصول إليها داخل القائمة، الأكثر حاجة للصلاة أولاً. كل نقطة على الخريطة هي واحدة منها."},a11y:{expandRow:"توسيع {label}",collapseRow:"طي {label}",clearSelection:"إلغاء التحديد"}},Dp={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},Gp={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Up={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Bp={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Vp={"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة بشرية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة البشرية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مُخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة بشرية غير مبشرة تتبناها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات البشرية غير المُبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة بشرية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة البشرية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعات بشرية في %country%. تحقق من الخريطة لمعرفة المجموعات البشرية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مُخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},jp={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"},upg100Placeholder:"ابحث عن شعب أو قائمة UPG-100 أو منطقة…"},zp={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده",mapToken:"رمز الخريطة",tokenPaste:"رمز Mapbox العام (pk.…)",tokenUrlLabel:"…أو رابط خدمة الرموز",tokenApply:"استخدام",tokenClear:"مسح",tokenStoredHere:"يُحفظ في هذا المتصفح فقط.",tokenSourceYours:"يُستخدم رمزك",tokenSourceUrl:"يُستخدم رمز من {url}",tokenSourceBuilt:"يُستخدم الرمز المضمَّن في هذه الصفحة",tokenSourceNone:"لا يوجد رمز Mapbox: لا يمكن تحميل خرائط Mapbox (خرائط MapLibre لا تحتاج رمزًا)",tokenSecret:"هذا رمز سري (sk.…). الصق رمزًا عامًا (pk.…): هذه الصفحة عامة.",tokenNotPk:"يبدأ رمز Mapbox العام بـ pk.",tokenUrlFailed:"تعذّر الحصول على رمز من هذا الرابط: {why}"},Wp={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية",selectView:"اختر العرض",views:"العروض",prayerResources:"موارد الصلاة",map:"الخريطة"},Hp={kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},qp={title:"Alle Volksgruppen",locations:"{n} Standorte (Gruppe × Land)",doxa:"DOXA-Volksgruppen",frontier:"Frontier — noch nichts begonnen",unreached:"Unerreicht — Arbeit beginnt",reached:"Erreicht — Gemeinde ist da",hint:"Zeile anklicken, um alle zu sehen · erneut klicken für alle",loading:"Alle Volksgruppen werden geladen…",loadError:"Die Karte konnte nicht geladen werden.",pray:"Für sie beten →",population:"Einw. {n}"},Kp={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},Xp={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},Yp={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},Zp={research_controls:"Forschungssteuerung",clustering:"Clustering",filters:"Filter",pin_dim:"Pin-Transparenz",export_poster:"Poster exportieren…",reload_data:"Daten neu laden",off:"Aus",native:"Nativ",mst:"MST",network:"Netzwerk",off_desc:"Jeden Pin einzeln anzeigen",native_desc:"Mapbox-Kreiscluster (am schnellsten)",mst_desc:"Affinitätsnetze über minimalen Spannbaum",network_desc:"Verbindungslinien zum nächsten Nachbarn",search_languages:"Sprachen suchen…",search_religions:"Religionen suchen…",reset_all:"Alles zurücksetzen",no_languages:"Noch keine Sprachen geladen",no_religions:"Noch keine Religionen geladen",unadopted:"Nicht adoptiert",min:"min",max:"max",adopted:"Adoptiert",adoption:"Adoption",engaged:"Engagiert",engagement:"Engagement",unengaged:"Braucht Engagement",language:"Sprache",religion:"Religion",population:"Bevölkerung",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",close:"Schließen",clear:"Zurücksetzen",map_controls:"Kartensteuerung"},Jp={bloc:"Affinitätsblock",gospel_access:"Zugang zum Evangelium",people:"Völker",people_name:"Volk (Name)",praying:"Betend",religion_family:"Religionsfamilie",search_language:"Sprache suchen",search_people:"Volk suchen",search_place:"Ort suchen",search_religion:"Religion suchen",upgs_in_scope:"UPGs im Bereich",countries_touched:"berührte Länder",unreached:"unerreicht",sum_population:"Σ Bevölkerung",sum_praying:"Σ Betende",charts:"Diagramme",table:"Tabelle",cluster:"Cluster",country:"Land",engagement:"Engagement",language:"Sprache",language_family:"Sprachfamilie",people_group:"Volk",population:"Bevölkerung",prayer:"Gebet",region:"Region",religion:"Religion",status:"Status",adopted:"Adoptiert",filters:"Filter",gospel_resources:"Evangeliumsressourcen",map:"Karte",search_placeholder:"Volksgruppen, Orte, Sprachen, Religionen suchen…",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",map_controls:"Kartensteuerung",close:"Schließen",clear:"Zurücksetzen",dashboard_title:"Big-Picture-Forschungsdashboard",align_dashboard:"Layout ausrichten",align_dashboard_tip:"Das Dashboard-Layout auf die Standardausrichtung zurücksetzen",selected:"Ausgewählt",world:"Welt",vertical_legend:"Vertikale Legende",groups_in_scope:"Volksgruppen im Bereich",filter_by:"Filtern nach",remove_filter:"Filter entfernen",groups:"Volksgruppen",expand:"Aufklappen",collapse:"Zuklappen",place:"Ort"},Qp={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},ed={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film",audioScripture:"Audio-Bibeltext",bibleStoriesPlain:"Bibelgeschichten"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"},list:{noText:"Kein Bibeltext",hasScripture:"Hat Bibeltext",allLanguages:"Alle Sprachen",peopleGroup:"Volksgruppe",peopleGroups:"Volksgruppen",scriptureHere:"Bibeltext in dieser Sprache"},columns:{"People group":"Volksgruppe",Country:"Land",Region:"Region",Language:"Sprache",Population:"Bevölkerung",Religion:"Religion","Gospel access":"Zugang zum Evangelium",Resources:"Ressourcen",Scripture:"Bibeltext","Bible video":"Bibelvideo","Gospel presentation":"Evangeliums-Darstellung",Countries:"Länder","People groups":"Volksgruppen"},charts:{scriptureAny:"Bibeltext (beliebig)",fullBible:"Vollbibel",newTestament:"Neues Testament",filmAny:"Film (beliebig)",nothingInPools:"Nichts in den geprüften Quellen gefunden",nothingInPoolsLower:"nichts in den geprüften Quellen gefunden",noResourceInPools:"keine Ressource in den geprüften Quellen gefunden",aResourceFound:"eine Ressource gefunden",tabCoverage:"Ressourcenabdeckung",tabGap:"Größte Lücken",keyScripture:"Bibeltext",keyFilmStories:"Film / Geschichten",keyAudioEtc:"Audio / Präsentation / Schulung",unresolvedCode:"Code außerhalb ISO 639-3 — ungeklärt, nicht gemessen"}},od={search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter."},td={title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"}},nd={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},sd={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},ad={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},rd={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},id={"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},ld={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"},upg100Placeholder:"Volksgruppe, UPG-100-Liste oder Region suchen…"},cd={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht",mapToken:"Karten-Token",tokenPaste:"Öffentlicher Mapbox-Token (pk.…)",tokenUrlLabel:"…oder die URL eines Token-Dienstes",tokenApply:"Verwenden",tokenClear:"Löschen",tokenStoredHere:"Nur in diesem Browser gespeichert.",tokenSourceYours:"Ihr Token wird verwendet",tokenSourceUrl:"Token von {url} wird verwendet",tokenSourceBuilt:"Der in diese Seite eingebaute Token wird verwendet",tokenSourceNone:"Kein Mapbox-Token: Mapbox-Karten können nicht laden (MapLibre-Karten brauchen keinen)",tokenSecret:"Das ist ein geheimer Token (sk.…). Fügen Sie einen öffentlichen ein (pk.…): Diese Seite ist öffentlich.",tokenNotPk:"Ein öffentlicher Mapbox-Token beginnt mit pk.",tokenUrlFailed:"Von dieser URL kam kein Token: {why}"},ud={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe",selectView:"Ansicht wählen",views:"Ansichten",prayerResources:"Gebetsressourcen",map:"Karte"},pd={kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},dd={title:"All People Groups",locations:"{n} group–country locations",doxa:"DOXA people groups",frontier:"Frontier — nothing started",unreached:"Unreached — work beginning",reached:"Reached — church is there",hint:"Click a row to see all of them · click again for everything",loading:"Loading every people group…",loadError:"The map could not be loaded.",pray:"Pray for them →",population:"pop {n}"},gd={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},$d={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},fd={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",note:"National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification."}},hd={research_controls:"Research controls",clustering:"Clustering",filters:"Filters",pin_dim:"Pin dim",export_poster:"Export poster…",reload_data:"Reload data",off:"Off",native:"Native",mst:"MST",network:"Network",off_desc:"Show every pin individually",native_desc:"Mapbox circle clusters (fastest)",mst_desc:"Minimum-spanning-tree affinity webs",network_desc:"Nearest-neighbor connection lines",search_languages:"Search languages…",search_religions:"Search religions…",reset_all:"Reset all",no_languages:"No languages loaded yet",no_religions:"No religions loaded yet",unadopted:"Unadopted",min:"min",max:"max",adopted:"Adopted",adoption:"Adoption",engaged:"Engaged",engagement:"Engagement",unengaged:"Unengaged",language:"Language",religion:"Religion",population:"Population",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",close:"Close",clear:"Clear",map_controls:"Research map controls"},md={bloc:"Bloc",gospel_access:"Gospel Access",people:"People",people_name:"People (name)",praying:"Praying",religion_family:"Religion Family",search_language:"Search language",search_people:"Search people",search_place:"Search place",search_religion:"Search religion",upgs_in_scope:"UPGs in scope",countries_touched:"countries touched",unreached:"unreached",sum_population:"Σ population",sum_praying:"Σ praying",charts:"Charts",table:"Table",cluster:"Cluster",country:"Country",engagement:"Engagement",language:"Language",language_family:"Language Family",people_group:"People Group",population:"Population",prayer:"Prayer",region:"Region",religion:"Religion",status:"Status",adopted:"Adopted",filters:"Filters",gospel_resources:"Gospel Resources",map:"Map",search_placeholder:"Search people groups, place, language, religion…",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",map_controls:"Research map controls",close:"Close",clear:"Clear",dashboard_title:"Big Picture Research Dashboard",align_dashboard:"Align Dashboard",align_dashboard_tip:"Reset the dashboard layout to its default alignment",selected:"Selected",world:"World",vertical_legend:"Vertical Legend",groups_in_scope:"groups in scope",filter_by:"Filter by",remove_filter:"Remove filter",groups:"groups",expand:"Expand",collapse:"Collapse",place:"Place"},_d={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},bd={_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film",audioScripture:"Audio Scripture",bibleStoriesPlain:"Bible Stories"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"},list:{noText:"No text Scripture",hasScripture:"Has scripture",allLanguages:"All languages",peopleGroup:"people group",peopleGroups:"people groups",scriptureHere:"Scripture in this language"},columns:{"People group":"People group",Country:"Country",Region:"Region",Language:"Language",Population:"Population",Religion:"Religion","Gospel access":"Gospel access",Resources:"Resources",Scripture:"Scripture","Bible video":"Bible video","Gospel presentation":"Gospel presentation",Countries:"Countries","People groups":"People groups"},charts:{scriptureAny:"Scripture (any)",fullBible:"Full Bible",newTestament:"New Testament",filmAny:"Film (any)",nothingInPools:"Nothing found in pools checked",nothingInPoolsLower:"nothing found in pools checked",noResourceInPools:"no resource found in pools checked",aResourceFound:"a resource found",tabCoverage:"Resource coverage",tabGap:"Largest gaps",keyScripture:"scripture",keyFilmStories:"film / stories",keyAudioEtc:"audio / presentation / training",unresolvedCode:"code outside ISO 639-3 — unresolved, not measured"}},yd={search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load More",full_profile:"Full Profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter."},vd={title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"}},Pd={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them by their people group name."},kd={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Ld={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},wd={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},Sd={"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},Ad={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"},upg100Placeholder:"Search people group, UPG-100 list, or region…"},xd={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own",mapToken:"Map token",tokenPaste:"Mapbox public token (pk.…)",tokenUrlLabel:"…or the URL of a token service",tokenApply:"Use",tokenClear:"Clear",tokenStoredHere:"Kept in this browser only.",tokenSourceYours:"Using your token",tokenSourceUrl:"Using a token from {url}",tokenSourceBuilt:"Using the token built into this page",tokenSourceNone:"No Mapbox token: Mapbox maps cannot load (MapLibre maps need none)",tokenSecret:"That is a secret token (sk.…). Paste a public one (pk.…): this page is public.",tokenNotPk:"A Mapbox public token starts with pk.",tokenUrlFailed:"Could not get a token from that URL: {why}"},Ed={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group",selectView:"Select View",views:"Views",prayerResources:"Prayer Resources",map:"Map"},Cd={kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},Rd={title:"Todos los grupos étnicos",locations:"{n} ubicaciones (grupo × país)",doxa:"Grupos étnicos de DOXA",frontier:"Frontera — nada iniciado",unreached:"No alcanzados — el trabajo comienza",reached:"Alcanzados — la iglesia está ahí",hint:"Haga clic en una fila para verlos todos · de nuevo para ver todo",loading:"Cargando todos los grupos étnicos…",loadError:"No se pudo cargar el mapa.",pray:"Ore por ellos →",population:"pobl. {n}"},Td={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},Od={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},Nd={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},Id={research_controls:"Controles de investigación",clustering:"Agrupación",filters:"Filtros",pin_dim:"Atenuar puntos",export_poster:"Exportar póster…",reload_data:"Recargar datos",off:"Desactivado",native:"Nativo",mst:"MST",network:"Red",off_desc:"Mostrar cada punto por separado",native_desc:"Grupos circulares de Mapbox (lo más rápido)",mst_desc:"Redes de afinidad por árbol de expansión mínima",network_desc:"Líneas de conexión al vecino más cercano",search_languages:"Buscar idiomas…",search_religions:"Buscar religiones…",reset_all:"Restablecer todo",no_languages:"Aún no se han cargado idiomas",no_religions:"Aún no se han cargado religiones",unadopted:"No adoptado",min:"mín",max:"máx",adopted:"Adoptado",adoption:"Adopción",engaged:"Comprometido",engagement:"Compromiso",unengaged:"Necesita implicación",language:"Idioma",religion:"Religión",population:"Población",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",close:"Cerrar",clear:"Borrar",map_controls:"Controles del mapa"},Fd={bloc:"Bloque de afinidad",gospel_access:"Acceso al evangelio",people:"Pueblos",people_name:"Pueblo (nombre)",praying:"Orando",religion_family:"Familia religiosa",search_language:"Buscar idioma",search_people:"Buscar pueblo",search_place:"Buscar lugar",search_religion:"Buscar religión",upgs_in_scope:"UPG en el ámbito",countries_touched:"países alcanzados",unreached:"no alcanzados",sum_population:"Σ población",sum_praying:"Σ orando",charts:"Gráficos",table:"Tabla",cluster:"Clúster",country:"País",engagement:"Compromiso",language:"Idioma",language_family:"Familia lingüística",people_group:"Pueblo",population:"Población",prayer:"Oración",region:"Región",religion:"Religión",status:"Estado",adopted:"Adoptado",filters:"Filtros",gospel_resources:"Recursos del Evangelio",map:"Mapa",search_placeholder:"Buscar pueblos, lugares, idiomas, religiones…",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",map_controls:"Controles del mapa",close:"Cerrar",clear:"Borrar",dashboard_title:"Panel de investigación general",align_dashboard:"Alinear panel",align_dashboard_tip:"Restablecer la disposición del panel a su alineación predeterminada",selected:"Seleccionado",world:"Mundo",vertical_legend:"Leyenda vertical",groups_in_scope:"pueblos en el ámbito",filter_by:"Filtrar por",remove_filter:"Quitar filtro",groups:"pueblos",expand:"Expandir",collapse:"Contraer",place:"Lugar"},Md={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},Dd={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS",audioScripture:"Escrituras en audio",bibleStoriesPlain:"Historias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"},list:{noText:"Sin texto bíblico",hasScripture:"Tiene Escrituras",allLanguages:"Todos los idiomas",peopleGroup:"pueblo",peopleGroups:"pueblos",scriptureHere:"Escrituras en este idioma"},columns:{"People group":"Pueblo",Country:"País",Region:"Región",Language:"Idioma",Population:"Población",Religion:"Religión","Gospel access":"Acceso al evangelio",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Video bíblico","Gospel presentation":"Presentación del evangelio",Countries:"Países","People groups":"Pueblos"},charts:{scriptureAny:"Escrituras (cualquiera)",fullBible:"Biblia completa",newTestament:"Nuevo Testamento",filmAny:"Película (cualquiera)",nothingInPools:"No se encontró nada en las fuentes consultadas",nothingInPoolsLower:"no se encontró nada en las fuentes consultadas",noResourceInPools:"no se encontró ningún recurso en las fuentes consultadas",aResourceFound:"se encontró un recurso",tabCoverage:"Cobertura de recursos",tabGap:"Mayores brechas",keyScripture:"escrituras",keyFilmStories:"película / historias",keyAudioEtc:"audio / presentación / formación",unresolvedCode:"código fuera de ISO 639-3 — sin resolver, no medido"}},Gd={search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro."},Ud={title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"}},Bd={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo."},Vd={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},jd={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},zd={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},Wd={"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},Hd={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"},upg100Placeholder:"Buscar pueblo, lista UPG-100 o región…"},qd={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado",mapToken:"Token del mapa",tokenPaste:"Token público de Mapbox (pk.…)",tokenUrlLabel:"…o la URL de un servicio de tokens",tokenApply:"Usar",tokenClear:"Borrar",tokenStoredHere:"Se guarda solo en este navegador.",tokenSourceYours:"Usando tu token",tokenSourceUrl:"Usando un token de {url}",tokenSourceBuilt:"Usando el token integrado en esta página",tokenSourceNone:"Sin token de Mapbox: los mapas de Mapbox no cargan (los de MapLibre no lo necesitan)",tokenSecret:"Ese es un token secreto (sk.…). Pega uno público (pk.…): esta página es pública.",tokenNotPk:"Un token público de Mapbox empieza por pk.",tokenUrlFailed:"No se pudo obtener un token de esa URL: {why}"},Kd={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Seleccionar vista",views:"Vistas",prayerResources:"Recursos de oración",map:"Mapa"},Xd={kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},Yd={title:"Tous les groupes ethniques",locations:"{n} emplacements (groupe × pays)",doxa:"Groupes ethniques DOXA",frontier:"Frontière — rien n’a commencé",unreached:"Non atteints — le travail commence",reached:"Atteints — l’Église est là",hint:"Cliquez sur une ligne pour les voir tous · recliquez pour tout voir",loading:"Chargement de tous les groupes ethniques…",loadError:"La carte n’a pas pu être chargée.",pray:"Priez pour eux →",population:"pop. {n}"},Zd={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende"},Jd={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},Qd={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},eg={research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},og={bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu"},tg={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},ng={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS",audioScripture:"Écritures en audio",bibleStoriesPlain:"Histoires bibliques"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"},list:{noText:"Pas de texte biblique",hasScripture:"A les Écritures",allLanguages:"Toutes les langues",peopleGroup:"peuple",peopleGroups:"peuples",scriptureHere:"Écritures dans cette langue"},columns:{"People group":"Peuple",Country:"Pays",Region:"Région",Language:"Langue",Population:"Population",Religion:"Religion","Gospel access":"Accès à l'Évangile",Resources:"Ressources",Scripture:"Écritures","Bible video":"Vidéo biblique","Gospel presentation":"Présentation de l'Évangile",Countries:"Pays","People groups":"Peuples"},charts:{scriptureAny:"Écritures (toutes)",fullBible:"Bible complète",newTestament:"Nouveau Testament",filmAny:"Film (tous)",nothingInPools:"Rien trouvé dans les sources consultées",nothingInPoolsLower:"rien trouvé dans les sources consultées",noResourceInPools:"aucune ressource trouvée dans les sources consultées",aResourceFound:"une ressource trouvée",tabCoverage:"Couverture des ressources",tabGap:"Plus grands écarts",keyScripture:"écritures",keyFilmStories:"film / histoires",keyAudioEtc:"audio / présentation / formation",unresolvedCode:"code hors ISO 639-3 — non résolu, non mesuré"}},sg={search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre."},ag={title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"}},rg={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple."},ig={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},lg={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},cg={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},ug={"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},pg={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"},upg100Placeholder:"Rechercher un peuple, une liste UPG-100 ou une région…"},dg={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule",mapToken:"Jeton de carte",tokenPaste:"Jeton public Mapbox (pk.…)",tokenUrlLabel:"…ou l’URL d’un service de jetons",tokenApply:"Utiliser",tokenClear:"Effacer",tokenStoredHere:"Conservé dans ce navigateur uniquement.",tokenSourceYours:"Votre jeton est utilisé",tokenSourceUrl:"Jeton obtenu de {url}",tokenSourceBuilt:"Jeton intégré à cette page",tokenSourceNone:"Aucun jeton Mapbox : les cartes Mapbox ne peuvent pas charger (MapLibre n’en a pas besoin)",tokenSecret:"C’est un jeton secret (sk.…). Collez un jeton public (pk.…) : cette page est publique.",tokenNotPk:"Un jeton public Mapbox commence par pk.",tokenUrlFailed:"Impossible d’obtenir un jeton depuis cette URL : {why}"},gg={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples",selectView:"Choisir la vue",views:"Vues",prayerResources:"Ressources de prière",map:"Carte"},$g={kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},fg={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},hg={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},mg={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},_g={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},bg={research_controls:"शोध नियंत्रण",clustering:"क्लस्टरिंग",filters:"फ़िल्टर",pin_dim:"पिन धुंधलापन",export_poster:"पोस्टर निर्यात करें…",reload_data:"डेटा फिर से लोड करें",off:"बंद",native:"नेटिव",mst:"MST",network:"नेटवर्क",off_desc:"हर पिन अलग-अलग दिखाएँ",native_desc:"Mapbox वृत्त क्लस्टर (सबसे तेज़)",mst_desc:"न्यूनतम स्पैनिंग ट्री आधारित जाल",network_desc:"निकटतम पड़ोसी को जोड़ने वाली रेखाएँ",search_languages:"भाषाएँ खोजें…",search_religions:"धर्म खोजें…",reset_all:"सब रीसेट करें",no_languages:"अभी कोई भाषा लोड नहीं हुई",no_religions:"अभी कोई धर्म लोड नहीं हुआ",unadopted:"अ-गोद लिया",min:"न्यून",max:"अधि",adopted:"गोद लिया गया",adoption:"गोद लेना",engaged:"संपर्कित",engagement:"सहभागिता",unengaged:"सहभागिता चाहिए",language:"भाषा",religion:"धर्म",population:"जनसंख्या",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",close:"बंद करें",clear:"साफ़ करें",map_controls:"मानचित्र नियंत्रण"},yg={bloc:"समानता समूह",gospel_access:"सुसमाचार पहुँच",people:"जनसमूह",people_name:"जनसमूह (नाम)",praying:"प्रार्थना कर रहे",religion_family:"धर्म परिवार",search_language:"भाषा खोजें",search_people:"जनसमूह खोजें",search_place:"स्थान खोजें",search_religion:"धर्म खोजें",upgs_in_scope:"दायरे में UPG",countries_touched:"छुए गए देश",unreached:"अनपहुँचे",sum_population:"Σ जनसंख्या",sum_praying:"Σ प्रार्थना",charts:"चार्ट",table:"तालिका",cluster:"क्लस्टर",country:"देश",engagement:"सहभागिता",language:"भाषा",language_family:"भाषा परिवार",people_group:"जनसमूह",population:"जनसंख्या",prayer:"प्रार्थना",region:"क्षेत्र",religion:"धर्म",status:"स्थिति",adopted:"गोद लिया गया",filters:"फ़िल्टर",gospel_resources:"सुसमाचार संसाधन",map:"नक्शा",search_placeholder:"जनसमूह, स्थान, भाषा, धर्म खोजें…",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",map_controls:"मानचित्र नियंत्रण",close:"बंद करें",clear:"साफ़ करें",dashboard_title:"बिग पिक्चर शोध डैशबोर्ड",align_dashboard:"डैशबोर्ड संरेखित करें",align_dashboard_tip:"डैशबोर्ड लेआउट को डिफ़ॉल्ट संरेखण पर लौटाएँ",selected:"चयनित",world:"विश्व",vertical_legend:"लंबवत लेजेंड",groups_in_scope:"दायरे में जनसमूह",filter_by:"इससे फ़िल्टर करें",remove_filter:"फ़िल्टर हटाएँ",groups:"जनसमूह",expand:"विस्तार करें",collapse:"संक्षिप्त करें",place:"स्थान"},vg={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Pg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म",audioScripture:"ऑडियो पवित्र शास्त्र",bibleStoriesPlain:"बाइबल की कहानियाँ"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"},list:{noText:"कोई लिखित शास्त्र नहीं",hasScripture:"शास्त्र उपलब्ध",allLanguages:"सभी भाषाएँ",peopleGroup:"जनसमूह",peopleGroups:"जनसमूह",scriptureHere:"इस भाषा में पवित्र शास्त्र"},columns:{"People group":"जनसमूह",Country:"देश",Region:"क्षेत्र",Language:"भाषा",Population:"जनसंख्या",Religion:"धर्म","Gospel access":"सुसमाचार पहुँच",Resources:"संसाधन",Scripture:"पवित्र शास्त्र","Bible video":"बाइबल वीडियो","Gospel presentation":"सुसमाचार प्रस्तुति",Countries:"देश","People groups":"जनसमूह"},charts:{scriptureAny:"पवित्र शास्त्र (कोई भी)",fullBible:"पूरी बाइबल",newTestament:"नया नियम",filmAny:"फ़िल्म (कोई भी)",nothingInPools:"जाँचे गए स्रोतों में कुछ नहीं मिला",nothingInPoolsLower:"जाँचे गए स्रोतों में कुछ नहीं मिला",noResourceInPools:"जाँचे गए स्रोतों में कोई संसाधन नहीं मिला",aResourceFound:"एक संसाधन मिला",tabCoverage:"संसाधन कवरेज",tabGap:"सबसे बड़े अंतराल",keyScripture:"पवित्र शास्त्र",keyFilmStories:"फ़िल्म / कहानियाँ",keyAudioEtc:"ऑडियो / प्रस्तुति / प्रशिक्षण",unresolvedCode:"ISO 639-3 से बाहर कोड — अनसुलझा, मापा नहीं गया"}},kg={search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},Lg={title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"}},wg={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},Sg={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Ag={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},xg={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Eg={"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},Cg={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"},upg100Placeholder:"जनसमूह, UPG-100 सूची या क्षेत्र खोजें…"},Rg={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं",mapToken:"मानचित्र टोकन",tokenPaste:"Mapbox सार्वजनिक टोकन (pk.…)",tokenUrlLabel:"…या किसी टोकन सेवा का URL",tokenApply:"उपयोग करें",tokenClear:"साफ़ करें",tokenStoredHere:"केवल इसी ब्राउज़र में रखा जाता है।",tokenSourceYours:"आपका टोकन उपयोग हो रहा है",tokenSourceUrl:"{url} से टोकन उपयोग हो रहा है",tokenSourceBuilt:"इस पेज में बना टोकन उपयोग हो रहा है",tokenSourceNone:"कोई Mapbox टोकन नहीं: Mapbox मानचित्र लोड नहीं हो सकते (MapLibre को इसकी ज़रूरत नहीं)",tokenSecret:"यह एक गुप्त टोकन है (sk.…)। सार्वजनिक टोकन (pk.…) चिपकाएँ: यह पेज सार्वजनिक है।",tokenNotPk:"Mapbox सार्वजनिक टोकन pk. से शुरू होता है",tokenUrlFailed:"उस URL से टोकन नहीं मिल सका: {why}"},Tg={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह",selectView:"दृश्य चुनें",views:"दृश्य",prayerResources:"प्रार्थना संसाधन",map:"मानचित्र"},Og={kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},Ng={title:"Tutti i gruppi etnici",locations:"{n} località (gruppo × paese)",doxa:"Gruppi etnici DOXA",frontier:"Frontiera — non è iniziato nulla",unreached:"Non raggiunti — il lavoro inizia",reached:"Raggiunti — la chiesa c’è",hint:"Fai clic su una riga per vederli tutti · di nuovo per vedere tutto",loading:"Caricamento di tutti i gruppi etnici…",loadError:"Impossibile caricare la mappa.",pray:"Prega per loro →",population:"pop. {n}"},Ig={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},Fg={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},Mg={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},Dg={research_controls:"Controlli di ricerca",clustering:"Raggruppamento",filters:"Filtri",pin_dim:"Opacità dei punti",export_poster:"Esporta poster…",reload_data:"Ricarica i dati",off:"Disattivato",native:"Nativo",mst:"MST",network:"Rete",off_desc:"Mostra ogni punto singolarmente",native_desc:"Cluster circolari Mapbox (il più veloce)",mst_desc:"Reti di affinità ad albero ricoprente minimo",network_desc:"Linee verso il vicino più prossimo",search_languages:"Cerca lingue…",search_religions:"Cerca religioni…",reset_all:"Reimposta tutto",no_languages:"Nessuna lingua ancora caricata",no_religions:"Nessuna religione ancora caricata",unadopted:"Non adottato",min:"min",max:"max",adopted:"Adottato",adoption:"Adozione",engaged:"Coinvolto",engagement:"Impegno",unengaged:"Necessita impegno",language:"Lingua",religion:"Religione",population:"Popolazione",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",close:"Chiudi",clear:"Cancella",map_controls:"Controlli della mappa"},Gg={bloc:"Blocco di affinità",gospel_access:"Accesso al vangelo",people:"Popoli",people_name:"Popolo (nome)",praying:"In preghiera",religion_family:"Famiglia religiosa",search_language:"Cerca lingua",search_people:"Cerca popolo",search_place:"Cerca luogo",search_religion:"Cerca religione",upgs_in_scope:"UPG nell’ambito",countries_touched:"paesi toccati",unreached:"non raggiunti",sum_population:"Σ popolazione",sum_praying:"Σ in preghiera",charts:"Grafici",table:"Tabella",cluster:"Cluster",country:"Paese",engagement:"Impegno",language:"Lingua",language_family:"Famiglia linguistica",people_group:"Popolo",population:"Popolazione",prayer:"Preghiera",region:"Regione",religion:"Religione",status:"Stato",adopted:"Adottato",filters:"Filtri",gospel_resources:"Risorse del Vangelo",map:"Mappa",search_placeholder:"Cerca popoli, luoghi, lingue, religioni…",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",map_controls:"Controlli della mappa",close:"Chiudi",clear:"Cancella",dashboard_title:"Cruscotto di ricerca generale",align_dashboard:"Allinea cruscotto",align_dashboard_tip:"Ripristina la disposizione predefinita del cruscotto",selected:"Selezionato",world:"Mondo",vertical_legend:"Legenda verticale",groups_in_scope:"popoli nell’ambito",filter_by:"Filtra per",remove_filter:"Rimuovi filtro",groups:"popoli",expand:"Espandi",collapse:"Comprimi",place:"Luogo"},Ug={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Bg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ",audioScripture:"Scritture in audio",bibleStoriesPlain:"Storie bibliche"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"},list:{noText:"Nessun testo biblico",hasScripture:"Ha le Scritture",allLanguages:"Tutte le lingue",peopleGroup:"popolo",peopleGroups:"popoli",scriptureHere:"Scritture in questa lingua"},columns:{"People group":"Popolo",Country:"Paese",Region:"Regione",Language:"Lingua",Population:"Popolazione",Religion:"Religione","Gospel access":"Accesso al Vangelo",Resources:"Risorse",Scripture:"Scritture","Bible video":"Video biblico","Gospel presentation":"Presentazione del Vangelo",Countries:"Paesi","People groups":"Popoli"},charts:{scriptureAny:"Scritture (qualsiasi)",fullBible:"Bibbia completa",newTestament:"Nuovo Testamento",filmAny:"Film (qualsiasi)",nothingInPools:"Nulla trovato nelle fonti controllate",nothingInPoolsLower:"nulla trovato nelle fonti controllate",noResourceInPools:"nessuna risorsa trovata nelle fonti controllate",aResourceFound:"una risorsa trovata",tabCoverage:"Copertura delle risorse",tabGap:"Lacune maggiori",keyScripture:"scritture",keyFilmStories:"film / storie",keyAudioEtc:"audio / presentazione / formazione",unresolvedCode:"codice fuori ISO 639-3 — non risolto, non misurato"}},Vg={search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro."},jg={title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"}},zg={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo."},Wg={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Hg={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},qg={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Kg={"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},Xg={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"},upg100Placeholder:"Cerca popolo, elenco UPG-100 o regione…"},Yg={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola",mapToken:"Token mappa",tokenPaste:"Token pubblico Mapbox (pk.…)",tokenUrlLabel:"…o l’URL di un servizio di token",tokenApply:"Usa",tokenClear:"Cancella",tokenStoredHere:"Conservato solo in questo browser.",tokenSourceYours:"Uso il tuo token",tokenSourceUrl:"Uso un token da {url}",tokenSourceBuilt:"Uso il token integrato in questa pagina",tokenSourceNone:"Nessun token Mapbox: le mappe Mapbox non si caricano (MapLibre non ne ha bisogno)",tokenSecret:"Questo è un token segreto (sk.…). Incolla un token pubblico (pk.…): questa pagina è pubblica.",tokenNotPk:"Un token pubblico Mapbox inizia con pk.",tokenUrlFailed:"Impossibile ottenere un token da quell’URL: {why}"},Zg={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico",selectView:"Seleziona vista",views:"Viste",prayerResources:"Risorse di preghiera",map:"Mappa"},Jg={kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},Qg={title:"Todos os grupos étnicos",locations:"{n} locais (grupo × país)",doxa:"Grupos étnicos da DOXA",frontier:"Fronteira — nada iniciado",unreached:"Não alcançados — o trabalho começa",reached:"Alcançados — a igreja está lá",hint:"Clique em uma linha para ver todos · clique de novo para ver tudo",loading:"Carregando todos os grupos étnicos…",loadError:"Não foi possível carregar o mapa.",pray:"Ore por eles →",population:"pop. {n}"},e$={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},o$={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},t$={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},n$={research_controls:"Controlos de pesquisa",clustering:"Agrupamento",filters:"Filtros",pin_dim:"Esbater pontos",export_poster:"Exportar cartaz…",reload_data:"Recarregar dados",off:"Desligado",native:"Nativo",mst:"MST",network:"Rede",off_desc:"Mostrar cada ponto individualmente",native_desc:"Grupos circulares Mapbox (mais rápido)",mst_desc:"Redes de afinidade por árvore geradora mínima",network_desc:"Linhas para o vizinho mais próximo",search_languages:"Pesquisar idiomas…",search_religions:"Pesquisar religiões…",reset_all:"Repor tudo",no_languages:"Ainda não há idiomas carregados",no_religions:"Ainda não há religiões carregadas",unadopted:"Não adotado",min:"mín",max:"máx",adopted:"Adotado",adoption:"Adoção",engaged:"Engajado",engagement:"Engajamento",unengaged:"Precisa de envolvimento",language:"Idioma",religion:"Religião",population:"População",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",close:"Fechar",clear:"Limpar",map_controls:"Controlos do mapa"},s$={bloc:"Bloco de afinidade",gospel_access:"Acesso ao evangelho",people:"Povos",people_name:"Povo (nome)",praying:"A orar",religion_family:"Família religiosa",search_language:"Pesquisar idioma",search_people:"Pesquisar povo",search_place:"Pesquisar lugar",search_religion:"Pesquisar religião",upgs_in_scope:"UPG no âmbito",countries_touched:"países alcançados",unreached:"não alcançados",sum_population:"Σ população",sum_praying:"Σ a orar",charts:"Gráficos",table:"Tabela",cluster:"Agrupamento",country:"País",engagement:"Engajamento",language:"Idioma",language_family:"Família linguística",people_group:"Povo",population:"População",prayer:"Oração",region:"Região",religion:"Religião",status:"Status",adopted:"Adotado",filters:"Filtros",gospel_resources:"Recursos do Evangelho",map:"Mapa",search_placeholder:"Pesquisar povos, lugares, idiomas, religiões…",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",map_controls:"Controlos do mapa",close:"Fechar",clear:"Limpar",dashboard_title:"Painel de pesquisa geral",align_dashboard:"Alinhar painel",align_dashboard_tip:"Repor a disposição do painel para o alinhamento predefinido",selected:"Selecionado",world:"Mundo",vertical_legend:"Legenda vertical",groups_in_scope:"povos no âmbito",filter_by:"Filtrar por",remove_filter:"Remover filtro",groups:"povos",expand:"Expandir",collapse:"Recolher",place:"Lugar"},a$={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},r$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS",audioScripture:"Escrituras em áudio",bibleStoriesPlain:"Histórias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"},list:{noText:"Sem texto bíblico",hasScripture:"Tem Escrituras",allLanguages:"Todos os idiomas",peopleGroup:"povo",peopleGroups:"povos",scriptureHere:"Escrituras neste idioma"},columns:{"People group":"Povo",Country:"País",Region:"Região",Language:"Idioma",Population:"População",Religion:"Religião","Gospel access":"Acesso ao evangelho",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Vídeo bíblico","Gospel presentation":"Apresentação do evangelho",Countries:"Países","People groups":"Povos"},charts:{scriptureAny:"Escrituras (qualquer)",fullBible:"Bíblia completa",newTestament:"Novo Testamento",filmAny:"Filme (qualquer)",nothingInPools:"Nada encontrado nas fontes consultadas",nothingInPoolsLower:"nada encontrado nas fontes consultadas",noResourceInPools:"nenhum recurso encontrado nas fontes consultadas",aResourceFound:"um recurso encontrado",tabCoverage:"Cobertura de recursos",tabGap:"Maiores lacunas",keyScripture:"escrituras",keyFilmStories:"filme / histórias",keyAudioEtc:"áudio / apresentação / treinamento",unresolvedCode:"código fora da ISO 639-3 — não resolvido, não medido"}},i$={search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro."},l$={title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"}},c$={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo."},u$={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},p$={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},d$={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},g$={"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},$$={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"},upg100Placeholder:"Procurar povo, lista UPG-100 ou região…"},f$={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente",mapToken:"Token do mapa",tokenPaste:"Token público do Mapbox (pk.…)",tokenUrlLabel:"…ou o URL de um serviço de tokens",tokenApply:"Usar",tokenClear:"Limpar",tokenStoredHere:"Guardado apenas neste navegador.",tokenSourceYours:"A usar o seu token",tokenSourceUrl:"A usar um token de {url}",tokenSourceBuilt:"A usar o token incorporado nesta página",tokenSourceNone:"Sem token do Mapbox: os mapas Mapbox não carregam (os MapLibre não precisam)",tokenSecret:"Esse é um token secreto (sk.…). Cole um público (pk.…): esta página é pública.",tokenNotPk:"Um token público do Mapbox começa por pk.",tokenUrlFailed:"Não foi possível obter um token desse URL: {why}"},h$={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Selecionar vista",views:"Vistas",prayerResources:"Recursos de oração",map:"Mapa"},m$={kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},_$={title:"Toate grupurile etnice",locations:"{n} locații (grup × țară)",doxa:"Grupuri etnice DOXA",frontier:"Frontieră — nimic început",unreached:"Neatinse — lucrarea începe",reached:"Atinse — biserica este acolo",hint:"Faceți clic pe un rând pentru a le vedea pe toate · din nou pentru tot",loading:"Se încarcă toate grupurile etnice…",loadError:"Harta nu a putut fi încărcată.",pray:"Rugați-vă pentru ei →",population:"pop. {n}"},b$={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},y$={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},v$={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},P$={research_controls:"Comenzi de cercetare",clustering:"Grupare",filters:"Filtre",pin_dim:"Estompare puncte",export_poster:"Exportă posterul…",reload_data:"Reîncarcă datele",off:"Oprit",native:"Nativ",mst:"MST",network:"Rețea",off_desc:"Arată fiecare punct separat",native_desc:"Grupuri circulare Mapbox (cel mai rapid)",mst_desc:"Rețele de afinitate prin arbore minim de acoperire",network_desc:"Linii către cel mai apropiat vecin",search_languages:"Caută limbi…",search_religions:"Caută religii…",reset_all:"Resetează tot",no_languages:"Nicio limbă încărcată încă",no_religions:"Nicio religie încărcată încă",unadopted:"Neadoptat",min:"min",max:"max",adopted:"Adoptat",adoption:"Adopție",engaged:"Implicat",engagement:"Implicare",unengaged:"Necesită implicare",language:"Limbă",religion:"Religie",population:"Populație",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",close:"Închide",clear:"Șterge",map_controls:"Comenzile hărții"},k$={bloc:"Bloc de afinitate",gospel_access:"Acces la Evanghelie",people:"Popoare",people_name:"Popor (nume)",praying:"Se roagă",religion_family:"Familie religioasă",search_language:"Caută limbă",search_people:"Caută popor",search_place:"Caută loc",search_religion:"Caută religie",upgs_in_scope:"UPG în domeniu",countries_touched:"țări atinse",unreached:"neatinși",sum_population:"Σ populație",sum_praying:"Σ se roagă",charts:"Grafice",table:"Tabel",cluster:"Grup",country:"Țară",engagement:"Implicare",language:"Limbă",language_family:"Familie de limbi",people_group:"Popor",population:"Populație",prayer:"Rugăciune",region:"Regiune",religion:"Religie",status:"Stare",adopted:"Adoptat",filters:"Filtre",gospel_resources:"Resurse ale Evangheliei",map:"Hartă",search_placeholder:"Caută popoare, locuri, limbi, religii…",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",map_controls:"Comenzile hărții",close:"Închide",clear:"Șterge",dashboard_title:"Tablou de bord de cercetare general",align_dashboard:"Aliniază tabloul",align_dashboard_tip:"Readu aranjarea tabloului la alinierea implicită",selected:"Selectat",world:"Lume",vertical_legend:"Legendă verticală",groups_in_scope:"popoare în domeniu",filter_by:"Filtrează după",remove_filter:"Elimină filtrul",groups:"popoare",expand:"Extinde",collapse:"Restrânge",place:"Loc"},L$={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},w$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS",audioScripture:"Scripturi audio",bibleStoriesPlain:"Povestiri biblice"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"},list:{noText:"Fără text biblic",hasScripture:"Are Scripturi",allLanguages:"Toate limbile",peopleGroup:"popor",peopleGroups:"popoare",scriptureHere:"Scripturi în această limbă"},columns:{"People group":"Popor",Country:"Țară",Region:"Regiune",Language:"Limbă",Population:"Populație",Religion:"Religie","Gospel access":"Acces la Evanghelie",Resources:"Resurse",Scripture:"Scripturi","Bible video":"Video biblic","Gospel presentation":"Prezentarea Evangheliei",Countries:"Țări","People groups":"Popoare"},charts:{scriptureAny:"Scripturi (oricare)",fullBible:"Biblia completă",newTestament:"Noul Testament",filmAny:"Film (oricare)",nothingInPools:"Nimic găsit în sursele verificate",nothingInPoolsLower:"nimic găsit în sursele verificate",noResourceInPools:"nicio resursă găsită în sursele verificate",aResourceFound:"o resursă găsită",tabCoverage:"Acoperirea resurselor",tabGap:"Cele mai mari lacune",keyScripture:"scripturi",keyFilmStories:"film / povestiri",keyAudioEtc:"audio / prezentare / instruire",unresolvedCode:"cod în afara ISO 639-3 — nerezolvat, nemăsurat"}},S$={search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului."},A$={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"}},x$={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor."},E$={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},C$={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},R$={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},T$={"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},O$={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"},upg100Placeholder:"Caută popor, listă UPG-100 sau regiune…"},N$={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat",mapToken:"Token hartă",tokenPaste:"Token public Mapbox (pk.…)",tokenUrlLabel:"…sau adresa URL a unui serviciu de tokenuri",tokenApply:"Folosește",tokenClear:"Șterge",tokenStoredHere:"Păstrat doar în acest browser.",tokenSourceYours:"Se folosește tokenul tău",tokenSourceUrl:"Se folosește un token de la {url}",tokenSourceBuilt:"Se folosește tokenul inclus în această pagină",tokenSourceNone:"Niciun token Mapbox: hărțile Mapbox nu se pot încărca (MapLibre nu are nevoie)",tokenSecret:"Acesta este un token secret (sk.…). Lipește unul public (pk.…): pagina este publică.",tokenNotPk:"Un token public Mapbox începe cu pk.",tokenUrlFailed:"Nu s-a putut obține un token de la acea adresă: {why}"},I$={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic",selectView:"Alege vizualizarea",views:"Vizualizări",prayerResources:"Resurse de rugăciune",map:"Hartă"},F$={kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},M$={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},D$={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},G$={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},U$={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},B$={research_controls:"Инструменты исследования",clustering:"Кластеризация",filters:"Фильтры",pin_dim:"Прозрачность точек",export_poster:"Экспорт постера…",reload_data:"Обновить данные",off:"Выкл.",native:"Встроенная",mst:"MST",network:"Сеть",off_desc:"Показывать каждую точку отдельно",native_desc:"Круговые кластеры Mapbox (быстрее всего)",mst_desc:"Сети родства по минимальному остовному дереву",network_desc:"Линии до ближайшего соседа",search_languages:"Поиск языков…",search_religions:"Поиск религий…",reset_all:"Сбросить всё",no_languages:"Языки ещё не загружены",no_religions:"Религии ещё не загружены",unadopted:"Не усыновлён",min:"мин",max:"макс",adopted:"Ответственность взята",adoption:"Усыновление",engaged:"Вовлечён",engagement:"Вовлечённость",unengaged:"Нуждается в вовлечённости",language:"Язык",religion:"Религия",population:"Население",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",close:"Закрыть",clear:"Очистить",map_controls:"Элементы управления картой"},V$={bloc:"Блок родства",gospel_access:"Доступ к Евангелию",people:"Народы",people_name:"Народ (название)",praying:"Молятся",religion_family:"Семья религий",search_language:"Поиск языка",search_people:"Поиск народа",search_place:"Поиск места",search_religion:"Поиск религии",upgs_in_scope:"UPG в выборке",countries_touched:"затронутых стран",unreached:"неохваченные",sum_population:"Σ население",sum_praying:"Σ молящихся",charts:"Графики",table:"Таблица",cluster:"Кластер",country:"Страна",engagement:"Вовлечённость",language:"Язык",language_family:"Языковая семья",people_group:"Народ",population:"Население",prayer:"Молитва",region:"Регион",religion:"Религия",status:"Статус",adopted:"Ответственность взята",filters:"Фильтры",gospel_resources:"Евангельские ресурсы",map:"Карта",search_placeholder:"Поиск народов, мест, языков, религий…",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",map_controls:"Элементы управления картой",close:"Закрыть",clear:"Очистить",dashboard_title:"Обзорная исследовательская панель",align_dashboard:"Выровнять панель",align_dashboard_tip:"Вернуть расположение панели к виду по умолчанию",selected:"Выбрано",world:"Мир",vertical_legend:"Вертикальная легенда",groups_in_scope:"народов в выборке",filter_by:"Фильтровать по",remove_filter:"Убрать фильтр",groups:"народов",expand:"Развернуть",collapse:"Свернуть",place:"Место"},j$={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},z$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»",audioScripture:"Аудио с Писанием",bibleStoriesPlain:"Библейские истории"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"},list:{noText:"Нет текста Писания",hasScripture:"Есть Писание",allLanguages:"Все языки",peopleGroup:"народ",peopleGroups:"народов",scriptureHere:"Писание на этом языке"},columns:{"People group":"Народ",Country:"Страна",Region:"Регион",Language:"Язык",Population:"Численность",Religion:"Религия","Gospel access":"Доступ к Евангелию",Resources:"Ресурсы",Scripture:"Писание","Bible video":"Библейское видео","Gospel presentation":"Изложение Евангелия",Countries:"Страны","People groups":"Народы"},charts:{scriptureAny:"Писание (любое)",fullBible:"Полная Библия",newTestament:"Новый Завет",filmAny:"Фильм (любой)",nothingInPools:"Ничего не найдено в проверенных источниках",nothingInPoolsLower:"ничего не найдено в проверенных источниках",noResourceInPools:"ни одного ресурса не найдено в проверенных источниках",aResourceFound:"ресурс найден",tabCoverage:"Охват ресурсами",tabGap:"Наибольшие пробелы",keyScripture:"писание",keyFilmStories:"фильм / истории",keyAudioEtc:"аудио / презентация / обучение",unresolvedCode:"код вне ISO 639-3 — не определён, не измерен"}},W$={search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},H$={title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"}},q$={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},K$={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},X$={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},Y$={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},Z$={"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},J$={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"},upg100Placeholder:"Поиск народа, списка UPG-100 или региона…"},Q$={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно",mapToken:"Токен карты",tokenPaste:"Публичный токен Mapbox (pk.…)",tokenUrlLabel:"…или адрес службы токенов",tokenApply:"Применить",tokenClear:"Очистить",tokenStoredHere:"Хранится только в этом браузере.",tokenSourceYours:"Используется ваш токен",tokenSourceUrl:"Используется токен с {url}",tokenSourceBuilt:"Используется токен, встроенный в страницу",tokenSourceNone:"Нет токена Mapbox: карты Mapbox не загрузятся (MapLibre он не нужен)",tokenSecret:"Это секретный токен (sk.…). Вставьте публичный (pk.…): эта страница общедоступна.",tokenNotPk:"Публичный токен Mapbox начинается с pk.",tokenUrlFailed:"Не удалось получить токен по этому адресу: {why}"},ef={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ",selectView:"Выбрать вид",views:"Виды",prayerResources:"Молитвенные ресурсы",map:"Карта"},of={kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},tf={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},nf={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},sf={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},af={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},rf={research_controls:"研究控件",clustering:"聚类",filters:"筛选",pin_dim:"圆点淡化",export_poster:"导出海报…",reload_data:"重新加载数据",off:"关闭",native:"原生",mst:"MST",network:"网络",off_desc:"逐个显示每个圆点",native_desc:"Mapbox 圆形聚类(最快)",mst_desc:"最小生成树亲缘网络",network_desc:"最近邻连接线",search_languages:"搜索语言…",search_religions:"搜索宗教…",reset_all:"全部重置",no_languages:"尚未加载语言",no_religions:"尚未加载宗教",unadopted:"未认领",min:"最小",max:"最大",adopted:"已认领",adoption:"认领",engaged:"已参与",engagement:"参与",unengaged:"需要参与",language:"语言",religion:"宗教",population:"人口",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",close:"关闭",clear:"清除",map_controls:"地图控件"},lf={bloc:"亲缘板块",gospel_access:"福音可及性",people:"民族",people_name:"民族(名称)",praying:"正在代祷",religion_family:"宗教族系",search_language:"搜索语言",search_people:"搜索民族",search_place:"搜索地点",search_religion:"搜索宗教",upgs_in_scope:"范围内的 UPG",countries_touched:"涉及国家",unreached:"未得之民",sum_population:"Σ 人口",sum_praying:"Σ 代祷",charts:"图表",table:"表格",cluster:"民族群",country:"國家",engagement:"参与",language:"语言",language_family:"语系",people_group:"民族",population:"人口",prayer:"祷告",region:"区域",religion:"宗教",status:"状态",adopted:"已认领",filters:"筛选",gospel_resources:"福音资源",map:"地图",search_placeholder:"搜索民族、地点、语言、宗教…",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",map_controls:"地图控件",close:"关闭",clear:"清除",dashboard_title:"全局研究仪表板",align_dashboard:"对齐仪表板",align_dashboard_tip:"将仪表板布局恢复为默认对齐",selected:"已选择",world:"世界",vertical_legend:"垂直图例",groups_in_scope:"个民族在范围内",filter_by:"筛选",remove_filter:"移除筛选",groups:"个民族",expand:"展开",collapse:"收起",place:"地点"},cf={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},uf={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》",audioScripture:"音频圣经",bibleStoriesPlain:"圣经故事"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"},list:{noText:"没有文字圣经",hasScripture:"有圣经",allLanguages:"全部语言",peopleGroup:"个族群",peopleGroups:"个族群",scriptureHere:"本语言的圣经"},columns:{"People group":"族群",Country:"国家",Region:"地区",Language:"语言",Population:"人口",Religion:"宗教","Gospel access":"福音可及性",Resources:"资源",Scripture:"圣经","Bible video":"圣经视频","Gospel presentation":"福音简介",Countries:"国家","People groups":"族群"},charts:{scriptureAny:"圣经(任意)",fullBible:"全本圣经",newTestament:"新约",filmAny:"影片(任意)",nothingInPools:"在已检索的资源库中一无所获",nothingInPoolsLower:"在已检索的资源库中一无所获",noResourceInPools:"在已检索的资源库中未找到资源",aResourceFound:"找到资源",tabCoverage:"资源覆盖",tabGap:"最大缺口",keyScripture:"圣经",keyFilmStories:"影片 / 故事",keyAudioEtc:"音频 / 简介 / 训练",unresolvedCode:"ISO 639-3 之外的代码 — 未确定,未测量"}},pf={search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。"},df={title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"}},gf={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},$f={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},ff={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},hf={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},mf={"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},_f={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"},upg100Placeholder:"搜索民族、UPG-100 名单或区域…"},bf={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布",mapToken:"地图令牌",tokenPaste:"Mapbox 公开令牌 (pk.…)",tokenUrlLabel:"…或令牌服务的网址",tokenApply:"使用",tokenClear:"清除",tokenStoredHere:"仅保存在此浏览器中。",tokenSourceYours:"正在使用您的令牌",tokenSourceUrl:"正在使用来自 {url} 的令牌",tokenSourceBuilt:"正在使用此页面内置的令牌",tokenSourceNone:"没有 Mapbox 令牌:Mapbox 地图无法加载(MapLibre 地图不需要)",tokenSecret:"这是秘密令牌 (sk.…)。请粘贴公开令牌 (pk.…):此页面是公开的。",tokenNotPk:"Mapbox 公开令牌以 pk. 开头",tokenUrlFailed:"无法从该网址获取令牌:{why}"},yf={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群",selectView:"選擇檢視",views:"檢視",prayerResources:"禱告資源",map:"地圖"},vf={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*! - * shared v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */function Pf(e,o){typeof console<"u"&&(console.warn("[intlify] "+e),o&&console.warn(o.stack))}const Hn=typeof window<"u",Bo=(e,o=!1)=>o?Symbol.for(e):Symbol(e),kf=(e,o,t)=>Lf({l:e,k:o,s:t}),Lf=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Se=e=>typeof e=="number"&&isFinite(e),wf=e=>Ei(e)==="[object Date]",Vo=e=>Ei(e)==="[object RegExp]",qn=e=>oe(e)&&Object.keys(e).length===0,Ne=Object.assign,Sf=Object.create,pe=(e=null)=>Sf(e);let wi;const Oo=()=>wi||(wi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:pe());function Si(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Ai(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Af(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${Ai(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${Ai(s)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const xf=Object.prototype.hasOwnProperty;function ao(e,o){return xf.call(e,o)}const _e=Array.isArray,fe=e=>typeof e=="function",j=e=>typeof e=="string",se=e=>typeof e=="boolean",ie=e=>e!==null&&typeof e=="object",Ef=e=>ie(e)&&fe(e.then)&&fe(e.catch),xi=Object.prototype.toString,Ei=e=>xi.call(e),oe=e=>{if(!ie(e))return!1;const o=Object.getPrototypeOf(e);return o===null||o.constructor===Object},Cf=e=>e==null?"":_e(e)||oe(e)&&e.toString===xi?JSON.stringify(e,null,2):String(e);function Rf(e,o=""){return e.reduce((t,n,a)=>a===0?t+n:t+o+n,"")}function Kn(e){let o=e;return()=>++o}const Xn=e=>!ie(e)||_e(e);function Yn(e,o){if(Xn(e)||Xn(o))throw new Error("Invalid value");const t=[{src:e,des:o}];for(;t.length;){const{src:n,des:a}=t.pop();Object.keys(n).forEach(s=>{s!=="__proto__"&&(ie(n[s])&&!ie(a[s])&&(a[s]=Array.isArray(n[s])?[]:pe()),Xn(a[s])||Xn(n[s])?a[s]=n[s]:t.push({src:n[s],des:a[s]}))})}}/*! - * message-compiler v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */function Tf(e,o,t){return{line:e,column:o,offset:t}}function Zn(e,o,t){return{start:e,end:o}}const Of=/\{([0-9a-zA-Z]+)\}/g;function Ci(e,...o){return o.length===1&&Nf(o[0])&&(o=o[0]),(!o||!o.hasOwnProperty)&&(o={}),e.replace(Of,(t,n)=>o.hasOwnProperty(n)?o[n]:"")}const Ri=Object.assign,Ti=e=>typeof e=="string",Nf=e=>e!==null&&typeof e=="object";function Oi(e,o=""){return e.reduce((t,n,a)=>a===0?t+n:t+o+n,"")}const Xs={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},If={[Xs.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Ff(e,o,...t){const n=Ci(If[e],...t||[]),a={message:String(n),code:e};return o&&(a.location=o),a}const Y={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},Mf={[Y.EXPECTED_TOKEN]:"Expected token: '{0}'",[Y.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Y.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Y.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Y.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Y.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Y.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Y.EMPTY_PLACEHOLDER]:"Empty placeholder",[Y.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Y.INVALID_LINKED_FORMAT]:"Invalid linked format",[Y.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Y.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Y.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Y.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Y.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Y.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function mt(e,o,t={}){const{domain:n,messages:a,args:s}=t,r=Ci((a||Mf)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,o&&(i.location=o),i.domain=n,i}function Df(e){throw e}const No=" ",Gf="\r",Be=` -`,Uf="\u2028",Bf="\u2029";function Vf(e){const o=e;let t=0,n=1,a=1,s=0;const r=A=>o[A]===Gf&&o[A+1]===Be,i=A=>o[A]===Be,l=A=>o[A]===Bf,c=A=>o[A]===Uf,u=A=>r(A)||i(A)||l(A)||c(A),g=()=>t,$=()=>n,y=()=>a,E=()=>s,L=A=>r(A)||l(A)||c(A)?Be:o[A],N=()=>L(t),O=()=>L(t+s);function M(){return s=0,u(t)&&(n++,a=0),r(t)&&t++,t++,a++,o[t]}function b(){return r(t+s)&&s++,s++,o[t+s]}function _(){t=0,n=1,a=1,s=0}function S(A=0){s=A}function x(){const A=t+s;for(;A!==t;)M();s=0}return{index:g,line:$,column:y,peekOffset:E,charAt:L,currentChar:N,currentPeek:O,next:M,peek:b,reset:_,resetPeek:S,skipToPeek:x}}const jo=void 0,jf=".",Ni="'",zf="tokenizer";function Wf(e,o={}){const t=o.location!==!1,n=Vf(e),a=()=>n.index(),s=()=>Tf(n.line(),n.column(),n.index()),r=s(),i=a(),l={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=o;function g(p,d,w,...R){const V=c();if(d.column+=w,d.offset+=w,u){const D=t?Zn(V.startLoc,d):null,v=mt(p,D,{domain:zf,args:R});u(v)}}function $(p,d,w){p.endLoc=s(),p.currentType=d;const R={type:d};return t&&(R.loc=Zn(p.startLoc,p.endLoc)),w!=null&&(R.value=w),R}const y=p=>$(p,14);function E(p,d){return p.currentChar()===d?(p.next(),d):(g(Y.EXPECTED_TOKEN,s(),0,d),"")}function L(p){let d="";for(;p.currentPeek()===No||p.currentPeek()===Be;)d+=p.currentPeek(),p.peek();return d}function N(p){const d=L(p);return p.skipToPeek(),d}function O(p){if(p===jo)return!1;const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d===95}function M(p){if(p===jo)return!1;const d=p.charCodeAt(0);return d>=48&&d<=57}function b(p,d){const{currentType:w}=d;if(w!==2)return!1;L(p);const R=O(p.currentPeek());return p.resetPeek(),R}function _(p,d){const{currentType:w}=d;if(w!==2)return!1;L(p);const R=p.currentPeek()==="-"?p.peek():p.currentPeek(),V=M(R);return p.resetPeek(),V}function S(p,d){const{currentType:w}=d;if(w!==2)return!1;L(p);const R=p.currentPeek()===Ni;return p.resetPeek(),R}function x(p,d){const{currentType:w}=d;if(w!==8)return!1;L(p);const R=p.currentPeek()===".";return p.resetPeek(),R}function A(p,d){const{currentType:w}=d;if(w!==9)return!1;L(p);const R=O(p.currentPeek());return p.resetPeek(),R}function P(p,d){const{currentType:w}=d;if(!(w===8||w===12))return!1;L(p);const R=p.currentPeek()===":";return p.resetPeek(),R}function k(p,d){const{currentType:w}=d;if(w!==10)return!1;const R=()=>{const D=p.currentPeek();return D==="{"?O(p.peek()):D==="@"||D==="%"||D==="|"||D===":"||D==="."||D===No||!D?!1:D===Be?(p.peek(),R()):W(p,!1)},V=R();return p.resetPeek(),V}function z(p){L(p);const d=p.currentPeek()==="|";return p.resetPeek(),d}function K(p){const d=L(p),w=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:w,hasSpace:d.length>0}}function W(p,d=!0){const w=(V=!1,D="",v=!1)=>{const T=p.currentPeek();return T==="{"?D==="%"?!1:V:T==="@"||!T?D==="%"?!0:V:T==="%"?(p.peek(),w(V,"%",!0)):T==="|"?D==="%"||v?!0:!(D===No||D===Be):T===No?(p.peek(),w(!0,No,v)):T===Be?(p.peek(),w(!0,Be,v)):!0},R=w();return d&&p.resetPeek(),R}function ne(p,d){const w=p.currentChar();return w===jo?jo:d(w)?(p.next(),w):null}function J(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36}function ae(p){return ne(p,J)}function Q(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36||d===45}function H(p){return ne(p,Q)}function Z(p){const d=p.charCodeAt(0);return d>=48&&d<=57}function be(p){return ne(p,Z)}function Me(p){const d=p.charCodeAt(0);return d>=48&&d<=57||d>=65&&d<=70||d>=97&&d<=102}function ke(p){return ne(p,Me)}function Ae(p){let d="",w="";for(;d=be(p);)w+=d;return w}function Ho(p){N(p);const d=p.currentChar();return d!=="%"&&g(Y.EXPECTED_TOKEN,s(),0,d),p.next(),"%"}function qo(p){let d="";for(;;){const w=p.currentChar();if(w==="{"||w==="}"||w==="@"||w==="|"||!w)break;if(w==="%")if(W(p))d+=w,p.next();else break;else if(w===No||w===Be)if(W(p))d+=w,p.next();else{if(z(p))break;d+=w,p.next()}else d+=w,p.next()}return d}function nt(p){N(p);let d="",w="";for(;d=H(p);)w+=d;return p.currentChar()===jo&&g(Y.UNTERMINATED_CLOSING_BRACE,s(),0),w}function lo(p){N(p);let d="";return p.currentChar()==="-"?(p.next(),d+=`-${Ae(p)}`):d+=Ae(p),p.currentChar()===jo&&g(Y.UNTERMINATED_CLOSING_BRACE,s(),0),d}function Fo(p){return p!==Ni&&p!==Be}function Mo(p){N(p),E(p,"'");let d="",w="";for(;d=ne(p,Fo);)d==="\\"?w+=Ko(p):w+=d;const R=p.currentChar();return R===Be||R===jo?(g(Y.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),R===Be&&(p.next(),E(p,"'")),w):(E(p,"'"),w)}function Ko(p){const d=p.currentChar();switch(d){case"\\":case"'":return p.next(),`\\${d}`;case"u":return eo(p,d,4);case"U":return eo(p,d,6);default:return g(Y.UNKNOWN_ESCAPE_SEQUENCE,s(),0,d),""}}function eo(p,d,w){E(p,d);let R="";for(let V=0;V{const R=p.currentChar();return R==="{"||R==="%"||R==="@"||R==="|"||R==="("||R===")"||!R||R===No?w:(w+=R,p.next(),d(w))};return d("")}function C(p){N(p);const d=E(p,"|");return N(p),d}function F(p,d){let w=null;switch(p.currentChar()){case"{":return d.braceNest>=1&&g(Y.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),p.next(),w=$(d,2,"{"),N(p),d.braceNest++,w;case"}":return d.braceNest>0&&d.currentType===2&&g(Y.EMPTY_PLACEHOLDER,s(),0),p.next(),w=$(d,3,"}"),d.braceNest--,d.braceNest>0&&N(p),d.inLinked&&d.braceNest===0&&(d.inLinked=!1),w;case"@":return d.braceNest>0&&g(Y.UNTERMINATED_CLOSING_BRACE,s(),0),w=I(p,d)||y(d),d.braceNest=0,w;default:{let V=!0,D=!0,v=!0;if(z(p))return d.braceNest>0&&g(Y.UNTERMINATED_CLOSING_BRACE,s(),0),w=$(d,1,C(p)),d.braceNest=0,d.inLinked=!1,w;if(d.braceNest>0&&(d.currentType===5||d.currentType===6||d.currentType===7))return g(Y.UNTERMINATED_CLOSING_BRACE,s(),0),d.braceNest=0,B(p,d);if(V=b(p,d))return w=$(d,5,nt(p)),N(p),w;if(D=_(p,d))return w=$(d,6,lo(p)),N(p),w;if(v=S(p,d))return w=$(d,7,Mo(p)),N(p),w;if(!V&&!D&&!v)return w=$(d,13,f(p)),g(Y.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,w.value),N(p),w;break}}return w}function I(p,d){const{currentType:w}=d;let R=null;const V=p.currentChar();switch((w===8||w===9||w===12||w===10)&&(V===Be||V===No)&&g(Y.INVALID_LINKED_FORMAT,s(),0),V){case"@":return p.next(),R=$(d,8,"@"),d.inLinked=!0,R;case".":return N(p),p.next(),$(d,9,".");case":":return N(p),p.next(),$(d,10,":");default:return z(p)?(R=$(d,1,C(p)),d.braceNest=0,d.inLinked=!1,R):x(p,d)||P(p,d)?(N(p),I(p,d)):A(p,d)?(N(p),$(d,12,m(p))):k(p,d)?(N(p),V==="{"?F(p,d)||R:$(d,11,h(p))):(w===8&&g(Y.INVALID_LINKED_FORMAT,s(),0),d.braceNest=0,d.inLinked=!1,B(p,d))}}function B(p,d){let w={type:14};if(d.braceNest>0)return F(p,d)||y(d);if(d.inLinked)return I(p,d)||y(d);switch(p.currentChar()){case"{":return F(p,d)||y(d);case"}":return g(Y.UNBALANCED_CLOSING_BRACE,s(),0),p.next(),$(d,3,"}");case"@":return I(p,d)||y(d);default:{if(z(p))return w=$(d,1,C(p)),d.braceNest=0,d.inLinked=!1,w;const{isModulo:V,hasSpace:D}=K(p);if(V)return D?$(d,0,qo(p)):$(d,4,Ho(p));if(W(p))return $(d,0,qo(p));break}}return w}function U(){const{currentType:p,offset:d,startLoc:w,endLoc:R}=l;return l.lastType=p,l.lastOffset=d,l.lastStartLoc=w,l.lastEndLoc=R,l.offset=a(),l.startLoc=s(),n.currentChar()===jo?$(l,14):B(n,l)}return{nextToken:U,currentOffset:a,currentPosition:s,context:c}}const Hf="parser",qf=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Kf(e,o,t){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(o||t,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function Xf(e={}){const o=e.location!==!1,{onError:t,onWarn:n}=e;function a(b,_,S,x,...A){const P=b.currentPosition();if(P.offset+=x,P.column+=x,t){const k=o?Zn(S,P):null,z=mt(_,k,{domain:Hf,args:A});t(z)}}function s(b,_,S,x,...A){const P=b.currentPosition();if(P.offset+=x,P.column+=x,n){const k=o?Zn(S,P):null;n(Ff(_,k,A))}}function r(b,_,S){const x={type:b};return o&&(x.start=_,x.end=_,x.loc={start:S,end:S}),x}function i(b,_,S,x){o&&(b.end=_,b.loc&&(b.loc.end=S))}function l(b,_){const S=b.context(),x=r(3,S.offset,S.startLoc);return x.value=_,i(x,b.currentOffset(),b.currentPosition()),x}function c(b,_){const S=b.context(),{lastOffset:x,lastStartLoc:A}=S,P=r(5,x,A);return P.index=parseInt(_,10),b.nextToken(),i(P,b.currentOffset(),b.currentPosition()),P}function u(b,_,S){const x=b.context(),{lastOffset:A,lastStartLoc:P}=x,k=r(4,A,P);return k.key=_,S===!0&&(k.modulo=!0),b.nextToken(),i(k,b.currentOffset(),b.currentPosition()),k}function g(b,_){const S=b.context(),{lastOffset:x,lastStartLoc:A}=S,P=r(9,x,A);return P.value=_.replace(qf,Kf),b.nextToken(),i(P,b.currentOffset(),b.currentPosition()),P}function $(b){const _=b.nextToken(),S=b.context(),{lastOffset:x,lastStartLoc:A}=S,P=r(8,x,A);return _.type!==12?(a(b,Y.UNEXPECTED_EMPTY_LINKED_MODIFIER,S.lastStartLoc,0),P.value="",i(P,x,A),{nextConsumeToken:_,node:P}):(_.value==null&&a(b,Y.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,ro(_)),P.value=_.value||"",i(P,b.currentOffset(),b.currentPosition()),{node:P})}function y(b,_){const S=b.context(),x=r(7,S.offset,S.startLoc);return x.value=_,i(x,b.currentOffset(),b.currentPosition()),x}function E(b){const _=b.context(),S=r(6,_.offset,_.startLoc);let x=b.nextToken();if(x.type===9){const A=$(b);S.modifier=A.node,x=A.nextConsumeToken||b.nextToken()}switch(x.type!==10&&a(b,Y.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,ro(x)),x=b.nextToken(),x.type===2&&(x=b.nextToken()),x.type){case 11:x.value==null&&a(b,Y.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,ro(x)),S.key=y(b,x.value||"");break;case 5:x.value==null&&a(b,Y.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,ro(x)),S.key=u(b,x.value||"");break;case 6:x.value==null&&a(b,Y.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,ro(x)),S.key=c(b,x.value||"");break;case 7:x.value==null&&a(b,Y.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,ro(x)),S.key=g(b,x.value||"");break;default:{a(b,Y.UNEXPECTED_EMPTY_LINKED_KEY,_.lastStartLoc,0);const A=b.context(),P=r(7,A.offset,A.startLoc);return P.value="",i(P,A.offset,A.startLoc),S.key=P,i(S,A.offset,A.startLoc),{nextConsumeToken:x,node:S}}}return i(S,b.currentOffset(),b.currentPosition()),{node:S}}function L(b){const _=b.context(),S=_.currentType===1?b.currentOffset():_.offset,x=_.currentType===1?_.endLoc:_.startLoc,A=r(2,S,x);A.items=[];let P=null,k=null;do{const W=P||b.nextToken();switch(P=null,W.type){case 0:W.value==null&&a(b,Y.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,ro(W)),A.items.push(l(b,W.value||""));break;case 6:W.value==null&&a(b,Y.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,ro(W)),A.items.push(c(b,W.value||""));break;case 4:k=!0;break;case 5:W.value==null&&a(b,Y.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,ro(W)),A.items.push(u(b,W.value||"",!!k)),k&&(s(b,Xs.USE_MODULO_SYNTAX,_.lastStartLoc,0,ro(W)),k=null);break;case 7:W.value==null&&a(b,Y.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,ro(W)),A.items.push(g(b,W.value||""));break;case 8:{const ne=E(b);A.items.push(ne.node),P=ne.nextConsumeToken||null;break}}}while(_.currentType!==14&&_.currentType!==1);const z=_.currentType===1?_.lastOffset:b.currentOffset(),K=_.currentType===1?_.lastEndLoc:b.currentPosition();return i(A,z,K),A}function N(b,_,S,x){const A=b.context();let P=x.items.length===0;const k=r(1,_,S);k.cases=[],k.cases.push(x);do{const z=L(b);P||(P=z.items.length===0),k.cases.push(z)}while(A.currentType!==14);return P&&a(b,Y.MUST_HAVE_MESSAGES_IN_PLURAL,S,0),i(k,b.currentOffset(),b.currentPosition()),k}function O(b){const _=b.context(),{offset:S,startLoc:x}=_,A=L(b);return _.currentType===14?A:N(b,S,x,A)}function M(b){const _=Wf(b,Ri({},e)),S=_.context(),x=r(0,S.offset,S.startLoc);return o&&x.loc&&(x.loc.source=b),x.body=O(_),e.onCacheKey&&(x.cacheKey=e.onCacheKey(b)),S.currentType!==14&&a(_,Y.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,b[S.offset]||""),i(x,_.currentOffset(),_.currentPosition()),x}return{parse:M}}function ro(e){if(e.type===14)return"EOF";const o=(e.value||"").replace(/\r?\n/gu,"\\n");return o.length>10?o.slice(0,9)+"…":o}function Yf(e,o={}){const t={ast:e,helpers:new Set};return{context:()=>t,helper:s=>(t.helpers.add(s),s)}}function Ii(e,o){for(let t=0;tFi(t)),e}function Fi(e){if(e.items.length===1){const o=e.items[0];(o.type===3||o.type===9)&&(e.static=o.value,delete o.value)}else{const o=[];for(let t=0;tr;function l(L,N){r.code+=L}function c(L,N=!0){const O=N?n:"";l(a?O+" ".repeat(L):O)}function u(L=!0){const N=++r.indentLevel;L&&c(N)}function g(L=!0){const N=--r.indentLevel;L&&c(N)}function $(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:g,newline:$,helper:L=>`_${L}`,needIndent:()=>r.needIndent}}function th(e,o){const{helper:t}=e;e.push(`${t("linked")}(`),bt(e,o.key),o.modifier?(e.push(", "),bt(e,o.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function nh(e,o){const{helper:t,needIndent:n}=e;e.push(`${t("normalize")}([`),e.indent(n());const a=o.items.length;for(let s=0;s1){e.push(`${t("plural")}([`),e.indent(n());const a=o.cases.length;for(let s=0;s{const t=Ti(o.mode)?o.mode:"normal",n=Ti(o.filename)?o.filename:"message.intl";o.sourceMap;const a=o.breakLineCode!=null?o.breakLineCode:t==="arrow"?";":` -`,s=o.needIndent?o.needIndent:t!=="arrow",r=e.helpers||[],i=oh(e,{filename:n,breakLineCode:a,needIndent:s});i.push(t==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${Oi(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),bt(i,e),i.deindent(s),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function ih(e,o={}){const t=Ri({},o),n=!!t.jit,a=!!t.minify,s=t.optimize==null?!0:t.optimize,i=Xf(t).parse(e);return n?(s&&Jf(i),a&&_t(i),{ast:i,code:""}):(Zf(i,t),rh(i,t))}/*! - * core-base v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */function lh(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Oo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Oo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Oo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function bo(e){return ie(e)&&Zs(e)===0&&(ao(e,"b")||ao(e,"body"))}const Mi=["b","body"];function ch(e){return zo(e,Mi)}const Di=["c","cases"];function uh(e){return zo(e,Di,[])}const Gi=["s","static"];function ph(e){return zo(e,Gi)}const Ui=["i","items"];function dh(e){return zo(e,Ui,[])}const Bi=["t","type"];function Zs(e){return zo(e,Bi)}const Vi=["v","value"];function Jn(e,o){const t=zo(e,Vi);if(t!=null)return t;throw Yt(o)}const ji=["m","modifier"];function gh(e){return zo(e,ji)}const zi=["k","key"];function $h(e){const o=zo(e,zi);if(o)return o;throw Yt(6)}function zo(e,o,t){for(let n=0;n{r===void 0?r=i:r+=i},$[1]=()=>{r!==void 0&&(o.push(r),r=void 0)},$[2]=()=>{$[0](),a++},$[3]=()=>{if(a>0)a--,n=4,$[0]();else{if(a=0,r===void 0||(r=bh(r),r===!1))return!1;$[1]()}};function y(){const E=e[t+1];if(n===5&&E==="'"||n===6&&E==='"')return t++,i="\\"+E,$[0](),!0}for(;n!==null;)if(t++,s=e[t],!(s==="\\"&&y())){if(l=_h(s),g=Wo[n],c=g[l]||g.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=$[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return o}}const Hi=new Map;function vh(e,o){return ie(e)?e[o]:null}function Ph(e,o){if(!ie(e))return null;let t=Hi.get(o);if(t||(t=yh(o),t&&Hi.set(o,t)),!t)return null;const n=t.length;let a=e,s=0;for(;se,Lh=e=>"",wh="text",Sh=e=>e.length===0?"":Rf(e),Ah=Cf;function qi(e,o){return e=Math.abs(e),o===2?e?e>1?1:0:1:e?Math.min(e,2):0}function xh(e){const o=Se(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Se(e.named.count)||Se(e.named.n))?Se(e.named.count)?e.named.count:Se(e.named.n)?e.named.n:o:o}function Eh(e,o){o.count||(o.count=e),o.n||(o.n=e)}function Ch(e={}){const o=e.locale,t=xh(e),n=ie(e.pluralRules)&&j(o)&&fe(e.pluralRules[o])?e.pluralRules[o]:qi,a=ie(e.pluralRules)&&j(o)&&fe(e.pluralRules[o])?qi:void 0,s=O=>O[n(t,O.length,a)],r=e.list||[],i=O=>r[O],l=e.named||pe();Se(e.pluralIndex)&&Eh(t,l);const c=O=>l[O];function u(O){const M=fe(e.messages)?e.messages(O):ie(e.messages)?e.messages[O]:!1;return M||(e.parent?e.parent.message(O):Lh)}const g=O=>e.modifiers?e.modifiers[O]:kh,$=oe(e.processor)&&fe(e.processor.normalize)?e.processor.normalize:Sh,y=oe(e.processor)&&fe(e.processor.interpolate)?e.processor.interpolate:Ah,E=oe(e.processor)&&j(e.processor.type)?e.processor.type:wh,N={list:i,named:c,plural:s,linked:(O,...M)=>{const[b,_]=M;let S="text",x="";M.length===1?ie(b)?(x=b.modifier||x,S=b.type||S):j(b)&&(x=b||x):M.length===2&&(j(b)&&(x=b||x),j(_)&&(S=_||S));const A=u(O)(N),P=S==="vnode"&&_e(A)&&x?A[0]:A;return x?g(x)(P,S):P},message:u,type:E,interpolate:y,normalize:$,values:Ne(pe(),r,l)};return N}let Zt=null;function Rh(e){Zt=e}function Th(e,o,t){Zt&&Zt.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:o,meta:t})}const Oh=Nh("function:translate");function Nh(e){return o=>Zt&&Zt.emit(e,o)}const Ih=Xs.__EXTEND_POINT__,ot=Kn(Ih),Fh={FALLBACK_TO_TRANSLATE:ot(),CANNOT_FORMAT_NUMBER:ot(),FALLBACK_TO_NUMBER_FORMAT:ot(),CANNOT_FORMAT_DATE:ot(),FALLBACK_TO_DATE_FORMAT:ot(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:ot(),__EXTEND_POINT__:ot()},Ki=Y.__EXTEND_POINT__,tt=Kn(Ki),io={INVALID_ARGUMENT:Ki,INVALID_DATE_ARGUMENT:tt(),INVALID_ISO_DATE_ARGUMENT:tt(),NOT_SUPPORT_NON_STRING_MESSAGE:tt(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:tt(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:tt(),NOT_SUPPORT_LOCALE_TYPE:tt(),__EXTEND_POINT__:tt()};function yo(e){return mt(e,null,void 0)}function Js(e,o){return o.locale!=null?Xi(o.locale):Xi(e.locale)}let Qs;function Xi(e){if(j(e))return e;if(fe(e)){if(e.resolvedOnce&&Qs!=null)return Qs;if(e.constructor.name==="Function"){const o=e();if(Ef(o))throw yo(io.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Qs=o}else throw yo(io.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw yo(io.NOT_SUPPORT_LOCALE_TYPE)}function Mh(e,o,t){return[...new Set([t,..._e(o)?o:ie(o)?Object.keys(o):j(o)?[o]:[t]])]}function Yi(e,o,t){const n=j(t)?t:yt,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[t];for(;_e(r);)r=Zi(s,r,o);const i=_e(o)||!oe(o)?o:o.default?o.default:null;r=j(i)?[i]:i,_e(r)&&Zi(s,r,!1),a.__localeChainCache.set(n,s)}return s}function Zi(e,o,t){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Bh(){return{upper:(e,o)=>o==="text"&&j(e)?e.toUpperCase():o==="vnode"&&ie(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,o)=>o==="text"&&j(e)?e.toLowerCase():o==="vnode"&&ie(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,o)=>o==="text"&&j(e)?Qi(e):o==="vnode"&&ie(e)&&"__v_isVNode"in e?Qi(e.children):e}}let el;function ol(e){el=e}let tl;function Vh(e){tl=e}let nl;function jh(e){nl=e}let sl=null;const zh=e=>{sl=e},Wh=()=>sl;let al=null;const rl=e=>{al=e},Hh=()=>al;let il=0;function qh(e={}){const o=fe(e.onWarn)?e.onWarn:Pf,t=j(e.version)?e.version:Uh,n=j(e.locale)||fe(e.locale)?e.locale:yt,a=fe(n)?yt:n,s=_e(e.fallbackLocale)||oe(e.fallbackLocale)||j(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=oe(e.messages)?e.messages:ea(a),i=oe(e.datetimeFormats)?e.datetimeFormats:ea(a),l=oe(e.numberFormats)?e.numberFormats:ea(a),c=Ne(pe(),e.modifiers,Bh()),u=e.pluralRules||pe(),g=fe(e.missing)?e.missing:null,$=se(e.missingWarn)||Vo(e.missingWarn)?e.missingWarn:!0,y=se(e.fallbackWarn)||Vo(e.fallbackWarn)?e.fallbackWarn:!0,E=!!e.fallbackFormat,L=!!e.unresolving,N=fe(e.postTranslation)?e.postTranslation:null,O=oe(e.processor)?e.processor:null,M=se(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,_=fe(e.messageCompiler)?e.messageCompiler:el,S=fe(e.messageResolver)?e.messageResolver:tl||vh,x=fe(e.localeFallbacker)?e.localeFallbacker:nl||Mh,A=ie(e.fallbackContext)?e.fallbackContext:void 0,P=e,k=ie(P.__datetimeFormatters)?P.__datetimeFormatters:new Map,z=ie(P.__numberFormatters)?P.__numberFormatters:new Map,K=ie(P.__meta)?P.__meta:{};il++;const W={version:t,cid:il,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:g,missingWarn:$,fallbackWarn:y,fallbackFormat:E,unresolving:L,postTranslation:N,processor:O,warnHtmlMessage:M,escapeParameter:b,messageCompiler:_,messageResolver:S,localeFallbacker:x,fallbackContext:A,onWarn:o,__meta:K};return W.datetimeFormats=i,W.numberFormats=l,W.__datetimeFormatters=k,W.__numberFormatters=z,__INTLIFY_PROD_DEVTOOLS__&&Th(W,t,K),W}const ea=e=>({[e]:pe()});function oa(e,o,t,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const i=s(e,t,o,a);return j(i)?i:o}else return o}function Jt(e,o,t){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,t,o)}function Kh(e,o){return e===o?!1:e.split("-")[0]===o.split("-")[0]}function Xh(e,o){const t=o.indexOf(e);if(t===-1)return!1;for(let n=t+1;nYh(t,e)}function Yh(e,o){const t=ch(o);if(t==null)throw Yt(0);if(Zs(t)===1){const s=uh(t);return e.plural(s.reduce((r,i)=>[...r,ll(e,i)],[]))}else return ll(e,t)}function ll(e,o){const t=ph(o);if(t!=null)return e.type==="text"?t:e.normalize([t]);{const n=dh(o).reduce((a,s)=>[...a,na(e,s)],[]);return e.normalize(n)}}function na(e,o){const t=Zs(o);switch(t){case 3:return Jn(o,t);case 9:return Jn(o,t);case 4:{const n=o;if(ao(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(ao(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Yt(t)}case 5:{const n=o;if(ao(n,"i")&&Se(n.i))return e.interpolate(e.list(n.i));if(ao(n,"index")&&Se(n.index))return e.interpolate(e.list(n.index));throw Yt(t)}case 6:{const n=o,a=gh(n),s=$h(n);return e.linked(na(e,s),a?na(e,a):void 0,e.type)}case 7:return Jn(o,t);case 8:return Jn(o,t);default:throw new Error(`unhandled node on format message part: ${t}`)}}const cl=e=>e;let vt=pe();function ul(e,o={}){let t=!1;const n=o.onError||Df;return o.onError=a=>{t=!0,n(a)},{...ih(e,o),detectError:t}}const Zh=(e,o)=>{if(!j(e))throw yo(io.NOT_SUPPORT_NON_STRING_MESSAGE);{se(o.warnHtmlMessage)&&o.warnHtmlMessage;const n=(o.onCacheKey||cl)(e),a=vt[n];if(a)return a;const{code:s,detectError:r}=ul(e,o),i=new Function(`return ${s}`)();return r?i:vt[n]=i}};function Jh(e,o){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&j(e)){se(o.warnHtmlMessage)&&o.warnHtmlMessage;const n=(o.onCacheKey||cl)(e),a=vt[n];if(a)return a;const{ast:s,detectError:r}=ul(e,{...o,location:!1,jit:!0}),i=ta(s);return r?i:vt[n]=i}else{const t=e.cacheKey;if(t){const n=vt[t];return n||(vt[t]=ta(e))}else return ta(e)}}const pl=()=>"",Qe=e=>fe(e);function dl(e,...o){const{fallbackFormat:t,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=sa(...o),u=se(c.missingWarn)?c.missingWarn:e.missingWarn,g=se(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,$=se(c.escapeParameter)?c.escapeParameter:e.escapeParameter,y=!!c.resolvedMessage,E=j(c.default)||se(c.default)?se(c.default)?s?l:()=>l:c.default:t?s?l:()=>l:"",L=t||E!=="",N=Js(e,c);$&&Qh(c);let[O,M,b]=y?[l,N,i[N]||pe()]:gl(e,l,N,r,g,u),_=O,S=l;if(!y&&!(j(_)||bo(_)||Qe(_))&&L&&(_=E,S=_),!y&&(!(j(_)||bo(_)||Qe(_))||!j(M)))return a?Qn:l;let x=!1;const A=()=>{x=!0},P=Qe(_)?_:$l(e,l,M,_,S,A);if(x)return _;const k=tm(e,M,b,c),z=Ch(k),K=em(e,P,z);let W=n?n(K,l):K;if($&&j(W)&&(W=Af(W)),__INTLIFY_PROD_DEVTOOLS__){const ne={timestamp:Date.now(),key:j(l)?l:Qe(_)?_.key:"",locale:M||(Qe(_)?_.locale:""),format:j(_)?_:Qe(_)?_.source:"",message:W};ne.meta=Ne({},e.__meta,Wh()||{}),Oh(ne)}return W}function Qh(e){_e(e.list)?e.list=e.list.map(o=>j(o)?Si(o):o):ie(e.named)&&Object.keys(e.named).forEach(o=>{j(e.named[o])&&(e.named[o]=Si(e.named[o]))})}function gl(e,o,t,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,t);let g=pe(),$,y=null;const E="translate";for(let L=0;Ln;return c.locale=t,c.key=o,c}const l=r(n,om(e,t,a,n,i,s));return l.locale=t,l.key=o,l.source=n,l}function em(e,o,t){return o(t)}function sa(...e){const[o,t,n]=e,a=pe();if(!j(o)&&!Se(o)&&!Qe(o)&&!bo(o))throw yo(io.INVALID_ARGUMENT);const s=Se(o)?String(o):(Qe(o),o);return Se(t)?a.plural=t:j(t)?a.default=t:oe(t)&&!qn(t)?a.named=t:_e(t)&&(a.list=t),Se(n)?a.plural=n:j(n)?a.default=n:oe(n)&&Ne(a,n),[s,a]}function om(e,o,t,n,a,s){return{locale:o,key:t,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>kf(o,t,r)}}function tm(e,o,t,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,$={locale:o,modifiers:a,pluralRules:s,messages:y=>{let E=r(t,y);if(E==null&&u){const[,,L]=gl(u,y,o,i,l,c);E=r(L,y)}if(j(E)||bo(E)){let L=!1;const O=$l(e,y,o,E,y,()=>{L=!0});return L?pl:O}else return Qe(E)?E:pl}};return e.processor&&($.processor=e.processor),n.list&&($.list=n.list),n.named&&($.named=n.named),Se(n.plural)&&($.pluralIndex=n.plural),$}function fl(e,...o){const{datetimeFormats:t,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,g]=aa(...o),$=se(u.missingWarn)?u.missingWarn:e.missingWarn;se(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const y=!!u.part,E=Js(e,u),L=r(e,a,E);if(!j(l)||l==="")return new Intl.DateTimeFormat(E,g).format(c);let N={},O,M=null;const b="datetime format";for(let x=0;x{hl.includes(l)?r[l]=t[l]:s[l]=t[l]}),j(n)?s.locale=n:oe(n)&&(r=n),oe(a)&&(r=a),[s.key||"",i,s,r]}function ml(e,o,t){const n=e;for(const a in t){const s=`${o}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function _l(e,...o){const{numberFormats:t,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,g]=ra(...o),$=se(u.missingWarn)?u.missingWarn:e.missingWarn;se(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const y=!!u.part,E=Js(e,u),L=r(e,a,E);if(!j(l)||l==="")return new Intl.NumberFormat(E,g).format(c);let N={},O,M=null;const b="number format";for(let x=0;x{bl.includes(l)?r[l]=t[l]:s[l]=t[l]}),j(n)?s.locale=n:oe(n)&&(r=n),oe(a)&&(r=a),[s.key||"",i,s,r]}function yl(e,o,t){const n=e;for(const a in t){const s=`${o}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}lh();/*! - * vue-i18n v9.14.5 - * (c) 2025 kazuya kawaguchi - * Released under the MIT License. - */const nm="9.14.5";function sm(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Oo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Oo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Oo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Oo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Oo().__INTLIFY_PROD_DEVTOOLS__=!1)}const am=Fh.__EXTEND_POINT__,Io=Kn(am);Io(),Io(),Io(),Io(),Io(),Io(),Io(),Io(),Io();const vl=io.__EXTEND_POINT__,ze=Kn(vl),Ee={UNEXPECTED_RETURN_TYPE:vl,INVALID_ARGUMENT:ze(),MUST_BE_CALL_SETUP_TOP:ze(),NOT_INSTALLED:ze(),NOT_AVAILABLE_IN_LEGACY_MODE:ze(),REQUIRED_VALUE:ze(),INVALID_VALUE:ze(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:ze(),NOT_INSTALLED_WITH_PROVIDE:ze(),UNEXPECTED_ERROR:ze(),NOT_COMPATIBLE_LEGACY_VUE_I18N:ze(),BRIDGE_SUPPORT_VUE_2_ONLY:ze(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:ze(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:ze(),__EXTEND_POINT__:ze()};function Re(e,...o){return mt(e,null,void 0)}const ia=Bo("__translateVNode"),la=Bo("__datetimeParts"),ca=Bo("__numberParts"),Pl=Bo("__setPluralRules"),kl=Bo("__injectWithOption"),ua=Bo("__dispose");function Qt(e){if(!ie(e)||bo(e))return e;for(const o in e)if(ao(e,o))if(!o.includes("."))ie(e[o])&&Qt(e[o]);else{const t=o.split("."),n=t.length-1;let a=e,s=!1;for(let r=0;r{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(r[l]=r[l]||pe(),Yn(c,r[l])):Yn(c,r)}else j(i)&&Yn(JSON.parse(i),r)}),a==null&&s)for(const i in r)ao(r,i)&&Qt(r[i]);return r}function Ll(e){return e.type}function wl(e,o,t){let n=ie(o.messages)?o.messages:pe();"__i18nGlobal"in t&&(n=es(e.locale.value,{messages:n,__i18n:t.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(ie(o.datetimeFormats)){const s=Object.keys(o.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,o.datetimeFormats[r])})}if(ie(o.numberFormats)){const s=Object.keys(o.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,o.numberFormats[r])})}}}function Sl(e){return we(Vt,null,e,0)}const Al="__INTLIFY_META__",xl=()=>[],rm=()=>!1;let El=0;function Cl(e){return(o,t,n,a)=>e(t,n,Ro()||void 0,a)}const im=()=>{const e=Ro();let o=null;return e&&(o=Ll(e)[Al])?{[Al]:o}:null};function pa(e={},o){const{__root:t,__injectWithOption:n}=e,a=t===void 0,s=e.flatJson,r=Hn?He:Ka,i=!!e.translateExistCompatible;let l=se(e.inheritLocale)?e.inheritLocale:!0;const c=r(t&&l?t.locale.value:j(e.locale)?e.locale:yt),u=r(t&&l?t.fallbackLocale.value:j(e.fallbackLocale)||_e(e.fallbackLocale)||oe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),g=r(es(c.value,e)),$=r(oe(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),y=r(oe(e.numberFormats)?e.numberFormats:{[c.value]:{}});let E=t?t.missingWarn:se(e.missingWarn)||Vo(e.missingWarn)?e.missingWarn:!0,L=t?t.fallbackWarn:se(e.fallbackWarn)||Vo(e.fallbackWarn)?e.fallbackWarn:!0,N=t?t.fallbackRoot:se(e.fallbackRoot)?e.fallbackRoot:!0,O=!!e.fallbackFormat,M=fe(e.missing)?e.missing:null,b=fe(e.missing)?Cl(e.missing):null,_=fe(e.postTranslation)?e.postTranslation:null,S=t?t.warnHtmlMessage:se(e.warnHtmlMessage)?e.warnHtmlMessage:!0,x=!!e.escapeParameter;const A=t?t.modifiers:oe(e.modifiers)?e.modifiers:{};let P=e.pluralRules||t&&t.pluralRules,k;k=(()=>{a&&rl(null);const v={version:nm,locale:c.value,fallbackLocale:u.value,messages:g.value,modifiers:A,pluralRules:P,missing:b===null?void 0:b,missingWarn:E,fallbackWarn:L,fallbackFormat:O,unresolving:!0,postTranslation:_===null?void 0:_,warnHtmlMessage:S,escapeParameter:x,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};v.datetimeFormats=$.value,v.numberFormats=y.value,v.__datetimeFormatters=oe(k)?k.__datetimeFormatters:void 0,v.__numberFormatters=oe(k)?k.__numberFormatters:void 0;const T=qh(v);return a&&rl(T),T})(),Jt(k,c.value,u.value);function K(){return[c.value,u.value,g.value,$.value,y.value]}const W=$e({get:()=>c.value,set:v=>{c.value=v,k.locale=c.value}}),ne=$e({get:()=>u.value,set:v=>{u.value=v,k.fallbackLocale=u.value,Jt(k,c.value,v)}}),J=$e(()=>g.value),ae=$e(()=>$.value),Q=$e(()=>y.value);function H(){return fe(_)?_:null}function Z(v){_=v,k.postTranslation=v}function be(){return M}function Me(v){v!==null&&(b=Cl(v)),M=v,k.missing=b}const ke=(v,T,q,te,he,Ve)=>{K();let Ie;try{__INTLIFY_PROD_DEVTOOLS__,a||(k.fallbackContext=t?Hh():void 0),Ie=v(k)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(k.fallbackContext=void 0)}if(q!=="translate exists"&&Se(Ie)&&Ie===Qn||q==="translate exists"&&!Ie){const[st,ha]=T();return t&&N?te(t):he(st)}else{if(Ve(Ie))return Ie;throw Re(Ee.UNEXPECTED_RETURN_TYPE)}};function Ae(...v){return ke(T=>Reflect.apply(dl,null,[T,...v]),()=>sa(...v),"translate",T=>Reflect.apply(T.t,T,[...v]),T=>T,T=>j(T))}function Ho(...v){const[T,q,te]=v;if(te&&!ie(te))throw Re(Ee.INVALID_ARGUMENT);return Ae(T,q,Ne({resolvedMessage:!0},te||{}))}function qo(...v){return ke(T=>Reflect.apply(fl,null,[T,...v]),()=>aa(...v),"datetime format",T=>Reflect.apply(T.d,T,[...v]),()=>Ji,T=>j(T))}function nt(...v){return ke(T=>Reflect.apply(_l,null,[T,...v]),()=>ra(...v),"number format",T=>Reflect.apply(T.n,T,[...v]),()=>Ji,T=>j(T))}function lo(v){return v.map(T=>j(T)||Se(T)||se(T)?Sl(String(T)):T)}const Mo={normalize:lo,interpolate:v=>v,type:"vnode"};function Ko(...v){return ke(T=>{let q;const te=T;try{te.processor=Mo,q=Reflect.apply(dl,null,[te,...v])}finally{te.processor=null}return q},()=>sa(...v),"translate",T=>T[ia](...v),T=>[Sl(T)],T=>_e(T))}function eo(...v){return ke(T=>Reflect.apply(_l,null,[T,...v]),()=>ra(...v),"number format",T=>T[ca](...v),xl,T=>j(T)||_e(T))}function wt(...v){return ke(T=>Reflect.apply(fl,null,[T,...v]),()=>aa(...v),"datetime format",T=>T[la](...v),xl,T=>j(T)||_e(T))}function f(v){P=v,k.pluralRules=P}function m(v,T){return ke(()=>{if(!v)return!1;const q=j(T)?T:c.value,te=F(q),he=k.messageResolver(te,v);return i?he!=null:bo(he)||Qe(he)||j(he)},()=>[v],"translate exists",q=>Reflect.apply(q.te,q,[v,T]),rm,q=>se(q))}function h(v){let T=null;const q=Yi(k,u.value,c.value);for(let te=0;te{l&&(c.value=v,k.locale=v,Jt(k,c.value,u.value))}),Ao(t.fallbackLocale,v=>{l&&(u.value=v,k.fallbackLocale=v,Jt(k,c.value,u.value))}));const D={id:El,locale:W,fallbackLocale:ne,get inheritLocale(){return l},set inheritLocale(v){l=v,v&&t&&(c.value=t.locale.value,u.value=t.fallbackLocale.value,Jt(k,c.value,u.value))},get availableLocales(){return Object.keys(g.value).sort()},messages:J,get modifiers(){return A},get pluralRules(){return P||{}},get isGlobal(){return a},get missingWarn(){return E},set missingWarn(v){E=v,k.missingWarn=E},get fallbackWarn(){return L},set fallbackWarn(v){L=v,k.fallbackWarn=L},get fallbackRoot(){return N},set fallbackRoot(v){N=v},get fallbackFormat(){return O},set fallbackFormat(v){O=v,k.fallbackFormat=O},get warnHtmlMessage(){return S},set warnHtmlMessage(v){S=v,k.warnHtmlMessage=v},get escapeParameter(){return x},set escapeParameter(v){x=v,k.escapeParameter=v},t:Ae,getLocaleMessage:F,setLocaleMessage:I,mergeLocaleMessage:B,getPostTranslationHandler:H,setPostTranslationHandler:Z,getMissingHandler:be,setMissingHandler:Me,[Pl]:f};return D.datetimeFormats=ae,D.numberFormats=Q,D.rt=Ho,D.te=m,D.tm=C,D.d=qo,D.n=nt,D.getDateTimeFormat=U,D.setDateTimeFormat=p,D.mergeDateTimeFormat=d,D.getNumberFormat=w,D.setNumberFormat=R,D.mergeNumberFormat=V,D[kl]=n,D[ia]=Ko,D[la]=wt,D[ca]=eo,D}function lm(e){const o=j(e.locale)?e.locale:yt,t=j(e.fallbackLocale)||_e(e.fallbackLocale)||oe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:o,n=fe(e.missing)?e.missing:void 0,a=se(e.silentTranslationWarn)||Vo(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=se(e.silentFallbackWarn)||Vo(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=se(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=oe(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=fe(e.postTranslation)?e.postTranslation:void 0,g=j(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,$=!!e.escapeParameterHtml,y=se(e.sync)?e.sync:!0;let E=e.messages;if(oe(e.sharedMessages)){const x=e.sharedMessages;E=Object.keys(x).reduce((P,k)=>{const z=P[k]||(P[k]={});return Ne(z,x[k]),P},E||{})}const{__i18n:L,__root:N,__injectWithOption:O}=e,M=e.datetimeFormats,b=e.numberFormats,_=e.flatJson,S=e.translateExistCompatible;return{locale:o,fallbackLocale:t,messages:E,flatJson:_,datetimeFormats:M,numberFormats:b,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:g,escapeParameter:$,messageResolver:e.messageResolver,inheritLocale:y,translateExistCompatible:S,__i18n:L,__root:N,__injectWithOption:O}}function da(e={},o){{const t=pa(lm(e)),{__extender:n}=e,a={id:t.id,get locale(){return t.locale.value},set locale(s){t.locale.value=s},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(s){t.fallbackLocale.value=s},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(s){},get missing(){return t.getMissingHandler()},set missing(s){t.setMissingHandler(s)},get silentTranslationWarn(){return se(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(s){t.missingWarn=se(s)?!s:s},get silentFallbackWarn(){return se(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(s){t.fallbackWarn=se(s)?!s:s},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(s){t.fallbackFormat=s},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(s){t.setPostTranslationHandler(s)},get sync(){return t.inheritLocale},set sync(s){t.inheritLocale=s},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){t.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(s){t.escapeParameter=s},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(s){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...s){const[r,i,l]=s,c={};let u=null,g=null;if(!j(r))throw Re(Ee.INVALID_ARGUMENT);const $=r;return j(i)?c.locale=i:_e(i)?u=i:oe(i)&&(g=i),_e(l)?u=l:oe(l)&&(g=l),Reflect.apply(t.t,t,[$,u||g||{},c])},rt(...s){return Reflect.apply(t.rt,t,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,g=null;if(!j(r))throw Re(Ee.INVALID_ARGUMENT);const $=r;return j(i)?c.locale=i:Se(i)?c.plural=i:_e(i)?u=i:oe(i)&&(g=i),j(l)?c.locale=l:_e(l)?u=l:oe(l)&&(g=l),Reflect.apply(t.t,t,[$,u||g||{},c])},te(s,r){return t.te(s,r)},tm(s){return t.tm(s)},getLocaleMessage(s){return t.getLocaleMessage(s)},setLocaleMessage(s,r){t.setLocaleMessage(s,r)},mergeLocaleMessage(s,r){t.mergeLocaleMessage(s,r)},d(...s){return Reflect.apply(t.d,t,[...s])},getDateTimeFormat(s){return t.getDateTimeFormat(s)},setDateTimeFormat(s,r){t.setDateTimeFormat(s,r)},mergeDateTimeFormat(s,r){t.mergeDateTimeFormat(s,r)},n(...s){return Reflect.apply(t.n,t,[...s])},getNumberFormat(s){return t.getNumberFormat(s)},setNumberFormat(s,r){t.setNumberFormat(s,r)},mergeNumberFormat(s,r){t.mergeNumberFormat(s,r)},getChoiceIndex(s,r){return-1}};return a.__extender=n,a}}const ga={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function cm({slots:e},o){return o.length===1&&o[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Ke?a.children:[a]],[]):o.reduce((t,n)=>{const a=e[n];return a&&(t[n]=a()),t},pe())}function Rl(e){return Ke}const Tl=Mt({name:"i18n-t",props:Ne({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Se(e)||!isNaN(e)}},ga),setup(e,o){const{slots:t,attrs:n}=o,a=e.i18n||os({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(t).filter(g=>g!=="_"),r=pe();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=j(e.plural)?+e.plural:e.plural);const i=cm(o,s),l=a[ia](e.keypath,i,r),c=Ne(pe(),n),u=j(e.tag)||ie(e.tag)?e.tag:Rl();return Jr(u,c,l)}}});function um(e){return _e(e)&&!j(e[0])}function Ol(e,o,t,n){const{slots:a,attrs:s}=o;return()=>{const r={part:!0};let i=pe();e.locale&&(r.locale=e.locale),j(e.format)?r.key=e.format:ie(e.format)&&(j(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce(($,y)=>t.includes(y)?Ne(pe(),$,{[y]:e.format[y]}):$,pe()));const l=n(e.value,r,i);let c=[r.key];_e(l)?c=l.map(($,y)=>{const E=a[$.type],L=E?E({[$.type]:$.value,index:y,parts:l}):[$.value];return um(L)&&(L[0].key=`${$.type}-${y}`),L}):j(l)&&(c=[l]);const u=Ne(pe(),s),g=j(e.tag)||ie(e.tag)?e.tag:Rl();return Jr(g,u,c)}}const Nl=Mt({name:"i18n-n",props:Ne({value:{type:Number,required:!0},format:{type:[String,Object]}},ga),setup(e,o){const t=e.i18n||os({useScope:e.scope,__useComponent:!0});return Ol(e,o,bl,(...n)=>t[ca](...n))}}),Il=Mt({name:"i18n-d",props:Ne({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},ga),setup(e,o){const t=e.i18n||os({useScope:e.scope,__useComponent:!0});return Ol(e,o,hl,(...n)=>t[la](...n))}});function pm(e,o){const t=e;if(e.mode==="composition")return t.__getInstance(o)||e.global;{const n=t.__getInstance(o);return n!=null?n.__composer:e.global.__composer}}function dm(e){const o=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw Re(Ee.UNEXPECTED_ERROR);const u=pm(e,i.$),g=Fl(c);return[Reflect.apply(u.t,u,[...Ml(g)]),u]};return{created:(r,i)=>{const[l,c]=o(i);Hn&&e.global===c&&(r.__i18nWatcher=Ao(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{Hn&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:i})=>{if(r.__composer){const l=r.__composer,c=Fl(i);r.textContent=Reflect.apply(l.t,l,[...Ml(c)])}},getSSRProps:r=>{const[i]=o(r);return{textContent:i}}}}function Fl(e){if(j(e))return{path:e};if(oe(e)){if(!("path"in e))throw Re(Ee.REQUIRED_VALUE,"path");return e}else throw Re(Ee.INVALID_VALUE)}function Ml(e){const{path:o,locale:t,args:n,choice:a,plural:s}=e,r={},i=n||{};return j(t)&&(r.locale=t),Se(a)&&(r.plural=a),Se(s)&&(r.plural=s),[o,i,r]}function gm(e,o,...t){const n=oe(t[0])?t[0]:{},a=!!n.useI18nComponentName;(se(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":Tl.name,"I18nT"].forEach(r=>e.component(r,Tl)),[Nl.name,"I18nN"].forEach(r=>e.component(r,Nl)),[Il.name,"I18nD"].forEach(r=>e.component(r,Il))),e.directive("t",dm(o))}function $m(e,o,t){return{beforeCreate(){const n=Ro();if(!n)throw Re(Ee.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const s=a.i18n;if(a.__i18n&&(s.__i18n=a.__i18n),s.__root=o,this===this.$root)this.$i18n=Dl(e,s);else{s.__injectWithOption=!0,s.__extender=t.__vueI18nExtend,this.$i18n=da(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Dl(e,a);else{this.$i18n=da({__i18n:a.__i18n,__injectWithOption:!0,__extender:t.__vueI18nExtend,__root:o});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&wl(o,a,a),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$tc=(...s)=>this.$i18n.tc(...s),this.$te=(s,r)=>this.$i18n.te(s,r),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),t.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=Ro();if(!n)throw Re(Ee.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),t.__deleteInstance(n),delete this.$i18n}}}function Dl(e,o){e.locale=o.locale||e.locale,e.fallbackLocale=o.fallbackLocale||e.fallbackLocale,e.missing=o.missing||e.missing,e.silentTranslationWarn=o.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=o.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=o.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=o.postTranslation||e.postTranslation,e.warnHtmlInMessage=o.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=o.escapeParameterHtml||e.escapeParameterHtml,e.sync=o.sync||e.sync,e.__composer[Pl](o.pluralizationRules||e.pluralizationRules);const t=es(e.locale,{messages:o.messages,__i18n:o.__i18n});return Object.keys(t).forEach(n=>e.mergeLocaleMessage(n,t[n])),o.datetimeFormats&&Object.keys(o.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,o.datetimeFormats[n])),o.numberFormats&&Object.keys(o.numberFormats).forEach(n=>e.mergeNumberFormat(n,o.numberFormats[n])),e}const fm=Bo("global-vue-i18n");function hm(e={},o){const t=__VUE_I18N_LEGACY_API__&&se(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=se(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&t?!!e.allowComposition:!0,s=new Map,[r,i]=mm(e,t),l=Bo("");function c($){return s.get($)||null}function u($,y){s.set($,y)}function g($){s.delete($)}{const $={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},get allowComposition(){return a},async install(y,...E){if(y.__VUE_I18N_SYMBOL__=l,y.provide(y.__VUE_I18N_SYMBOL__,$),oe(E[0])){const O=E[0];$.__composerExtend=O.__composerExtend,$.__vueI18nExtend=O.__vueI18nExtend}let L=null;!t&&n&&(L=Sm(y,$.global)),__VUE_I18N_FULL_INSTALL__&&gm(y,$,...E),__VUE_I18N_LEGACY_API__&&t&&y.mixin($m(i,i.__composer,$));const N=y.unmount;y.unmount=()=>{L&&L(),$.dispose(),N()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:g};return $}}function os(e={}){const o=Ro();if(o==null)throw Re(Ee.MUST_BE_CALL_SETUP_TOP);if(!o.isCE&&o.appContext.app!=null&&!o.appContext.app.__VUE_I18N_SYMBOL__)throw Re(Ee.NOT_INSTALLED);const t=_m(o),n=ym(t),a=Ll(o),s=bm(e,a);if(__VUE_I18N_LEGACY_API__&&t.mode==="legacy"&&!e.__useComponent){if(!t.allowComposition)throw Re(Ee.NOT_AVAILABLE_IN_LEGACY_MODE);return Lm(o,s,n,e)}if(s==="global")return wl(n,e,a),n;if(s==="parent"){let l=vm(t,o,e.__useComponent);return l==null&&(l=n),l}const r=t;let i=r.__getInstance(o);if(i==null){const l=Ne({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=pa(l),r.__composerExtend&&(i[ua]=r.__composerExtend(i)),km(r,o,i),r.__setInstance(o,i)}return i}function mm(e,o,t){const n=ps();{const a=__VUE_I18N_LEGACY_API__&&o?n.run(()=>da(e)):n.run(()=>pa(e));if(a==null)throw Re(Ee.UNEXPECTED_ERROR);return[n,a]}}function _m(e){{const o=so(e.isCE?fm:e.appContext.app.__VUE_I18N_SYMBOL__);if(!o)throw Re(e.isCE?Ee.NOT_INSTALLED_WITH_PROVIDE:Ee.UNEXPECTED_ERROR);return o}}function bm(e,o){return qn(e)?"__i18n"in o?"local":"global":e.useScope?e.useScope:"local"}function ym(e){return e.mode==="composition"?e.global:e.global.__composer}function vm(e,o,t=!1){let n=null;const a=o.root;let s=Pm(o,t);for(;s!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const i=r.__getInstance(s);i!=null&&(n=i.__composer,t&&n&&!n[kl]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function Pm(e,o=!1){return e==null?null:o&&e.vnode.ctx||e.parent}function km(e,o,t){Cn(()=>{},o),Rn(()=>{const n=t;e.__deleteInstance(o);const a=n[ua];a&&(a(),delete n[ua])},o)}function Lm(e,o,t,n={}){const a=o==="local",s=Ka(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Re(Ee.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=se(n.inheritLocale)?n.inheritLocale:!j(n.locale),i=He(!a||r?t.locale.value:j(n.locale)?n.locale:yt),l=He(!a||r?t.fallbackLocale.value:j(n.fallbackLocale)||_e(n.fallbackLocale)||oe(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=He(es(i.value,n)),u=He(oe(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),g=He(oe(n.numberFormats)?n.numberFormats:{[i.value]:{}}),$=a?t.missingWarn:se(n.missingWarn)||Vo(n.missingWarn)?n.missingWarn:!0,y=a?t.fallbackWarn:se(n.fallbackWarn)||Vo(n.fallbackWarn)?n.fallbackWarn:!0,E=a?t.fallbackRoot:se(n.fallbackRoot)?n.fallbackRoot:!0,L=!!n.fallbackFormat,N=fe(n.missing)?n.missing:null,O=fe(n.postTranslation)?n.postTranslation:null,M=a?t.warnHtmlMessage:se(n.warnHtmlMessage)?n.warnHtmlMessage:!0,b=!!n.escapeParameter,_=a?t.modifiers:oe(n.modifiers)?n.modifiers:{},S=n.pluralRules||a&&t.pluralRules;function x(){return[i.value,l.value,c.value,u.value,g.value]}const A=$e({get:()=>s.value?s.value.locale.value:i.value,set:h=>{s.value&&(s.value.locale.value=h),i.value=h}}),P=$e({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:h=>{s.value&&(s.value.fallbackLocale.value=h),l.value=h}}),k=$e(()=>s.value?s.value.messages.value:c.value),z=$e(()=>u.value),K=$e(()=>g.value);function W(){return s.value?s.value.getPostTranslationHandler():O}function ne(h){s.value&&s.value.setPostTranslationHandler(h)}function J(){return s.value?s.value.getMissingHandler():N}function ae(h){s.value&&s.value.setMissingHandler(h)}function Q(h){return x(),h()}function H(...h){return s.value?Q(()=>Reflect.apply(s.value.t,null,[...h])):Q(()=>"")}function Z(...h){return s.value?Reflect.apply(s.value.rt,null,[...h]):""}function be(...h){return s.value?Q(()=>Reflect.apply(s.value.d,null,[...h])):Q(()=>"")}function Me(...h){return s.value?Q(()=>Reflect.apply(s.value.n,null,[...h])):Q(()=>"")}function ke(h){return s.value?s.value.tm(h):{}}function Ae(h,C){return s.value?s.value.te(h,C):!1}function Ho(h){return s.value?s.value.getLocaleMessage(h):{}}function qo(h,C){s.value&&(s.value.setLocaleMessage(h,C),c.value[h]=C)}function nt(h,C){s.value&&s.value.mergeLocaleMessage(h,C)}function lo(h){return s.value?s.value.getDateTimeFormat(h):{}}function Fo(h,C){s.value&&(s.value.setDateTimeFormat(h,C),u.value[h]=C)}function Mo(h,C){s.value&&s.value.mergeDateTimeFormat(h,C)}function Ko(h){return s.value?s.value.getNumberFormat(h):{}}function eo(h,C){s.value&&(s.value.setNumberFormat(h,C),g.value[h]=C)}function wt(h,C){s.value&&s.value.mergeNumberFormat(h,C)}const f={get id(){return s.value?s.value.id:-1},locale:A,fallbackLocale:P,messages:k,datetimeFormats:z,numberFormats:K,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(h){s.value&&(s.value.inheritLocale=h)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:_},get pluralRules(){return s.value?s.value.pluralRules:S},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:$},set missingWarn(h){s.value&&(s.value.missingWarn=h)},get fallbackWarn(){return s.value?s.value.fallbackWarn:y},set fallbackWarn(h){s.value&&(s.value.missingWarn=h)},get fallbackRoot(){return s.value?s.value.fallbackRoot:E},set fallbackRoot(h){s.value&&(s.value.fallbackRoot=h)},get fallbackFormat(){return s.value?s.value.fallbackFormat:L},set fallbackFormat(h){s.value&&(s.value.fallbackFormat=h)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:M},set warnHtmlMessage(h){s.value&&(s.value.warnHtmlMessage=h)},get escapeParameter(){return s.value?s.value.escapeParameter:b},set escapeParameter(h){s.value&&(s.value.escapeParameter=h)},t:H,getPostTranslationHandler:W,setPostTranslationHandler:ne,getMissingHandler:J,setMissingHandler:ae,rt:Z,d:be,n:Me,tm:ke,te:Ae,getLocaleMessage:Ho,setLocaleMessage:qo,mergeLocaleMessage:nt,getDateTimeFormat:lo,setDateTimeFormat:Fo,mergeDateTimeFormat:Mo,getNumberFormat:Ko,setNumberFormat:eo,mergeNumberFormat:wt};function m(h){h.locale.value=i.value,h.fallbackLocale.value=l.value,Object.keys(c.value).forEach(C=>{h.mergeLocaleMessage(C,c.value[C])}),Object.keys(u.value).forEach(C=>{h.mergeDateTimeFormat(C,u.value[C])}),Object.keys(g.value).forEach(C=>{h.mergeNumberFormat(C,g.value[C])}),h.escapeParameter=b,h.fallbackFormat=L,h.fallbackRoot=E,h.fallbackWarn=y,h.missingWarn=$,h.warnHtmlMessage=M}return pr(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Re(Ee.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const h=s.value=e.proxy.$i18n.__composer;o==="global"?(i.value=h.locale.value,l.value=h.fallbackLocale.value,c.value=h.messages.value,u.value=h.datetimeFormats.value,g.value=h.numberFormats.value):a&&m(h)}),f}const wm=["locale","fallbackLocale","availableLocales"],Gl=["t","rt","d","n","tm","te"];function Sm(e,o){const t=Object.create(null);return wm.forEach(a=>{const s=Object.getOwnPropertyDescriptor(o,a);if(!s)throw Re(Ee.UNEXPECTED_ERROR);const r=ve(s.value)?{get(){return s.value.value},set(i){s.value.value=i}}:{get(){return s.get&&s.get()}};Object.defineProperty(t,a,r)}),e.config.globalProperties.$i18n=t,Gl.forEach(a=>{const s=Object.getOwnPropertyDescriptor(o,a);if(!s||!s.value)throw Re(Ee.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,Gl.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(sm(),__INTLIFY_JIT_COMPILATION__?ol(Jh):ol(Zh),Vh(Ph),jh(Yi),__INTLIFY_PROD_DEVTOOLS__){const e=Oo();e.__INTLIFY__=!0,Rh(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Am=Object.assign({"./locales/ar/allPeopleGroups.json":xp,"./locales/ar/aria.json":Ep,"./locales/ar/buttons.json":Cp,"./locales/ar/connectivity.json":Rp,"./locales/ar/controls.json":Tp,"./locales/ar/dashboard.json":Op,"./locales/ar/detail.json":Np,"./locales/ar/gospel.json":Ip,"./locales/ar/grid.json":Fp,"./locales/ar/legend.json":Mp,"./locales/ar/messages.json":Dp,"./locales/ar/options.json":Gp,"./locales/ar/popup.json":Up,"./locales/ar/prayerLaps.json":Bp,"./locales/ar/regions.json":Vp,"./locales/ar/search.json":jp,"./locales/ar/studio.json":zp,"./locales/ar/tabs.json":Wp,"./locales/ar/vision.json":Hp,"./locales/de/allPeopleGroups.json":qp,"./locales/de/aria.json":Kp,"./locales/de/buttons.json":Xp,"./locales/de/connectivity.json":Yp,"./locales/de/controls.json":Zp,"./locales/de/dashboard.json":Jp,"./locales/de/detail.json":Qp,"./locales/de/gospel.json":ed,"./locales/de/grid.json":od,"./locales/de/legend.json":td,"./locales/de/messages.json":nd,"./locales/de/options.json":sd,"./locales/de/popup.json":ad,"./locales/de/prayerLaps.json":rd,"./locales/de/regions.json":id,"./locales/de/search.json":ld,"./locales/de/studio.json":cd,"./locales/de/tabs.json":ud,"./locales/de/vision.json":pd,"./locales/en/allPeopleGroups.json":dd,"./locales/en/aria.json":gd,"./locales/en/buttons.json":$d,"./locales/en/connectivity.json":fd,"./locales/en/controls.json":hd,"./locales/en/dashboard.json":md,"./locales/en/detail.json":_d,"./locales/en/gospel.json":bd,"./locales/en/grid.json":yd,"./locales/en/legend.json":vd,"./locales/en/messages.json":Pd,"./locales/en/options.json":kd,"./locales/en/popup.json":Ld,"./locales/en/prayerLaps.json":wd,"./locales/en/regions.json":Sd,"./locales/en/search.json":Ad,"./locales/en/studio.json":xd,"./locales/en/tabs.json":Ed,"./locales/en/vision.json":Cd,"./locales/es/allPeopleGroups.json":Rd,"./locales/es/aria.json":Td,"./locales/es/buttons.json":Od,"./locales/es/connectivity.json":Nd,"./locales/es/controls.json":Id,"./locales/es/dashboard.json":Fd,"./locales/es/detail.json":Md,"./locales/es/gospel.json":Dd,"./locales/es/grid.json":Gd,"./locales/es/legend.json":Ud,"./locales/es/messages.json":Bd,"./locales/es/options.json":Vd,"./locales/es/popup.json":jd,"./locales/es/prayerLaps.json":zd,"./locales/es/regions.json":Wd,"./locales/es/search.json":Hd,"./locales/es/studio.json":qd,"./locales/es/tabs.json":Kd,"./locales/es/vision.json":Xd,"./locales/fr/allPeopleGroups.json":Yd,"./locales/fr/aria.json":Zd,"./locales/fr/buttons.json":Jd,"./locales/fr/connectivity.json":Qd,"./locales/fr/controls.json":eg,"./locales/fr/dashboard.json":og,"./locales/fr/detail.json":tg,"./locales/fr/gospel.json":ng,"./locales/fr/grid.json":sg,"./locales/fr/legend.json":ag,"./locales/fr/messages.json":rg,"./locales/fr/options.json":ig,"./locales/fr/popup.json":lg,"./locales/fr/prayerLaps.json":cg,"./locales/fr/regions.json":ug,"./locales/fr/search.json":pg,"./locales/fr/studio.json":dg,"./locales/fr/tabs.json":gg,"./locales/fr/vision.json":$g,"./locales/hi/allPeopleGroups.json":fg,"./locales/hi/aria.json":hg,"./locales/hi/buttons.json":mg,"./locales/hi/connectivity.json":_g,"./locales/hi/controls.json":bg,"./locales/hi/dashboard.json":yg,"./locales/hi/detail.json":vg,"./locales/hi/gospel.json":Pg,"./locales/hi/grid.json":kg,"./locales/hi/legend.json":Lg,"./locales/hi/messages.json":wg,"./locales/hi/options.json":Sg,"./locales/hi/popup.json":Ag,"./locales/hi/prayerLaps.json":xg,"./locales/hi/regions.json":Eg,"./locales/hi/search.json":Cg,"./locales/hi/studio.json":Rg,"./locales/hi/tabs.json":Tg,"./locales/hi/vision.json":Og,"./locales/it/allPeopleGroups.json":Ng,"./locales/it/aria.json":Ig,"./locales/it/buttons.json":Fg,"./locales/it/connectivity.json":Mg,"./locales/it/controls.json":Dg,"./locales/it/dashboard.json":Gg,"./locales/it/detail.json":Ug,"./locales/it/gospel.json":Bg,"./locales/it/grid.json":Vg,"./locales/it/legend.json":jg,"./locales/it/messages.json":zg,"./locales/it/options.json":Wg,"./locales/it/popup.json":Hg,"./locales/it/prayerLaps.json":qg,"./locales/it/regions.json":Kg,"./locales/it/search.json":Xg,"./locales/it/studio.json":Yg,"./locales/it/tabs.json":Zg,"./locales/it/vision.json":Jg,"./locales/pt/allPeopleGroups.json":Qg,"./locales/pt/aria.json":e$,"./locales/pt/buttons.json":o$,"./locales/pt/connectivity.json":t$,"./locales/pt/controls.json":n$,"./locales/pt/dashboard.json":s$,"./locales/pt/detail.json":a$,"./locales/pt/gospel.json":r$,"./locales/pt/grid.json":i$,"./locales/pt/legend.json":l$,"./locales/pt/messages.json":c$,"./locales/pt/options.json":u$,"./locales/pt/popup.json":p$,"./locales/pt/prayerLaps.json":d$,"./locales/pt/regions.json":g$,"./locales/pt/search.json":$$,"./locales/pt/studio.json":f$,"./locales/pt/tabs.json":h$,"./locales/pt/vision.json":m$,"./locales/ro/allPeopleGroups.json":_$,"./locales/ro/aria.json":b$,"./locales/ro/buttons.json":y$,"./locales/ro/connectivity.json":v$,"./locales/ro/controls.json":P$,"./locales/ro/dashboard.json":k$,"./locales/ro/detail.json":L$,"./locales/ro/gospel.json":w$,"./locales/ro/grid.json":S$,"./locales/ro/legend.json":A$,"./locales/ro/messages.json":x$,"./locales/ro/options.json":E$,"./locales/ro/popup.json":C$,"./locales/ro/prayerLaps.json":R$,"./locales/ro/regions.json":T$,"./locales/ro/search.json":O$,"./locales/ro/studio.json":N$,"./locales/ro/tabs.json":I$,"./locales/ro/vision.json":F$,"./locales/ru/allPeopleGroups.json":M$,"./locales/ru/aria.json":D$,"./locales/ru/buttons.json":G$,"./locales/ru/connectivity.json":U$,"./locales/ru/controls.json":B$,"./locales/ru/dashboard.json":V$,"./locales/ru/detail.json":j$,"./locales/ru/gospel.json":z$,"./locales/ru/grid.json":W$,"./locales/ru/legend.json":H$,"./locales/ru/messages.json":q$,"./locales/ru/options.json":K$,"./locales/ru/popup.json":X$,"./locales/ru/prayerLaps.json":Y$,"./locales/ru/regions.json":Z$,"./locales/ru/search.json":J$,"./locales/ru/studio.json":Q$,"./locales/ru/tabs.json":ef,"./locales/ru/vision.json":of,"./locales/zh/allPeopleGroups.json":tf,"./locales/zh/aria.json":nf,"./locales/zh/buttons.json":sf,"./locales/zh/connectivity.json":af,"./locales/zh/controls.json":rf,"./locales/zh/dashboard.json":lf,"./locales/zh/detail.json":cf,"./locales/zh/gospel.json":uf,"./locales/zh/grid.json":pf,"./locales/zh/legend.json":df,"./locales/zh/messages.json":gf,"./locales/zh/options.json":$f,"./locales/zh/popup.json":ff,"./locales/zh/prayerLaps.json":hf,"./locales/zh/regions.json":mf,"./locales/zh/search.json":_f,"./locales/zh/studio.json":bf,"./locales/zh/tabs.json":yf,"./locales/zh/vision.json":vf}),Pt={};for(const[e,o]of Object.entries(Am)){const t=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!t)continue;const[,n,a]=t;Pt[n]??(Pt[n]={}),Pt[n][a]=o}Pt.en;const ts=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],Ul=new Set(["ar"]);function xm(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function Em(){var n;const e=xm();if(ts.includes(e))return e;const t=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return ts.includes(t)?t:"en"}function Cm(){const e=Em();try{Ul.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}const o=hm({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Pt,missingWarn:!1,fallbackWarn:!1});Ao(o.global.locale,n=>Bl(n),{immediate:!0});const t=o.install.bind(o);return o.install=(n,...a)=>{const s=t(n,...a);return n.provide("appI18n",o),s},o}const Rm="__DOXA_PAGE_LOCALE";function Bl(e){const o=String(e||"").split("-")[0].toLowerCase();if(ts.includes(o))try{typeof window<"u"&&(window[Rm]=o)}catch{}}function Tm(e,o){const t=o;Cn(()=>{var i;const n=Ro();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot)||s.querySelector(`style[data-shadow-styles="${t}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",t),r.textContent=e,s.appendChild(r)})}const Om={class:"pin-hint-pill"},Nm={__name:"PinHint",setup(e){const o={"messages.pinHint.tapDot":"Tap a dot to see who still needs prayer"};let t=P=>o[P]||P,n=()=>!1;try{const P=os();t=P.t,n=P.te}catch{}const a=so("uiStore",null),s=so("profileConfig",null),r=$e(()=>(a==null?void 0:a.theme)==="dark"),i=$e(()=>{var z;const P=(z=s==null?void 0:s.value)==null?void 0:z.pinHintLabel;if(P)return P;const k="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?t("messages.pinHint.tapDot"):k}catch{return k}}),l=He(!1),c=He(null);let u=null,g=null,$=null,y=null,E=null,L=null,N=[],O=null,M=null;function b(){l.value=!1}function _(P,k){var K;let z=P==null?void 0:P.parentElement;for(let W=0;z&&W<12;W++,z=z.parentElement){if(z===k||(K=z.classList)!=null&&K.contains("profile-loader"))return null;let ne="";try{ne=getComputedStyle(z).position}catch{}if(ne&&ne!=="static"){const J=z.getBoundingClientRect();if(J.height>=120&&J.width>=160)return z}}return null}function S(P){var z;const k=(z=y==null?void 0:y.querySelector)==null?void 0:z.call(y,".legend-mobile-sheet");if(!k)return 1/0;if(E&&L!==k){try{E.disconnect()}catch{}E=null}if(!E&&typeof ResizeObserver<"u")try{E=new ResizeObserver(()=>x()),E.observe(k),L=k}catch{E=null}try{const K=k.getBoundingClientRect();return!(K.height>16)||!(K.width>16)||P.right<=K.left||K.right<=P.left?1/0:K.top}catch{return 1/0}}function x(){const P=c.value;if(P)try{P.style.removeProperty("--pin-hint-lift");const k=P.getBoundingClientRect();if(!k.height)return;const z=Math.min(window.innerHeight,S(k)),K=Math.round(k.bottom-z);K>0&&P.style.setProperty("--pin-hint-lift",K+8+"px")}catch{}}function A(P){const k=c.value;if(!k||!(P!=null&&P.querySelector))return;let z=0;try{const W=P.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(W){const ne=W.getBoundingClientRect(),J=k.parentElement,ae=J?J.getBoundingClientRect():null;if(z=ae?Math.max(ne.height||0,ae.bottom-ne.top):ne.height||0,M!==W&&typeof ResizeObserver<"u"){if($)try{$.disconnect()}catch{}M=W,$=new ResizeObserver(()=>A(P)),$.observe(W)}}}catch{}const K=Math.min(Math.max(Math.ceil(z)||20,20),72);k.style.setProperty("--pin-hint-attrib-clear",K+"px"),x()}return Cn(()=>{var K,W,ne;const P=Ro(),k=(ne=(W=(K=P==null?void 0:P.proxy)==null?void 0:K.$el)==null?void 0:W.getRootNode)==null?void 0:ne.call(W);if(!k||typeof k.querySelector!="function")return;y=k;let z=0;u=setInterval(()=>{z++;const J=k.querySelector("canvas");J?(clearInterval(u),u=null,l.value=!0,kn(()=>{const ae=_(J,k),Q=c.value;if(ae&&Q&&Q.parentElement!==ae)try{ae.appendChild(Q),g=ae}catch{}A(k),x(),N.push(setTimeout(x,1200),setTimeout(x,3e3),setTimeout(x,6e3));try{const H=c.value&&c.value.offsetParent||null;if(H&&typeof ResizeObserver<"u"){if(O)try{O.disconnect()}catch{}O=new ResizeObserver(()=>x()),O.observe(H)}}catch{}})):z>40&&(clearInterval(u),u=null)},300)}),Es(()=>{var P;if(u&&clearInterval(u),$){try{$.disconnect()}catch{}$=null}if(M=null,O){try{O.disconnect()}catch{}O=null}if(E){try{E.disconnect()}catch{}E=null}L=null;for(const k of N)clearTimeout(k);if(N=[],y=null,g&&((P=c.value)==null?void 0:P.parentElement)===g)try{g.removeChild(c.value)}catch{}g=null}),Tm(` - .pin-hint { position: absolute; left: 50%; - bottom: calc(var(--pin-hint-attrib-clear, 20px) + 12px + var(--pin-hint-lift, 0px)); transform: translateX(-50%); - z-index: 2147482000; pointer-events: none; - max-width: calc(100% - 24px); box-sizing: border-box; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; - animation: pinhint-in .5s ease both; } - .pin-hint-pill { pointer-events: auto; display: inline-flex; align-items: center; gap: 9px; - padding: 9px 14px 9px 11px; border-radius: 999px; - background: rgba(23, 29, 38, .92); color: #fff; font-size: 13.5px; font-weight: 600; - letter-spacing: .01em; box-shadow: 0 4px 18px rgba(0,0,0,.30); - animation: pinhint-bob 2.6s ease-in-out 1s infinite; } - .pin-hint-dot { position: relative; width: 12px; height: 12px; flex: none; } - .pin-hint-dot::before { content: ''; position: absolute; inset: 0; border-radius: 50%; - background: #e05252; box-shadow: 0 0 0 2px rgba(224,82,82,.35); } - .pin-hint-dot::after { content: ''; position: absolute; inset: -5px; border-radius: 50%; - border: 2px solid rgba(224,82,82,.55); animation: pinhint-pulse 1.8s ease-out infinite; } - .pin-hint-x { pointer-events: auto; border: none; background: none; color: #aeb7c2; - font-size: 16px; line-height: 1; cursor: pointer; padding: 0 0 0 2px; } - .pin-hint-x:hover { color: #fff; } - @media (pointer:coarse) { .pin-hint-x { min-width: 24px; min-height: 24px; - display: inline-flex; align-items: center; justify-content: center; padding: 0; } } - .pin-hint.dark .pin-hint-pill { background: rgba(240, 243, 247, .95); color: #1b212b; } - .pin-hint.dark .pin-hint-x { color: #5a6470; } - .pin-hint.dark .pin-hint-x:hover { color: #1b212b; } - @keyframes pinhint-pulse { 0% { transform: scale(.6); opacity: .9 } 70% { transform: scale(1.5); opacity: 0 } 100% { opacity: 0 } } - @keyframes pinhint-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } } - @keyframes pinhint-in { from { opacity: 0; transform: translateX(-50%) translateY(10px) } to { opacity: 1; transform: translateX(-50%) translateY(0) } } - @media (prefers-reduced-motion: reduce) { - .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } - } -`,"pin-hint"),(P,k)=>l.value?(ue(),Pe("div",{key:0,ref_key:"hintEl",ref:c,class:rt(["pin-hint",{dark:r.value}]),role:"status"},[G("span",Om,[k[0]||(k[0]=G("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Te(" "+ye(i.value)+" ",1),G("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:b},"×")])],2)):Ue("",!0)}};let Im=0;const Fm=Wn("ui",{state:()=>({_storeInstanceId:++Im,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>o=>e.toasts.filter(t=>t.type===o),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>o=>e.openModals.includes(o),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>o=>e.loadingStates.get(o)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const t=this.isDarkTheme;document.documentElement.setAttribute("data-theme",t?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let o;e<768?o="mobile":e<1024?o="tablet":e<1920?o="desktop":o="wide",o!==this.breakpoint&&(this.breakpoint=o)},updateWindowSize(e,o){this.windowSize.width=e,this.windowSize.height=o,this.updateBreakpoint(e)},showToast(e){const{message:o,type:t="info",duration:n=this.toastDuration,action:a=null,persistent:s=!1}=e,r={id:this.nextToastId++,message:o,type:t,duration:n,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(r),!s&&n>0&&setTimeout(()=>{this.removeToast(r.id)},n),r.id},showSuccess(e,o={}){return this.showToast({message:e,type:"success",...o})},showError(e,o={}){return this.showToast({message:e,type:"error",duration:7e3,...o})},showWarning(e,o={}){return this.showToast({message:e,type:"warning",...o})},showInfo(e,o={}){return this.showToast({message:e,type:"info",...o})},removeToast(e){const o=this.toasts.findIndex(t=>t.id===e);o!==-1&&this.toasts.splice(o,1)},clearAllToasts(){this.toasts=[]},openModal(e,o={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,o),this.focusTrapActive=!0)},closeModal(e=null){if(e){const o=this.openModals.indexOf(e);o!==-1&&(this.openModals.splice(o,1),this.modalData.delete(e))}else{const o=this.openModals.pop();o&&this.modalData.delete(o)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,o=!0){o?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,o="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(t=>{for(const n of t)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",t=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",t.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",t=>{this.reducedMotion=t.matches,document.documentElement.setAttribute("data-reduced-motion",t.matches)}))}}}),Mm=Wn("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusteringMode:"off",clusterPinOpacity:.6,clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>o=>e.maps[o],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>o=>o in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>o=>e.fullscreenMapId===o},actions:{registerMap(e,o,t={}){let n=1.5;t.zoom!==void 0?n=t.zoom:o&&typeof o.getZoom=="function"&&(n=o.getZoom());let a=[0,0];if(t.center)a=t.center;else if(o&&typeof o.getCenter=="function"){const s=o.getCenter();s&&(a=[s.lng,s.lat])}this.maps[e]={instance:o,config:t,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const o=this.maps[e];o&&(o.isReady=!0)},updateMapState(e,o){const t=this.maps[e];t&&Object.assign(t,o)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const o=this.allMapIds;this.activeMapId=o.length>0?o[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,o){this.globalFilters[e]=o},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,o=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=o,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},setClusterFilter(e,o){this.clusterFilterProperty=e||null,this.clusterFilterValue=o||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const o=JSON.parse(e);this.preferences={...this.preferences,...o}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,o){this.preferences[e]=o,this.preferences.autoSavePreferences&&this.savePreferences()}}}),Dm=Wn("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,o){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const t=await o();this.sources[e]=Ot({features:t,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(t){console.error(`[dataStore] Failed to load source "${e}":`,t),this.loadingStates[e]={isLoading:!1,error:t}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,o){this.sources[e]=Ot({features:o.normalizedData||[],timestamp:o.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>o=>{var t;return((t=e.sources[o])==null?void 0:t.features)??null},isLoading:e=>o=>{var t;return((t=e.loadingStates[o])==null?void 0:t.isLoading)??!1},getError:e=>o=>{var t;return((t=e.loadingStates[o])==null?void 0:t.error)??null}}}),Gm={activeSource:"pray-tools"},Um=".profile-loader[data-v-ccbcaedb]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-ccbcaedb]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",kt=(e,o)=>{const t=e.__vccOpts||e;for(const[n,a]of o)t[n]=a;return t},Bm=["dir"],Vm={key:0,class:"profile-error"},jm={key:1,class:"profile-error"},zm=kt({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var x;const t=e,n=so("profileConfig",null),a=$e(()=>{var P;if(!t.profileConfig)return null;let A;try{A=JSON.parse(t.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",t.profileConfig),null}if(A&&A.assetsBase===void 0){const k=(P=n==null?void 0:n.value)==null?void 0:P.assetsBase;typeof k=="string"&&k&&(A.assetsBase=k)}return A}),s=$e(()=>{var A;return((A=a.value)==null?void 0:A.profile)||null}),r=Sp(),i=$e(()=>{var P;const A=(P=a.value)==null?void 0:P.tk;return typeof A=="string"&&A?A:r.value||""});Ao(()=>{var A;return(A=a.value)==null?void 0:A.tk},A=>{typeof A=="string"&&A&&Li(A)},{immediate:!0});const l=$e(()=>{var A;return((A=a.value)==null?void 0:A.dataSource)||Gm.activeSource}),c=$e(()=>{var A;return((A=a.value)==null?void 0:A.colorSet)||"default"}),u=$e(()=>!1),g=$e(()=>{var A;return((A=a.value)==null?void 0:A.pinHint)!==!1}),$=$e(()=>{var P,k;const A=(((P=a.value)==null?void 0:P.locale)||((k=a.value)==null?void 0:k.lang)||"").split("-")[0].toLowerCase();return ts.includes(A)?A:""}),y=so("appI18n",null);Bc(()=>{$.value&&(y&&(y.global.locale.value=$.value),Bl($.value))});const E=$e(()=>{var A,P;return $.value||((P=(A=y==null?void 0:y.global)==null?void 0:A.locale)==null?void 0:P.value)||"en"}),L=$e(()=>Ul.has(E.value)?"rtl":"ltr"),N=$e(()=>{var A;return((A=a.value)==null?void 0:A.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),O=so("profileModules",null);if(!O)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const M=$e(()=>{if(!s.value)return null;const A=`./${s.value}.vue`;return O[A]?Ap(O[A]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(O)),null)});ho("mapboxToken",i),ho("dataSource",l),ho("colorSet",c),ho("profileConfig",a),ho("instanceId",N),ho("lang",E);const b=Fm(),_=Mm(),S=Dm();try{const A=typeof localStorage<"u"?localStorage.getItem("theme"):null;A&&((x=b.setTheme)==null||x.call(b,A))}catch{}return ho("uiStore",b),ho("mapStore",_),ho("dataStore",S),(A,P)=>(ue(),Pe("div",{class:"profile-loader",dir:L.value},[a.value?M.value?(ue(),zt($r(M.value),{key:2})):(ue(),Pe("div",jm,[G("p",null,[P[1]||(P[1]=Te("⚠️ Profile ",-1)),G("strong",null,'"'+ye(s.value)+'"',1),P[2]||(P[2]=Te(" not found.",-1))])])):(ue(),Pe("div",Vm,[...P[0]||(P[0]=[G("p",null,[Te("⚠️ "),G("strong",null,"doxa-map"),Te(": missing or invalid "),G("code",null,"profile-config"),Te(" prop.")],-1),G("p",null,[Te("Example: "),G("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),M.value&&u.value?(ue(),zt($r(bn(null)),{key:3})):Ue("",!0),M.value&&g.value?(ue(),zt(Nm,{key:4})):Ue("",!0)],8,Bm))}},[["styles",[Um]],["__scopeId","data-v-ccbcaedb"]]),Lt=e=>"wall-pg:"+e,Wm=e=>Wn("peopleGroups",{state:()=>({peopleGroups:[],loading:!1,error:null,prayers:{},comments:{},dataSource:"PRAY_API",availableSources:[{id:"PRAY_API",name:"Prayer.Tools API (Live)",url:"https://pray.doxa.life/api/people-groups/list",description:"Live prayer data with images"}]}),getters:{totalGroups:o=>o.peopleGroups.length,getPrayerCount:o=>t=>o.prayers[t]||0,getComments:o=>t=>o.comments[t]||[],currentSource:o=>o.availableSources.find(t=>t.id===o.dataSource)},actions:{async fetchPeopleGroups(){this.loading=!0,this.error=null,console.log(`🔄 Fetching people groups from ${this.dataSource}...`);try{this.dataSource==="PRAY_API"?await this.fetchFromPrayAPI():this.dataSource==="DOXA_API"?await this.fetchFromAPI():this.dataSource==="CSV"&&await this.fetchFromCSV(),console.log(`✅ Successfully loaded ${this.peopleGroups.length} people groups from ${this.dataSource}!`),console.log("First 3 groups:",this.peopleGroups.slice(0,3))}catch(o){console.error(`❌ Error fetching people groups from ${this.dataSource}:`,o),this.error=o.message,this.peopleGroups=[]}finally{this.loading=!1}},async fetchFromPrayAPI(){const t=this.availableSources.find($=>$.id==="PRAY_API").url;console.log("🙏 Prayer.Tools API URL:",t);const n=await fetch(t);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);if((n.headers.get("content-type")||"").includes("text/html"))throw new Error("Server returned HTML instead of JSON — the API endpoint may be blocked or unavailable");const s=await n.json(),r=s.posts&&Array.isArray(s.posts)?s.posts:Array.isArray(s)?s:[];if(r.length===0){console.error("Unexpected API response format:",s),this.peopleGroups=[];return}const i="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";this.peopleGroups=r.map($=>{var x,A,P,k,z,K,W;const y=((x=$.wagf_region)==null?void 0:x.label)||$.wagf_region||"",E=((A=$.wagf_block)==null?void 0:A.label)||$.wagf_block||"",L=((P=$.country_code)==null?void 0:P.label)||$.country_code||"",N=((k=$.country_code)==null?void 0:k.value)||$.country_code||"",O=((z=$.religion)==null?void 0:z.label)||$.religion||"",M=((K=$.religion)==null?void 0:K.value)||"",b=((W=$.rop1)==null?void 0:W.label)||"",_=$.has_photo===!0||$.has_photo==="true"||$.has_photo===1,S=$.image_url||i;return{ID:$.slug||`pray-${Math.random().toString(36).slice(2)}`,post_title:$.name||"Unknown",name:$.name||"Unknown",slug:$.slug||"",status:"",country:L,countryCode:N,region:y,wagfBlock:E,population:$.population||"",religion:O,religionCode:M,affinityBlock:b,latitude:$.latitude||null,longitude:$.longitude||null,description:$.location_description||"",peoplePraying:Number($.people_praying||0),peopleCommitted:Number($.people_committed||0),adoptedByChurches:Number($.adopted_by_churches||0),imageUrl:S,hasPhoto:_,photoCredit:$.picture_credit||null,imageStatus:_?"pending":"placeholder",...$}});const l=this.peopleGroups.filter($=>$.peoplePraying>0).length,c=this.peopleGroups.filter($=>$.peopleCommitted>0).length,u=this.peopleGroups.filter($=>$.adoptedByChurches>0).length,g=this.peopleGroups.filter($=>$.hasPhoto).length;console.log("📊 Prayer.Tools API stats:"),console.log(` Total groups: ${this.peopleGroups.length}`),console.log(` 🙏 With prayer: ${l}`),console.log(` 👥 With committed workers: ${c}`),console.log(` ⛪ Adopted by churches: ${u}`),console.log(` 📸 With photos: ${g}`),this.testImagesInBackground()},async fetchFromAPI(){const t=this.availableSources.find(u=>u.id==="DOXA_API").url;console.log("API URL:",t);const n=await fetch(t);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);if((n.headers.get("content-type")||"").includes("text/html"))throw new Error("Server returned HTML instead of JSON — the API endpoint may be blocked or unavailable");const s=await n.json(),r="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",i=s.posts&&Array.isArray(s.posts)?s.posts:Array.isArray(s)?s:[];if(i.length===0){console.error("Unexpected API response format:",s),this.peopleGroups=[];return}this.peopleGroups=i.map(u=>{const g=u.imb_has_photo==="1"||u.imb_has_photo===1||u.imb_has_photo===!0,$=u.imb_picture_url||null,y=g&&$?$:r;return{ID:u.dt_id||u.ID||`api-${Math.random().toString(36).slice(2)}`,post_title:u.imb_display_name||u.post_title||"Unknown",name:u.imb_display_name||u.post_title||"Unknown",slug:u.slug||"",status:u.status||"",country:u.imb_isoalpha3||"",region:u.doxa_wagf_region||"",wagfBlock:u.doxa_wagf_block||"",population:u.imb_population||"",religion:u.imb_reg_of_religion||"",religionCode:u.imb_reg_of_religion_3||"",latitude:u.imb_lat||null,longitude:u.imb_lng||null,description:u.imb_people_description||"",imageUrl:y,hasPhoto:g,photoCredit:u.imb_picture_credit_html||"",imageStatus:g&&$?"pending":"placeholder",...u}});const l=this.peopleGroups.filter(u=>u.hasPhoto&&u.imb_picture_url).length,c=this.peopleGroups.length-l;console.log(`📸 Image stats: ${l} with photos, ${c} using placeholder`),this.testImagesInBackground()},async fetchFromCSV(){const t=this.availableSources.find(g=>g.id==="CSV").url;console.log("CSV URL:",t);const n=await fetch(t);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);const a=await n.text(),s=this.parseCSV(a),r=s.map(g=>({ID:g.PEID||g.PeopleID3||`csv-${Math.random()}`,post_title:g.Name||g.PplNm,name:g.Name||g.PplNm,status:g.Status||"Active",country:g.Ctry,region:g.Regn,population:g.Pop,language:g.Lang,religion:g.Rlgn,peopleID3:g.PeopleID3&&g.PeopleID3.trim()!==""?g.PeopleID3.trim():null,imageUrl:g.PeopleID3&&g.PeopleID3.trim()!==""?this.generateImageUrl(g.PeopleID3.trim()):null,imageStatus:"pending",...g})),i={};r.forEach(g=>{g.peopleID3&&(i[g.peopleID3]||(i[g.peopleID3]={total:0}),i[g.peopleID3].total++)}),this.peopleGroups=r.sort((g,$)=>{const y=g.peopleID3?1:0,E=$.peopleID3?1:0;if(y!==E)return E-y;if(y&&E){const L=i[g.peopleID3],N=i[$.peopleID3];return L.total!==N.total?N.total-L.total:g.peopleID3.localeCompare($.peopleID3)}return 0});const l=this.peopleGroups.filter(g=>g.peopleID3).length,c=this.peopleGroups.length-l,u=Object.keys(i).length;console.log(`✅ Parsed ${s.length} total rows`),console.log(` ${l} have PeopleID3, ${c} without`),console.log(` ${u} unique PeopleID3 clusters`),console.log("Top 5 largest clusters:",Object.entries(i).sort((g,$)=>$[1].total-g[1].total).slice(0,5).map(([g,$])=>`PeopleID3 ${g}: ${$.total} groups`)),this.testImagesInBackground()},async testImagesInBackground(){console.log("🔍 Starting background image verification...");const o=this.peopleGroups.filter(y=>y.imageUrl&&y.imageStatus==="pending"),t=new Map;o.forEach(y=>{t.has(y.imageUrl)?t.get(y.imageUrl).groupIds.push(y.ID):t.set(y.imageUrl,{url:y.imageUrl,groupIds:[y.ID],status:"pending"})});const n=t.size;let a=0,s=0,r=0,i=0;console.log(` Testing ${n} unique images...`);const l=3,c=1e3,u=3,g=Array.from(t.entries()),$="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";for(let y=0;ythis.testImageWithRetry(M.url,null,u).then(b=>({imageUrl:O,groupIds:M.groupIds,...b})));(await Promise.all(L)).forEach(O=>{const{groupIds:M,status:b,attempts:_}=O;this.peopleGroups.forEach(S=>{M.includes(S.ID)&&(S.imageStatus=b,S.imageAttempts=_,(b==="failed"||b==="error")&&(S.imageUrl=$,S.imageStatus="placeholder"))}),a++,b==="loaded"?s++:b==="failed"?(r++,console.warn(` ❌ 404: ${O.imageUrl} (tried ${_} times)`)):b==="error"&&(i++,console.error(` ⚠️ Error: ${O.imageUrl} (tried ${_} times)`))}),y/l%10===0&&console.log(` Progress: ${a}/${n} tested (${s} ✅, ${r} ❌, ${i} ⚠️)`),y+lsetTimeout(O,c))}console.log("🎉 Image testing complete!"),console.log(` ✅ ${s} images loaded successfully`),console.log(` ❌ ${r} images not found (404) after retries`),console.log(` ⚠️ ${i} network/timeout errors after retries`),console.log(" Note: Errors may be due to rate limiting or slow network")},async testImageWithRetry(o,t,n=3){let a=null;for(let i=1;i<=n;i++){const l=await this.testImageLoadDetailed(o);if(l.status==="loaded")return{...l,attempts:i,urlFormat:"primary"};if(a=l,isetTimeout(u,c))}}const s=`https://joshuaproject.net/assets/media/profiles/photos/p${t}.jpg`;console.log(` 🔄 Trying fallback URL for PeopleID3 ${t}...`);const r=await this.testImageLoadDetailed(s);return r.status==="loaded"?(this.peopleGroups.forEach(i=>{i.peopleID3===t&&(i.imageUrl=s)}),{...r,attempts:n+1,urlFormat:"fallback"}):{...a,attempts:n+1,urlFormat:"none"}},testImageLoadDetailed(o){return new Promise(t=>{const n=new Image,a=setTimeout(()=>{n.src="",t({status:"error",statusCode:"timeout",url:o})},1e4);n.onload=()=>{clearTimeout(a),t({status:"loaded",statusCode:200,url:o})},n.onerror=()=>{clearTimeout(a),t({status:"failed",statusCode:404,url:o})},n.src=o})},parseCSV(o){const t=[];let n="",a=!1;for(let i=0;i{c[$]!==void 0&&(u[g]=c[$])}),r.push(u)}return r},parseCSVLine(o){const t=[];let n="",a=!1;for(let s=0;szl(()=>Promise.resolve().then(()=>hb),void 0)}),qm=up(zm,{configureApp(e){const o=bp();e.use(o);const t=Cm();e.use(t),e.provide("appI18n",t),e.provide("profileModules",Hm);const n=Wm(o);n.loadFromLocalStorage(),e.config.globalProperties.$store=n}});typeof customElements<"u"&&!customElements.get("wall-of-people-groups")&&customElements.define("wall-of-people-groups",qm);const Km={name:"PeopleGroupsWall",data(){return{svg:null,zoom:null,cardWidth:50,cardHeight:70,cardSpacing:8,cardVerticalSpacing:3,canvasWidth:0,canvasHeight:0,isLandscape:!0}},computed:{loading(){var e;return((e=this.$store)==null?void 0:e.loading)||!1},totalGroups(){var e;return((e=this.$store)==null?void 0:e.totalGroups)||0},peopleGroups(){var e;return((e=this.$store)==null?void 0:e.peopleGroups)||[]}},mounted(){this.initializeCanvas(),this.fetchData()},methods:{async fetchData(){console.log("📊 Wall component fetching data..."),this.$store?(await this.$store.fetchPeopleGroups(),console.log("🎨 Data fetched, rendering cards..."),this.renderCards()):console.error("❌ Store not available!")},initializeCanvas(){this.isLandscape?(this.canvasWidth=4e3,this.canvasHeight=3e3):(this.canvasWidth=3e3,this.canvasHeight=4e3);const e=d3.select(this.$refs.canvas);this.svg=e.append("svg").attr("width","100%").attr("height","100%").attr("viewBox",`0 0 ${this.canvasWidth} ${this.canvasHeight}`).attr("preserveAspectRatio","xMidYMid meet"),this.zoom=d3.zoom().scaleExtent([.1,20]).filter(function(o){const t=o.target;return t.tagName==="text"||t.tagName==="tspan"?!1:!o.ctrlKey&&!o.button}).on("zoom",o=>{this.svg.select(".cards-container").attr("transform",o.transform)}),this.svg.call(this.zoom),this.svg.append("rect").attr("width",this.canvasWidth).attr("height",this.canvasHeight).attr("fill","#fafafa"),this.svg.append("g").attr("class","cards-container")},renderCards(){var ne;if(console.log("🎨 Rendering cards..."),console.log("People groups available:",((ne=this.peopleGroups)==null?void 0:ne.length)||0),!this.peopleGroups||this.peopleGroups.length===0){console.warn("⚠️ No people groups to render");return}const e=this.svg.select(".cards-container"),o=this.peopleGroups.length;this.cardWidth/this.cardHeight;const t=this.canvasWidth/this.canvasHeight,n=Math.ceil(Math.sqrt(o*t)),a=Math.ceil(o/n);console.log(`📐 Grid Layout: ${n} columns × ${a} rows = ${n*a} slots for ${o} groups`),console.log(`📏 Canvas: ${this.canvasWidth}×${this.canvasHeight} (aspect: ${t.toFixed(2)})`);const s=this.canvasWidth-this.cardSpacing*(n+1),r=this.canvasHeight-this.cardSpacing*(a+1),i=s/n,l=r/a;this.cardWidth=Math.min(i,l*.7),this.cardHeight=this.cardWidth/.7,console.log(`🎴 Card size: ${this.cardWidth.toFixed(1)}×${this.cardHeight.toFixed(1)}`),console.log("📦 Sample group data:",this.peopleGroups[0]);const c=this.cardWidth+this.cardSpacing,u=this.cardHeight+this.cardVerticalSpacing,g=e.selectAll(".card-group").data(this.peopleGroups).enter().append("g").attr("class","card-group").attr("transform",(J,ae)=>{const Q=ae%n,H=Math.floor(ae/n),Z=Q*c+this.cardSpacing,be=H*u+this.cardVerticalSpacing;return`translate(${Z}, ${be})`});g.append("rect").attr("width",this.cardWidth).attr("height",this.cardHeight).attr("fill","white").attr("stroke","#dbdbdb").attr("stroke-width",.5).attr("rx",0).style("cursor","pointer").style("pointer-events","none");const $=Math.max(3.5,this.cardWidth*.07),y=Math.max(3,this.cardWidth*.055),E=Math.max(8,this.cardWidth*.12),L=Math.max(3.5,this.cardWidth*.065),N=this.cardWidth,O=this.cardHeight;g.each(function(J){const ae=d3.select(this),Q=J.peopleID3||J.PeopleID3,H=J.name||J.post_title||"Unknown Group";let Z;if(Q&&Q.trim()!==""?Z=ae.append("a").attr("href",`https://joshuaproject.net/people_groups/${Q}`).attr("target","_blank").attr("rel","noopener noreferrer").style("cursor","pointer").append("text").attr("x",N/2).attr("y",O*.06).attr("text-anchor","middle").attr("font-size",$).attr("font-weight","bold").attr("fill","#0095f6").attr("text-decoration","underline").style("user-select","text").style("pointer-events","all"):Z=ae.append("text").attr("x",N/2).attr("y",O*.06).attr("text-anchor","middle").attr("font-size",$).attr("font-weight","bold").attr("fill","#262626").style("user-select","text").style("pointer-events","all"),Z.text(H),Z.node().getComputedTextLength()>N*.95){Z.text("");const be=H.split(" "),Me=Math.ceil(be.length/2),ke=be.slice(0,Me).join(" "),Ae=be.slice(Me).join(" ");Z.append("tspan").attr("x",N/2).attr("dy",0).text(ke),Z.append("tspan").attr("x",N/2).attr("dy",$*1.1).text(Ae)}}),g.append("text").attr("x",N/2).attr("y",this.cardHeight*.14).attr("text-anchor","middle").attr("font-size",y).attr("fill","#8e8e8e").style("user-select","text").style("pointer-events","all").text(J=>J.status||"");const M=this.cardHeight*.18,b=this.cardHeight*.5,_=this.cardWidth;g.append("rect").attr("x",0).attr("y",M).attr("width",_).attr("height",b).attr("fill","#fafafa").attr("stroke","#efefef").attr("stroke-width",.5).attr("rx",0),g.each(function(J){const ae=d3.select(this);J.imageUrl?ae.append("image").attr("x",0).attr("y",M).attr("width",_).attr("height",b).attr("href",J.imageUrl).attr("preserveAspectRatio","xMidYMid slice").style("pointer-events","none").on("error",function(){console.log("Image failed to load:",J.imageUrl)}):ae.append("text").attr("x",N/2).attr("y",M+b/2).attr("text-anchor","middle").attr("font-size",E*1.5).attr("fill","#c7c7c7").text("📷").style("pointer-events","none")});const S=this.cardHeight*.72,x=E*.7,A=x*1.6,P=x*3+A*2,k=(N-P)/2;g.append("foreignObject").attr("x",k).attr("y",S).attr("width",x).attr("height",x).style("cursor","pointer").style("overflow","visible").on("click",(J,ae)=>{J.stopPropagation(),this.openPrayerDialog(ae)}).append("xhtml:div").attr("xmlns","http://www.w3.org/1999/xhtml").style("width","100%").style("height","100%").style("display","flex").style("align-items","center").style("justify-content","center").html(function(J){var Me,ke;const ae=Number(J.peoplePraying||0),Q=((ke=(Me=self.$store)==null?void 0:Me.prayers)==null?void 0:ke[J.ID])||0,H=ae+Q,Z=H>0?"fas fa-heart":"far fa-heart",be=H>0?"#ed4956":"#262626";return''}),g.append("foreignObject").attr("x",k+A).attr("y",S).attr("width",x).attr("height",x).style("cursor","pointer").style("overflow","visible").on("click",(J,ae)=>{J.stopPropagation(),this.openComments(ae)}).append("xhtml:div").attr("xmlns","http://www.w3.org/1999/xhtml").style("width","100%").style("height","100%").style("display","flex").style("align-items","center").style("justify-content","center").html(''),g.append("foreignObject").attr("x",k+A*2).attr("y",S).attr("width",x).attr("height",x).style("cursor","pointer").style("overflow","visible").on("click",(J,ae)=>{J.stopPropagation(),alert("Sharing functionality coming later!")}).append("xhtml:div").attr("xmlns","http://www.w3.org/1999/xhtml").style("width","100%").style("height","100%").style("display","flex").style("align-items","center").style("justify-content","center").html(''),g.append("text").attr("x",k).attr("y",S+x+L+2).attr("text-anchor","start").attr("font-size",L).attr("fill","#262626").attr("font-weight","600").attr("class","prayer-text").style("user-select","text").style("pointer-events","all").text(J=>{var Z,be;const ae=Number(J.peoplePraying||0),Q=((be=(Z=this.$store)==null?void 0:Z.prayers)==null?void 0:be[J.ID])||0,H=ae+Q;return H===0?"0 prayed":`${H} ${H===1?"person":"people"} prayed`}),g.append("text").attr("x",k).attr("y",S+x+L*2+4).attr("text-anchor","start").attr("font-size",L).attr("fill","#8e8e8e").attr("cursor","pointer").attr("class","view-comments-text").style("user-select","none").style("pointer-events","all").text("View prayers").on("click",(J,ae)=>{J.stopPropagation(),this.openComments(ae)}),console.log(`✅ Rendered ${o} cards in ${n}×${a} grid`)},handlePrayer(e){this.openPrayerDialog(e)},openPrayerDialog(e){this.$emit("open-prayer",e)},openComments(e){this.$emit("open-comments",e)},truncateText(e,o){return e?e.length>o?e.substring(0,o)+"...":e:""},resetZoom(){this.svg.transition().duration(750).call(this.zoom.transform,d3.zoomIdentity)},toggleOrientation(){this.isLandscape=!this.isLandscape,d3.select(this.$refs.canvas).selectAll("*").remove(),this.initializeCanvas(),this.peopleGroups&&this.peopleGroups.length>0&&this.renderCards(),console.log(`📐 Switched to ${this.isLandscape?"LANDSCAPE (4ft×3ft)":"PORTRAIT (3ft×4ft)"}`)},printWall(){alert("Print functionality coming later!")}}},Xm={class:"wall-container"},Ym={class:"wall-header"},Zm={class:"wall-controls"},Jm={class:"btn-label"},Qm={class:"current-mode"},e_={class:"group-count"},o_={ref:"canvas",class:"wall-canvas"},t_={key:0,class:"loading-overlay"};function n_(e,o,t,n,a,s){return ue(),Pe("div",Xm,[G("div",Ym,[o[2]||(o[2]=G("h1",null,"Wall of People Groups",-1)),G("div",Zm,[G("button",{onClick:o[0]||(o[0]=(...r)=>s.toggleOrientation&&s.toggleOrientation(...r)),class:"control-btn orientation-btn"},[G("span",Jm,ye(a.isLandscape?"📱 Switch to Portrait":"🖼️ Switch to Landscape"),1),G("span",Qm,"Current: "+ye(a.isLandscape?"Landscape (4ft×3ft)":"Portrait (3ft×4ft)"),1)]),G("button",{onClick:o[1]||(o[1]=(...r)=>s.resetZoom&&s.resetZoom(...r)),class:"control-btn"},"Reset Zoom"),G("span",e_,ye(s.totalGroups)+" Groups Loaded",1)])]),G("div",o_,null,512),s.loading?(ue(),Pe("div",t_,[...o[3]||(o[3]=[G("div",{class:"spinner"},null,-1),G("p",null,"Loading people groups...",-1)])])):Ue("",!0)])}const s_=kt(Km,[["render",n_]]),$a="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='400'%3E%3Crect width='100%25' height='100%25' fill='%23f3f3f1'/%3E%3Ctext x='50%25' y='50%25' fill='%236d766e' font-family='sans-serif' font-size='22' text-anchor='middle' dominant-baseline='middle'%3ENo image available%3C/text%3E%3C/svg%3E",a_={name:"CommentsDialog",props:{group:{type:Object,default:null},visible:{type:Boolean,default:!1}},data(){return{newComment:"",justPrayed:!1,imageError:!1}},computed:{prayerCount(){var e;return!this.group||!this.$store?0:((e=this.$store.prayers)==null?void 0:e[this.group.ID])||0},comments(){var e;return!this.group||!this.$store?[]:((e=this.$store.comments)==null?void 0:e[this.group.ID])||[]}},methods:{closeDialog(){this.$emit("close"),this.newComment="",this.justPrayed=!1},addPrayer(){this.group&&this.$store&&(this.$store.addPrayer(this.group.ID),this.justPrayed=!0,setTimeout(()=>{this.justPrayed=!1},2e3))},submitComment(){this.newComment.trim()&&this.group&&this.$store&&(this.$store.addComment(this.group.ID,this.newComment.trim()),this.newComment="")},formatDate(e){const o=new Date(e),n=new Date-o,a=Math.floor(n/6e4),s=Math.floor(n/36e5),r=Math.floor(n/864e5);return a<1?"Just now":a<60?`${a}m ago`:s<24?`${s}h ago`:r<7?`${r}d ago`:o.toLocaleDateString()},getImageUrl(){var e;return this.imageError?$a:((e=this.group)==null?void 0:e.imageUrl)||$a},handleImageError(e){this.imageError=!0,e.target.src=$a}},watch:{visible(e){e&&(this.justPrayed=!1)}}},r_={class:"dialog-header"},i_={class:"group-image-container"},l_=["src","alt"],c_={class:"group-name-dialog"},u_={class:"dialog-content"},p_={class:"group-info"},d_={class:"info-row"},g_={class:"info-row"},$_={key:0,class:"info-row"},f_={class:"info-row prayer-stat"},h_={class:"prayer-action"},m_={class:"comments-section"},__={class:"comments-list"},b_={key:0,class:"no-comments"},y_={class:"comment-header"},v_={class:"comment-date"},P_={class:"comment-text"},k_={class:"add-comment"},L_={class:"comment-actions"},w_={class:"char-count"},S_=["disabled"];function A_(e,o,t,n,a,s){var r,i,l,c,u,g;return t.visible?(ue(),Pe("div",{key:0,class:"dialog-overlay",onClick:o[6]||(o[6]=(...$)=>s.closeDialog&&s.closeDialog(...$))},[G("div",{class:"dialog-container",onClick:o[5]||(o[5]=gi(()=>{},["stop"]))},[G("div",r_,[o[7]||(o[7]=G("h2",null,"People Group Chats",-1)),G("button",{class:"close-btn",onClick:o[0]||(o[0]=(...$)=>s.closeDialog&&s.closeDialog(...$))},"✕")]),G("div",i_,[G("img",{src:s.getImageUrl(),alt:((r=t.group)==null?void 0:r.name)||"People Group",class:"group-image",onError:o[1]||(o[1]=(...$)=>s.handleImageError&&s.handleImageError(...$))},null,40,l_)]),G("div",c_,ye(((i=t.group)==null?void 0:i.name)||"Unknown Group"),1),G("div",u_,[G("div",p_,[G("div",d_,[o[8]||(o[8]=G("strong",null,"Status:",-1)),Te(" "+ye(((l=t.group)==null?void 0:l.status)||"Unknown"),1)]),G("div",g_,[o[9]||(o[9]=G("strong",null,"ID:",-1)),Te(" "+ye(((c=t.group)==null?void 0:c.ID)||"N/A"),1)]),(u=t.group)!=null&&u.lat&&((g=t.group)!=null&&g.lng)?(ue(),Pe("div",$_,[o[10]||(o[10]=G("strong",null,"Location:",-1)),Te(" "+ye(t.group.lat)+", "+ye(t.group.lng),1)])):Ue("",!0),G("div",f_,[o[11]||(o[11]=G("span",{class:"heart-icon"},"❤️",-1)),G("strong",null,ye(s.prayerCount),1),Te(" "+ye(s.prayerCount===1?"person has":"people have")+" prayed ",1)])]),G("div",h_,[G("button",{class:rt(["prayer-btn",{active:a.justPrayed}]),onClick:o[2]||(o[2]=(...$)=>s.addPrayer&&s.addPrayer(...$))},ye(a.justPrayed?"✓ You prayed!":"🙏 Pray for this group"),3)]),G("div",m_,[o[13]||(o[13]=G("h3",null,"Prayers & Comments",-1)),G("div",__,[s.comments.length===0?(ue(),Pe("div",b_," No prayers or comments yet. Be the first! ")):Ue("",!0),(ue(!0),Pe(Ke,null,mr(s.comments,$=>(ue(),Pe("div",{key:$.id,class:"comment-item"},[G("div",y_,[o[12]||(o[12]=G("span",{class:"comment-icon"},"💭",-1)),G("span",v_,ye(s.formatDate($.timestamp)),1)]),G("div",P_,ye($.text),1)]))),128))]),G("div",k_,[sr(G("textarea",{"onUpdate:modelValue":o[3]||(o[3]=$=>a.newComment=$),placeholder:"Share your prayer or thoughts...",rows:"3",maxlength:"500"},null,512),[[di,a.newComment]]),G("div",L_,[G("span",w_,ye(a.newComment.length)+"/500",1),G("button",{onClick:o[4]||(o[4]=(...$)=>s.submitComment&&s.submitComment(...$)),disabled:!a.newComment.trim(),class:"submit-btn"}," Post Comment ",8,S_)])])])])])])):Ue("",!0)}const x_=kt(a_,[["render",A_]]),fa="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='400'%3E%3Crect width='100%25' height='100%25' fill='%23f3f3f1'/%3E%3Ctext x='50%25' y='50%25' fill='%236d766e' font-family='sans-serif' font-size='22' text-anchor='middle' dominant-baseline='middle'%3ENo image available%3C/text%3E%3C/svg%3E",E_={name:"PrayerDialog",props:{isOpen:{type:Boolean,default:!1},group:{type:Object,default:null}},data(){return{hasPrayed:!1,prayerText:"",imageError:!1}},watch:{isOpen(e){var o,t,n;if(e){const a=((n=(o=this.$store)==null?void 0:o.prayers)==null?void 0:n[(t=this.group)==null?void 0:t.ID])||0;this.hasPrayed=a>0,this.prayerText="",this.imageError=!1}}},methods:{closeDialog(){this.$emit("close")},confirmPrayer(){var e;(e=this.group)!=null&&e.ID&&(this.$store.addPrayer(this.group.ID),this.hasPrayed=!0,this.$emit("prayer-confirmed",this.group.ID))},sendPrayer(){var e;if(this.prayerText.trim()&&((e=this.group)!=null&&e.ID)){const t=`🙏 ${this.generatePseudonym()} prayed: ${this.prayerText.trim()}`;this.$store.addComment(this.group.ID,t),this.prayerText="",setTimeout(()=>{this.closeDialog()},500)}},generatePseudonym(){const e=["Faithful","Devoted","Humble","Earnest","Hopeful","Grateful","Compassionate"],o=["Servant","Believer","Intercessor","Warrior","Witness","Disciple","Friend"],t=e[Math.floor(Math.random()*e.length)],n=o[Math.floor(Math.random()*o.length)],a=Math.floor(Math.random()*999)+1;return`${t} ${n} ${a}`},getImageUrl(){var e;return this.imageError?fa:((e=this.group)==null?void 0:e.imageUrl)||fa},handleImageError(e){this.imageError=!0,e.target.src=fa}}},C_={class:"dialog-container prayer-dialog"},R_={class:"dialog-header"},T_={class:"group-image-container"},O_=["src","alt"],N_={class:"group-name-dialog"},I_={class:"dialog-content"},F_={class:"group-info"},M_={class:"info-row"},D_={key:0,class:"prayer-prompt"},G_={key:1,class:"prayer-confirmed"},U_={class:"prayer-input-section"},B_=["disabled"];function V_(e,o,t,n,a,s){var r,i,l;return t.isOpen?(ue(),Pe("div",{key:0,class:"dialog-overlay",onClick:o[5]||(o[5]=gi((...c)=>s.closeDialog&&s.closeDialog(...c),["self"]))},[G("div",C_,[G("div",R_,[o[6]||(o[6]=G("h2",null,"Prayer Tools",-1)),G("button",{onClick:o[0]||(o[0]=(...c)=>s.closeDialog&&s.closeDialog(...c)),class:"close-btn"},"×")]),G("div",T_,[G("img",{src:s.getImageUrl(),alt:((r=t.group)==null?void 0:r.name)||"People Group",onError:o[1]||(o[1]=(...c)=>s.handleImageError&&s.handleImageError(...c))},null,40,O_)]),G("div",N_,ye(((i=t.group)==null?void 0:i.name)||"Unknown"),1),G("div",I_,[G("div",F_,[G("div",M_,[o[7]||(o[7]=G("strong",null,"Status:",-1)),Te(" "+ye(((l=t.group)==null?void 0:l.status)||"unengaged"),1)])]),a.hasPrayed?(ue(),Pe("div",G_,[o[11]||(o[11]=G("div",{class:"confirmed-message"},[G("i",{class:"fas fa-heart",style:{color:"#ed4956"}}),G("span",null,"Thank you for praying!")],-1)),G("div",U_,[o[10]||(o[10]=G("h4",null,"Share your prayer (optional)",-1)),sr(G("textarea",{"onUpdate:modelValue":o[3]||(o[3]=c=>a.prayerText=c),placeholder:"Type your prayer here...",rows:"4"},null,512),[[di,a.prayerText]]),G("button",{onClick:o[4]||(o[4]=(...c)=>s.sendPrayer&&s.sendPrayer(...c)),disabled:!a.prayerText.trim(),class:"send-prayer-btn"}," Send Prayer ",8,B_)])])):(ue(),Pe("div",D_,[o[9]||(o[9]=G("h3",null,"Are you praying right now for this people group?",-1)),G("button",{onClick:o[2]||(o[2]=(...c)=>s.confirmPrayer&&s.confirmPrayer(...c)),class:"prayer-confirm-btn"},[...o[8]||(o[8]=[G("i",{class:"far fa-heart"},null,-1),Te(" Yes, I'm Praying ",-1)])])]))])])])):Ue("",!0)}const j_=kt(E_,[["render",V_]]),z_={name:"SourceSelector",computed:{dataSource(){var e;return((e=this.$store)==null?void 0:e.dataSource)||"API"},availableSources(){var e;return((e=this.$store)==null?void 0:e.availableSources)||[]},currentSource(){var e;return((e=this.$store)==null?void 0:e.currentSource)||null}},methods:{selectSource(e){console.log("🔄 Switching to source:",e),this.$store&&this.$store.setDataSource(e)},getSourceIcon(e){switch(e){case"PRAY_API":return"🙏";case"DOXA_API":return"🌐";case"API":return"🌐";case"CSV":return"📄";default:return"📊"}}}},W_={key:0},H_={class:"source-selector"},q_={class:"source-header"},K_={class:"current-source-label"},X_={class:"source-buttons"},Y_=["onClick"],Z_={class:"source-icon"},J_={class:"source-name"},Q_={key:0,class:"active-indicator"},eb={class:"source-info"},ob={key:0},tb={key:1,class:"csv-info"},nb={key:2,class:"api-info"},sb={key:3,class:"api-info"};function ab(e,o,t,n,a,s){var r;return e.sources.length>1?(ue(),Pe("div",W_,[G("div",H_,[G("div",q_,[o[0]||(o[0]=G("h3",null,"📊 Data Source",-1)),G("span",K_,"Current: "+ye((r=s.currentSource)==null?void 0:r.name),1)]),G("div",X_,[(ue(!0),Pe(Ke,null,mr(s.availableSources,i=>(ue(),Pe("button",{key:i.id,onClick:l=>s.selectSource(i.id),class:rt(["source-btn",{active:s.dataSource===i.id}])},[G("span",Z_,ye(s.getSourceIcon(i.id)),1),G("span",J_,ye(i.name),1),s.dataSource===i.id?(ue(),Pe("span",Q_,"✓")):Ue("",!0)],10,Y_))),128))]),G("div",eb,[s.currentSource?(ue(),Pe("p",ob,[o[1]||(o[1]=G("strong",null,"Source URL:",-1)),o[2]||(o[2]=G("br",null,null,-1)),G("code",null,ye(s.currentSource.url),1)])):Ue("",!0),s.dataSource==="CSV"?(ue(),Pe("p",tb,[...o[3]||(o[3]=[G("i",{class:"fas fa-info-circle"},null,-1),Te(" CSV includes ~1,439 groups with images from Joshua Project ",-1)])])):Ue("",!0),s.dataSource==="DOXA_API"?(ue(),Pe("p",nb,[...o[4]||(o[4]=[G("i",{class:"fas fa-info-circle"},null,-1),Te(" WordPress API — descriptions & photos, no prayer data ",-1)])])):Ue("",!0),s.dataSource==="PRAY_API"?(ue(),Pe("p",sb,[...o[5]||(o[5]=[G("i",{class:"fas fa-info-circle"},null,-1),Te(" Live prayer data — people praying, committed workers, adoption, images ",-1)])])):Ue("",!0)])])])):Ue("",!0)}const rb=kt(z_,[["render",ab]]),ib="*{margin:0;padding:0;box-sizing:border-box}:root,:host{--primary-color: #2c3e50;--secondary-color: #3498db;--background: #fafafa;--text-color: #333333;--border-color: #e0e0e0;--heart-color: #ed4956;--instagram-blue: #0095f6}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;color:var(--text-color);background-color:var(--background);overflow-x:hidden}#app{width:100%;min-height:100vh}.app-container{width:100%;height:100vh;display:flex;flex-direction:column;background-color:var(--background)}.wall-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.wall-header{background:#fff;border-bottom:1px solid var(--border-color);padding:20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px #0000000d}.wall-header h1{font-size:28px;font-weight:600;color:var(--text-color);margin:0}.wall-controls{display:flex;align-items:center;gap:15px}.control-btn{padding:10px 20px;background:var(--instagram-blue);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.control-btn:hover{background:#0081d6;transform:translateY(-1px)}.orientation-btn{display:flex;flex-direction:column;align-items:center;gap:4px}.orientation-btn .btn-label{font-size:14px}.orientation-btn .current-mode{font-size:10px;opacity:.8;font-weight:400}.group-count{font-size:14px;color:#666;font-weight:500}.wall-canvas{flex:1;width:100%;height:100%;background:var(--background);overflow:hidden}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#fffffff2;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid var(--instagram-blue);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000a6;display:flex;justify-content:center;align-items:center;z-index:10000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dialog-container{background:#fff;border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow:hidden;box-shadow:0 10px 40px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.dialog-header{padding:20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background:#fff}.group-image-container{width:100%;background-color:#fafafa;overflow:hidden}.group-image-container img{width:100%;height:auto;display:block;object-fit:cover;max-height:400px}.group-name-dialog{font-weight:600;font-size:18px;padding:16px 20px;border-bottom:1px solid #efefef;color:#262626;background:#fff}.dialog-header h2{margin:0;font-size:20px;font-weight:600;color:var(--text-color)}.close-btn{background:none;border:none;font-size:24px;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.close-btn:hover{background:#f5f5f5;color:#333}.dialog-content{padding:20px;max-height:calc(90vh - 80px);overflow-y:auto}.group-info{background:#f9f9f9;padding:15px;border-radius:8px;margin-bottom:20px}.info-row{margin-bottom:8px;font-size:14px}.info-row:last-child{margin-bottom:0}.prayer-stat{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e0e0e0;font-size:15px}.heart-icon{font-size:20px}.prayer-action{margin-bottom:25px}.prayer-btn{width:100%;padding:14px;background:var(--instagram-blue);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.prayer-btn:hover{background:#0081d6}.prayer-btn.active{background:#10b981}.comments-section{margin-top:20px}.comments-section h3{font-size:18px;margin-bottom:15px;font-weight:600}.comments-list{max-height:300px;overflow-y:auto;margin-bottom:20px;padding:10px;background:#f9f9f9;border-radius:8px}.no-comments{text-align:center;padding:40px 20px;color:#999;font-size:14px}.comment-item{background:#fff;padding:12px;border-radius:8px;margin-bottom:10px;border:1px solid #e0e0e0}.comment-item:last-child{margin-bottom:0}.comment-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.comment-icon{font-size:16px}.comment-date{font-size:12px;color:#999}.comment-text{font-size:14px;color:#333;line-height:1.5}.add-comment textarea{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:8px;font-family:inherit;font-size:14px;resize:vertical;min-height:80px}.add-comment textarea:focus{outline:none;border-color:var(--instagram-blue)}.comment-actions{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.char-count{font-size:12px;color:#999}.submit-btn{padding:10px 24px;background:var(--instagram-blue);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.submit-btn:hover:not(:disabled){background:#0081d6}.submit-btn:disabled{background:#ccc;cursor:not-allowed}.prayer-dialog .dialog-content{padding:20px}.prayer-prompt{text-align:center;padding:30px 20px}.prayer-prompt h3{font-size:20px;margin-bottom:25px;color:var(--text-color);font-weight:600}.prayer-confirm-btn{padding:14px 28px;background:var(--heart-color);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:10px}.prayer-confirm-btn:hover{background:#c13584;transform:translateY(-2px);box-shadow:0 4px 12px #ed49564d}.prayer-confirmed{padding:20px}.confirmed-message{display:flex;align-items:center;justify-content:center;gap:10px;padding:20px;background:#f0fdf4;border-radius:8px;margin-bottom:25px;font-size:16px;font-weight:600;color:#16a34a}.confirmed-message i{font-size:24px}.prayer-input-section h4{font-size:16px;margin-bottom:12px;color:var(--text-color)}.prayer-input-section textarea{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:8px;font-size:14px;font-family:inherit;resize:vertical;margin-bottom:12px}.prayer-input-section textarea:focus{outline:none;border-color:var(--instagram-blue);box-shadow:0 0 0 3px #0095f61a}.send-prayer-btn{width:100%;padding:12px;background:var(--instagram-blue);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.send-prayer-btn:hover:not(:disabled){background:#0081d6}.send-prayer-btn:disabled{background:#b8b8b8;cursor:not-allowed;opacity:.6}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.p-1{padding:.5rem}.p-2{padding:1rem}.p-3{padding:1.5rem}.p-4{padding:2rem}@media print{@page{size:36in 48in;margin:0}body{margin:0;padding:0}.wall-header,.dialog-overlay{display:none!important}}::-webkit-scrollbar{width:8px;height:8px}.source-selector{background:#fff;border-bottom:1px solid var(--border-color);padding:15px 20px;box-shadow:0 1px 3px #0000000d;display:flex;align-items:center;justify-content:space-between;gap:20px}.source-header{display:flex;align-items:center;gap:15px}.source-header h3{font-size:16px;font-weight:600;color:var(--text-color);margin:0}.current-source-label{font-size:12px;color:#666;background:#f5f5f5;padding:4px 12px;border-radius:20px;font-weight:500}.source-buttons{display:flex;gap:10px}.source-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#f9f9f9;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;position:relative}.source-btn:hover{background:#f0f0f0;border-color:var(--instagram-blue);transform:translateY(-1px)}.source-btn.active{background:#e7f3ff;border-color:var(--instagram-blue);border-width:2px;box-shadow:0 0 0 2px #0095f61a}.source-icon{font-size:18px}.source-name{color:var(--text-color)}.active-indicator{font-size:16px;color:var(--instagram-blue);font-weight:700}.source-info{display:none}@media (max-width: 768px){.source-selector{flex-direction:column;align-items:flex-start}.source-buttons{width:100%;flex-direction:column}.source-btn{width:100%}}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#999}.group-name-link{color:#0095f6;text-decoration:underline;cursor:pointer;transition:color .2s}.group-name-link:hover{color:#0081d6;text-decoration:underline}.group-name-link:visited{color:#0095f6}.group-name-no-link{color:#262626;cursor:default}svg a{cursor:pointer}svg a text{transition:fill .2s}svg a:hover text{fill:#0081d6!important}.nav-links{padding:8px 16px;text-align:right}.dev-panel-link{color:#0095f6;text-decoration:none;font-size:14px;padding:6px 12px;border:1px solid #0095f6;border-radius:6px;transition:all .2s}.dev-panel-link:hover{background:#0095f6;color:#fff}.dev-panel{max-width:1200px;margin:0 auto;padding:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#1a1a1a}.dev-panel-header{margin-bottom:24px}.dev-panel-header h1{font-size:28px;margin:0 0 8px}.dev-panel-header .subtitle{color:#666;margin:0 0 12px}.dev-panel-header .back-link{color:#0095f6;text-decoration:none;font-size:14px}.dev-panel-header .back-link:hover{text-decoration:underline}.stats-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8f9fa;border-radius:8px;margin-bottom:24px;flex-wrap:wrap}.stat-badge{font-size:13px;font-weight:600;padding:4px 10px;border-radius:20px}.stat-badge.tested{background:#e3f2fd;color:#1565c0}.stat-badge.ok{background:#e8f5e9;color:#2e7d32}.stat-badge.fail{background:#fce4ec;color:#c62828}.endpoint-group{margin-bottom:32px}.group-title{display:flex;align-items:center;gap:8px;font-size:20px;margin:0 0 6px}.group-icon{font-size:24px}.group-badge{font-size:12px;font-weight:500;background:#e3f2fd;color:#1565c0;padding:2px 8px;border-radius:12px}.group-desc{color:#666;font-size:14px;margin:0 0 16px}.endpoint-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin-bottom:12px;transition:border-color .2s}.endpoint-card.status-ok{border-left:4px solid #4caf50}.endpoint-card.status-fail{border-left:4px solid #f44336}.endpoint-meta{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.method-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.method-badge.get{background:#e8f5e9;color:#2e7d32}.method-badge.post{background:#fff3e0;color:#e65100}.endpoint-url{font-size:13px;background:#f5f5f5;padding:4px 8px;border-radius:4px;cursor:pointer;word-break:break-all;flex:1}.endpoint-url:hover{background:#e3f2fd}.btn-copy{background:none;border:none;cursor:pointer;color:#999;font-size:14px;padding:4px}.btn-copy:hover{color:#333}.endpoint-desc{font-size:14px;color:#444;margin:4px 0 8px}.endpoint-fields{margin-bottom:8px;font-size:13px}.field-chip{display:inline-block;background:#f0f0f0;color:#555;padding:2px 6px;border-radius:4px;font-size:11px;font-family:monospace;margin:2px 4px 2px 0}.endpoint-actions{display:flex;gap:8px;margin-top:8px}.btn-sm{font-size:13px;padding:6px 14px;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .15s}.btn-sm:disabled{opacity:.6;cursor:not-allowed}.btn-test{background:#0095f6;color:#fff}.btn-test:hover:not(:disabled){background:#0081d6}.btn-primary{background:#0095f6;color:#fff}.btn-primary:hover:not(:disabled){background:#0081d6}.btn-toggle{background:#f0f0f0;color:#333}.btn-toggle:hover{background:#e0e0e0}.test-result{margin-top:12px;border-radius:6px;overflow:hidden}.result-summary{display:flex;align-items:center;gap:12px;padding:8px 12px;font-size:13px;flex-wrap:wrap}.result-ok .result-summary{background:#e8f5e9}.result-fail .result-summary{background:#fce4ec}.status-code{font-weight:600}.result-time{color:#666}.record-count{background:#e3f2fd;color:#1565c0;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:600}.content-type{color:#999;font-size:12px;font-family:monospace}.result-body{padding:12px;background:#fafafa;border-top:1px solid #eee}.sample-fields h4,.sample-images h4,.loaded-images h4,.failed-images h4{font-size:14px;margin:0 0 8px}.field-grid{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.field-item{display:flex;align-items:baseline;gap:8px;font-size:12px;padding:4px 0;border-bottom:1px solid #f0f0f0}.field-item code{font-weight:600;min-width:180px;color:#1565c0}.field-type{color:#999;font-size:11px;min-width:50px}.field-sample{color:#666;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:400px}.image-grid{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.image-thumb{width:120px;text-align:center}.image-thumb img{width:120px;height:80px;object-fit:cover;border-radius:6px;border:1px solid #e0e0e0}.image-thumb.failed .img-placeholder{width:120px;height:80px;display:flex;align-items:center;justify-content:center;background:#fce4ec;border-radius:6px;color:#c62828;font-size:24px}.img-label{display:block;font-size:11px;color:#666;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.img-url{display:block;font-size:9px;color:#999;word-break:break-all}.raw-json{margin-top:12px}.raw-json summary{cursor:pointer;font-size:13px;color:#666;padding:4px 0}.raw-json pre{background:#1e1e1e;color:#d4d4d4;padding:12px;border-radius:6px;font-size:12px;overflow-x:auto;max-height:300px;white-space:pre-wrap;word-break:break-word}.image-tester{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px}.image-tester-controls{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}.image-test-progress{font-size:13px;color:#666;font-weight:500}",lb=":host{display:block;position:relative;min-height:600px}.app-container{position:relative;width:100%;height:100%}.wall-error{padding:24px;color:#3b463d;font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}",cb="https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js",ns="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css";let ss=null;function ub(){return typeof window>"u"||window.d3?Promise.resolve():(ss||(ss=new Promise((e,o)=>{const t=document.createElement("script");t.src=cb,t.onload=()=>e(),t.onerror=()=>{ss=null,o(new Error("d3 failed to load"))},document.head.appendChild(t)})),ss)}function pb(e){if(!(typeof document>"u")){if(!document.head.querySelector(`link[href="${ns}"]`)){const o=document.createElement("link");o.rel="stylesheet",o.href=ns,document.head.appendChild(o)}if(e&&e!==document&&!e.querySelector(`link[href="${ns}"]`)){const o=document.createElement("link");o.rel="stylesheet",o.href=ns,e.prepend(o)}}}const db={name:"WallOfPeopleGroups",components:{PeopleGroupsWall:s_,CommentsDialog:x_,PrayerDialog:j_,SourceSelector:rb},data(){return{ready:!1,error:null,commentsDialogVisible:!1,prayerDialogVisible:!1,selectedGroup:null}},mounted(){var e,o;pb((o=(e=this.$el)==null?void 0:e.getRootNode)==null?void 0:o.call(e)),ub().then(()=>{this.ready=!0},t=>{this.error=t.message})},methods:{openCommentsDialog(e){this.selectedGroup=e,this.commentsDialogVisible=!0},closeCommentsDialog(){this.commentsDialogVisible=!1,setTimeout(()=>{this.selectedGroup=null},300)},openPrayerDialog(e){this.selectedGroup=e,this.prayerDialogVisible=!0},closePrayerDialog(){this.prayerDialogVisible=!1,setTimeout(()=>{this.commentsDialogVisible||(this.selectedGroup=null)},300)},handlePrayerConfirmed(){}}},gb={class:"app-container"},$b={key:1,class:"wall-error"};function fb(e,o,t,n,a,s){const r=Tn("source-selector"),i=Tn("people-groups-wall"),l=Tn("comments-dialog"),c=Tn("prayer-dialog");return ue(),Pe("div",gb,[we(r),a.ready?(ue(),zt(i,{key:0,onOpenComments:s.openCommentsDialog,onOpenPrayer:s.openPrayerDialog},null,8,["onOpenComments","onOpenPrayer"])):a.error?(ue(),Pe("div",$b,"The wall could not load its drawing library: "+ye(a.error),1)):Ue("",!0),we(l,{visible:a.commentsDialogVisible,group:a.selectedGroup,onClose:s.closeCommentsDialog},null,8,["visible","group","onClose"]),we(c,{"is-open":a.prayerDialogVisible,group:a.selectedGroup,onClose:s.closePrayerDialog,onPrayerConfirmed:s.handlePrayerConfirmed},null,8,["is-open","group","onClose","onPrayerConfirmed"])])}const hb=Object.freeze(Object.defineProperty({__proto__:null,default:kt(db,[["render",fb],["styles",[ib,lb]]])},Symbol.toStringTag,{value:"Module"}))})();