1154 lines
771 KiB
JavaScript
1154 lines
771 KiB
JavaScript
(function(){"use strict";var Gt=typeof document<"u"?document.currentScript:null;const k2="modulepreload",w2=function(e){return"/"+e},x2={},pn=function(o,t,n){let a=Promise.resolve();function r(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return a.then(s=>{for(const i of s||[])i.status==="rejected"&&r(i.reason);return o().catch(r)})};/**
|
||
* @vue/shared v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/function Ka(e){const o=Object.create(null);for(const t of e.split(","))o[t]=1;return t=>t in o}const Fe={},Ut=[],Do=()=>{},Rs=()=>!1,zn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Vn=e=>e.startsWith("onUpdate:"),Ye=Object.assign,qa=(e,o)=>{const t=e.indexOf(o);t>-1&&e.splice(t,1)},qu=Object.prototype.hasOwnProperty,Ee=(e,o)=>qu.call(e,o),me=Array.isArray,ht=e=>dn(e)==="[object Map]",Hn=e=>dn(e)==="[object Set]",Is=e=>dn(e)==="[object Date]",$e=e=>typeof e=="function",Ge=e=>typeof e=="string",vo=e=>typeof e=="symbol",Oe=e=>e!==null&&typeof e=="object",Fs=e=>(Oe(e)||$e(e))&&$e(e.then)&&$e(e.catch),Ds=Object.prototype.toString,dn=e=>Ds.call(e),Yu=e=>dn(e).slice(8,-1),Kn=e=>dn(e)==="[object Object]",qn=e=>Ge(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,gn=Ka(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Yn=e=>{const o=Object.create(null);return t=>o[t]||(o[t]=e(t))},Xu=/-\w/g,no=Yn(e=>e.replace(Xu,o=>o.slice(1).toUpperCase())),Zu=/\B([A-Z])/g,So=Yn(e=>e.replace(Zu,"-$1").toLowerCase()),Xn=Yn(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ya=Yn(e=>e?`on${Xn(e)}`:""),Bo=(e,o)=>!Object.is(e,o),Xa=(e,...o)=>{for(let t=0;t<e.length;t++)e[t](...o)},Bs=(e,o,t,n=!1)=>{Object.defineProperty(e,o,{configurable:!0,enumerable:!1,writable:n,value:t})},Ju=e=>{const o=parseFloat(e);return isNaN(o)?e:o},Gs=e=>{const o=Ge(e)?Number(e):NaN;return isNaN(o)?e:o};let Us;const Zn=()=>Us||(Us=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ze(e){if(me(e)){const o={};for(let t=0;t<e.length;t++){const n=e[t],a=Ge(n)?tp(n):ze(n);if(a)for(const r in a)o[r]=a[r]}return o}else if(Ge(e)||Oe(e))return e}const Qu=/;(?![^(]*\))/g,ep=/:([^]+)/,op=/\/\*[^]*?\*\//g;function tp(e){const o={};return e.replace(op,"").split(Qu).forEach(t=>{if(t){const n=t.split(ep);n.length>1&&(o[n[0].trim()]=n[1].trim())}}),o}function ye(e){let o="";if(Ge(e))o=e;else if(me(e))for(let t=0;t<e.length;t++){const n=ye(e[t]);n&&(o+=n+" ")}else if(Oe(e))for(const t in e)e[t]&&(o+=t+" ");return o.trim()}const np=Ka("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function js(e){return!!e||e===""}function ap(e,o){if(e.length!==o.length)return!1;let t=!0;for(let n=0;t&&n<e.length;n++)t=Jn(e[n],o[n]);return t}function Ws(e,o){if(e.size!==o.size)return!1;const t=Array.from(o),n=new Uint8Array(t.length);for(const a of e){let r=-1;for(let s=0;s<t.length;s++)if(!n[s]&&Jn(a,t[s])){r=s;break}if(r<0)return!1;n[r]=1}return!0}function Jn(e,o){if(e===o)return!0;let t=Is(e),n=Is(o);if(t||n)return t&&n?e.getTime()===o.getTime():!1;if(t=vo(e),n=vo(o),t||n)return e===o;if(t=me(e),n=me(o),t||n)return t&&n?ap(e,o):!1;if(t=Oe(e),n=Oe(o),t||n){if(!t||!n)return!1;if(t=ht(e),n=ht(o),t||n||(t=Hn(e),n=Hn(o),t||n))return t&&n?Ws(e,o):!1;const a=Object.keys(e).length,r=Object.keys(o).length;if(a!==r)return!1;for(const s in e){const i=e.hasOwnProperty(s),l=o.hasOwnProperty(s);if(i&&!l||!i&&l||!Jn(e[s],o[s]))return!1}}return String(e)===String(o)}const zs=e=>!!(e&&e.__v_isRef===!0),K=e=>Ge(e)?e:e==null?"":me(e)||Oe(e)&&(e.toString===Ds||!$e(e.toString))?zs(e)?K(e.value):JSON.stringify(e,Vs,2):String(e),Vs=(e,o)=>zs(o)?Vs(e,o.value):ht(o)?{[`Map(${o.size})`]:[...o.entries()].reduce((t,[n,a],r)=>(t[Za(n,r)+" =>"]=a,t),{})}:Hn(o)?{[`Set(${o.size})`]:[...o.values()].map(t=>Za(t))}:vo(o)?Za(o):Oe(o)&&!me(o)&&!Kn(o)?String(o):o,Za=(e,o="")=>{var t;return vo(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 Qe;class Hs{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&&Qe&&(Qe.active?(this.parent=Qe,this.index=(Qe.scopes||(Qe.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;o<t;o++)n[o].pause()}for(o=0,t=this.effects.length;o<t;o++)this.effects[o].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let o,t;if(this.scopes){const a=this.scopes.slice();for(o=0,t=a.length;o<t;o++)a[o].resume()}const n=this.effects.slice();for(o=0,t=n.length;o<t;o++)n[o].resume()}}run(o){if(this._active){const t=Qe;try{return Qe=this,o()}finally{Qe=t}}}on(){++this._on===1&&(this.prevScope=Qe,Qe=this)}off(){if(this._on>0&&--this._on===0){if(Qe===this)Qe=this.prevScope;else{let o=Qe;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;t<n;t++)this.effects[t].stop();for(this.effects.length=0,t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){const a=this.scopes.slice();for(t=0,n=a.length;t<n;t++)a[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!o){const a=this.parent.scopes.pop();a&&a!==this&&(this.parent.scopes[this.index]=a,a.index=this.index)}this.parent=void 0}}}function Ja(e){return new Hs(e)}function Ks(){return Qe}function rp(e,o=!1){Qe&&Qe.cleanups.push(e)}let Ue;const Qa=new WeakSet;class qs{constructor(o){this.fn=o,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Qe&&(Qe.active?Qe.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Qa.has(this)&&(Qa.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Xs(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,oi(this),Zs(this);const o=Ue,t=Po;Ue=this,Po=!0;try{return this.fn()}finally{Js(this),Ue=o,Po=t,this.flags&=-3}}stop(){if(this.flags&1){for(let o=this.deps;o;o=o.nextDep)nr(o);this.deps=this.depsTail=void 0,oi(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Qa.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){tr(this)&&this.run()}get dirty(){return tr(this)}}let Ys=0,hn,fn;function Xs(e,o=!1){if(e.flags|=8,o){e.next=fn,fn=e;return}e.next=hn,hn=e}function er(){Ys++}function or(){if(--Ys>0)return;if(fn){let o=fn;for(fn=void 0;o;){const t=o.next;o.next=void 0,o.flags&=-9,o=t}}let e;for(;hn;){let o=hn;for(hn=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 Zs(e){for(let o=e.deps;o;o=o.nextDep)o.version=-1,o.prevActiveLink=o.dep.activeLink,o.dep.activeLink=o}function Js(e){let o,t=e.depsTail,n=t;for(;n;){const a=n.prevDep;n.version===-1?(n===t&&(t=a),nr(n),sp(n)):o=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=o,e.depsTail=t}function tr(e){for(let o=e.deps;o;o=o.nextDep)if(o.dep.version!==o.version||o.dep.computed&&(Qs(o.dep.computed)||o.dep.version!==o.version))return!0;return!!e._dirty}function Qs(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===mn)||(e.globalVersion=mn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!tr(e))))return;e.flags|=2;const o=e.dep,t=Ue,n=Po;Ue=e,Po=!0;try{Zs(e);const a=e.fn(e._value);(o.version===0||Bo(a,e._value))&&(e.flags|=128,e._value=a,o.version++)}catch(a){throw o.version++,a}finally{Ue=t,Po=n,Js(e),e.flags&=-3}}function nr(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 r=t.computed.deps;r;r=r.nextDep)nr(r,!0)}!o&&!--t.sc&&t.map&&t.map.delete(t.key)}function sp(e){const{prevDep:o,nextDep:t}=e;o&&(o.nextDep=t,e.prevDep=void 0),t&&(t.prevDep=o,e.nextDep=void 0)}let Po=!0;const ei=[];function Go(){ei.push(Po),Po=!1}function Uo(){const e=ei.pop();Po=e===void 0?!0:e}function oi(e){const{cleanup:o}=e;if(e.cleanup=void 0,o){const t=Ue;Ue=void 0;try{o()}finally{Ue=t}}}let mn=0;class ip{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 ar{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(!Ue||!Po||Ue===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==Ue)t=this.activeLink=new ip(Ue,this),Ue.deps?(t.prevDep=Ue.depsTail,Ue.depsTail.nextDep=t,Ue.depsTail=t):Ue.deps=Ue.depsTail=t,ti(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=Ue.depsTail,t.nextDep=void 0,Ue.depsTail.nextDep=t,Ue.depsTail=t,Ue.deps===t&&(Ue.deps=n)}return t}trigger(o){this.version++,mn++,this.notify(o)}notify(o){er();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{or()}}}function ti(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)ti(n)}const t=e.dep.subs;t!==e&&(e.prevSub=t,t&&(t.nextSub=e)),e.dep.subs=e}}const Qn=new WeakMap,Ct=Symbol(""),rr=Symbol(""),bn=Symbol("");function go(e,o,t){if(Po&&Ue){let n=Qn.get(e);n||Qn.set(e,n=new Map);let a=n.get(t);a||(n.set(t,a=new ar),a.map=n,a.key=t),a.track()}}function Jo(e,o,t,n,a,r){const s=Qn.get(e);if(!s){mn++;return}const i=l=>{l&&l.trigger()};if(er(),o==="clear")s.forEach(i);else{const l=me(e),c=l&&qn(t);if(l&&t==="length"){const u=Number(n);s.forEach((d,p)=>{(p==="length"||p===bn||!vo(p)&&p>=u)&&i(d)})}else switch((t!==void 0||s.has(void 0))&&i(s.get(t)),c&&i(s.get(bn)),o){case"add":l?c&&i(s.get("length")):(i(s.get(Ct)),ht(e)&&i(s.get(rr)));break;case"delete":l||(i(s.get(Ct)),ht(e)&&i(s.get(rr)));break;case"set":ht(e)&&i(s.get(Ct));break}}or()}function lp(e,o){const t=Qn.get(e);return t&&t.get(o)}function jt(e){const o=Le(e);return o===e?o:(go(o,"iterate",bn),ko(e)?o:o.map(Eo))}function ea(e){return go(e=Le(e),"iterate",bn),e}function jo(e,o){return ot(e)?zt(et(e)?Eo(o):o):Eo(o)}const cp={__proto__:null,[Symbol.iterator](){return sr(this,Symbol.iterator,e=>jo(this,e))},concat(...e){return jt(this).concat(...e.map(o=>me(o)?jt(o):o))},entries(){return sr(this,"entries",e=>(e[1]=jo(this,e[1]),e))},every(e,o){return Qo(this,"every",e,o,void 0,arguments)},filter(e,o){return Qo(this,"filter",e,o,t=>t.map(n=>jo(this,n)),arguments)},find(e,o){return Qo(this,"find",e,o,t=>jo(this,t),arguments)},findIndex(e,o){return Qo(this,"findIndex",e,o,void 0,arguments)},findLast(e,o){return Qo(this,"findLast",e,o,t=>jo(this,t),arguments)},findLastIndex(e,o){return Qo(this,"findLastIndex",e,o,void 0,arguments)},forEach(e,o){return Qo(this,"forEach",e,o,void 0,arguments)},includes(...e){return ir(this,"includes",e)},indexOf(...e){return ir(this,"indexOf",e)},join(e){return jt(this).join(e)},lastIndexOf(...e){return ir(this,"lastIndexOf",e)},map(e,o){return Qo(this,"map",e,o,void 0,arguments)},pop(){return _n(this,"pop")},push(...e){return _n(this,"push",e)},reduce(e,...o){return ni(this,"reduce",e,o)},reduceRight(e,...o){return ni(this,"reduceRight",e,o)},shift(){return _n(this,"shift")},some(e,o){return Qo(this,"some",e,o,void 0,arguments)},splice(...e){return _n(this,"splice",e)},toReversed(){return jt(this).toReversed()},toSorted(e){return jt(this).toSorted(e)},toSpliced(...e){return jt(this).toSpliced(...e)},unshift(...e){return _n(this,"unshift",e)},values(){return sr(this,"values",e=>jo(this,e))}};function sr(e,o,t){const n=ea(e),a=n[o]();return n!==e&&!ko(e)&&(a._next=a.next,a.next=()=>{const r=a._next();return r.done||(r.value=t(r.value)),r}),a}const up=Array.prototype;function Qo(e,o,t,n,a,r){const s=ea(e),i=s!==e&&!ko(e),l=s[o];if(l!==up[o]){const d=l.apply(e,r);return i?Eo(d):d}let c=t;s!==e&&(i?c=function(d,p){return t.call(this,jo(e,d),p,e)}:t.length>2&&(c=function(d,p){return t.call(this,d,p,e)}));const u=l.call(s,c,n);return i&&a?a(u):u}function ni(e,o,t,n){const a=ea(e),r=a!==e&&!ko(e);let s=t,i=!1;a!==e&&(r?(i=n.length===0,s=function(c,u,d){return i&&(i=!1,c=jo(e,c)),t.call(this,c,jo(e,u),d,e)}):t.length>3&&(s=function(c,u,d){return t.call(this,c,u,d,e)}));const l=a[o](s,...n);return i?jo(e,l):l}function ir(e,o,t){const n=Le(e);go(n,"iterate",bn);const a=n[o](...t);return(a===-1||a===!1)&&ra(t[0])?(t[0]=Le(t[0]),n[o](...t)):a}function _n(e,o,t=[]){Go(),er();const n=Le(e)[o].apply(e,t);return or(),Uo(),n}const pp=Ka("__proto__,__v_isRef,__isVue"),ai=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(vo));function dp(e){vo(e)||(e=String(e));const o=Le(this);return go(o,"has",e),o.hasOwnProperty(e)}class ri{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,r=this._isShallow;if(t==="__v_isReactive")return!a;if(t==="__v_isReadonly")return a;if(t==="__v_isShallow")return r;if(t==="__v_raw")return n===(a?r?pi:ui:r?ci:li).get(o)||Object.getPrototypeOf(o)===Object.getPrototypeOf(n)?o:void 0;const s=me(o);if(!a){let l;if(s&&(l=cp[t]))return l;if(t==="hasOwnProperty")return dp}const i=Reflect.get(o,t,Ve(o)?o:n);if((vo(t)?ai.has(t):pp(t))||(a||go(o,"get",t),r))return i;if(Ve(i)){const l=s&&qn(t)?i:i.value;return a&&Oe(l)?cr(l):l}return Oe(i)?a?cr(i):Wt(i):i}}class si extends ri{constructor(o=!1){super(!1,o)}set(o,t,n,a){let r=o[t];const s=me(o)&&qn(t);if(!this._isShallow){const c=ot(r);if(!ko(n)&&!ot(n)&&(r=Le(r),n=Le(n)),!s&&Ve(r)&&!Ve(n))return c||(r.value=n),!0}const i=s?Number(t)<o.length:Ee(o,t),l=Reflect.set(o,t,n,Ve(o)?o:a);return o===Le(a)&&l&&(i?Bo(n,r)&&Jo(o,"set",t,n):Jo(o,"add",t,n)),l}deleteProperty(o,t){const n=Ee(o,t);o[t];const a=Reflect.deleteProperty(o,t);return a&&n&&Jo(o,"delete",t,void 0),a}has(o,t){const n=Reflect.has(o,t);return(!vo(t)||!ai.has(t))&&go(o,"has",t),n}ownKeys(o){return go(o,"iterate",me(o)?"length":Ct),Reflect.ownKeys(o)}}class ii extends ri{constructor(o=!1){super(!0,o)}set(o,t){return!0}deleteProperty(o,t){return!0}}const gp=new si,hp=new ii,fp=new si(!0),mp=new ii(!0),lr=e=>e,oa=e=>Reflect.getPrototypeOf(e);function bp(e,o,t){return function(...n){const a=this.__v_raw,r=Le(a),s=ht(r),i=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,c=a[e](...n),u=t?lr:o?zt:Eo;return!o&&go(r,"iterate",l?rr:Ct),Ye(Object.create(c),{next(){const{value:d,done:p}=c.next();return p?{value:d,done:p}:{value:i?[u(d[0]),u(d[1])]:u(d),done:p}}})}}function ta(e){return function(...o){return e==="delete"?!1:e==="clear"?void 0:this}}function _p(e,o){const t={get(a){const r=this.__v_raw,s=Le(r),i=Le(a);e||(Bo(a,i)&&go(s,"get",a),go(s,"get",i));const{has:l}=oa(s),c=o?lr:e?zt:Eo;if(l.call(s,a))return c(r.get(a));if(l.call(s,i))return c(r.get(i));r!==s&&r.get(a)},get size(){const a=this.__v_raw;return!e&&go(Le(a),"iterate",Ct),a.size},has(a){const r=this.__v_raw,s=Le(r),i=Le(a);return e||(Bo(a,i)&&go(s,"has",a),go(s,"has",i)),a===i?r.has(a):r.has(a)||r.has(i)},forEach(a,r){const s=this,i=s.__v_raw,l=Le(i),c=o?lr:e?zt:Eo;return!e&&go(l,"iterate",Ct),i.forEach((u,d)=>a.call(r,c(u),c(d),s))}};return Ye(t,e?{add:ta("add"),set:ta("set"),delete:ta("delete"),clear:ta("clear")}:{add(a){const r=Le(this),s=oa(r),i=Le(a),l=!o&&!ko(a)&&!ot(a)?i:a;return s.has.call(r,l)||Bo(a,l)&&s.has.call(r,a)||Bo(i,l)&&s.has.call(r,i)||(r.add(l),Jo(r,"add",l,l)),this},set(a,r){!o&&!ko(r)&&!ot(r)&&(r=Le(r));const s=Le(this),{has:i,get:l}=oa(s);let c=i.call(s,a);c||(a=Le(a),c=i.call(s,a));const u=l.call(s,a);return s.set(a,r),c?Bo(r,u)&&Jo(s,"set",a,r):Jo(s,"add",a,r),this},delete(a){const r=Le(this),{has:s,get:i}=oa(r);let l=s.call(r,a);l||(a=Le(a),l=s.call(r,a)),i&&i.call(r,a);const c=r.delete(a);return l&&Jo(r,"delete",a,void 0),c},clear(){const a=Le(this),r=a.size!==0,s=a.clear();return r&&Jo(a,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(a=>{t[a]=bp(a,e,o)}),t}function na(e,o){const t=_p(e,o);return(n,a,r)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Ee(t,a)&&a in n?t:n,a,r)}const $p={get:na(!1,!1)},yp={get:na(!1,!0)},vp={get:na(!0,!1)},kp={get:na(!0,!0)},li=new WeakMap,ci=new WeakMap,ui=new WeakMap,pi=new WeakMap;function wp(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Wt(e){return ot(e)?e:aa(e,!1,gp,$p,li)}function xp(e){return aa(e,!1,fp,yp,ci)}function cr(e){return aa(e,!0,hp,vp,ui)}function S2(e){return aa(e,!0,mp,kp,pi)}function aa(e,o,t,n,a){if(!Oe(e)||e.__v_raw&&!(o&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=a.get(e);if(r)return r;const s=wp(Yu(e));if(s===0)return e;const i=new Proxy(e,s===2?n:t);return a.set(e,i),i}function et(e){return ot(e)?et(e.__v_raw):!!(e&&e.__v_isReactive)}function ot(e){return!!(e&&e.__v_isReadonly)}function ko(e){return!!(e&&e.__v_isShallow)}function ra(e){return e?!!e.__v_raw:!1}function Le(e){const o=e&&e.__v_raw;return o?Le(o):e}function Nt(e){return!Ee(e,"__v_skip")&&Object.isExtensible(e)&&Bs(e,"__v_skip",!0),e}const Eo=e=>Oe(e)?Wt(e):e,zt=e=>Oe(e)?cr(e):e;function Ve(e){return e?e.__v_isRef===!0:!1}function le(e){return di(e,!1)}function Vt(e){return di(e,!0)}function di(e,o){return Ve(e)?e:new Ap(e,o)}class Ap{constructor(o,t){this.dep=new ar,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?o:Le(o),this._value=t?o:Eo(o),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(o){const t=this._rawValue,n=this.__v_isShallow||ko(o)||ot(o);o=n?o:Le(o),Bo(o,t)&&(this._rawValue=o,this._value=n?o:Eo(o),this.dep.trigger())}}function te(e){return Ve(e)?e.value:e}const Sp={get:(e,o,t)=>o==="__v_raw"?e:te(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 gi(e){return et(e)?e:new Proxy(e,Sp)}function Lp(e){const o=me(e)?new Array(e.length):{};for(const t in e)o[t]=fi(e,t);return o}class Cp{constructor(o,t,n){this._object=o,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=vo(t)?t:String(t),this._raw=Le(o);let a=!0,r=o;if(!me(o)||vo(this._key)||!qn(this._key))do a=!ra(r)||ko(r);while(a&&(r=r.__v_raw));this._shallow=a}get value(){let o=this._object[this._key];return this._shallow&&(o=te(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 lp(this._raw,this._key)}}class Np{constructor(o){this._getter=o,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function hi(e,o,t){return Ve(e)?e:$e(e)?new Np(e):Oe(e)&&arguments.length>1?fi(e,o,t):le(e)}function fi(e,o,t){return new Cp(e,o,t)}class Pp{constructor(o,t,n){this.fn=o,this.setter=t,this._value=void 0,this.dep=new ar(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=mn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Ue!==this)return Xs(this,!0),!0}get value(){const o=this.dep.track();return Qs(this),o&&(o.version=this.dep.version),this._value}set value(o){this.setter&&this.setter(o)}}function Ep(e,o,t=!1){let n,a;return $e(e)?n=e:(n=e.get,a=e.set),new Pp(n,a,t)}const sa={},ia=new WeakMap;let Pt;function Op(e,o=!1,t=Pt){if(t){let n=ia.get(t);n||ia.set(t,n=[]),n.push(e)}}function Tp(e,o,t=Fe){const{immediate:n,deep:a,once:r,scheduler:s,augmentJob:i,call:l}=t,c=A=>a?A:ko(A)||a===!1||a===0?tt(A,1):tt(A);let u,d,p,m,$=!1,f=!1;if(Ve(e)?(d=()=>e.value,$=ko(e)):et(e)?(d=()=>c(e),$=!0):me(e)?(f=!0,$=e.some(A=>et(A)||ko(A)),d=()=>e.map(A=>{if(Ve(A))return A.value;if(et(A))return c(A);if($e(A))return l?l(A,2):A()})):$e(e)?o?d=l?()=>l(e,2):e:d=()=>{if(p){Go();try{p()}finally{Uo()}}const A=Pt;Pt=u;try{return l?l(e,3,[m]):e(m)}finally{Pt=A}}:d=Do,o&&a){const A=d,x=a===!0?1/0:a;d=()=>tt(A(),x)}const _=Ks(),v=()=>{u.stop(),_&&_.active&&qa(_.effects,u)};if(r&&o){const A=o;o=(...x)=>{const P=A(...x);return v(),P}}let C=f?new Array(e.length).fill(sa):sa;const w=A=>{if(!(!(u.flags&1)||!u.dirty&&!A))if(o){const x=u.run();if(A||a||$||(f?x.some((P,y)=>Bo(P,C[y])):Bo(x,C))){p&&p();const P=Pt;Pt=u;try{const y=[x,C===sa?void 0:f&&C[0]===sa?[]:C,m];C=x,l?l(o,3,y):o(...y)}finally{Pt=P}}}else u.run()};return i&&i(w),u=new qs(d),u.scheduler=s?()=>s(w,!1):w,m=A=>Op(A,!1,u),p=u.onStop=()=>{const A=ia.get(u);if(A){if(l)l(A,4);else for(const x of A)x();ia.delete(u)}},o?n?w(!0):C=u.run():s?s(w.bind(null,!0),!0):u.run(),v.pause=u.pause.bind(u),v.resume=u.resume.bind(u),v.stop=v,v}function tt(e,o=1/0,t){if(o<=0||!Oe(e)||e.__v_skip||(t=t||new Map,(t.get(e)||0)>=o))return e;if(t.set(e,o),o--,Ve(e))tt(e.value,o,t);else if(me(e))for(let n=0;n<e.length;n++)tt(e[n],o,t);else if(Hn(e)||ht(e))e.forEach(n=>{tt(n,o,t)});else if(Kn(e)){for(const n in e)tt(e[n],o,t);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&tt(e[n],o,t)}return e}/**
|
||
* @vue/runtime-core v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/const $n=[];let ur=!1;function L2(e,...o){if(ur)return;ur=!0,Go();const t=$n.length?$n[$n.length-1].component:null,n=t&&t.appContext.config.warnHandler,a=Mp();if(n)Ht(n,t,11,[e+o.map(r=>{var s,i;return(i=(s=r.toString)==null?void 0:s.call(r))!=null?i:JSON.stringify(r)}).join(""),t&&t.proxy,a.map(({vnode:r})=>`at <${fl(t,r.type)}>`).join(`
|
||
`),a]);else{const r=[`[Vue warn]: ${e}`,...o];a.length&&r.push(`
|
||
`,...Rp(a)),console.warn(...r)}Uo(),ur=!1}function Mp(){let e=$n[$n.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 Rp(e){const o=[];return e.forEach((t,n)=>{o.push(...n===0?[]:[`
|
||
`],...Ip(t))}),o}function Ip({vnode:e,recurseCount:o}){const t=o>0?`... (${o} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${fl(e.component,e.type,n)}`,r=">"+t;return e.props?[a,...Fp(e.props),r]:[a+r]}function Fp(e){const o=[],t=Object.keys(e);return t.slice(0,3).forEach(n=>{o.push(...mi(n,e[n]))}),t.length>3&&o.push(" ..."),o}function mi(e,o,t){return Ge(o)?(o=JSON.stringify(o),t?o:[`${e}=${o}`]):typeof o=="number"||typeof o=="boolean"||o==null?t?o:[`${e}=${o}`]:Ve(o)?(o=mi(e,Le(o.value),!0),t?o:[`${e}=Ref<`,o,">"]):$e(o)?[`${e}=fn${o.name?`<${o.name}>`:""}`]:(o=Le(o),t?o:[`${e}=`,o])}function Ht(e,o,t,n){try{return n?e(...n):e()}catch(a){yn(a,o,t)}}function Oo(e,o,t,n){if($e(e)){const a=Ht(e,o,t,n);return a&&Fs(a)&&a.catch(r=>{yn(r,o,t)}),a}if(me(e)){const a=[];for(let r=0;r<e.length;r++)a.push(Oo(e[r],o,t,n));return a}}function yn(e,o,t,n=!0){const a=o?o.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:s}=o&&o.appContext.config||Fe;if(o){let i=o.parent;const l=o.proxy,c=`https://vuejs.org/error-reference/#runtime-${t}`;for(;i;){const u=i.ec;if(u){for(let d=0;d<u.length;d++)if(u[d](e,l,c)===!1)return}i=i.parent}if(r){Go(),Ht(r,null,10,[e,l,c]),Uo();return}}Dp(e,t,a,n,s)}function Dp(e,o,t,n=!0,a=!1){if(a)throw e;console.error(e)}const ho=[];let Wo=-1;const Kt=[];let ft=null,qt=0;const bi=Promise.resolve();let la=null;function mt(e){const o=la||bi;return e?o.then(this?e.bind(this):e):o}function Bp(e){let o=Wo+1,t=ho.length;for(;o<t;){const n=o+t>>>1,a=ho[n],r=vn(a);r<e||r===e&&a.flags&2?o=n+1:t=n}return o}function pr(e){if(!(e.flags&1)){const o=vn(e),t=ho[ho.length-1];!t||!(e.flags&2)&&o>=vn(t)?ho.push(e):ho.splice(Bp(o),0,e),e.flags|=1,_i()}}function _i(){la||(la=bi.then(vi))}function Gp(e){if(!me(e))ft&&e.id===-1?ft.splice(qt+1,0,e):e.flags&1||(Kt.push(e),e.flags|=1);else for(let o=0;o<e.length;o++)Kt.push(e[o]);_i()}function $i(e,o,t=Wo+1){for(;t<ho.length;t++){const n=ho[t];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;ho.splice(t,1),t--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function yi(e){if(Kt.length){const o=[...new Set(Kt)].sort((t,n)=>vn(t)-vn(n));if(Kt.length=0,ft){for(let t=0;t<o.length;t++)ft.push(o[t]);return}for(ft=o,qt=0;qt<ft.length;qt++){const t=ft[qt];t.flags&4&&(t.flags&=-2),t.flags&8||t(),t.flags&=-2}ft=null,qt=0}}const vn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function vi(e){try{for(Wo=0;Wo<ho.length;Wo++){const o=ho[Wo];o&&!(o.flags&8)&&(o.flags&4&&(o.flags&=-2),Ht(o,o.i,o.i?15:14),o.flags&4||(o.flags&=-2))}}finally{for(;Wo<ho.length;Wo++){const o=ho[Wo];o&&(o.flags&=-2)}Wo=-1,ho.length=0,yi(),la=null,(ho.length||Kt.length)&&vi()}}let lo=null,ki=null;function ca(e){const o=lo;return lo=e,ki=e&&e.type.__scopeId||null,o}function To(e,o=lo,t){if(!o||e._n)return e;const n=(...a)=>{n._d&&ya(-1);const r=ca(o),s=at.length;let i;try{i=e(...a)}finally{for(let l=at.length;l>s;l--)Lr();ca(r),n._d&&ya(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function wi(e,o){if(lo===null)return e;const t=xa(lo),n=e.dirs||(e.dirs=[]);for(let a=0;a<o.length;a++){let[r,s,i,l=Fe]=o[a];r&&($e(r)&&(r={mounted:r,updated:r}),r.deep&&tt(s),n.push({dir:r,instance:t,value:s,oldValue:void 0,arg:i,modifiers:l}))}return e}function Et(e,o,t,n){const a=e.dirs,r=o&&o.dirs;for(let s=0;s<a.length;s++){const i=a[s];r&&(i.oldValue=r[s].value);let l=i.dir[n];l&&(Go(),Oo(l,t,8,[e.el,i,e,o]),Uo())}}function Lo(e,o){if(co){let t=co.provides;const n=co.parent&&co.parent.provides;n===t&&(t=co.provides=Object.create(n)),t[e]=o}}function xe(e,o,t=!1){const n=st();if(n||Tt){let a=Tt?Tt._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(a&&e in a)return a[e];if(arguments.length>1)return t&&$e(o)?o.call(n&&n.proxy):o}}function Up(){return!!(st()||Tt)}const jp=Symbol.for("v-scx"),Wp=()=>xe(jp);function zp(e,o){return dr(e,null,o)}function Ke(e,o,t){return dr(e,o,t)}function dr(e,o,t=Fe){const{immediate:n,deep:a,flush:r,once:s}=t,i=Ye({},t),l=o&&n||!o&&r!=="post";let c;if(Zt){if(r==="sync"){const m=Wp();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=Do,m.resume=Do,m.pause=Do,m}}const u=co;i.call=(m,$,f)=>Oo(m,u,$,f);let d=!1;r==="post"?i.scheduler=m=>{mo(m,u&&u.suspense)}:r!=="sync"&&(d=!0,i.scheduler=(m,$)=>{$?m():pr(m)}),i.augmentJob=m=>{o&&(m.flags|=4),d&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const p=Tp(e,o,i);return Zt&&(c?c.push(p):l&&p()),p}function Vp(e,o,t){const n=this.proxy,a=Ge(e)?e.includes(".")?xi(n,e):()=>n[e]:e.bind(n,n);let r;$e(o)?r=o:(r=o.handler,t=o);const s=Tn(this),i=dr(a,r.bind(n),t);return s(),i}function xi(e,o){const t=o.split(".");return()=>{let n=e;for(let a=0;a<t.length&&n;a++)n=n[t[a]];return n}}const bt=new WeakMap,Ai=Symbol("_vte"),ua=e=>e.__isTeleport,Ot=e=>e&&(e.disabled||e.disabled===""),Hp=e=>e&&(e.defer||e.defer===""),Si=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Li=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,gr=(e,o)=>{const t=e&&e.to;return Ge(t)?o?o(t):null:t},Kp={name:"Teleport",__isTeleport:!0,process(e,o,t,n,a,r,s,i,l,c){const{mc:u,pc:d,pbc:p,o:{insert:m,querySelector:$,createText:f,createComment:_,parentNode:v}}=c,C=Ot(o.props);let{dynamicChildren:w}=o;const A=(y,L,b)=>{y.shapeFlag&16&&u(y.children,L,b,a,r,s,i,l)},x=(y=o)=>{const L=Ot(y.props),b=y.target=gr(y.props,$),O=hr(b,y,f,m);b&&(s!=="svg"&&Si(b)?s="svg":s!=="mathml"&&Li(b)&&(s="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(b),L||(A(y,b,O),kn(y,!1)))},P=y=>{const L=()=>{if(bt.get(y)===L){if(bt.delete(y),Ot(y.props)){const b=v(y.el)||t;A(y,b,y.anchor),kn(y,!0)}x(y)}};bt.set(y,L),mo(L,r)};if(e==null){const y=o.el=f(""),L=o.anchor=f("");if(m(y,t,n),m(L,t,n),Hp(o.props)||r&&r.pendingBranch){P(o);return}C&&(A(o,t,L),kn(o,!0)),x()}else{o.el=e.el;const y=o.anchor=e.anchor,L=bt.get(e);if(L){L.flags|=8,bt.delete(e),P(o);return}o.targetStart=e.targetStart;const b=o.target=e.target,O=o.targetAnchor=e.targetAnchor,R=Ot(e.props),q=R?t:b,oe=R?y:O;if(s==="svg"||Si(b)?s="svg":(s==="mathml"||Li(b))&&(s="mathml"),w?(p(e.dynamicChildren,w,q,a,r,s,i),Sr(e,o,!0)):l||d(e,o,q,oe,a,r,s,i,!1),C)R?o.props&&e.props&&o.props.to!==e.props.to&&(o.props.to=e.props.to):pa(o,t,y,c,1);else if((o.props&&o.props.to)!==(e.props&&e.props.to)){const ge=gr(o.props,$);ge&&(o.target=ge,pa(o,ge,null,c,0))}else R&&pa(o,b,O,c,1);kn(o,C)}},remove(e,o,t,{um:n,o:{remove:a}},r){const{shapeFlag:s,children:i,anchor:l,targetStart:c,targetAnchor:u,target:d,props:p}=e,m=Ot(p),$=r||!m,f=bt.get(e);if(f&&(f.flags|=8,bt.delete(e)),d&&(a(c),a(u)),r&&a(l),!f&&(m||d)&&s&16)for(let _=0;_<i.length;_++){const v=i[_];n(v,o,t,$,!!v.dynamicChildren)}},move:pa,hydrate:qp};function pa(e,o,t,{o:{insert:n},m:a},r=2){r===0&&n(e.targetAnchor,o,t);const{el:s,anchor:i,shapeFlag:l,children:c,props:u}=e,d=r===2;if(d&&n(s,o,t),!bt.has(e)&&(!d||Ot(u))&&l&16)for(let p=0;p<c.length;p++)a(c[p],o,t,2);d&&n(i,o,t)}function qp(e,o,t,n,a,r,{o:{nextSibling:s,parentNode:i,querySelector:l,insert:c,createText:u}},d){function p(_,v){let C=v;for(;C;){if(C&&C.nodeType===8){if(C.data==="teleport start anchor")o.targetStart=C;else if(C.data==="teleport anchor"){o.targetAnchor=C,_._lpa=o.targetAnchor&&s(o.targetAnchor);break}}C=s(C)}}function m(_,v){v.anchor=d(s(_),v,i(_),t,n,a,r)}const $=o.target=gr(o.props,l),f=Ot(o.props);if($){const _=$._lpa||$.firstChild;o.shapeFlag&16&&(f?(m(e,o),p($,_),o.targetAnchor||hr($,o,u,c,i(e)===$?e:null)):(o.anchor=s(e),p($,_),o.targetAnchor||hr($,o,u,c),d(_&&s(_),o,$,t,n,a,r))),kn(o,f)}else f&&o.shapeFlag&16&&(m(e,o),o.targetStart=e,o.targetAnchor=s(e));return o.anchor&&s(o.anchor)}const Yp=Kp;function kn(e,o){const t=e.ctx;if(t&&t.ut){let n,a;for(o?(n=e.el,a=e.anchor):(n=e.targetStart,a=e.targetAnchor);n&&n!==a;)n.nodeType===1&&n.setAttribute("data-v-owner",t.uid),n=n.nextSibling;t.ut()}}function hr(e,o,t,n,a=null){const r=o.targetStart=t(""),s=o.targetAnchor=t("");return r[Ai]=s,e&&(n(r,e,a),n(s,e,a)),s}const fr=Symbol("_leaveCb");function Xp(e){let o=e[0];if(e.length>1){for(const t of e)if(t.type!==Ho){o=t;break}}return o}function Ci(e){if(!ha(e))return ua(e.type)&&e.children?Xp(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&&$e(t.default))return t.default()}}function mr(e,o){if(e.shapeFlag&6&&e.component){e.transition=o;const t=e.component.subTree;mr(ua(t.type)&&Ci(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 wn(e,o){return $e(e)?Ye({name:e.name},o,{setup:e}):e}function br(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Ni(e,o){let t;return!!((t=Object.getOwnPropertyDescriptor(e,o))&&!t.configurable)}const da=new WeakMap;function xn(e,o,t,n,a=!1){if(me(e)){e.forEach((f,_)=>xn(f,o&&(me(o)?o[_]:o),t,n,a));return}if(Yt(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&xn(e,o,t,n.component.subTree);return}const r=n.shapeFlag&4?xa(n.component):n.el,s=a?null:r,{i,r:l}=e,c=o&&o.r,u=i.refs===Fe?i.refs={}:i.refs,d=i.setupState,p=Le(d),m=d===Fe?Rs:f=>Ni(u,f)?!1:Ee(p,f),$=(f,_)=>!(_&&Ni(u,_));if(c!=null&&c!==l){if(Pi(o),Ge(c))u[c]=null,m(c)&&(d[c]=null);else if(Ve(c)){const f=o;$(c,f.k)&&(c.value=null),f.k&&(u[f.k]=null)}}if($e(l))Ht(l,i,12,[s,u]);else{const f=Ge(l),_=Ve(l);if(f||_){const v=()=>{if(e.f){const C=f?m(l)?d[l]:u[l]:$()||!e.k?l.value:u[e.k];if(a)me(C)&&qa(C,r);else if(me(C))C.includes(r)||C.push(r);else if(f)u[l]=[r],m(l)&&(d[l]=u[l]);else{const w=[r];$(l,e.k)&&(l.value=w),e.k&&(u[e.k]=w)}}else f?(u[l]=s,m(l)&&(d[l]=s)):_&&($(l,e.k)&&(l.value=s),e.k&&(u[e.k]=s))};if(s){const C=()=>{v(),da.delete(e)};C.id=-1,da.set(e,C),mo(C,t)}else Pi(e),v()}}}function Pi(e){const o=da.get(e);o&&(o.flags|=8,da.delete(e))}const Ei=e=>e.nodeType===8;Zn().requestIdleCallback,Zn().cancelIdleCallback;function Zp(e,o){if(Ei(e)&&e.data==="["){let t=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(o(n)===!1)break}else if(Ei(n))if(n.data==="]"){if(--t===0)break}else n.data==="["&&t++;n=n.nextSibling}}else o(e)}const Yt=e=>!!e.type.__asyncLoader;function Jp(e){$e(e)&&(e={loader:e});const{loader:o,loadingComponent:t,errorComponent:n,delay:a=200,hydrate:r,timeout:s,suspensible:i=!0,onError:l}=e;let c=null,u,d=0;const p=()=>(d++,c=null,m()),m=()=>{let $;return c||($=c=o().catch(f=>{if(f=f instanceof Error?f:new Error(String(f)),l)return new Promise((_,v)=>{l(f,()=>_(p()),()=>v(f),d+1)});throw f}).then(f=>$!==c&&c?c:(f&&(f.__esModule||f[Symbol.toStringTag]==="Module")&&(f=f.default),u=f,f)))};return wn({name:"AsyncComponentWrapper",__asyncLoader:m,__asyncHydrate($,f,_){const v=$.isConnected;let C=!1;(f.bu||(f.bu=[])).push(()=>C=!0);const w=()=>{C||!$.parentNode||v&&!$.isConnected||_()},A=r?()=>{const x=r(w,P=>Zp($,P));x&&(f.bum||(f.bum=[])).push(x)}:w;u?A():m().then(()=>!f.isUnmounted&&A())},get __asyncResolved(){return u},setup(){const $=co;if(br($),u)return()=>ga(u,$);const f=x=>{c=null,yn(x,$,13,!n)};if(i&&$.suspense||Zt)return m().then(x=>()=>ga(x,$)).catch(x=>(f(x),()=>n?Me(n,{error:x}):null));const _=le(!1),v=le(),C=le(!!a);let w,A;return ma(()=>{w!=null&&clearTimeout(w),A!=null&&clearTimeout(A)}),a&&(A=setTimeout(()=>{$.isUnmounted||(C.value=!1)},a)),s!=null&&(w=setTimeout(()=>{if(!$.isUnmounted&&!_.value&&!v.value){const x=new Error(`Async component timed out after ${s}ms.`);f(x),v.value=x}},s)),m().then(()=>{$.isUnmounted||(_.value=!0,$.parent&&ha($.parent.vnode)&&$.parent.update())}).catch(x=>{if($.isUnmounted){c=null;return}f(x),v.value=x}),()=>{if(_.value&&u)return ga(u,$);if(v.value&&n)return Me(n,{error:v.value});if(t&&!C.value)return ga(t,$)}}})}function ga(e,o){const{ref:t,props:n,children:a,ce:r}=o.vnode,s=Me(e,n,a);return s.ref=t,s.ce=r,delete o.vnode.ce,s}const ha=e=>e.type.__isKeepAlive;function Qp(e,o){Oi(e,"a",o)}function ed(e,o){Oi(e,"da",o)}function Oi(e,o,t=co){const n=e.__wdc||(e.__wdc=()=>{let a=t;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(fa(o,n,t),t){let a=t.parent;for(;a&&a.parent;)ha(a.parent.vnode)&&od(n,o,t,a),a=a.parent}}function od(e,o,t,n){const a=fa(o,e,n,!0);ma(()=>{qa(n[o],a)},t)}function fa(e,o,t=co,n=!1){if(t){const a=t[e]||(t[e]=[]),r=o.__weh||(o.__weh=(...s)=>{Go();const i=Tn(t),l=Oo(o,t,e,s);return i(),Uo(),l});return n?a.unshift(r):a.push(r),r}}const nt=e=>(o,t=co)=>{(!Zt||e==="sp")&&fa(e,(...n)=>o(...n),t)},Ti=nt("bm"),zo=nt("m"),td=nt("bu"),nd=nt("u"),Vo=nt("bum"),ma=nt("um"),ad=nt("sp"),rd=nt("rtg"),sd=nt("rtc");function id(e,o=co){fa("ec",e,o)}const ld="components",Mi=Symbol.for("v-ndc");function Ri(e){return Ge(e)?cd(ld,e,!1)||e:e||Mi}function cd(e,o,t=!0,n=!1){const a=lo||co;if(a){const r=a.type;{const i=hl(r,!1);if(i&&(i===o||i===no(o)||i===Xn(no(o))))return r}const s=Ii(a[e]||r[e],o)||Ii(a.appContext[e],o);return!s&&n?r:s}}function Ii(e,o){return e&&(e[o]||e[no(o)]||e[Xn(no(o))])}function Xe(e,o,t,n){let a;const r=t,s=me(e);if(s||Ge(e)){const i=s&&et(e);let l=!1,c=!1;i&&(l=!ko(e),c=ot(e),e=ea(e)),a=new Array(e.length);for(let u=0,d=e.length;u<d;u++)a[u]=o(l?c?zt(Eo(e[u])):Eo(e[u]):e[u],u,void 0,r)}else if(typeof e=="number"){a=new Array(e);for(let i=0;i<e;i++)a[i]=o(i+1,i,void 0,r)}else if(Oe(e))if(e[Symbol.iterator])a=Array.from(e,(i,l)=>o(i,l,void 0,r));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l<c;l++){const u=i[l];a[l]=o(e[u],u,l,r)}}else a=[];return a}function An(e,o,t,n,a,r){if(t==null&&(t={}),lo.ce||lo.parent&&Yt(lo.parent)&&lo.parent.ce){const c=t,u=Object.keys(c).length>0;return o!=="default"&&(c.name=o),I(),Ze(fe,null,[Me("slot",c,n)],u?-2:64)}let s=e[o];s&&s._c&&(s._d=!1);const i=at.length;I();let l;try{const c=s&&Fi(s(t)),u=t.key||r||c&&c.key;l=Ze(fe,{key:(u&&!vo(u)?u:`_${o}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=at.length;u>i;u--)Lr();throw c}finally{s&&s._c&&(s._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Fi(e){return e.some(o=>Pn(o)?!(o.type===Ho||o.type===fe&&!Fi(o.children)):!0)?e:null}const _r=e=>e?pl(e)?xa(e):_r(e.parent):null,Sn=Ye(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=>_r(e.parent),$root:e=>_r(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ui(e),$forceUpdate:e=>e.f||(e.f=()=>{pr(e.update)}),$nextTick:e=>e.n||(e.n=mt.bind(e.proxy)),$watch:e=>Vp.bind(e)}),$r=(e,o)=>e!==Fe&&!e.__isScriptSetup&&Ee(e,o),ud={get({_:e},o){if(o==="__v_skip")return!0;const{ctx:t,setupState:n,data:a,props:r,accessCache:s,type:i,appContext:l}=e;if(o[0]!=="$"){const p=s[o];if(p!==void 0)switch(p){case 1:return n[o];case 2:return a[o];case 4:return t[o];case 3:return r[o]}else{if($r(n,o))return s[o]=1,n[o];if(a!==Fe&&Ee(a,o))return s[o]=2,a[o];if(Ee(r,o))return s[o]=3,r[o];if(t!==Fe&&Ee(t,o))return s[o]=4,t[o];yr&&(s[o]=0)}}const c=Sn[o];let u,d;if(c)return o==="$attrs"&&go(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[o]))return u;if(t!==Fe&&Ee(t,o))return s[o]=4,t[o];if(d=l.config.globalProperties,Ee(d,o))return d[o]},set({_:e},o,t){const{data:n,setupState:a,ctx:r}=e;return $r(a,o)?(a[o]=t,!0):n!==Fe&&Ee(n,o)?(n[o]=t,!0):Ee(e.props,o)||o[0]==="$"&&o.slice(1)in e?!1:(r[o]=t,!0)},has({_:{data:e,setupState:o,accessCache:t,ctx:n,appContext:a,props:r,type:s}},i){let l;return!!(t[i]||e!==Fe&&i[0]!=="$"&&Ee(e,i)||$r(o,i)||Ee(r,i)||Ee(n,i)||Ee(Sn,i)||Ee(a.config.globalProperties,i)||(l=s.__cssModules)&&l[i])},defineProperty(e,o,t){return t.get!=null?e._.accessCache[o]=0:Ee(t,"value")&&this.set(e,o,t.value,null),Reflect.defineProperty(e,o,t)}};function Di(e){return me(e)?e.reduce((o,t)=>(o[t]=null,o),{}):e}let yr=!0;function pd(e){const o=Ui(e),t=e.proxy,n=e.ctx;yr=!1,o.beforeCreate&&Bi(o.beforeCreate,e,"bc");const{data:a,computed:r,methods:s,watch:i,provide:l,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:m,updated:$,activated:f,deactivated:_,beforeDestroy:v,beforeUnmount:C,destroyed:w,unmounted:A,render:x,renderTracked:P,renderTriggered:y,errorCaptured:L,serverPrefetch:b,expose:O,inheritAttrs:R,components:q,directives:oe,filters:ge}=o;if(c&&dd(c,n,null),s)for(const F in s){const W=s[F];$e(W)&&(n[F]=W.bind(t))}if(a){const F=a.call(t,t);Oe(F)&&(e.data=Wt(F))}if(yr=!0,r)for(const F in r){const W=r[F],Y=$e(W)?W.bind(t,t):$e(W.get)?W.get.bind(t,t):Do,Z=!$e(W)&&$e(W.set)?W.set.bind(t):Do,ie=z({get:Y,set:Z});Object.defineProperty(n,F,{enumerable:!0,configurable:!0,get:()=>ie.value,set:se=>ie.value=se})}if(i)for(const F in i)Gi(i[F],n,t,F);if(l){const F=$e(l)?l.call(t):l;Reflect.ownKeys(F).forEach(W=>{Lo(W,F[W])})}u&&Bi(u,e,"c");function X(F,W){me(W)?W.forEach(Y=>F(Y.bind(t))):W&&F(W.bind(t))}if(X(Ti,d),X(zo,p),X(td,m),X(nd,$),X(Qp,f),X(ed,_),X(id,L),X(sd,P),X(rd,y),X(Vo,C),X(ma,A),X(ad,b),me(O))if(O.length){const F=e.exposed||(e.exposed={});O.forEach(W=>{Object.defineProperty(F,W,{get:()=>t[W],set:Y=>t[W]=Y,enumerable:!0})})}else e.exposed||(e.exposed={});x&&e.render===Do&&(e.render=x),R!=null&&(e.inheritAttrs=R),q&&(e.components=q),oe&&(e.directives=oe),b&&br(e)}function dd(e,o,t=Do){me(e)&&(e=vr(e));for(const n in e){const a=e[n];let r;Oe(a)?"default"in a?r=xe(a.from||n,a.default,!0):r=xe(a.from||n):r=xe(a),Ve(r)?Object.defineProperty(o,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):o[n]=r}}function Bi(e,o,t){Oo(me(e)?e.map(n=>n.bind(o.proxy)):e.bind(o.proxy),o,t)}function Gi(e,o,t,n){let a=n.includes(".")?xi(t,n):()=>t[n];if(Ge(e)){const r=o[e];$e(r)&&Ke(a,r)}else if($e(e))Ke(a,e.bind(t));else if(Oe(e))if(me(e))e.forEach(r=>Gi(r,o,t,n));else{const r=$e(e.handler)?e.handler.bind(t):o[e.handler];$e(r)&&Ke(a,r,e)}}function Ui(e){const o=e.type,{mixins:t,extends:n}=o,{mixins:a,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,i=r.get(o);let l;return i?l=i:!a.length&&!t&&!n?l=o:(l={},a.length&&a.forEach(c=>ba(l,c,s,!0)),ba(l,o,s)),Oe(o)&&r.set(o,l),l}function ba(e,o,t,n=!1){const{mixins:a,extends:r}=o;r&&ba(e,r,t,!0),a&&a.forEach(s=>ba(e,s,t,!0));for(const s in o)if(!(n&&s==="expose")){const i=gd[s]||t&&t[s];e[s]=i?i(e[s],o[s]):o[s]}return e}const gd={data:ji,props:Wi,emits:Wi,methods:Ln,computed:Ln,beforeCreate:fo,created:fo,beforeMount:fo,mounted:fo,beforeUpdate:fo,updated:fo,beforeDestroy:fo,beforeUnmount:fo,destroyed:fo,unmounted:fo,activated:fo,deactivated:fo,errorCaptured:fo,serverPrefetch:fo,components:Ln,directives:Ln,watch:fd,provide:ji,inject:hd};function ji(e,o){return o?e?function(){return Ye($e(e)?e.call(this,this):e,$e(o)?o.call(this,this):o)}:o:e}function hd(e,o){return Ln(vr(e),vr(o))}function vr(e){if(me(e)){const o={};for(let t=0;t<e.length;t++)o[e[t]]=e[t];return o}return e}function fo(e,o){return e?[...new Set([].concat(e,o))]:o}function Ln(e,o){return e?Ye(Object.create(null),e,o):o}function Wi(e,o){return e?me(e)&&me(o)?[...new Set([...e,...o])]:Ye(Object.create(null),Di(e),Di(o??{})):o}function fd(e,o){if(!e)return o;if(!o)return e;const t=Ye(Object.create(null),e);for(const n in o)t[n]=fo(e[n],o[n]);return t}function zi(){return{app:null,config:{isNativeTag:Rs,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let md=0;function bd(e,o){return function(n,a=null){$e(n)||(n=Ye({},n)),a!=null&&!Oe(a)&&(a=null);const r=zi(),s=new WeakSet,i=[];let l=!1;const c=r.app={_uid:md++,_component:n,_props:a,_container:null,_context:r,_instance:null,version:Xd,get config(){return r.config},set config(u){},use(u,...d){return s.has(u)||(u&&$e(u.install)?(s.add(u),u.install(c,...d)):$e(u)&&(s.add(u),u(c,...d))),c},mixin(u){return r.mixins.includes(u)||r.mixins.push(u),c},component(u,d){return d?(r.components[u]=d,c):r.components[u]},directive(u,d){return d?(r.directives[u]=d,c):r.directives[u]},mount(u,d,p){if(!l){const m=c._ceVNode||Me(n,a);return m.appContext=r,p===!0?p="svg":p===!1&&(p=void 0),e(m,u,p),l=!0,c._container=u,u.__vue_app__=c,xa(m.component)}},onUnmount(u){i.push(u)},unmount(){l&&(Oo(i,c._instance,16),e(null,c._container),delete c._container.__vue_app__)},provide(u,d){return r.provides[u]=d,c},runWithContext(u){const d=Tt;Tt=c;try{return u()}finally{Tt=d}}};return c}}let Tt=null;const _d=(e,o)=>o==="modelValue"||o==="model-value"?e.modelModifiers:e[`${o}Modifiers`]||e[`${no(o)}Modifiers`]||e[`${So(o)}Modifiers`];function $d(e,o,...t){if(e.isUnmounted)return;const n=e.vnode.props||Fe;let a=t;const r=o.startsWith("update:"),s=r&&_d(n,o.slice(7));s&&(s.trim&&(a=t.map(u=>Ge(u)?u.trim():u)),s.number&&(a=a.map(Ju)));let i,l=n[i=Ya(o)]||n[i=Ya(no(o))];!l&&r&&(l=n[i=Ya(So(o))]),l&&Oo(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,Oo(c,e,6,a)}}const yd=new WeakMap;function Vi(e,o,t=!1){const n=t?yd:o.emitsCache,a=n.get(e);if(a!==void 0)return a;const r=e.emits;let s={},i=!1;if(!$e(e)){const l=c=>{const u=Vi(c,o,!0);u&&(i=!0,Ye(s,u))};!t&&o.mixins.length&&o.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(Oe(e)&&n.set(e,null),null):(me(r)?r.forEach(l=>s[l]=null):Ye(s,r),Oe(e)&&n.set(e,s),s)}function _a(e,o){return!e||!zn(o)?!1:(o=o.slice(2),o=o==="Once"?o:o.replace(/Once$/,""),Ee(e,o[0].toLowerCase()+o.slice(1))||Ee(e,So(o))||Ee(e,o))}function C2(){}function Hi(e){const{type:o,vnode:t,proxy:n,withProxy:a,propsOptions:[r],slots:s,attrs:i,emit:l,render:c,renderCache:u,props:d,data:p,setupState:m,ctx:$,inheritAttrs:f}=e,_=ca(e);let v,C;try{if(t.shapeFlag&4){const A=a||n,x=A;v=Ko(c.call(x,A,u,d,m,p,$)),C=i}else{const A=o;v=Ko(A.length>1?A(d,{attrs:i,slots:s,emit:l}):A(d,null)),C=o.props?i:vd(i)}}catch(A){at.length=0,yn(A,e,1),v=Me(Ho)}let w=v;if(C&&f!==!1){const A=Object.keys(C),{shapeFlag:x}=w;A.length&&x&7&&(r&&A.some(Vn)&&(C=kd(C,r)),w=Xt(w,C,!1,!0))}if(t.dirs&&(w=Xt(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(t.dirs):t.dirs),t.transition){const A=ua(w.type)&&Ci(w)||w;mr(A,t.transition)}return v=w,ca(_),v}const vd=e=>{let o;for(const t in e)(t==="class"||t==="style"||zn(t))&&((o||(o={}))[t]=e[t]);return o},kd=(e,o)=>{const t={};for(const n in e)(!Vn(n)||!(n.slice(9)in o))&&(t[n]=e[n]);return t};function wd(e,o,t){const{props:n,children:a,component:r}=e,{props:s,children:i,patchFlag:l}=o,c=r.emitsOptions;if(o.dirs||o.transition)return!0;if(t&&l>=0){if(l&1024)return!0;if(l&16)return n?Ki(n,s,c):!!s;if(l&8){const u=o.dynamicProps;for(let d=0;d<u.length;d++){const p=u[d];if(qi(s,n,p)&&!_a(c,p))return!0}}}else return(a||i)&&(!i||!i.$stable)?!0:n===s?!1:n?s?Ki(n,s,c):!0:!!s;return!1}function Ki(e,o,t){const n=Object.keys(o);if(n.length!==Object.keys(e).length)return!0;for(let a=0;a<n.length;a++){const r=n[a];if(qi(o,e,r)&&!_a(t,r))return!0}return!1}function qi(e,o,t){const n=e[t],a=o[t];return t==="style"&&Oe(n)&&Oe(a)?!Jn(n,a):n!==a}function xd({vnode:e,parent:o,suspense:t},n){for(;o;){const a=o.subTree;if(a.suspense&&a.suspense.activeBranch===e&&(a.suspense.vnode.el=a.el=n,e=a),a===e)(e=o.vnode).el=n,o=o.parent;else break}t&&t.activeBranch===e&&(t.vnode.el=n)}const Yi={},Xi=()=>Object.create(Yi),Zi=e=>Object.getPrototypeOf(e)===Yi;function Ad(e,o,t,n=!1){const a={},r=Xi();e.propsDefaults=Object.create(null),Ji(e,o,a,r);for(const s in e.propsOptions[0])s in a||(a[s]=void 0);t?e.props=n?a:xp(a):e.type.props?e.props=a:e.props=r,e.attrs=r}function Sd(e,o,t,n){const{props:a,attrs:r,vnode:{patchFlag:s}}=e,i=Le(a),[l]=e.propsOptions;let c=!1;if((n||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let d=0;d<u.length;d++){let p=u[d];if(_a(e.emitsOptions,p))continue;const m=o[p];if(l)if(Ee(r,p))m!==r[p]&&(r[p]=m,c=!0);else{const $=no(p);a[$]=kr(l,i,$,m,e,!1)}else m!==r[p]&&(r[p]=m,c=!0)}}}else{Ji(e,o,a,r)&&(c=!0);let u;for(const d in i)(!o||!Ee(o,d)&&((u=So(d))===d||!Ee(o,u)))&&(l?t&&(t[d]!==void 0||t[u]!==void 0)&&(a[d]=kr(l,i,d,void 0,e,!0)):delete a[d]);if(r!==i)for(const d in r)(!o||!Ee(o,d))&&(delete r[d],c=!0)}c&&Jo(e.attrs,"set","")}function Ji(e,o,t,n){const[a,r]=e.propsOptions;let s=!1,i;if(o)for(let l in o){if(gn(l))continue;const c=o[l];let u;a&&Ee(a,u=no(l))?!r||!r.includes(u)?t[u]=c:(i||(i={}))[u]=c:_a(e.emitsOptions,l)||(!(l in n)||c!==n[l])&&(n[l]=c,s=!0)}if(r){const l=Le(t),c=i||Fe;for(let u=0;u<r.length;u++){const d=r[u];t[d]=kr(a,l,d,c[d],e,!Ee(c,d))}}return s}function kr(e,o,t,n,a,r){const s=e[t];if(s!=null){const i=Ee(s,"default");if(i&&n===void 0){const l=s.default;if(s.type!==Function&&!s.skipFactory&&$e(l)){const{propsDefaults:c}=a;if(t in c)n=c[t];else{const u=Tn(a);n=c[t]=l.call(null,o),u()}}else n=l;a.ce&&a.ce._setProp(t,n)}s[0]&&(r&&!i?n=!1:s[1]&&(n===""||n===So(t))&&(n=!0))}return n}const Ld=new WeakMap;function Qi(e,o,t=!1){const n=t?Ld:o.propsCache,a=n.get(e);if(a)return a;const r=e.props,s={},i=[];let l=!1;if(!$e(e)){const u=d=>{l=!0;const[p,m]=Qi(d,o,!0);Ye(s,p),m&&i.push(...m)};!t&&o.mixins.length&&o.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return Oe(e)&&n.set(e,Ut),Ut;if(me(r))for(let u=0;u<r.length;u++){const d=no(r[u]);el(d)&&(s[d]=Fe)}else if(r)for(const u in r){const d=no(u);if(el(d)){const p=r[u],m=s[d]=me(p)||$e(p)?{type:p}:Ye({},p),$=m.type;let f=!1,_=!0;if(me($))for(let v=0;v<$.length;++v){const C=$[v],w=$e(C)&&C.name;if(w==="Boolean"){f=!0;break}else w==="String"&&(_=!1)}else f=$e($)&&$.name==="Boolean";m[0]=f,m[1]=_,(f||Ee(m,"default"))&&i.push(d)}}const c=[s,i];return Oe(e)&&n.set(e,c),c}function el(e){return e[0]!=="$"&&!gn(e)}const wr=e=>e==="_"||e==="_ctx"||e==="$stable",xr=e=>me(e)?e.map(Ko):[Ko(e)],Cd=(e,o,t)=>{if(o._n)return o;const n=To((...a)=>xr(o(...a)),t);return n._c=!1,n},ol=(e,o,t)=>{const n=e._ctx;for(const a in e){if(wr(a))continue;const r=e[a];if($e(r))o[a]=Cd(a,r,n);else if(r!=null){const s=xr(r);o[a]=()=>s}}},tl=(e,o)=>{const t=xr(o);e.slots.default=()=>t},nl=(e,o,t)=>{for(const n in o)(t||!wr(n))&&(e[n]=o[n])},Nd=(e,o,t)=>{const n=e.slots=Xi();if(e.vnode.shapeFlag&32){const a=o._;a?(nl(n,o,t),t&&Bs(n,"_",a,!0)):ol(o,n)}else o&&tl(e,o)},Pd=(e,o,t)=>{const{vnode:n,slots:a}=e;let r=!0,s=Fe;if(n.shapeFlag&32){const i=o._;i?t&&i===1?r=!1:nl(a,o,t):(r=!o.$stable,ol(o,a)),s=o}else o&&(tl(e,o),s={default:1});if(r)for(const i in a)!wr(i)&&s[i]==null&&delete a[i]},mo=Rd;function Ed(e){return Od(e)}function Od(e,o){const t=Zn();t.__VUE__=!0;const{insert:n,remove:a,patchProp:r,createElement:s,createText:i,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:p,setScopeId:m=Do,insertStaticContent:$}=e,f=(S,E,N,j=null,J=null,H=null,ae=void 0,Q=null,g=!!E.dynamicChildren)=>{if(S===E)return;S&&!En(S,E)&&(j=De(S),se(S,J,H,!0),S=null),E.patchFlag===-2&&(g=!1,E.dynamicChildren=null);const{type:h,ref:M,shapeFlag:B}=E;switch(h){case Cn:_(S,E,N,j);break;case Ho:v(S,E,N,j);break;case $a:S==null&&C(E,N,j,ae);break;case fe:q(S,E,N,j,J,H,ae,Q,g);break;default:B&1?x(S,E,N,j,J,H,ae,Q,g):B&6?oe(S,E,N,j,J,H,ae,Q,g):(B&64||B&128)&&h.process(S,E,N,j,J,H,ae,Q,g,Be)}M!=null&&J?xn(M,S&&S.ref,H,E||S,!E):M==null&&S&&S.ref!=null&&xn(S.ref,null,H,S,!0)},_=(S,E,N,j)=>{if(S==null)n(E.el=i(E.children),N,j);else{const J=E.el=S.el;E.children!==S.children&&c(J,E.children)}},v=(S,E,N,j)=>{S==null?n(E.el=l(E.children||""),N,j):E.el=S.el},C=(S,E,N,j)=>{[S.el,S.anchor]=$(S.children,E,N,j,S.el,S.anchor)},w=({el:S,anchor:E},N,j)=>{let J;for(;S&&S!==E;)J=p(S),n(S,N,j),S=J;n(E,N,j)},A=({el:S,anchor:E})=>{let N;for(;S&&S!==E;)N=p(S),a(S),S=N;a(E)},x=(S,E,N,j,J,H,ae,Q,g)=>{if(E.type==="svg"?ae="svg":E.type==="math"&&(ae="mathml"),S==null)P(E,N,j,J,H,ae,Q,g);else{const h=S.el&&S.el._isVueCE?S.el:null;try{h&&h._beginPatch(),b(S,E,J,H,ae,Q,g)}finally{h&&h._endPatch()}}},P=(S,E,N,j,J,H,ae,Q)=>{let g,h;const{props:M,shapeFlag:B,transition:re,dirs:ee}=S;if(g=S.el=s(S.type,H,M&&M.is,M),B&8?u(g,S.children):B&16&&L(S.children,g,null,j,J,Ar(S,H),ae,Q),ee&&Et(S,null,j,"created"),y(g,S,S.scopeId,ae,j),M){for(const V in M)V!=="value"&&!gn(V)&&r(g,V,null,M[V],H,j);"value"in M&&r(g,"value",null,M.value,H),(h=M.onVnodeBeforeMount)&&qo(h,j,S)}ee&&Et(S,null,j,"beforeMount");const D=Td(J,re);D&&re.beforeEnter(g),n(g,E,N),((h=M&&M.onVnodeMounted)||D||ee)&&mo(()=>{try{h&&qo(h,j,S),D&&re.enter(g),ee&&Et(S,null,j,"mounted")}finally{}},J)},y=(S,E,N,j,J)=>{if(N&&m(S,N),j)for(let H=0;H<j.length;H++)m(S,j[H]);if(J){let H=J.subTree;if(E===H||il(H.type)&&(H.ssContent===E||H.ssFallback===E)){const ae=J.vnode;y(S,ae,ae.scopeId,ae.slotScopeIds,J.parent)}}},L=(S,E,N,j,J,H,ae,Q,g=0)=>{for(let h=g;h<S.length;h++){const M=S[h]=Q?rt(S[h]):Ko(S[h]);f(null,M,E,N,j,J,H,ae,Q)}},b=(S,E,N,j,J,H,ae)=>{const Q=E.el=S.el;let{patchFlag:g,dynamicChildren:h,dirs:M}=E;g|=S.patchFlag&16;const B=S.props||Fe,re=E.props||Fe;let ee;if(N&&Mt(N,!1),(ee=re.onVnodeBeforeUpdate)&&qo(ee,N,E,S),M&&Et(E,S,N,"beforeUpdate"),N&&Mt(N,!0),h&&(!S.dynamicChildren||S.dynamicChildren.length!==h.length)&&(g=0,ae=!1,h=null),(B.innerHTML&&re.innerHTML==null||B.textContent&&re.textContent==null)&&u(Q,""),h?O(S.dynamicChildren,h,Q,N,j,Ar(E,J),H):ae||W(S,E,Q,null,N,j,Ar(E,J),H,!1),g>0){if(g&16)R(Q,B,re,N,J);else if(g&2&&B.class!==re.class&&r(Q,"class",null,re.class,J),g&4&&r(Q,"style",B.style,re.style,J),g&8){const D=E.dynamicProps;for(let V=0;V<D.length;V++){const he=D[V],ke=B[he],Ie=re[he];(Ie!==ke||he==="value")&&r(Q,he,ke,Ie,J,N)}}g&1&&S.children!==E.children&&u(Q,E.children)}else!ae&&h==null&&R(Q,B,re,N,J);((ee=re.onVnodeUpdated)||M)&&mo(()=>{ee&&qo(ee,N,E,S),M&&Et(E,S,N,"updated")},j)},O=(S,E,N,j,J,H,ae)=>{for(let Q=0;Q<E.length;Q++){const g=S[Q],h=E[Q],M=g.el&&(g.type===fe||!En(g,h)||g.shapeFlag&198)?d(g.el):N;f(g,h,M,null,j,J,H,ae,!0)}},R=(S,E,N,j,J)=>{if(E!==N){if(E!==Fe)for(const H in E)!gn(H)&&!(H in N)&&r(S,H,E[H],null,J,j);for(const H in N){if(gn(H))continue;const ae=N[H],Q=E[H];ae!==Q&&H!=="value"&&r(S,H,Q,ae,J,j)}"value"in N&&r(S,"value",E.value,N.value,J)}},q=(S,E,N,j,J,H,ae,Q,g)=>{const h=E.el=S?S.el:i(""),M=E.anchor=S?S.anchor:i("");let{patchFlag:B,dynamicChildren:re,slotScopeIds:ee}=E;ee&&(Q=Q?Q.concat(ee):ee),S==null?(n(h,N,j),n(M,N,j),L(E.children||[],N,M,J,H,ae,Q,g)):B>0&&B&64&&re&&S.dynamicChildren&&S.dynamicChildren.length===re.length?(O(S.dynamicChildren,re,N,J,H,ae,Q),(E.key!=null||J&&E===J.subTree)&&Sr(S,E,!0)):W(S,E,N,M,J,H,ae,Q,g)},oe=(S,E,N,j,J,H,ae,Q,g)=>{E.slotScopeIds=Q,S==null?E.shapeFlag&512?J.ctx.activate(E,N,j,ae,g):ge(E,N,j,J,H,ae,g):ne(S,E,g)},ge=(S,E,N,j,J,H,ae)=>{const Q=S.component=jd(S,j,J);if(ha(S)&&(Q.ctx.renderer=Be),Wd(Q,!1,ae),Q.asyncDep){if(J&&J.registerDep(Q,X,ae),!S.el){const g=Q.subTree=Me(Ho);v(null,g,E,N),S.placeholder=g.el}}else X(Q,S,E,N,J,H,ae)},ne=(S,E,N)=>{const j=E.component=S.component;if(wd(S,E,N))if(j.asyncDep&&!j.asyncResolved){F(j,E,N);return}else j.next=E,j.update();else E.el=S.el,j.vnode=E},X=(S,E,N,j,J,H,ae)=>{const Q=()=>{if(S.isMounted){let{next:B,bu:re,u:ee,parent:D,vnode:V}=S;{const to=al(S);if(to){B&&(B.el=V.el,F(S,B,ae)),to.asyncDep.then(()=>{mo(()=>{S.isUnmounted||h()},J)});return}}let he=B,ke;Mt(S,!1),B?(B.el=V.el,F(S,B,ae)):B=V,re&&Xa(re),(ke=B.props&&B.props.onVnodeBeforeUpdate)&&qo(ke,D,B,V),Mt(S,!0);const Ie=Hi(S),io=S.subTree;S.subTree=Ie,f(io,Ie,d(io.el),De(io),S,J,H),B.el=Ie.el,he===null&&xd(S,Ie.el),ee&&mo(ee,J),(ke=B.props&&B.props.onVnodeUpdated)&&mo(()=>qo(ke,D,B,V),J)}else{let B;const{el:re,props:ee}=E,{bm:D,m:V,parent:he,root:ke,type:Ie}=S,io=Yt(E);Mt(S,!1),D&&Xa(D),!io&&(B=ee&&ee.onVnodeBeforeMount)&&qo(B,he,E),Mt(S,!0);{ke.ce&&ke.ce._hasShadowRoot()&&ke.ce._injectChildStyle(Ie,S.parent?S.parent.type:void 0);const to=S.subTree=Hi(S);f(null,to,N,j,S,J,H),E.el=to.el}if(V&&mo(V,J),!io&&(B=ee&&ee.onVnodeMounted)){const to=E;mo(()=>qo(B,he,to),J)}(E.shapeFlag&256||he&&Yt(he.vnode)&&he.vnode.shapeFlag&256)&&S.a&&mo(S.a,J),S.isMounted=!0,E=N=j=null}};S.scope.on();const g=S.effect=new qs(Q);S.scope.off();const h=S.update=g.run.bind(g),M=S.job=g.runIfDirty.bind(g);M.i=S,M.id=S.uid,g.scheduler=()=>pr(M),Mt(S,!0),h()},F=(S,E,N)=>{E.component=S;const j=S.vnode.props;S.vnode=E,S.next=null,Sd(S,E.props,j,N),Pd(S,E.children,N),Go(),$i(S),Uo()},W=(S,E,N,j,J,H,ae,Q,g=!1)=>{const h=S&&S.children,M=S?S.shapeFlag:0,B=E.children,{patchFlag:re,shapeFlag:ee}=E;if(re>0){if(re&128){Z(h,B,N,j,J,H,ae,Q,g);return}else if(re&256){Y(h,B,N,j,J,H,ae,Q,g);return}}ee&8?(M&16&&Se(h,J,H),B!==h&&u(N,B)):M&16?ee&16?Z(h,B,N,j,J,H,ae,Q,g):Se(h,J,H,!0):(M&8&&u(N,""),ee&16&&L(B,N,j,J,H,ae,Q,g))},Y=(S,E,N,j,J,H,ae,Q,g)=>{S=S||Ut,E=E||Ut;const h=S.length,M=E.length,B=Math.min(h,M);let re;for(re=0;re<B;re++){const ee=E[re]=g?rt(E[re]):Ko(E[re]);f(S[re],ee,N,null,J,H,ae,Q,g)}h>M?Se(S,J,H,!0,!1,B):L(E,N,j,J,H,ae,Q,g,B)},Z=(S,E,N,j,J,H,ae,Q,g)=>{let h=0;const M=E.length;let B=S.length-1,re=M-1;for(;h<=B&&h<=re;){const ee=S[h],D=E[h]=g?rt(E[h]):Ko(E[h]);if(En(ee,D))f(ee,D,N,null,J,H,ae,Q,g);else break;h++}for(;h<=B&&h<=re;){const ee=S[B],D=E[re]=g?rt(E[re]):Ko(E[re]);if(En(ee,D))f(ee,D,N,null,J,H,ae,Q,g);else break;B--,re--}if(h>B){if(h<=re){const ee=re+1,D=ee<M?E[ee].el:j;for(;h<=re;)f(null,E[h]=g?rt(E[h]):Ko(E[h]),N,D,J,H,ae,Q,g),h++}}else if(h>re)for(;h<=B;)se(S[h],J,H,!0),h++;else{const ee=h,D=h,V=new Map;for(h=D;h<=re;h++){const ue=E[h]=g?rt(E[h]):Ko(E[h]);ue.key!=null&&V.set(ue.key,h)}let he,ke=0;const Ie=re-D+1;let io=!1,to=0;const T=new Array(Ie);for(h=0;h<Ie;h++)T[h]=0;for(h=ee;h<=B;h++){const ue=S[h];if(ke>=Ie){se(ue,J,H,!0);continue}let de;if(ue.key!=null)de=V.get(ue.key);else for(he=D;he<=re;he++)if(T[he-D]===0&&En(ue,E[he])){de=he;break}de===void 0?se(ue,J,H,!0):(T[de-D]=h+1,de>=to?to=de:io=!0,f(ue,E[de],N,null,J,H,ae,Q,g),ke++)}const U=io?Md(T):Ut;for(he=U.length-1,h=Ie-1;h>=0;h--){const ue=D+h,de=E[ue],_e=E[ue+1],qe=ue+1<M?_e.el||sl(_e):j;T[h]===0?f(null,de,N,qe,J,H,ae,Q,g):io&&(he<0||h!==U[he]?ie(de,N,qe,2):he--)}}},ie=(S,E,N,j,J=null)=>{const{el:H,type:ae,transition:Q,children:g,shapeFlag:h}=S;if(h&6){ie(S.component.subTree,E,N,j);return}if(h&128){S.suspense.move(E,N,j);return}if(h&64){ae.move(S,E,N,Be);return}if(ae===fe){n(H,E,N);for(let B=0;B<g.length;B++)ie(g[B],E,N,j);n(S.anchor,E,N);return}if(ae===$a){w(S,E,N);return}if(j!==2&&h&1&&Q)if(j===0)Q.persisted&&!H[fr]?n(H,E,N):(Q.beforeEnter(H),n(H,E,N),mo(()=>Q.enter(H),J));else{const{leave:B,delayLeave:re,afterLeave:ee}=Q,D=()=>{S.ctx.isUnmounted?a(H):n(H,E,N)},V=()=>{const he=H._isLeaving||!!H[fr];H._isLeaving&&H[fr](!0),Q.persisted&&!he?D():B(H,()=>{D(),ee&&ee()})};re?re(H,D,V):V()}else n(H,E,N)},se=(S,E,N,j=!1,J=!1)=>{const{type:H,props:ae,ref:Q,children:g,dynamicChildren:h,shapeFlag:M,patchFlag:B,dirs:re,cacheIndex:ee,memo:D}=S;if(B===-2&&(J=!1),Q!=null&&(Go(),xn(Q,null,N,S,!0),Uo()),ee!=null&&(E.renderCache[ee]=void 0),M&256){E.ctx.deactivate(S);return}const V=M&1&&re,he=!Yt(S);let ke;if(he&&(ke=ae&&ae.onVnodeBeforeUnmount)&&qo(ke,E,S),M&6)We(S.component,N,j);else{if(M&128){S.suspense.unmount(N,j);return}V&&Et(S,null,E,"beforeUnmount"),M&64?S.type.remove(S,E,N,Be,j):h&&!h.hasOnce&&(H!==fe||B>0&&B&64)?Se(h,E,N,!1,!0):(H===fe&&B&384||!J&&M&16)&&Se(g,E,N),j&&Te(S)}const Ie=D!=null&&ee==null;(he&&(ke=ae&&ae.onVnodeUnmounted)||V||Ie)&&mo(()=>{ke&&qo(ke,E,S),V&&Et(S,null,E,"unmounted"),Ie&&(S.el=null)},N)},Te=S=>{const{type:E,el:N,anchor:j,transition:J}=S;if(E===fe){Pe(N,j);return}if(E===$a){A(S);return}const H=()=>{a(N),J&&!J.persisted&&J.afterLeave&&J.afterLeave()};if(S.shapeFlag&1&&J&&!J.persisted){const{leave:ae,delayLeave:Q}=J,g=()=>ae(N,H);Q?Q(S.el,H,g):g()}else H()},Pe=(S,E)=>{let N;for(;S!==E;)N=p(S),a(S),S=N;a(E)},We=(S,E,N)=>{const{bum:j,scope:J,job:H,subTree:ae,um:Q,m:g,a:h}=S;rl(g),rl(h),j&&Xa(j),J.stop(),H&&(H.flags|=8,se(ae,S,E,N)),Q&&mo(Q,E),mo(()=>{S.isUnmounted=!0},E)},Se=(S,E,N,j=!1,J=!1,H=0)=>{for(let ae=H;ae<S.length;ae++)se(S[ae],E,N,j,J)},De=S=>{if(S.shapeFlag&6)return De(S.component.subTree);if(S.shapeFlag&128)return S.suspense.next();const E=p(S.anchor||S.el),N=E&&E[Ai];return N?p(N):E};let oo=!1;const so=(S,E,N)=>{let j;S==null?E._vnode&&(se(E._vnode,null,null,!0),j=E._vnode.component):f(E._vnode||null,S,E,null,null,null,N),E._vnode=S,oo||(oo=!0,$i(j),yi(),oo=!1)},Be={p:f,um:se,m:ie,r:Te,mt:ge,mc:L,pc:W,pbc:O,n:De,o:e};return{render:so,hydrate:void 0,createApp:bd(so)}}function Ar({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 Mt({effect:e,job:o},t){t?(e.flags|=32,o.flags|=4):(e.flags&=-33,o.flags&=-5)}function Td(e,o){return(!e||e&&!e.pendingBranch)&&o&&!o.persisted}function Sr(e,o,t=!1){const n=e.children,a=o.children;if(me(n)&&me(a))for(let r=0;r<n.length;r++){const s=n[r];let i=a[r];i.shapeFlag&1&&!i.dynamicChildren&&((i.patchFlag<=0||i.patchFlag===32)&&(i=a[r]=rt(a[r]),i.el=s.el),!t&&i.patchFlag!==-2&&Sr(s,i)),i.type===Cn&&(i.patchFlag===-1&&(i=a[r]=rt(i)),i.el=s.el),i.type===Ho&&!i.el&&(i.el=s.el)}}function Md(e){const o=e.slice(),t=[0];let n,a,r,s,i;const l=e.length;for(n=0;n<l;n++){const c=e[n];if(c!==0){if(a=t[t.length-1],e[a]<c){o[n]=a,t.push(n);continue}for(r=0,s=t.length-1;r<s;)i=r+s>>1,e[t[i]]<c?r=i+1:s=i;c<e[t[r]]&&(r>0&&(o[n]=t[r-1]),t[r]=n)}}for(r=t.length,s=t[r-1];r-- >0;)t[r]=s,s=o[s];return t}function al(e){const o=e.subTree.component;if(o)return o.asyncDep&&!o.asyncResolved?o:al(o)}function rl(e){if(e)for(let o=0;o<e.length;o++)e[o].flags|=8}function sl(e){if(e.placeholder)return e.placeholder;const o=e.component;return o?sl(o.subTree):null}const il=e=>e.__isSuspense;function Rd(e,o){o&&o.pendingBranch?me(e)?o.effects.push(...e):o.effects.push(e):Gp(e)}const fe=Symbol.for("v-fgt"),Cn=Symbol.for("v-txt"),Ho=Symbol.for("v-cmt"),$a=Symbol.for("v-stc"),at=[];let wo=null;function I(e=!1){at.push(wo=e?null:[])}function Lr(){at.pop(),wo=at[at.length-1]||null}let Nn=1;function ya(e,o=!1){Nn+=e,e<0&&wo&&o&&(wo.hasOnce=!0)}function ll(e){return e.dynamicChildren=Nn>0?wo||Ut:null,Lr(),Nn>0&&wo&&wo.push(e),e}function G(e,o,t,n,a,r){return ll(k(e,o,t,n,a,r,!0))}function Ze(e,o,t,n,a){return ll(Me(e,o,t,n,a,!0))}function Pn(e){return e?e.__v_isVNode===!0:!1}function En(e,o){return e.type===o.type&&e.key===o.key}const cl=({key:e})=>e??null,va=({ref:e,ref_key:o,ref_for:t})=>(typeof e=="number"&&(e=""+e),e!=null?Ge(e)||Ve(e)||$e(e)?{i:lo,r:e,k:o,f:!!t}:e:null);function k(e,o=null,t=null,n=0,a=null,r=e===fe?0:1,s=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:o,key:o&&cl(o),ref:o&&va(o),scopeId:ki,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:r,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:lo};return i?(ka(l,t),r&128&&e.normalize(l)):t&&(l.shapeFlag|=Ge(t)?8:16),Nn>0&&!s&&wo&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&wo.push(l),l}const Me=Id;function Id(e,o=null,t=null,n=0,a=null,r=!1){if((!e||e===Mi)&&(e=Ho),Pn(e)){const i=Xt(e,o,!0);return t&&ka(i,t),Nn>0&&!r&&wo&&(i.shapeFlag&6?wo[wo.indexOf(e)]=i:wo.push(i)),i.patchFlag=-2,i}if(Yd(e)&&(e=e.__vccOpts),o){o=Fd(o);let{class:i,style:l}=o;i&&!Ge(i)&&(o.class=ye(i)),Oe(l)&&(ra(l)&&!me(l)&&(l=Ye({},l)),o.style=ze(l))}const s=Ge(e)?1:il(e)?128:ua(e)?64:Oe(e)?4:$e(e)?2:0;return k(e,o,t,n,a,s,r,!0)}function Fd(e){return e?ra(e)||Zi(e)?Ye({},e):e:null}function Xt(e,o,t=!1,n=!1){const{props:a,ref:r,patchFlag:s,children:i,transition:l}=e,c=o?Bd(a||{},o):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&cl(c),ref:o&&o.ref?t&&r?me(r)?r.concat(va(o)):[r,va(o)]:va(o):r,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!==fe?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Xt(e.ssContent),ssFallback:e.ssFallback&&Xt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&mr(u,l.clone(u)),u}function Ce(e=" ",o=0){return Me(Cn,null,e,o)}function Dd(e,o){const t=Me($a,null,e);return t.staticCount=o,t}function pe(e="",o=!1){return o?(I(),Ze(Ho,null,e)):Me(Ho,null,e)}function Ko(e){return e==null||typeof e=="boolean"?Me(Ho):me(e)?Me(fe,null,e.slice()):Pn(e)?rt(e):Me(Cn,null,String(e))}function rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Xt(e)}function ka(e,o){let t=0;const{shapeFlag:n}=e;if(o==null)o=null;else if(me(o))t=16;else if(typeof o=="object")if(n&65){const a=o.default;a&&(a._c&&(a._d=!1),ka(e,a()),a._c&&(a._d=!0));return}else{t=32;const a=o._;!a&&!Zi(o)?o._ctx=lo:a===3&&lo&&(lo.slots._===1?o._=1:(o._=2,e.patchFlag|=1024))}else if($e(o)){if(n&65){ka(e,{default:o});return}o={default:o,_ctx:lo},t=32}else o=String(o),n&64?(t=16,o=[Ce(o)]):t=8;e.children=o,e.shapeFlag|=t}function Bd(...e){const o={};for(let t=0;t<e.length;t++){const n=e[t];for(const a in n)if(a==="class")o.class!==n.class&&(o.class=ye([o.class,n.class]));else if(a==="style")o.style=ze([o.style,n.style]);else if(zn(a)){const r=o[a],s=n[a];s&&r!==s&&!(me(r)&&r.includes(s))?o[a]=r?[].concat(r,s):s:s==null&&r==null&&!Vn(a)&&(o[a]=s)}else a!==""&&(o[a]=n[a])}return o}function qo(e,o,t,n=null){Oo(e,o,7,[t,n])}const Gd=zi();let Ud=0;function jd(e,o,t){const n=e.type,a=(o?o.appContext:e.appContext)||Gd,r={uid:Ud++,vnode:e,type:n,parent:o,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Hs(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:o?o.provides:Object.create(a.provides),ids:o?o.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Qi(n,a),emitsOptions:Vi(n,a),emit:null,emitted:null,propsDefaults:Fe,inheritAttrs:n.inheritAttrs,ctx:Fe,data:Fe,props:Fe,attrs:Fe,slots:Fe,refs:Fe,setupState:Fe,setupContext:null,suspense:t,suspenseId:t?t.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return r.ctx={_:r},r.root=o?o.root:r,r.emit=$d.bind(null,r),e.ce&&e.ce(r),r}let co=null;const st=()=>co||lo;let wa,On;{const e=Zn(),o=(t,n)=>{let a;return(a=e[t])||(a=e[t]=[]),a.push(n),r=>{a.length>1?a.forEach(s=>s(r)):a[0](r)}};wa=o("__VUE_INSTANCE_SETTERS__",t=>co=t),On=o("__VUE_SSR_SETTERS__",t=>Zt=t)}const Tn=e=>{const o=co;return wa(e),e.scope.on(),()=>{e.scope.off(),wa(o)}},ul=()=>{co&&co.scope.off(),wa(null)};function pl(e){return e.vnode.shapeFlag&4}let Zt=!1;function Wd(e,o=!1,t=!1){o&&On(o);const{props:n,children:a}=e.vnode,r=pl(e);Ad(e,n,r,o),Nd(e,a,t||o);const s=r?zd(e,o):void 0;return o&&On(!1),s}function zd(e,o){const t=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ud);const{setup:n}=t;if(n){Go();const a=e.setupContext=n.length>1?Hd(e):null,r=Tn(e),s=Ht(n,e,0,[e.props,a]),i=Fs(s);if(Uo(),r(),(i||e.sp)&&!Yt(e)&&br(e),i){if(s.then(ul,ul),o)return s.then(l=>{On(!0);try{dl(e,l,o)}finally{On(!1)}}).catch(l=>{yn(l,e,0)});e.asyncDep=s}else dl(e,s)}else gl(e)}function dl(e,o,t){$e(o)?e.type.__ssrInlineRender?e.ssrRender=o:e.render=o:Oe(o)&&(e.setupState=gi(o)),gl(e)}function gl(e,o,t){const n=e.type;e.render||(e.render=n.render||Do);{const a=Tn(e);Go();try{pd(e)}finally{Uo(),a()}}}const Vd={get(e,o){return go(e,"get",""),e[o]}};function Hd(e){const o=t=>{e.exposed=t||{}};return{attrs:new Proxy(e.attrs,Vd),slots:e.slots,emit:e.emit,expose:o}}function xa(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(gi(Nt(e.exposed)),{get(o,t){if(t in o)return o[t];if(t in Sn)return Sn[t](e)},has(o,t){return t in o||t in Sn}})):e.proxy}const Kd=/(?:^|[-_])\w/g,qd=e=>e.replace(Kd,o=>o.toUpperCase()).replace(/[-_]/g,"");function hl(e,o=!0){return $e(e)?e.displayName||e.name:e.name||o&&e.__name}function fl(e,o,t=!1){let n=hl(o);if(!n&&o.__file){const a=o.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=r=>{for(const s in r)if(r[s]===o)return s};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?qd(n):t?"App":"Anonymous"}function Yd(e){return $e(e)&&"__vccOpts"in e}const z=(e,o)=>Ep(e,o,Zt);function ml(e,o,t){try{ya(-1);const n=arguments.length;return n===2?Oe(o)&&!me(o)?Pn(o)?Me(e,null,[o]):Me(e,o):Me(e,null,o):(n>3?t=Array.prototype.slice.call(arguments,2):n===3&&Pn(t)&&(t=[t]),Me(e,o,t))}finally{ya(1)}}const Xd="3.5.42";/**
|
||
* @vue/runtime-dom v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let Cr;const bl=typeof window<"u"&&window.trustedTypes;if(bl)try{Cr=bl.createPolicy("vue",{createHTML:e=>e})}catch{}const _l=Cr?e=>Cr.createHTML(e):e=>e,Zd="http://www.w3.org/2000/svg",Jd="http://www.w3.org/1998/Math/MathML",it=typeof document<"u"?document:null,$l=it&&it.createElement("template"),Qd={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"?it.createElementNS(Zd,e):o==="mathml"?it.createElementNS(Jd,e):t?it.createElement(e,{is:t}):it.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>it.createTextNode(e),createComment:e=>it.createComment(e),setText:(e,o)=>{e.nodeValue=o},setElementText:(e,o)=>{e.textContent=o},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>it.querySelector(e),setScopeId(e,o){e.setAttribute(o,"")},insertStaticContent(e,o,t,n,a,r){const s=t?t.previousSibling:o.lastChild;if(a&&(a===r||a.nextSibling))for(;o.insertBefore(a.cloneNode(!0),t),!(a===r||!(a=a.nextSibling)););else{$l.innerHTML=_l(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const i=$l.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[s?s.nextSibling:o.firstChild,t?t.previousSibling:o.lastChild]}},eg=Symbol("_vtc");function og(e,o,t){const n=e[eg];n&&(o=(o?[o,...n]:[...n]).join(" ")),o==null?e.removeAttribute("class"):t?e.setAttribute("class",o):e.className=o}const Aa=Symbol("_vod"),yl=Symbol("_vsh"),vl={name:"show",beforeMount(e,{value:o},{transition:t}){e[Aa]=e.style.display==="none"?"":e.style.display,t&&o?t.beforeEnter(e):Mn(e,o)},mounted(e,{value:o},{transition:t}){t&&o&&t.enter(e)},updated(e,{value:o,oldValue:t},{transition:n}){!o!=!t&&(n?o?(n.beforeEnter(e),Mn(e,!0),n.enter(e)):n.leave(e,()=>{Mn(e,!1)}):Mn(e,o))},beforeUnmount(e,{value:o}){Mn(e,o)}};function Mn(e,o){e.style.display=o?e[Aa]:"none",e[yl]=!o}const tg=Symbol(""),ng=/(?:^|;)\s*display\s*:/;function ag(e,o,t){const n=e.style,a=Ge(t);let r=!1;if(t&&!a){if(o)if(Ge(o))for(const s of o.split(";")){const i=s.slice(0,s.indexOf(":")).trim();t[i]==null&&Rn(n,i,"")}else for(const s in o)t[s]==null&&Rn(n,s,"");for(const s in t){s==="display"&&(r=!0);const i=t[s];i!=null?sg(e,s,!Ge(o)&&o?o[s]:void 0,i)||Rn(n,s,i):Rn(n,s,"")}}else if(a){if(o!==t){const s=n[tg];s&&(t+=";"+s),n.cssText=t,r=ng.test(t)}}else o&&e.removeAttribute("style");Aa in e&&(e[Aa]=r?n.display:"",e[yl]&&(n.display="none"))}const Sa=/\s*!important$/;function Rn(e,o,t){if(me(t))t.forEach(n=>Rn(e,o,n));else if(t==null&&(t=""),o.startsWith("--"))Sa.test(t)?e.setProperty(o,t.replace(Sa,""),"important"):e.setProperty(o,t);else{const n=rg(e,o);Sa.test(t)?e.setProperty(So(n),t.replace(Sa,""),"important"):e[n]=t}}const kl=["Webkit","Moz","ms"],Nr={};function rg(e,o){const t=Nr[o];if(t)return t;let n=no(o);if(n!=="filter"&&n in e)return Nr[o]=n;n=Xn(n);for(let a=0;a<kl.length;a++){const r=kl[a]+n;if(r in e)return Nr[o]=r}return o}function sg(e,o,t,n){return e.tagName==="TEXTAREA"&&(o==="width"||o==="height")&&Ge(n)&&t===n}const wl="http://www.w3.org/1999/xlink";function xl(e,o,t,n,a,r=np(o)){n&&o.startsWith("xlink:")?t==null?e.removeAttributeNS(wl,o.slice(6,o.length)):e.setAttributeNS(wl,o,t):t==null||r&&!js(t)?e.removeAttribute(o):e.setAttribute(o,r?"":vo(t)?String(t):t)}function Al(e,o,t,n,a){if(o==="innerHTML"||o==="textContent"){t!=null&&(e[o]=o==="innerHTML"?_l(t):t);return}const r=e.tagName;if(o==="value"&&r!=="PROGRESS"&&!r.includes("-")){const i=r==="OPTION"?e.getAttribute("value")||"":e.value,l=t==null?e.type==="checkbox"?"on":"":String(t);(i!==l||!("_value"in e))&&(e.value=l),t==null&&e.removeAttribute(o),e._value=t;return}let s=!1;if(t===""||t==null){const i=typeof e[o];i==="boolean"?t=js(t):t==null&&i==="string"?(t="",s=!0):i==="number"&&(t=0,s=!0)}try{e[o]=t}catch{}s&&e.removeAttribute(a||o)}function ig(e,o,t,n){e.addEventListener(o,t,n)}function lg(e,o,t,n){e.removeEventListener(o,t,n)}const Sl=Symbol("_vei");function cg(e,o,t,n,a=null){const r=e[Sl]||(e[Sl]={}),s=r[o];if(n&&s)s.value=n;else{const[i,l]=dg(o);if(n){const c=r[o]=fg(n,a);ig(e,i,c,l)}else s&&(lg(e,i,s,l),r[o]=void 0)}}const ug=/(Once|Passive|Capture)$/,pg=/^on:?(?:Once|Passive|Capture)$/;function dg(e){let o,t;for(;(t=e.match(ug))&&!pg.test(e);)o||(o={}),e=e.slice(0,e.length-t[1].length),o[t[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):So(e.slice(2)),o]}let Pr=0;const gg=Promise.resolve(),hg=()=>Pr||(gg.then(()=>Pr=0),Pr=Date.now());function fg(e,o){const t=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=t.attached)return;const a=t.value;if(me(a)){const r=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{r.call(n),n._stopped=!0};const s=a.slice(),i=[n];for(let l=0;l<s.length&&!n._stopped;l++){const c=s[l];c&&Oo(c,o,5,i)}}else Oo(a,o,5,[n])};return t.value=e,t.attached=hg(),t}const Ll=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,mg=(e,o,t,n,a,r)=>{const s=a==="svg";o==="class"?og(e,n,s):o==="style"?ag(e,t,n):zn(o)?Vn(o)||cg(e,o,t,n,r):(o[0]==="."?(o=o.slice(1),!0):o[0]==="^"?(o=o.slice(1),!1):bg(e,o,n,s))?(Al(e,o,n),!e.tagName.includes("-")&&(o==="value"||o==="checked"||o==="selected")&&xl(e,o,n,s,r,o!=="value")):e._isVueCE&&(_g(e,o)||e._def.__asyncLoader&&(/[A-Z]/.test(o)||!Ge(n)))?Al(e,no(o),n,r,o):(o==="true-value"?e._trueValue=n:o==="false-value"&&(e._falseValue=n),xl(e,o,n,s))};function bg(e,o,t,n){if(n)return!!(o==="innerHTML"||o==="textContent"||o in e&&Ll(o)&&$e(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 Ll(o)&&Ge(t)?!1:o in e}function _g(e,o){const t=e._def.props;if(!t)return!1;const n=no(o);return Array.isArray(t)?t.some(a=>no(a)===n):Object.keys(t).some(a=>no(a)===n)}const Cl={};function $g(e,o,t){let n=wn(e,o);Kn(n)&&(n=Ye({},n,o));class a extends Er{constructor(s){super(n,s,t)}}return a.def=n,a}const yg=typeof HTMLElement<"u"?HTMLElement:class{};class Er extends yg{constructor(o,t={},n=El){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!==El?this._root=this.shadowRoot:o.shadowRoot!==!1?(this.attachShadow(Ye({},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 Er){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,mt(()=>{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.attributes.length;n++)this._setAttr(this.attributes[n].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});const o=(n,a=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:s}=n;let i;if(r&&!me(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Gs(this._props[l])),(i||(i=Object.create(null)))[no(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(s),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)Ee(this,n)||Object.defineProperty(this,n,{get:()=>te(t[n])})}_resolveProps(o){const{props:t}=o,n=me(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(no))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(r){this._setProp(a,r,!0,!this._patching)}})}_setAttr(o){if(o.startsWith("data-v-"))return;const t=this.hasAttribute(o);let n=t?this.getAttribute(o):Cl;const a=no(o);t&&this._numberProps&&this._numberProps[a]&&(n=Gs(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===Cl?delete this._props[o]:(this._props[o]=t,o==="key"&&this._app&&(this._app._ceVNode.key=t)),a&&this._instance&&this._update(),n)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),t===!0?this.setAttribute(So(o),""):typeof t=="string"||typeof t=="number"?this.setAttribute(So(o),t+""):t||this.removeAttribute(So(o)),r&&r.observe(this,{attributes:!0})}}_update(){const o=this._createVNode();this._app&&(o.appContext=this._app._context),xg(o,this._root)}_createVNode(){const o={};this.shadowRoot||(o.onVnodeMounted=o.onVnodeUpdated=this._renderSlots.bind(this));const t=Me(this._def,Ye(o,this._props));return this._instance||(t.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(r,s)=>{this.dispatchEvent(new CustomEvent(r,Kn(s[0])?Ye({detail:s},s[0]):{detail:s}))};n.emit=(r,...s)=>{a(r,s),So(r)!==r&&a(So(r),s)},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,r=this.shadowRoot,s=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);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],r.insertBefore(c,i||s),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<o.childNodes.length;t++){const n=o.childNodes[t];if(!(n instanceof HTMLStyleElement))return n}return null}_parseSlots(){const o=this._slots={};let t;for(;t=this.firstChild;){const n=t.nodeType===1&&t.getAttribute("slot")||"default";(o[n]||(o[n]=[])).push(t),this.removeChild(t)}}_renderSlots(){const o=this._getSlots(),t=this._instance.type.__scopeId;for(let n=0;n<o.length;n++){const a=o[n],r=a.getAttribute("name")||"default",s=this._slots[r],i=a.parentNode;if(s)for(const l of s){if(t&&l.nodeType===1){const c=t+"-s",u=document.createTreeWalker(l,1);l.setAttribute(c,"");let d;for(;d=u.nextNode();)d.setAttribute(c,"")}i.insertBefore(l,a)}else for(;a.firstChild;)i.insertBefore(a.firstChild,a);i.removeChild(a)}}_getSlots(){const o=[this];this._teleportTargets&&o.push(...this._teleportTargets);const t=new Set;for(const n of o){const a=n.querySelectorAll("slot");for(let r=0;r<a.length;r++)t.add(a[r])}return Array.from(t)}_injectChildStyle(o,t){this._applyStyles(o.styles,o,t)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return this._def.shadowRoot!==!1}_removeChildStyle(o){}}const vg=["ctrl","shift","alt","meta"],kg={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)=>vg.some(t=>e[`${t}Key`]&&!o.includes(t))},ao=(e,o)=>{if(!e)return e;const t=e._withMods||(e._withMods={}),n=o.join(".");return t[n]||(t[n]=(a,...r)=>{for(let s=0;s<o.length;s++){const i=kg[o[s]];if(i&&i(a,o))return}return e(a,...r)})},wg=Ye({patchProp:mg},Qd);let Nl;function Pl(){return Nl||(Nl=Ed(wg))}const xg=(...e)=>{Pl().render(...e)},El=(...e)=>{const o=Pl().createApp(...e),{mount:t}=o;return o.mount=n=>{const a=Sg(n);if(!a)return;const r=o._component;!$e(r)&&!r.render&&!r.template&&(r.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const s=t(a,!1,Ag(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),s},o};function Ag(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Sg(e){return Ge(e)?document.querySelector(e):e}/*!
|
||
* pinia v2.3.1
|
||
* (c) 2025 Eduardo San Martin Morote
|
||
* @license MIT
|
||
*/let Ol;const La=e=>Ol=e,Tl=Symbol();function Or(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var In;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(In||(In={}));function Lg(){const e=Ja(!0),o=e.run(()=>le({}));let t=[],n=[];const a=Nt({install(r){La(a),a._a=r,r.provide(Tl,a),r.config.globalProperties.$pinia=a,n.forEach(s=>t.push(s)),n=[]},use(r){return this._a?t.push(r):n.push(r),this},_p:t,_a:null,_e:e,_s:new Map,state:o});return a}const Ml=()=>{};function Rl(e,o,t,n=Ml){e.push(o);const a=()=>{const r=e.indexOf(o);r>-1&&(e.splice(r,1),n())};return!t&&Ks()&&rp(a),a}function Jt(e,...o){e.slice().forEach(t=>{t(...o)})}const Cg=e=>e(),Il=Symbol(),Tr=Symbol();function Mr(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];Or(a)&&Or(n)&&e.hasOwnProperty(t)&&!Ve(n)&&!et(n)?e[t]=Mr(a,n):e[t]=n}return e}const Ng=Symbol();function Pg(e){return!Or(e)||!e.hasOwnProperty(Ng)}const{assign:_t}=Object;function Eg(e){return!!(Ve(e)&&e.effect)}function Og(e,o,t,n){const{state:a,actions:r,getters:s}=o,i=t.state.value[e];let l;function c(){i||(t.state.value[e]=a?a():{});const u=Lp(t.state.value[e]);return _t(u,r,Object.keys(s||{}).reduce((d,p)=>(d[p]=Nt(z(()=>{La(t);const m=t._s.get(e);return s[p].call(m,m)})),d),{}))}return l=Fl(e,c,o,t,n,!0),l}function Fl(e,o,t={},n,a,r){let s;const i=_t({actions:{}},t),l={deep:!0};let c,u,d=[],p=[],m;const $=n.state.value[e];!r&&!$&&(n.state.value[e]={});let f;function _(L){let b;c=u=!1,typeof L=="function"?(L(n.state.value[e]),b={type:In.patchFunction,storeId:e,events:m}):(Mr(n.state.value[e],L),b={type:In.patchObject,payload:L,storeId:e,events:m});const O=f=Symbol();mt().then(()=>{f===O&&(c=!0)}),u=!0,Jt(d,b,n.state.value[e])}const v=r?function(){const{state:b}=t,O=b?b():{};this.$patch(R=>{_t(R,O)})}:Ml;function C(){s.stop(),d=[],p=[],n._s.delete(e)}const w=(L,b="")=>{if(Il in L)return L[Tr]=b,L;const O=function(){La(n);const R=Array.from(arguments),q=[],oe=[];function ge(F){q.push(F)}function ne(F){oe.push(F)}Jt(p,{args:R,name:O[Tr],store:x,after:ge,onError:ne});let X;try{X=L.apply(this&&this.$id===e?this:x,R)}catch(F){throw Jt(oe,F),F}return X instanceof Promise?X.then(F=>(Jt(q,F),F)).catch(F=>(Jt(oe,F),Promise.reject(F))):(Jt(q,X),X)};return O[Il]=!0,O[Tr]=b,O},A={_p:n,$id:e,$onAction:Rl.bind(null,p),$patch:_,$reset:v,$subscribe(L,b={}){const O=Rl(d,L,b.detached,()=>R()),R=s.run(()=>Ke(()=>n.state.value[e],q=>{(b.flush==="sync"?u:c)&&L({storeId:e,type:In.direct,events:m},q)},_t({},l,b)));return O},$dispose:C},x=Wt(A);n._s.set(e,x);const y=(n._a&&n._a.runWithContext||Cg)(()=>n._e.run(()=>(s=Ja()).run(()=>o({action:w}))));for(const L in y){const b=y[L];if(Ve(b)&&!Eg(b)||et(b))r||($&&Pg(b)&&(Ve(b)?b.value=$[L]:Mr(b,$[L])),n.state.value[e][L]=b);else if(typeof b=="function"){const O=w(b,L);y[L]=O,i.actions[L]=b}}return _t(x,y),_t(Le(x),y),Object.defineProperty(x,"$state",{get:()=>n.state.value[e],set:L=>{_(b=>{_t(b,L)})}}),n._p.forEach(L=>{_t(x,s.run(()=>L({store:x,app:n._a,pinia:n,options:i})))}),$&&r&&t.hydrate&&t.hydrate(x.$state,$),c=!0,u=!0,x}/*! #__NO_SIDE_EFFECTS__ */function Rr(e,o,t){let n,a;const r=typeof o=="function";typeof e=="string"?(n=e,a=r?t:o):(a=e,n=e.id);function s(i,l){const c=Up();return i=i||(c?xe(Tl,null):null),i&&La(i),i=Ol,i._s.has(n)||(r?Fl(n,o,a,i):Og(n,a,i)),i._s.get(n)}return s.$id=n,s}const Ir="__doxaMapToken",Fr="doxa:map-token",Dl="__doxaMapTokenBridge",Qt=()=>{if(typeof window>"u")return"";const e=window[Ir];return typeof e=="string"?e:""};function Bl(e){if(typeof window>"u")return"";const o=typeof e=="string"?e.trim():"";if(!o||o===Qt())return Qt();window[Ir]=o;try{window.dispatchEvent(new CustomEvent(Fr,{detail:o}))}catch{}return o}function Tg(){if(typeof window>"u"||window[Dl])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Qt()&&(window[Ir]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Qt()},set(o){Bl(o)}}),window[Dl]=!0}catch{}}function Mg(){Tg();const e=le(Qt());if(typeof window<"u"){const o=()=>{e.value=Qt()};window.addEventListener(Fr,o);try{Vo(()=>window.removeEventListener(Fr,o))}catch{}}return e}function Dr(e){return Jp({loader:e,onError(o,t,n,a){a<=3?setTimeout(t,a*500):n()}})}const Rg={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},Ig={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},Fg={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:"الملصقات في كل صف"},Dg={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:"الشجرة الممتدة",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:"أدوات التحكم بالخريطة"},Gg={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:"المكان"},Ug={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},jg={_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 — غير محسوم، لم يُقَس"}},Wg={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:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},zg={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:"إلغاء التحديد"}},Vg={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم <strong>باسم شعبهم</strong>."},Hg={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Kg={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},qg={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Yg={"%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.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Xg={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 أو منطقة…"},Zg={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}",settings:"الإعدادات",mapEngine:"محرّك الخرائط",engineDefault:"الافتراضي لكل خريطة",engineMapboxNote:"يحتاج إلى رمز",engineMaplibreNote:"لا يحتاج إلى رمز",tokenNotNeeded:"تم اختيار MapLibre: خرائطه لا تحتاج إلى رمز Mapbox"},Jg={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:"الخريطة"},Qg={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 حسب الشعب والبلد. ليست كلها حدودية."},eh={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}"},oh={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},th={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"},nh={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."}},ah={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"},rh={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"},sh={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},ih={_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"}},lh={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."},ch={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"}},uh={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 <strong>mit dem Namen ihrer Volksgruppe</strong> beten."},ph={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},dh={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},gh={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},hh={"%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."},fh={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…"},mh={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}",settings:"Einstellungen",mapEngine:"Karten-Engine",engineDefault:"Je Karte eigenes",engineMapboxNote:"braucht einen Token",engineMaplibreNote:"kein Token nötig",tokenNotNeeded:"MapLibre ist gewählt: Seine Karten brauchen keinen Mapbox-Token"},bh={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"},_h={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."},$h={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}"},yh={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},vh={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"},Gl={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."}},kh={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"},wh={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"},xh={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Ah={_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"}},Sh={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."},Lh={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"}},Ch={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 <strong>by their people group name</strong>."},Nh={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Ph={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Eh={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},Oh={"%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."},Th={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…"},Mh={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}",settings:"Settings",mapEngine:"Map engine",engineDefault:"Each map’s own",engineMapboxNote:"needs a token",engineMaplibreNote:"no token needed",tokenNotNeeded:"MapLibre is selected: its maps need no Mapbox token"},Rh={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"},Ih={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."},Fh={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}"},Dh={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},Bh={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"},Gh={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."}},Uh={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"},jh={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"},Wh={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."}},zh={_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"}},Vh={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."},Hh={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"}},Kh={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 <strong>por el nombre de su pueblo</strong>."},qh={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Yh={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},Xh={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},Zh={"%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."},Jh={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…"},Qh={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}",settings:"Ajustes",mapEngine:"Motor de mapas",engineDefault:"El de cada mapa",engineMapboxNote:"necesita un token",engineMaplibreNote:"no necesita token",tokenNotNeeded:"MapLibre está seleccionado: sus mapas no necesitan token de Mapbox"},ef={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"},of={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."},tf={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}"},nf={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"},af={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"},rf={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."}},sf={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"},lf={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"},cf={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},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:"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é"}},pf={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."},df={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"}},gf={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 <strong>par le nom de leur peuple</strong>."},hf={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},ff={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},mf={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},bf={"%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."},_f={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…"},$f={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}",settings:"Paramètres",mapEngine:"Moteur de carte",engineDefault:"Celui de chaque carte",engineMapboxNote:"nécessite un jeton",engineMaplibreNote:"aucun jeton requis",tokenNotNeeded:"MapLibre est sélectionné : ses cartes n’ont pas besoin de jeton Mapbox"},yf={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"},vf={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."},kf={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},wf={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},xf={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:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},Sf={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:"कोई विवरण उपलब्ध नहीं है।"}},Nf={_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 से बाहर कोड — अनसुलझा, मापा नहीं गया"}},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:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},Ef={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:"चयन हटाएँ"}},Of={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए <strong>उनके जनसमूह के नाम से</strong> प्रार्थना करते हुए।"},Tf={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Mf={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Rf={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},If={"%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.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},Ff={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 सूची या क्षेत्र खोजें…"},Df={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}",settings:"सेटिंग्स",mapEngine:"मानचित्र इंजन",engineDefault:"हर मानचित्र का अपना",engineMapboxNote:"टोकन चाहिए",engineMaplibreNote:"टोकन की ज़रूरत नहीं",tokenNotNeeded:"MapLibre चुना गया है: इसके मानचित्रों को Mapbox टोकन नहीं चाहिए"},Bf={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:"मानचित्र"},Gf={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 आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},Uf={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}"},jf={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},Wf={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"},zf={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."}},Vf={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"},Hf={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"},Kf={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},qf={_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"}},Yf={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."},Xf={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"}},Zf={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 <strong>con il nome del loro popolo</strong>."},Jf={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Qf={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},em={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},om={"%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."},tm={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…"},nm={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}",settings:"Impostazioni",mapEngine:"Motore mappe",engineDefault:"Quello di ogni mappa",engineMapboxNote:"richiede un token",engineMaplibreNote:"nessun token necessario",tokenNotNeeded:"MapLibre è selezionato: le sue mappe non richiedono un token Mapbox"},am={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"},rm={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."},sm={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}"},im={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},lm={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"},cm={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."}},um={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"},pm={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"},dm={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."}},gm={_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"}},hm={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."},fm={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"}},mm={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 <strong>pelo nome do seu povo</strong>."},bm={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},_m={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},$m={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},ym={"%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."},vm={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…"},km={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}",settings:"Definições",mapEngine:"Motor de mapas",engineDefault:"O de cada mapa",engineMapboxNote:"precisa de um token",engineMaplibreNote:"não precisa de token",tokenNotNeeded:"MapLibre está selecionado: os seus mapas não precisam de token do Mapbox"},wm={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"},xm={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."},Am={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}"},Sm={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},Lm={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"},Cm={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ă."}},Nm={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"},Pm={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"},Em={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ă."}},Om={_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"}},Tm={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."},Mm={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"}},Rm={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 <strong>pe numele poporului lor</strong>."},Im={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Fm={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},Dm={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Bm={"%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."},Gm={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…"},Um={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}",settings:"Setări",mapEngine:"Motor hărți",engineDefault:"Al fiecărei hărți",engineMapboxNote:"necesită un token",engineMaplibreNote:"nu necesită token",tokenNotNeeded:"MapLibre este selectat: hărțile sale nu necesită token Mapbox"},jm={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ă"},Wm={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ă."},zm={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},Vm={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},Hm={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:"Плакатов в ряду"},Km={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; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},qm={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:"Элементы управления картой"},Ym={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:"Место"},Xm={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},Zm={_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 — не определён, не измерен"}},Jm={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:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},Qm={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:"Снять выделение"}},eb={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них <strong>по имени их народа</strong>."},ob={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},tb={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},nb={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},ab={"%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.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},rb={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 или региона…"},sb={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}",settings:"Настройки",mapEngine:"Движок карт",engineDefault:"Свой у каждой карты",engineMapboxNote:"нужен токен",engineMaplibreNote:"токен не нужен",tokenNotNeeded:"Выбран MapLibre: его картам не нужен токен Mapbox"},ib={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:"Карта"},lb={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 по народу и стране. Не все из них рубежные."},cb={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},ub={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},pb={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:"每行海报数"},db={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 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},gb={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:"地图控件"},hb={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:"地点"},fb={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},mb={_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 之外的代码 — 未确定,未测量"}},bb={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:"清除选择"}},$b={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — <strong>按著他們族群的名字</strong>為他們禱告。"},yb={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},vb={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},kb={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},wb={"%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.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},xb={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 名单或区域…"},Ab={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}",settings:"设置",mapEngine:"地图引擎",engineDefault:"各地图自身的",engineMapboxNote:"需要令牌",engineMaplibreNote:"无需令牌",tokenNotNeeded:"已选择 MapLibre:其地图无需 Mapbox 令牌"},Sb={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:"地圖"},Lb={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 Cb(e,o){typeof console<"u"&&(console.warn("[intlify] "+e),o&&console.warn(o.stack))}const Ca=typeof window<"u",$t=(e,o=!1)=>o?Symbol.for(e):Symbol(e),Nb=(e,o,t)=>Pb({l:e,k:o,s:t}),Pb=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Je=e=>typeof e=="number"&&isFinite(e),Eb=e=>Vl(e)==="[object Date]",yt=e=>Vl(e)==="[object RegExp]",Na=e=>ve(e)&&Object.keys(e).length===0,uo=Object.assign,Ob=Object.create,Re=(e=null)=>Ob(e);let Ul;const lt=()=>Ul||(Ul=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Re());function jl(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Wl(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function Tb(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,r)=>`${a}="${Wl(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,r)=>`${a}='${Wl(r)}'`),/\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 Mb=Object.prototype.hasOwnProperty;function Mo(e,o){return Mb.call(e,o)}const He=Array.isArray,je=e=>typeof e=="function",ce=e=>typeof e=="string",Ae=e=>typeof e=="boolean",Ne=e=>e!==null&&typeof e=="object",Rb=e=>Ne(e)&&je(e.then)&&je(e.catch),zl=Object.prototype.toString,Vl=e=>zl.call(e),ve=e=>{if(!Ne(e))return!1;const o=Object.getPrototypeOf(e);return o===null||o.constructor===Object},Ib=e=>e==null?"":He(e)||ve(e)&&e.toString===zl?JSON.stringify(e,null,2):String(e);function Fb(e,o=""){return e.reduce((t,n,a)=>a===0?t+n:t+o+n,"")}function Pa(e){let o=e;return()=>++o}const Ea=e=>!Ne(e)||He(e);function Oa(e,o){if(Ea(e)||Ea(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(r=>{r!=="__proto__"&&(Ne(n[r])&&!Ne(a[r])&&(a[r]=Array.isArray(n[r])?[]:Re()),Ea(a[r])||Ea(n[r])?a[r]=n[r]:t.push({src:n[r],des:a[r]}))})}}/*!
|
||
* message-compiler v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function Db(e,o,t){return{line:e,column:o,offset:t}}function Ta(e,o,t){return{start:e,end:o}}const Bb=/\{([0-9a-zA-Z]+)\}/g;function Hl(e,...o){return o.length===1&&Gb(o[0])&&(o=o[0]),(!o||!o.hasOwnProperty)&&(o={}),e.replace(Bb,(t,n)=>o.hasOwnProperty(n)?o[n]:"")}const Kl=Object.assign,ql=e=>typeof e=="string",Gb=e=>e!==null&&typeof e=="object";function Yl(e,o=""){return e.reduce((t,n,a)=>a===0?t+n:t+o+n,"")}const Br={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Ub={[Br.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function jb(e,o,...t){const n=Hl(Ub[e],...t||[]),a={message:String(n),code:e};return o&&(a.location=o),a}const be={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},Wb={[be.EXPECTED_TOKEN]:"Expected token: '{0}'",[be.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[be.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[be.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[be.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[be.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[be.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[be.EMPTY_PLACEHOLDER]:"Empty placeholder",[be.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[be.INVALID_LINKED_FORMAT]:"Invalid linked format",[be.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[be.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[be.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[be.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[be.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[be.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function en(e,o,t={}){const{domain:n,messages:a,args:r}=t,s=Hl((a||Wb)[e]||"",...r||[]),i=new SyntaxError(String(s));return i.code=e,o&&(i.location=o),i.domain=n,i}function zb(e){throw e}const ct=" ",Vb="\r",bo=`
|
||
`,Hb="\u2028",Kb="\u2029";function qb(e){const o=e;let t=0,n=1,a=1,r=0;const s=y=>o[y]===Vb&&o[y+1]===bo,i=y=>o[y]===bo,l=y=>o[y]===Kb,c=y=>o[y]===Hb,u=y=>s(y)||i(y)||l(y)||c(y),d=()=>t,p=()=>n,m=()=>a,$=()=>r,f=y=>s(y)||l(y)||c(y)?bo:o[y],_=()=>f(t),v=()=>f(t+r);function C(){return r=0,u(t)&&(n++,a=0),s(t)&&t++,t++,a++,o[t]}function w(){return s(t+r)&&r++,r++,o[t+r]}function A(){t=0,n=1,a=1,r=0}function x(y=0){r=y}function P(){const y=t+r;for(;y!==t;)C();r=0}return{index:d,line:p,column:m,peekOffset:$,charAt:f,currentChar:_,currentPeek:v,next:C,peek:w,reset:A,resetPeek:x,skipToPeek:P}}const vt=void 0,Yb=".",Xl="'",Xb="tokenizer";function Zb(e,o={}){const t=o.location!==!1,n=qb(e),a=()=>n.index(),r=()=>Db(n.line(),n.column(),n.index()),s=r(),i=a(),l={currentType:14,offset:i,startLoc:s,endLoc:s,lastType:14,lastOffset:i,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=o;function d(g,h,M,...B){const re=c();if(h.column+=M,h.offset+=M,u){const ee=t?Ta(re.startLoc,h):null,D=en(g,ee,{domain:Xb,args:B});u(D)}}function p(g,h,M){g.endLoc=r(),g.currentType=h;const B={type:h};return t&&(B.loc=Ta(g.startLoc,g.endLoc)),M!=null&&(B.value=M),B}const m=g=>p(g,14);function $(g,h){return g.currentChar()===h?(g.next(),h):(d(be.EXPECTED_TOKEN,r(),0,h),"")}function f(g){let h="";for(;g.currentPeek()===ct||g.currentPeek()===bo;)h+=g.currentPeek(),g.peek();return h}function _(g){const h=f(g);return g.skipToPeek(),h}function v(g){if(g===vt)return!1;const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h===95}function C(g){if(g===vt)return!1;const h=g.charCodeAt(0);return h>=48&&h<=57}function w(g,h){const{currentType:M}=h;if(M!==2)return!1;f(g);const B=v(g.currentPeek());return g.resetPeek(),B}function A(g,h){const{currentType:M}=h;if(M!==2)return!1;f(g);const B=g.currentPeek()==="-"?g.peek():g.currentPeek(),re=C(B);return g.resetPeek(),re}function x(g,h){const{currentType:M}=h;if(M!==2)return!1;f(g);const B=g.currentPeek()===Xl;return g.resetPeek(),B}function P(g,h){const{currentType:M}=h;if(M!==8)return!1;f(g);const B=g.currentPeek()===".";return g.resetPeek(),B}function y(g,h){const{currentType:M}=h;if(M!==9)return!1;f(g);const B=v(g.currentPeek());return g.resetPeek(),B}function L(g,h){const{currentType:M}=h;if(!(M===8||M===12))return!1;f(g);const B=g.currentPeek()===":";return g.resetPeek(),B}function b(g,h){const{currentType:M}=h;if(M!==10)return!1;const B=()=>{const ee=g.currentPeek();return ee==="{"?v(g.peek()):ee==="@"||ee==="%"||ee==="|"||ee===":"||ee==="."||ee===ct||!ee?!1:ee===bo?(g.peek(),B()):q(g,!1)},re=B();return g.resetPeek(),re}function O(g){f(g);const h=g.currentPeek()==="|";return g.resetPeek(),h}function R(g){const h=f(g),M=g.currentPeek()==="%"&&g.peek()==="{";return g.resetPeek(),{isModulo:M,hasSpace:h.length>0}}function q(g,h=!0){const M=(re=!1,ee="",D=!1)=>{const V=g.currentPeek();return V==="{"?ee==="%"?!1:re:V==="@"||!V?ee==="%"?!0:re:V==="%"?(g.peek(),M(re,"%",!0)):V==="|"?ee==="%"||D?!0:!(ee===ct||ee===bo):V===ct?(g.peek(),M(!0,ct,D)):V===bo?(g.peek(),M(!0,bo,D)):!0},B=M();return h&&g.resetPeek(),B}function oe(g,h){const M=g.currentChar();return M===vt?vt:h(M)?(g.next(),M):null}function ge(g){const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36}function ne(g){return oe(g,ge)}function X(g){const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36||h===45}function F(g){return oe(g,X)}function W(g){const h=g.charCodeAt(0);return h>=48&&h<=57}function Y(g){return oe(g,W)}function Z(g){const h=g.charCodeAt(0);return h>=48&&h<=57||h>=65&&h<=70||h>=97&&h<=102}function ie(g){return oe(g,Z)}function se(g){let h="",M="";for(;h=Y(g);)M+=h;return M}function Te(g){_(g);const h=g.currentChar();return h!=="%"&&d(be.EXPECTED_TOKEN,r(),0,h),g.next(),"%"}function Pe(g){let h="";for(;;){const M=g.currentChar();if(M==="{"||M==="}"||M==="@"||M==="|"||!M)break;if(M==="%")if(q(g))h+=M,g.next();else break;else if(M===ct||M===bo)if(q(g))h+=M,g.next();else{if(O(g))break;h+=M,g.next()}else h+=M,g.next()}return h}function We(g){_(g);let h="",M="";for(;h=F(g);)M+=h;return g.currentChar()===vt&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),M}function Se(g){_(g);let h="";return g.currentChar()==="-"?(g.next(),h+=`-${se(g)}`):h+=se(g),g.currentChar()===vt&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),h}function De(g){return g!==Xl&&g!==bo}function oo(g){_(g),$(g,"'");let h="",M="";for(;h=oe(g,De);)h==="\\"?M+=so(g):M+=h;const B=g.currentChar();return B===bo||B===vt?(d(be.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),B===bo&&(g.next(),$(g,"'")),M):($(g,"'"),M)}function so(g){const h=g.currentChar();switch(h){case"\\":case"'":return g.next(),`\\${h}`;case"u":return Be(g,h,4);case"U":return Be(g,h,6);default:return d(be.UNKNOWN_ESCAPE_SEQUENCE,r(),0,h),""}}function Be(g,h,M){$(g,h);let B="";for(let re=0;re<M;re++){const ee=ie(g);if(!ee){d(be.INVALID_UNICODE_ESCAPE_SEQUENCE,r(),0,`\\${h}${B}${g.currentChar()}`);break}B+=ee}return`\\${h}${B}`}function No(g){return g!=="{"&&g!=="}"&&g!==ct&&g!==bo}function S(g){_(g);let h="",M="";for(;h=oe(g,No);)M+=h;return M}function E(g){let h="",M="";for(;h=ne(g);)M+=h;return M}function N(g){const h=M=>{const B=g.currentChar();return B==="{"||B==="%"||B==="@"||B==="|"||B==="("||B===")"||!B||B===ct?M:(M+=B,g.next(),h(M))};return h("")}function j(g){_(g);const h=$(g,"|");return _(g),h}function J(g,h){let M=null;switch(g.currentChar()){case"{":return h.braceNest>=1&&d(be.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),g.next(),M=p(h,2,"{"),_(g),h.braceNest++,M;case"}":return h.braceNest>0&&h.currentType===2&&d(be.EMPTY_PLACEHOLDER,r(),0),g.next(),M=p(h,3,"}"),h.braceNest--,h.braceNest>0&&_(g),h.inLinked&&h.braceNest===0&&(h.inLinked=!1),M;case"@":return h.braceNest>0&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),M=H(g,h)||m(h),h.braceNest=0,M;default:{let re=!0,ee=!0,D=!0;if(O(g))return h.braceNest>0&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),M=p(h,1,j(g)),h.braceNest=0,h.inLinked=!1,M;if(h.braceNest>0&&(h.currentType===5||h.currentType===6||h.currentType===7))return d(be.UNTERMINATED_CLOSING_BRACE,r(),0),h.braceNest=0,ae(g,h);if(re=w(g,h))return M=p(h,5,We(g)),_(g),M;if(ee=A(g,h))return M=p(h,6,Se(g)),_(g),M;if(D=x(g,h))return M=p(h,7,oo(g)),_(g),M;if(!re&&!ee&&!D)return M=p(h,13,S(g)),d(be.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,M.value),_(g),M;break}}return M}function H(g,h){const{currentType:M}=h;let B=null;const re=g.currentChar();switch((M===8||M===9||M===12||M===10)&&(re===bo||re===ct)&&d(be.INVALID_LINKED_FORMAT,r(),0),re){case"@":return g.next(),B=p(h,8,"@"),h.inLinked=!0,B;case".":return _(g),g.next(),p(h,9,".");case":":return _(g),g.next(),p(h,10,":");default:return O(g)?(B=p(h,1,j(g)),h.braceNest=0,h.inLinked=!1,B):P(g,h)||L(g,h)?(_(g),H(g,h)):y(g,h)?(_(g),p(h,12,E(g))):b(g,h)?(_(g),re==="{"?J(g,h)||B:p(h,11,N(g))):(M===8&&d(be.INVALID_LINKED_FORMAT,r(),0),h.braceNest=0,h.inLinked=!1,ae(g,h))}}function ae(g,h){let M={type:14};if(h.braceNest>0)return J(g,h)||m(h);if(h.inLinked)return H(g,h)||m(h);switch(g.currentChar()){case"{":return J(g,h)||m(h);case"}":return d(be.UNBALANCED_CLOSING_BRACE,r(),0),g.next(),p(h,3,"}");case"@":return H(g,h)||m(h);default:{if(O(g))return M=p(h,1,j(g)),h.braceNest=0,h.inLinked=!1,M;const{isModulo:re,hasSpace:ee}=R(g);if(re)return ee?p(h,0,Pe(g)):p(h,4,Te(g));if(q(g))return p(h,0,Pe(g));break}}return M}function Q(){const{currentType:g,offset:h,startLoc:M,endLoc:B}=l;return l.lastType=g,l.lastOffset=h,l.lastStartLoc=M,l.lastEndLoc=B,l.offset=a(),l.startLoc=r(),n.currentChar()===vt?p(l,14):ae(n,l)}return{nextToken:Q,currentOffset:a,currentPosition:r,context:c}}const Jb="parser",Qb=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function e_(e,o,t){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(o||t,16);return n<=55295||n>=57344?String.fromCodePoint(n):"<22>"}}}function o_(e={}){const o=e.location!==!1,{onError:t,onWarn:n}=e;function a(w,A,x,P,...y){const L=w.currentPosition();if(L.offset+=P,L.column+=P,t){const b=o?Ta(x,L):null,O=en(A,b,{domain:Jb,args:y});t(O)}}function r(w,A,x,P,...y){const L=w.currentPosition();if(L.offset+=P,L.column+=P,n){const b=o?Ta(x,L):null;n(jb(A,b,y))}}function s(w,A,x){const P={type:w};return o&&(P.start=A,P.end=A,P.loc={start:x,end:x}),P}function i(w,A,x,P){o&&(w.end=A,w.loc&&(w.loc.end=x))}function l(w,A){const x=w.context(),P=s(3,x.offset,x.startLoc);return P.value=A,i(P,w.currentOffset(),w.currentPosition()),P}function c(w,A){const x=w.context(),{lastOffset:P,lastStartLoc:y}=x,L=s(5,P,y);return L.index=parseInt(A,10),w.nextToken(),i(L,w.currentOffset(),w.currentPosition()),L}function u(w,A,x){const P=w.context(),{lastOffset:y,lastStartLoc:L}=P,b=s(4,y,L);return b.key=A,x===!0&&(b.modulo=!0),w.nextToken(),i(b,w.currentOffset(),w.currentPosition()),b}function d(w,A){const x=w.context(),{lastOffset:P,lastStartLoc:y}=x,L=s(9,P,y);return L.value=A.replace(Qb,e_),w.nextToken(),i(L,w.currentOffset(),w.currentPosition()),L}function p(w){const A=w.nextToken(),x=w.context(),{lastOffset:P,lastStartLoc:y}=x,L=s(8,P,y);return A.type!==12?(a(w,be.UNEXPECTED_EMPTY_LINKED_MODIFIER,x.lastStartLoc,0),L.value="",i(L,P,y),{nextConsumeToken:A,node:L}):(A.value==null&&a(w,be.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Ro(A)),L.value=A.value||"",i(L,w.currentOffset(),w.currentPosition()),{node:L})}function m(w,A){const x=w.context(),P=s(7,x.offset,x.startLoc);return P.value=A,i(P,w.currentOffset(),w.currentPosition()),P}function $(w){const A=w.context(),x=s(6,A.offset,A.startLoc);let P=w.nextToken();if(P.type===9){const y=p(w);x.modifier=y.node,P=y.nextConsumeToken||w.nextToken()}switch(P.type!==10&&a(w,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Ro(P)),P=w.nextToken(),P.type===2&&(P=w.nextToken()),P.type){case 11:P.value==null&&a(w,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Ro(P)),x.key=m(w,P.value||"");break;case 5:P.value==null&&a(w,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Ro(P)),x.key=u(w,P.value||"");break;case 6:P.value==null&&a(w,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Ro(P)),x.key=c(w,P.value||"");break;case 7:P.value==null&&a(w,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Ro(P)),x.key=d(w,P.value||"");break;default:{a(w,be.UNEXPECTED_EMPTY_LINKED_KEY,A.lastStartLoc,0);const y=w.context(),L=s(7,y.offset,y.startLoc);return L.value="",i(L,y.offset,y.startLoc),x.key=L,i(x,y.offset,y.startLoc),{nextConsumeToken:P,node:x}}}return i(x,w.currentOffset(),w.currentPosition()),{node:x}}function f(w){const A=w.context(),x=A.currentType===1?w.currentOffset():A.offset,P=A.currentType===1?A.endLoc:A.startLoc,y=s(2,x,P);y.items=[];let L=null,b=null;do{const q=L||w.nextToken();switch(L=null,q.type){case 0:q.value==null&&a(w,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Ro(q)),y.items.push(l(w,q.value||""));break;case 6:q.value==null&&a(w,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Ro(q)),y.items.push(c(w,q.value||""));break;case 4:b=!0;break;case 5:q.value==null&&a(w,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Ro(q)),y.items.push(u(w,q.value||"",!!b)),b&&(r(w,Br.USE_MODULO_SYNTAX,A.lastStartLoc,0,Ro(q)),b=null);break;case 7:q.value==null&&a(w,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Ro(q)),y.items.push(d(w,q.value||""));break;case 8:{const oe=$(w);y.items.push(oe.node),L=oe.nextConsumeToken||null;break}}}while(A.currentType!==14&&A.currentType!==1);const O=A.currentType===1?A.lastOffset:w.currentOffset(),R=A.currentType===1?A.lastEndLoc:w.currentPosition();return i(y,O,R),y}function _(w,A,x,P){const y=w.context();let L=P.items.length===0;const b=s(1,A,x);b.cases=[],b.cases.push(P);do{const O=f(w);L||(L=O.items.length===0),b.cases.push(O)}while(y.currentType!==14);return L&&a(w,be.MUST_HAVE_MESSAGES_IN_PLURAL,x,0),i(b,w.currentOffset(),w.currentPosition()),b}function v(w){const A=w.context(),{offset:x,startLoc:P}=A,y=f(w);return A.currentType===14?y:_(w,x,P,y)}function C(w){const A=Zb(w,Kl({},e)),x=A.context(),P=s(0,x.offset,x.startLoc);return o&&P.loc&&(P.loc.source=w),P.body=v(A),e.onCacheKey&&(P.cacheKey=e.onCacheKey(w)),x.currentType!==14&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,w[x.offset]||""),i(P,A.currentOffset(),A.currentPosition()),P}return{parse:C}}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 t_(e,o={}){const t={ast:e,helpers:new Set};return{context:()=>t,helper:r=>(t.helpers.add(r),r)}}function Zl(e,o){for(let t=0;t<e.length;t++)Gr(e[t],o)}function Gr(e,o){switch(e.type){case 1:Zl(e.cases,o),o.helper("plural");break;case 2:Zl(e.items,o);break;case 6:{Gr(e.key,o),o.helper("linked"),o.helper("type");break}case 5:o.helper("interpolate"),o.helper("list");break;case 4:o.helper("interpolate"),o.helper("named");break}}function n_(e,o={}){const t=t_(e);t.helper("normalize"),e.body&&Gr(e.body,t);const n=t.context();e.helpers=Array.from(n.helpers)}function a_(e){const o=e.body;return o.type===2?Jl(o):o.cases.forEach(t=>Jl(t)),e}function Jl(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;t<e.items.length;t++){const n=e.items[t];if(!(n.type===3||n.type===9)||n.value==null)break;o.push(n.value)}if(o.length===e.items.length){e.static=Yl(o);for(let t=0;t<e.items.length;t++){const n=e.items[t];(n.type===3||n.type===9)&&delete n.value}}}}const r_="minifier";function on(e){switch(e.t=e.type,e.type){case 0:{const o=e;on(o.body),o.b=o.body,delete o.body;break}case 1:{const o=e,t=o.cases;for(let n=0;n<t.length;n++)on(t[n]);o.c=t,delete o.cases;break}case 2:{const o=e,t=o.items;for(let n=0;n<t.length;n++)on(t[n]);o.i=t,delete o.items,o.static&&(o.s=o.static,delete o.static);break}case 3:case 9:case 8:case 7:{const o=e;o.value&&(o.v=o.value,delete o.value);break}case 6:{const o=e;on(o.key),o.k=o.key,delete o.key,o.modifier&&(on(o.modifier),o.m=o.modifier,delete o.modifier);break}case 5:{const o=e;o.i=o.index,delete o.index;break}case 4:{const o=e;o.k=o.key,delete o.key;break}default:throw en(be.UNHANDLED_MINIFIER_NODE_TYPE,null,{domain:r_,args:[e.type]})}delete e.type}const s_="parser";function i_(e,o){const{filename:t,breakLineCode:n,needIndent:a}=o,r=o.location!==!1,s={filename:t,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:n,needIndent:a,indentLevel:0};r&&e.loc&&(s.source=e.loc.source);const i=()=>s;function l(f,_){s.code+=f}function c(f,_=!0){const v=_?n:"";l(a?v+" ".repeat(f):v)}function u(f=!0){const _=++s.indentLevel;f&&c(_)}function d(f=!0){const _=--s.indentLevel;f&&c(_)}function p(){c(s.indentLevel)}return{context:i,push:l,indent:u,deindent:d,newline:p,helper:f=>`_${f}`,needIndent:()=>s.needIndent}}function l_(e,o){const{helper:t}=e;e.push(`${t("linked")}(`),tn(e,o.key),o.modifier?(e.push(", "),tn(e,o.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function c_(e,o){const{helper:t,needIndent:n}=e;e.push(`${t("normalize")}([`),e.indent(n());const a=o.items.length;for(let r=0;r<a&&(tn(e,o.items[r]),r!==a-1);r++)e.push(", ");e.deindent(n()),e.push("])")}function u_(e,o){const{helper:t,needIndent:n}=e;if(o.cases.length>1){e.push(`${t("plural")}([`),e.indent(n());const a=o.cases.length;for(let r=0;r<a&&(tn(e,o.cases[r]),r!==a-1);r++)e.push(", ");e.deindent(n()),e.push("])")}}function p_(e,o){o.body?tn(e,o.body):e.push("null")}function tn(e,o){const{helper:t}=e;switch(o.type){case 0:p_(e,o);break;case 1:u_(e,o);break;case 2:c_(e,o);break;case 6:l_(e,o);break;case 8:e.push(JSON.stringify(o.value),o);break;case 7:e.push(JSON.stringify(o.value),o);break;case 5:e.push(`${t("interpolate")}(${t("list")}(${o.index}))`,o);break;case 4:e.push(`${t("interpolate")}(${t("named")}(${JSON.stringify(o.key)}))`,o);break;case 9:e.push(JSON.stringify(o.value),o);break;case 3:e.push(JSON.stringify(o.value),o);break;default:throw en(be.UNHANDLED_CODEGEN_NODE_TYPE,null,{domain:s_,args:[o.type]})}}const d_=(e,o={})=>{const t=ql(o.mode)?o.mode:"normal",n=ql(o.filename)?o.filename:"message.intl";o.sourceMap;const a=o.breakLineCode!=null?o.breakLineCode:t==="arrow"?";":`
|
||
`,r=o.needIndent?o.needIndent:t!=="arrow",s=e.helpers||[],i=i_(e,{filename:n,breakLineCode:a,needIndent:r});i.push(t==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),s.length>0&&(i.push(`const { ${Yl(s.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),tn(i,e),i.deindent(r),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function g_(e,o={}){const t=Kl({},o),n=!!t.jit,a=!!t.minify,r=t.optimize==null?!0:t.optimize,i=o_(t).parse(e);return n?(r&&a_(i),a&&on(i),{ast:i,code:""}):(n_(i,t),d_(i,t))}/*!
|
||
* core-base v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function h_(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(lt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(lt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(lt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function Yo(e){return Ne(e)&&Ur(e)===0&&(Mo(e,"b")||Mo(e,"body"))}const Ql=["b","body"];function f_(e){return kt(e,Ql)}const ec=["c","cases"];function m_(e){return kt(e,ec,[])}const oc=["s","static"];function b_(e){return kt(e,oc)}const tc=["i","items"];function __(e){return kt(e,tc,[])}const nc=["t","type"];function Ur(e){return kt(e,nc)}const ac=["v","value"];function Ma(e,o){const t=kt(e,ac);if(t!=null)return t;throw Fn(o)}const rc=["m","modifier"];function $_(e){return kt(e,rc)}const sc=["k","key"];function y_(e){const o=kt(e,sc);if(o)return o;throw Fn(6)}function kt(e,o,t){for(let n=0;n<o.length;n++){const a=o[n];if(Mo(e,a)&&e[a]!=null)return e[a]}return t}const ic=[...Ql,...ec,...oc,...tc,...sc,...rc,...ac,...nc];function Fn(e){return new Error(`unhandled node type: ${e}`)}const wt=[];wt[0]={w:[0],i:[3,0],"[":[4],o:[7]},wt[1]={w:[1],".":[2],"[":[4],o:[7]},wt[2]={w:[2],i:[3,0],0:[3,0]},wt[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},wt[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},wt[5]={"'":[4,0],o:8,l:[5,0]},wt[6]={'"':[4,0],o:8,l:[6,0]};const v_=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function k_(e){return v_.test(e)}function w_(e){const o=e.charCodeAt(0),t=e.charCodeAt(e.length-1);return o===t&&(o===34||o===39)?e.slice(1,-1):e}function x_(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function A_(e){const o=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:k_(o)?w_(o):"*"+o}function S_(e){const o=[];let t=-1,n=0,a=0,r,s,i,l,c,u,d;const p=[];p[0]=()=>{s===void 0?s=i:s+=i},p[1]=()=>{s!==void 0&&(o.push(s),s=void 0)},p[2]=()=>{p[0](),a++},p[3]=()=>{if(a>0)a--,n=4,p[0]();else{if(a=0,s===void 0||(s=A_(s),s===!1))return!1;p[1]()}};function m(){const $=e[t+1];if(n===5&&$==="'"||n===6&&$==='"')return t++,i="\\"+$,p[0](),!0}for(;n!==null;)if(t++,r=e[t],!(r==="\\"&&m())){if(l=x_(r),d=wt[n],c=d[l]||d.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=p[c[1]],u&&(i=r,u()===!1))))return;if(n===7)return o}}const lc=new Map;function L_(e,o){return Ne(e)?e[o]:null}function C_(e,o){if(!Ne(e))return null;let t=lc.get(o);if(t||(t=S_(o),t&&lc.set(o,t)),!t)return null;const n=t.length;let a=e,r=0;for(;r<n;){const s=t[r];if(ic.includes(s)&&Yo(a))return null;const i=a[s];if(i===void 0||je(a))return null;a=i,r++}return a}const N_=e=>e,P_=e=>"",E_="text",O_=e=>e.length===0?"":Fb(e),T_=Ib;function cc(e,o){return e=Math.abs(e),o===2?e?e>1?1:0:1:e?Math.min(e,2):0}function M_(e){const o=Je(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Je(e.named.count)||Je(e.named.n))?Je(e.named.count)?e.named.count:Je(e.named.n)?e.named.n:o:o}function R_(e,o){o.count||(o.count=e),o.n||(o.n=e)}function I_(e={}){const o=e.locale,t=M_(e),n=Ne(e.pluralRules)&&ce(o)&&je(e.pluralRules[o])?e.pluralRules[o]:cc,a=Ne(e.pluralRules)&&ce(o)&&je(e.pluralRules[o])?cc:void 0,r=v=>v[n(t,v.length,a)],s=e.list||[],i=v=>s[v],l=e.named||Re();Je(e.pluralIndex)&&R_(t,l);const c=v=>l[v];function u(v){const C=je(e.messages)?e.messages(v):Ne(e.messages)?e.messages[v]:!1;return C||(e.parent?e.parent.message(v):P_)}const d=v=>e.modifiers?e.modifiers[v]:N_,p=ve(e.processor)&&je(e.processor.normalize)?e.processor.normalize:O_,m=ve(e.processor)&&je(e.processor.interpolate)?e.processor.interpolate:T_,$=ve(e.processor)&&ce(e.processor.type)?e.processor.type:E_,_={list:i,named:c,plural:r,linked:(v,...C)=>{const[w,A]=C;let x="text",P="";C.length===1?Ne(w)?(P=w.modifier||P,x=w.type||x):ce(w)&&(P=w||P):C.length===2&&(ce(w)&&(P=w||P),ce(A)&&(x=A||x));const y=u(v)(_),L=x==="vnode"&&He(y)&&P?y[0]:y;return P?d(P)(L,x):L},message:u,type:$,interpolate:m,normalize:p,values:uo(Re(),s,l)};return _}let Dn=null;function F_(e){Dn=e}function D_(e,o,t){Dn&&Dn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:o,meta:t})}const B_=G_("function:translate");function G_(e){return o=>Dn&&Dn.emit(e,o)}const U_=Br.__EXTEND_POINT__,Rt=Pa(U_),j_={FALLBACK_TO_TRANSLATE:Rt(),CANNOT_FORMAT_NUMBER:Rt(),FALLBACK_TO_NUMBER_FORMAT:Rt(),CANNOT_FORMAT_DATE:Rt(),FALLBACK_TO_DATE_FORMAT:Rt(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Rt(),__EXTEND_POINT__:Rt()},uc=be.__EXTEND_POINT__,It=Pa(uc),Io={INVALID_ARGUMENT:uc,INVALID_DATE_ARGUMENT:It(),INVALID_ISO_DATE_ARGUMENT:It(),NOT_SUPPORT_NON_STRING_MESSAGE:It(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:It(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:It(),NOT_SUPPORT_LOCALE_TYPE:It(),__EXTEND_POINT__:It()};function Xo(e){return en(e,null,void 0)}function jr(e,o){return o.locale!=null?pc(o.locale):pc(e.locale)}let Wr;function pc(e){if(ce(e))return e;if(je(e)){if(e.resolvedOnce&&Wr!=null)return Wr;if(e.constructor.name==="Function"){const o=e();if(Rb(o))throw Xo(Io.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Wr=o}else throw Xo(Io.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Xo(Io.NOT_SUPPORT_LOCALE_TYPE)}function W_(e,o,t){return[...new Set([t,...He(o)?o:Ne(o)?Object.keys(o):ce(o)?[o]:[t]])]}function dc(e,o,t){const n=ce(t)?t:nn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let r=a.__localeChainCache.get(n);if(!r){r=[];let s=[t];for(;He(s);)s=gc(r,s,o);const i=He(o)||!ve(o)?o:o.default?o.default:null;s=ce(i)?[i]:i,He(s)&&gc(r,s,!1),a.__localeChainCache.set(n,r)}return r}function gc(e,o,t){let n=!0;for(let a=0;a<o.length&&Ae(n);a++){const r=o[a];ce(r)&&(n=z_(e,o[a],t))}return n}function z_(e,o,t){let n;const a=o.split("-");do{const r=a.join("-");n=V_(e,r,t),a.splice(-1,1)}while(a.length&&n===!0);return n}function V_(e,o,t){let n=!1;if(!e.includes(o)&&(n=!0,o)){n=o[o.length-1]!=="!";const a=o.replace(/!/g,"");e.push(a),(He(t)||ve(t))&&t[a]&&(n=t[a])}return n}const H_="9.14.5",Ra=-1,nn="en-US",hc="",fc=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function K_(){return{upper:(e,o)=>o==="text"&&ce(e)?e.toUpperCase():o==="vnode"&&Ne(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,o)=>o==="text"&&ce(e)?e.toLowerCase():o==="vnode"&&Ne(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,o)=>o==="text"&&ce(e)?fc(e):o==="vnode"&&Ne(e)&&"__v_isVNode"in e?fc(e.children):e}}let mc;function bc(e){mc=e}let _c;function q_(e){_c=e}let $c;function Y_(e){$c=e}let yc=null;const X_=e=>{yc=e},Z_=()=>yc;let vc=null;const kc=e=>{vc=e},J_=()=>vc;let wc=0;function Q_(e={}){const o=je(e.onWarn)?e.onWarn:Cb,t=ce(e.version)?e.version:H_,n=ce(e.locale)||je(e.locale)?e.locale:nn,a=je(n)?nn:n,r=He(e.fallbackLocale)||ve(e.fallbackLocale)||ce(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,s=ve(e.messages)?e.messages:zr(a),i=ve(e.datetimeFormats)?e.datetimeFormats:zr(a),l=ve(e.numberFormats)?e.numberFormats:zr(a),c=uo(Re(),e.modifiers,K_()),u=e.pluralRules||Re(),d=je(e.missing)?e.missing:null,p=Ae(e.missingWarn)||yt(e.missingWarn)?e.missingWarn:!0,m=Ae(e.fallbackWarn)||yt(e.fallbackWarn)?e.fallbackWarn:!0,$=!!e.fallbackFormat,f=!!e.unresolving,_=je(e.postTranslation)?e.postTranslation:null,v=ve(e.processor)?e.processor:null,C=Ae(e.warnHtmlMessage)?e.warnHtmlMessage:!0,w=!!e.escapeParameter,A=je(e.messageCompiler)?e.messageCompiler:mc,x=je(e.messageResolver)?e.messageResolver:_c||L_,P=je(e.localeFallbacker)?e.localeFallbacker:$c||W_,y=Ne(e.fallbackContext)?e.fallbackContext:void 0,L=e,b=Ne(L.__datetimeFormatters)?L.__datetimeFormatters:new Map,O=Ne(L.__numberFormatters)?L.__numberFormatters:new Map,R=Ne(L.__meta)?L.__meta:{};wc++;const q={version:t,cid:wc,locale:n,fallbackLocale:r,messages:s,modifiers:c,pluralRules:u,missing:d,missingWarn:p,fallbackWarn:m,fallbackFormat:$,unresolving:f,postTranslation:_,processor:v,warnHtmlMessage:C,escapeParameter:w,messageCompiler:A,messageResolver:x,localeFallbacker:P,fallbackContext:y,onWarn:o,__meta:R};return q.datetimeFormats=i,q.numberFormats=l,q.__datetimeFormatters=b,q.__numberFormatters=O,__INTLIFY_PROD_DEVTOOLS__&&D_(q,t,R),q}const zr=e=>({[e]:Re()});function Vr(e,o,t,n,a){const{missing:r,onWarn:s}=e;if(r!==null){const i=r(e,t,o,a);return ce(i)?i:o}else return o}function Bn(e,o,t){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,t,o)}function e$(e,o){return e===o?!1:e.split("-")[0]===o.split("-")[0]}function o$(e,o){const t=o.indexOf(e);if(t===-1)return!1;for(let n=t+1;n<o.length;n++)if(e$(e,o[n]))return!0;return!1}function Hr(e){return t=>t$(t,e)}function t$(e,o){const t=f_(o);if(t==null)throw Fn(0);if(Ur(t)===1){const r=m_(t);return e.plural(r.reduce((s,i)=>[...s,xc(e,i)],[]))}else return xc(e,t)}function xc(e,o){const t=b_(o);if(t!=null)return e.type==="text"?t:e.normalize([t]);{const n=__(o).reduce((a,r)=>[...a,Kr(e,r)],[]);return e.normalize(n)}}function Kr(e,o){const t=Ur(o);switch(t){case 3:return Ma(o,t);case 9:return Ma(o,t);case 4:{const n=o;if(Mo(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(Mo(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Fn(t)}case 5:{const n=o;if(Mo(n,"i")&&Je(n.i))return e.interpolate(e.list(n.i));if(Mo(n,"index")&&Je(n.index))return e.interpolate(e.list(n.index));throw Fn(t)}case 6:{const n=o,a=$_(n),r=y_(n);return e.linked(Kr(e,r),a?Kr(e,a):void 0,e.type)}case 7:return Ma(o,t);case 8:return Ma(o,t);default:throw new Error(`unhandled node on format message part: ${t}`)}}const Ac=e=>e;let an=Re();function Sc(e,o={}){let t=!1;const n=o.onError||zb;return o.onError=a=>{t=!0,n(a)},{...g_(e,o),detectError:t}}const n$=(e,o)=>{if(!ce(e))throw Xo(Io.NOT_SUPPORT_NON_STRING_MESSAGE);{Ae(o.warnHtmlMessage)&&o.warnHtmlMessage;const n=(o.onCacheKey||Ac)(e),a=an[n];if(a)return a;const{code:r,detectError:s}=Sc(e,o),i=new Function(`return ${r}`)();return s?i:an[n]=i}};function a$(e,o){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&ce(e)){Ae(o.warnHtmlMessage)&&o.warnHtmlMessage;const n=(o.onCacheKey||Ac)(e),a=an[n];if(a)return a;const{ast:r,detectError:s}=Sc(e,{...o,location:!1,jit:!0}),i=Hr(r);return s?i:an[n]=i}else{const t=e.cacheKey;if(t){const n=an[t];return n||(an[t]=Hr(e))}else return Hr(e)}}const Lc=()=>"",Co=e=>je(e);function Cc(e,...o){const{fallbackFormat:t,postTranslation:n,unresolving:a,messageCompiler:r,fallbackLocale:s,messages:i}=e,[l,c]=qr(...o),u=Ae(c.missingWarn)?c.missingWarn:e.missingWarn,d=Ae(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,p=Ae(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,$=ce(c.default)||Ae(c.default)?Ae(c.default)?r?l:()=>l:c.default:t?r?l:()=>l:"",f=t||$!=="",_=jr(e,c);p&&r$(c);let[v,C,w]=m?[l,_,i[_]||Re()]:Nc(e,l,_,s,d,u),A=v,x=l;if(!m&&!(ce(A)||Yo(A)||Co(A))&&f&&(A=$,x=A),!m&&(!(ce(A)||Yo(A)||Co(A))||!ce(C)))return a?Ra:l;let P=!1;const y=()=>{P=!0},L=Co(A)?A:Pc(e,l,C,A,x,y);if(P)return A;const b=l$(e,C,w,c),O=I_(b),R=s$(e,L,O);let q=n?n(R,l):R;if(p&&ce(q)&&(q=Tb(q)),__INTLIFY_PROD_DEVTOOLS__){const oe={timestamp:Date.now(),key:ce(l)?l:Co(A)?A.key:"",locale:C||(Co(A)?A.locale:""),format:ce(A)?A:Co(A)?A.source:"",message:q};oe.meta=uo({},e.__meta,Z_()||{}),B_(oe)}return q}function r$(e){He(e.list)?e.list=e.list.map(o=>ce(o)?jl(o):o):Ne(e.named)&&Object.keys(e.named).forEach(o=>{ce(e.named[o])&&(e.named[o]=jl(e.named[o]))})}function Nc(e,o,t,n,a,r){const{messages:s,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,t);let d=Re(),p,m=null;const $="translate";for(let f=0;f<u.length&&(p=u[f],d=s[p]||Re(),(m=l(d,o))===null&&(m=d[o]),!(ce(m)||Yo(m)||Co(m)));f++)if(!o$(p,u)){const _=Vr(e,o,p,r,$);_!==o&&(m=_)}return[m,p,d]}function Pc(e,o,t,n,a,r){const{messageCompiler:s,warnHtmlMessage:i}=e;if(Co(n)){const c=n;return c.locale=c.locale||t,c.key=c.key||o,c}if(s==null){const c=()=>n;return c.locale=t,c.key=o,c}const l=s(n,i$(e,t,a,n,i,r));return l.locale=t,l.key=o,l.source=n,l}function s$(e,o,t){return o(t)}function qr(...e){const[o,t,n]=e,a=Re();if(!ce(o)&&!Je(o)&&!Co(o)&&!Yo(o))throw Xo(Io.INVALID_ARGUMENT);const r=Je(o)?String(o):(Co(o),o);return Je(t)?a.plural=t:ce(t)?a.default=t:ve(t)&&!Na(t)?a.named=t:He(t)&&(a.list=t),Je(n)?a.plural=n:ce(n)?a.default=n:ve(n)&&uo(a,n),[r,a]}function i$(e,o,t,n,a,r){return{locale:o,key:t,warnHtmlMessage:a,onError:s=>{throw r&&r(s),s},onCacheKey:s=>Nb(o,t,s)}}function l$(e,o,t,n){const{modifiers:a,pluralRules:r,messageResolver:s,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,p={locale:o,modifiers:a,pluralRules:r,messages:m=>{let $=s(t,m);if($==null&&u){const[,,f]=Nc(u,m,o,i,l,c);$=s(f,m)}if(ce($)||Yo($)){let f=!1;const v=Pc(e,m,o,$,m,()=>{f=!0});return f?Lc:v}else return Co($)?$:Lc}};return e.processor&&(p.processor=e.processor),n.list&&(p.list=n.list),n.named&&(p.named=n.named),Je(n.plural)&&(p.pluralIndex=n.plural),p}function Ec(e,...o){const{datetimeFormats:t,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__datetimeFormatters:i}=e,[l,c,u,d]=Yr(...o),p=Ae(u.missingWarn)?u.missingWarn:e.missingWarn;Ae(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,$=jr(e,u),f=s(e,a,$);if(!ce(l)||l==="")return new Intl.DateTimeFormat($,d).format(c);let _={},v,C=null;const w="datetime format";for(let P=0;P<f.length&&(v=f[P],_=t[v]||{},C=_[l],!ve(C));P++)Vr(e,l,v,p,w);if(!ve(C)||!ce(v))return n?Ra:l;let A=`${v}__${l}`;Na(d)||(A=`${A}__${JSON.stringify(d)}`);let x=i.get(A);return x||(x=new Intl.DateTimeFormat(v,uo({},C,d)),i.set(A,x)),m?x.formatToParts(c):x.format(c)}const Oc=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function Yr(...e){const[o,t,n,a]=e,r=Re();let s=Re(),i;if(ce(o)){const l=o.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!l)throw Xo(Io.INVALID_ISO_DATE_ARGUMENT);const c=l[3]?l[3].trim().startsWith("T")?`${l[1].trim()}${l[3].trim()}`:`${l[1].trim()}T${l[3].trim()}`:l[1].trim();i=new Date(c);try{i.toISOString()}catch{throw Xo(Io.INVALID_ISO_DATE_ARGUMENT)}}else if(Eb(o)){if(isNaN(o.getTime()))throw Xo(Io.INVALID_DATE_ARGUMENT);i=o}else if(Je(o))i=o;else throw Xo(Io.INVALID_ARGUMENT);return ce(t)?r.key=t:ve(t)&&Object.keys(t).forEach(l=>{Oc.includes(l)?s[l]=t[l]:r[l]=t[l]}),ce(n)?r.locale=n:ve(n)&&(s=n),ve(a)&&(s=a),[r.key||"",i,r,s]}function Tc(e,o,t){const n=e;for(const a in t){const r=`${o}__${a}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function Mc(e,...o){const{numberFormats:t,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:i}=e,[l,c,u,d]=Xr(...o),p=Ae(u.missingWarn)?u.missingWarn:e.missingWarn;Ae(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,$=jr(e,u),f=s(e,a,$);if(!ce(l)||l==="")return new Intl.NumberFormat($,d).format(c);let _={},v,C=null;const w="number format";for(let P=0;P<f.length&&(v=f[P],_=t[v]||{},C=_[l],!ve(C));P++)Vr(e,l,v,p,w);if(!ve(C)||!ce(v))return n?Ra:l;let A=`${v}__${l}`;Na(d)||(A=`${A}__${JSON.stringify(d)}`);let x=i.get(A);return x||(x=new Intl.NumberFormat(v,uo({},C,d)),i.set(A,x)),m?x.formatToParts(c):x.format(c)}const Rc=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function Xr(...e){const[o,t,n,a]=e,r=Re();let s=Re();if(!Je(o))throw Xo(Io.INVALID_ARGUMENT);const i=o;return ce(t)?r.key=t:ve(t)&&Object.keys(t).forEach(l=>{Rc.includes(l)?s[l]=t[l]:r[l]=t[l]}),ce(n)?r.locale=n:ve(n)&&(s=n),ve(a)&&(s=a),[r.key||"",i,r,s]}function Ic(e,o,t){const n=e;for(const a in t){const r=`${o}__${a}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}h_();/*!
|
||
* vue-i18n v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/const c$="9.14.5";function u$(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(lt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(lt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(lt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(lt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(lt().__INTLIFY_PROD_DEVTOOLS__=!1)}const p$=j_.__EXTEND_POINT__,ut=Pa(p$);ut(),ut(),ut(),ut(),ut(),ut(),ut(),ut(),ut();const Fc=Io.__EXTEND_POINT__,yo=Pa(Fc),eo={UNEXPECTED_RETURN_TYPE:Fc,INVALID_ARGUMENT:yo(),MUST_BE_CALL_SETUP_TOP:yo(),NOT_INSTALLED:yo(),NOT_AVAILABLE_IN_LEGACY_MODE:yo(),REQUIRED_VALUE:yo(),INVALID_VALUE:yo(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:yo(),NOT_INSTALLED_WITH_PROVIDE:yo(),UNEXPECTED_ERROR:yo(),NOT_COMPATIBLE_LEGACY_VUE_I18N:yo(),BRIDGE_SUPPORT_VUE_2_ONLY:yo(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:yo(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:yo(),__EXTEND_POINT__:yo()};function ro(e,...o){return en(e,null,void 0)}const Zr=$t("__translateVNode"),Jr=$t("__datetimeParts"),Qr=$t("__numberParts"),Dc=$t("__setPluralRules"),Bc=$t("__injectWithOption"),es=$t("__dispose");function Gn(e){if(!Ne(e)||Yo(e))return e;for(const o in e)if(Mo(e,o))if(!o.includes("."))Ne(e[o])&&Gn(e[o]);else{const t=o.split("."),n=t.length-1;let a=e,r=!1;for(let s=0;s<n;s++){if(t[s]==="__proto__")throw new Error(`unsafe key: ${t[s]}`);if(t[s]in a||(a[t[s]]=Re()),!Ne(a[t[s]])){r=!0;break}a=a[t[s]]}if(r||(Yo(a)?ic.includes(t[n])||delete e[o]:(a[t[n]]=e[o],delete e[o])),!Yo(a)){const s=a[t[n]];Ne(s)&&Gn(s)}}return e}function Ia(e,o){const{messages:t,__i18n:n,messageResolver:a,flatJson:r}=o,s=ve(t)?t:He(n)?Re():{[e]:Re()};if(He(n)&&n.forEach(i=>{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(s[l]=s[l]||Re(),Oa(c,s[l])):Oa(c,s)}else ce(i)&&Oa(JSON.parse(i),s)}),a==null&&r)for(const i in s)Mo(s,i)&&Gn(s[i]);return s}function Gc(e){return e.type}function Uc(e,o,t){let n=Ne(o.messages)?o.messages:Re();"__i18nGlobal"in t&&(n=Ia(e.locale.value,{messages:n,__i18n:t.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(r=>{e.mergeLocaleMessage(r,n[r])});{if(Ne(o.datetimeFormats)){const r=Object.keys(o.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,o.datetimeFormats[s])})}if(Ne(o.numberFormats)){const r=Object.keys(o.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,o.numberFormats[s])})}}}function jc(e){return Me(Cn,null,e,0)}const Wc="__INTLIFY_META__",zc=()=>[],d$=()=>!1;let Vc=0;function Hc(e){return(o,t,n,a)=>e(t,n,st()||void 0,a)}const g$=()=>{const e=st();let o=null;return e&&(o=Gc(e)[Wc])?{[Wc]:o}:null};function os(e={},o){const{__root:t,__injectWithOption:n}=e,a=t===void 0,r=e.flatJson,s=Ca?le:Vt,i=!!e.translateExistCompatible;let l=Ae(e.inheritLocale)?e.inheritLocale:!0;const c=s(t&&l?t.locale.value:ce(e.locale)?e.locale:nn),u=s(t&&l?t.fallbackLocale.value:ce(e.fallbackLocale)||He(e.fallbackLocale)||ve(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),d=s(Ia(c.value,e)),p=s(ve(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=s(ve(e.numberFormats)?e.numberFormats:{[c.value]:{}});let $=t?t.missingWarn:Ae(e.missingWarn)||yt(e.missingWarn)?e.missingWarn:!0,f=t?t.fallbackWarn:Ae(e.fallbackWarn)||yt(e.fallbackWarn)?e.fallbackWarn:!0,_=t?t.fallbackRoot:Ae(e.fallbackRoot)?e.fallbackRoot:!0,v=!!e.fallbackFormat,C=je(e.missing)?e.missing:null,w=je(e.missing)?Hc(e.missing):null,A=je(e.postTranslation)?e.postTranslation:null,x=t?t.warnHtmlMessage:Ae(e.warnHtmlMessage)?e.warnHtmlMessage:!0,P=!!e.escapeParameter;const y=t?t.modifiers:ve(e.modifiers)?e.modifiers:{};let L=e.pluralRules||t&&t.pluralRules,b;b=(()=>{a&&kc(null);const D={version:c$,locale:c.value,fallbackLocale:u.value,messages:d.value,modifiers:y,pluralRules:L,missing:w===null?void 0:w,missingWarn:$,fallbackWarn:f,fallbackFormat:v,unresolving:!0,postTranslation:A===null?void 0:A,warnHtmlMessage:x,escapeParameter:P,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};D.datetimeFormats=p.value,D.numberFormats=m.value,D.__datetimeFormatters=ve(b)?b.__datetimeFormatters:void 0,D.__numberFormatters=ve(b)?b.__numberFormatters:void 0;const V=Q_(D);return a&&kc(V),V})(),Bn(b,c.value,u.value);function R(){return[c.value,u.value,d.value,p.value,m.value]}const q=z({get:()=>c.value,set:D=>{c.value=D,b.locale=c.value}}),oe=z({get:()=>u.value,set:D=>{u.value=D,b.fallbackLocale=u.value,Bn(b,c.value,D)}}),ge=z(()=>d.value),ne=z(()=>p.value),X=z(()=>m.value);function F(){return je(A)?A:null}function W(D){A=D,b.postTranslation=D}function Y(){return C}function Z(D){D!==null&&(w=Hc(D)),C=D,b.missing=w}const ie=(D,V,he,ke,Ie,io)=>{R();let to;try{__INTLIFY_PROD_DEVTOOLS__,a||(b.fallbackContext=t?J_():void 0),to=D(b)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(b.fallbackContext=void 0)}if(he!=="translate exists"&&Je(to)&&to===Ra||he==="translate exists"&&!to){const[T,U]=V();return t&&_?ke(t):Ie(T)}else{if(io(to))return to;throw ro(eo.UNEXPECTED_RETURN_TYPE)}};function se(...D){return ie(V=>Reflect.apply(Cc,null,[V,...D]),()=>qr(...D),"translate",V=>Reflect.apply(V.t,V,[...D]),V=>V,V=>ce(V))}function Te(...D){const[V,he,ke]=D;if(ke&&!Ne(ke))throw ro(eo.INVALID_ARGUMENT);return se(V,he,uo({resolvedMessage:!0},ke||{}))}function Pe(...D){return ie(V=>Reflect.apply(Ec,null,[V,...D]),()=>Yr(...D),"datetime format",V=>Reflect.apply(V.d,V,[...D]),()=>hc,V=>ce(V))}function We(...D){return ie(V=>Reflect.apply(Mc,null,[V,...D]),()=>Xr(...D),"number format",V=>Reflect.apply(V.n,V,[...D]),()=>hc,V=>ce(V))}function Se(D){return D.map(V=>ce(V)||Je(V)||Ae(V)?jc(String(V)):V)}const oo={normalize:Se,interpolate:D=>D,type:"vnode"};function so(...D){return ie(V=>{let he;const ke=V;try{ke.processor=oo,he=Reflect.apply(Cc,null,[ke,...D])}finally{ke.processor=null}return he},()=>qr(...D),"translate",V=>V[Zr](...D),V=>[jc(V)],V=>He(V))}function Be(...D){return ie(V=>Reflect.apply(Mc,null,[V,...D]),()=>Xr(...D),"number format",V=>V[Qr](...D),zc,V=>ce(V)||He(V))}function No(...D){return ie(V=>Reflect.apply(Ec,null,[V,...D]),()=>Yr(...D),"datetime format",V=>V[Jr](...D),zc,V=>ce(V)||He(V))}function S(D){L=D,b.pluralRules=L}function E(D,V){return ie(()=>{if(!D)return!1;const he=ce(V)?V:c.value,ke=J(he),Ie=b.messageResolver(ke,D);return i?Ie!=null:Yo(Ie)||Co(Ie)||ce(Ie)},()=>[D],"translate exists",he=>Reflect.apply(he.te,he,[D,V]),d$,he=>Ae(he))}function N(D){let V=null;const he=dc(b,u.value,c.value);for(let ke=0;ke<he.length;ke++){const Ie=d.value[he[ke]]||{},io=b.messageResolver(Ie,D);if(io!=null){V=io;break}}return V}function j(D){const V=N(D);return V??(t?t.tm(D)||{}:{})}function J(D){return d.value[D]||{}}function H(D,V){if(r){const he={[D]:V};for(const ke in he)Mo(he,ke)&&Gn(he[ke]);V=he[D]}d.value[D]=V,b.messages=d.value}function ae(D,V){d.value[D]=d.value[D]||{};const he={[D]:V};if(r)for(const ke in he)Mo(he,ke)&&Gn(he[ke]);V=he[D],Oa(V,d.value[D]),b.messages=d.value}function Q(D){return p.value[D]||{}}function g(D,V){p.value[D]=V,b.datetimeFormats=p.value,Tc(b,D,V)}function h(D,V){p.value[D]=uo(p.value[D]||{},V),b.datetimeFormats=p.value,Tc(b,D,V)}function M(D){return m.value[D]||{}}function B(D,V){m.value[D]=V,b.numberFormats=m.value,Ic(b,D,V)}function re(D,V){m.value[D]=uo(m.value[D]||{},V),b.numberFormats=m.value,Ic(b,D,V)}Vc++,t&&Ca&&(Ke(t.locale,D=>{l&&(c.value=D,b.locale=D,Bn(b,c.value,u.value))}),Ke(t.fallbackLocale,D=>{l&&(u.value=D,b.fallbackLocale=D,Bn(b,c.value,u.value))}));const ee={id:Vc,locale:q,fallbackLocale:oe,get inheritLocale(){return l},set inheritLocale(D){l=D,D&&t&&(c.value=t.locale.value,u.value=t.fallbackLocale.value,Bn(b,c.value,u.value))},get availableLocales(){return Object.keys(d.value).sort()},messages:ge,get modifiers(){return y},get pluralRules(){return L||{}},get isGlobal(){return a},get missingWarn(){return $},set missingWarn(D){$=D,b.missingWarn=$},get fallbackWarn(){return f},set fallbackWarn(D){f=D,b.fallbackWarn=f},get fallbackRoot(){return _},set fallbackRoot(D){_=D},get fallbackFormat(){return v},set fallbackFormat(D){v=D,b.fallbackFormat=v},get warnHtmlMessage(){return x},set warnHtmlMessage(D){x=D,b.warnHtmlMessage=D},get escapeParameter(){return P},set escapeParameter(D){P=D,b.escapeParameter=D},t:se,getLocaleMessage:J,setLocaleMessage:H,mergeLocaleMessage:ae,getPostTranslationHandler:F,setPostTranslationHandler:W,getMissingHandler:Y,setMissingHandler:Z,[Dc]:S};return ee.datetimeFormats=ne,ee.numberFormats=X,ee.rt=Te,ee.te=E,ee.tm=j,ee.d=Pe,ee.n=We,ee.getDateTimeFormat=Q,ee.setDateTimeFormat=g,ee.mergeDateTimeFormat=h,ee.getNumberFormat=M,ee.setNumberFormat=B,ee.mergeNumberFormat=re,ee[Bc]=n,ee[Zr]=so,ee[Jr]=No,ee[Qr]=Be,ee}function h$(e){const o=ce(e.locale)?e.locale:nn,t=ce(e.fallbackLocale)||He(e.fallbackLocale)||ve(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:o,n=je(e.missing)?e.missing:void 0,a=Ae(e.silentTranslationWarn)||yt(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=Ae(e.silentFallbackWarn)||yt(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=Ae(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=ve(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=je(e.postTranslation)?e.postTranslation:void 0,d=ce(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,p=!!e.escapeParameterHtml,m=Ae(e.sync)?e.sync:!0;let $=e.messages;if(ve(e.sharedMessages)){const P=e.sharedMessages;$=Object.keys(P).reduce((L,b)=>{const O=L[b]||(L[b]={});return uo(O,P[b]),L},$||{})}const{__i18n:f,__root:_,__injectWithOption:v}=e,C=e.datetimeFormats,w=e.numberFormats,A=e.flatJson,x=e.translateExistCompatible;return{locale:o,fallbackLocale:t,messages:$,flatJson:A,datetimeFormats:C,numberFormats:w,missing:n,missingWarn:a,fallbackWarn:r,fallbackRoot:s,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:d,escapeParameter:p,messageResolver:e.messageResolver,inheritLocale:m,translateExistCompatible:x,__i18n:f,__root:_,__injectWithOption:v}}function ts(e={},o){{const t=os(h$(e)),{__extender:n}=e,a={id:t.id,get locale(){return t.locale.value},set locale(r){t.locale.value=r},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(r){t.fallbackLocale.value=r},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(r){},get missing(){return t.getMissingHandler()},set missing(r){t.setMissingHandler(r)},get silentTranslationWarn(){return Ae(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(r){t.missingWarn=Ae(r)?!r:r},get silentFallbackWarn(){return Ae(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(r){t.fallbackWarn=Ae(r)?!r:r},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(r){t.fallbackFormat=r},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(r){t.setPostTranslationHandler(r)},get sync(){return t.inheritLocale},set sync(r){t.inheritLocale=r},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){t.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(r){t.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...r){const[s,i,l]=r,c={};let u=null,d=null;if(!ce(s))throw ro(eo.INVALID_ARGUMENT);const p=s;return ce(i)?c.locale=i:He(i)?u=i:ve(i)&&(d=i),He(l)?u=l:ve(l)&&(d=l),Reflect.apply(t.t,t,[p,u||d||{},c])},rt(...r){return Reflect.apply(t.rt,t,[...r])},tc(...r){const[s,i,l]=r,c={plural:1};let u=null,d=null;if(!ce(s))throw ro(eo.INVALID_ARGUMENT);const p=s;return ce(i)?c.locale=i:Je(i)?c.plural=i:He(i)?u=i:ve(i)&&(d=i),ce(l)?c.locale=l:He(l)?u=l:ve(l)&&(d=l),Reflect.apply(t.t,t,[p,u||d||{},c])},te(r,s){return t.te(r,s)},tm(r){return t.tm(r)},getLocaleMessage(r){return t.getLocaleMessage(r)},setLocaleMessage(r,s){t.setLocaleMessage(r,s)},mergeLocaleMessage(r,s){t.mergeLocaleMessage(r,s)},d(...r){return Reflect.apply(t.d,t,[...r])},getDateTimeFormat(r){return t.getDateTimeFormat(r)},setDateTimeFormat(r,s){t.setDateTimeFormat(r,s)},mergeDateTimeFormat(r,s){t.mergeDateTimeFormat(r,s)},n(...r){return Reflect.apply(t.n,t,[...r])},getNumberFormat(r){return t.getNumberFormat(r)},setNumberFormat(r,s){t.setNumberFormat(r,s)},mergeNumberFormat(r,s){t.mergeNumberFormat(r,s)},getChoiceIndex(r,s){return-1}};return a.__extender=n,a}}const ns={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function f$({slots:e},o){return o.length===1&&o[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===fe?a.children:[a]],[]):o.reduce((t,n)=>{const a=e[n];return a&&(t[n]=a()),t},Re())}function Kc(e){return fe}const qc=wn({name:"i18n-t",props:uo({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Je(e)||!isNaN(e)}},ns),setup(e,o){const{slots:t,attrs:n}=o,a=e.i18n||po({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(t).filter(d=>d!=="_"),s=Re();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=ce(e.plural)?+e.plural:e.plural);const i=f$(o,r),l=a[Zr](e.keypath,i,s),c=uo(Re(),n),u=ce(e.tag)||Ne(e.tag)?e.tag:Kc();return ml(u,c,l)}}});function m$(e){return He(e)&&!ce(e[0])}function Yc(e,o,t,n){const{slots:a,attrs:r}=o;return()=>{const s={part:!0};let i=Re();e.locale&&(s.locale=e.locale),ce(e.format)?s.key=e.format:Ne(e.format)&&(ce(e.format.key)&&(s.key=e.format.key),i=Object.keys(e.format).reduce((p,m)=>t.includes(m)?uo(Re(),p,{[m]:e.format[m]}):p,Re()));const l=n(e.value,s,i);let c=[s.key];He(l)?c=l.map((p,m)=>{const $=a[p.type],f=$?$({[p.type]:p.value,index:m,parts:l}):[p.value];return m$(f)&&(f[0].key=`${p.type}-${m}`),f}):ce(l)&&(c=[l]);const u=uo(Re(),r),d=ce(e.tag)||Ne(e.tag)?e.tag:Kc();return ml(d,u,c)}}const Xc=wn({name:"i18n-n",props:uo({value:{type:Number,required:!0},format:{type:[String,Object]}},ns),setup(e,o){const t=e.i18n||po({useScope:e.scope,__useComponent:!0});return Yc(e,o,Rc,(...n)=>t[Qr](...n))}}),Zc=wn({name:"i18n-d",props:uo({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},ns),setup(e,o){const t=e.i18n||po({useScope:e.scope,__useComponent:!0});return Yc(e,o,Oc,(...n)=>t[Jr](...n))}});function b$(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 _$(e){const o=s=>{const{instance:i,modifiers:l,value:c}=s;if(!i||!i.$)throw ro(eo.UNEXPECTED_ERROR);const u=b$(e,i.$),d=Jc(c);return[Reflect.apply(u.t,u,[...Qc(d)]),u]};return{created:(s,i)=>{const[l,c]=o(i);Ca&&e.global===c&&(s.__i18nWatcher=Ke(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),s.__composer=c,s.textContent=l},unmounted:s=>{Ca&&s.__i18nWatcher&&(s.__i18nWatcher(),s.__i18nWatcher=void 0,delete s.__i18nWatcher),s.__composer&&(s.__composer=void 0,delete s.__composer)},beforeUpdate:(s,{value:i})=>{if(s.__composer){const l=s.__composer,c=Jc(i);s.textContent=Reflect.apply(l.t,l,[...Qc(c)])}},getSSRProps:s=>{const[i]=o(s);return{textContent:i}}}}function Jc(e){if(ce(e))return{path:e};if(ve(e)){if(!("path"in e))throw ro(eo.REQUIRED_VALUE,"path");return e}else throw ro(eo.INVALID_VALUE)}function Qc(e){const{path:o,locale:t,args:n,choice:a,plural:r}=e,s={},i=n||{};return ce(t)&&(s.locale=t),Je(a)&&(s.plural=a),Je(r)&&(s.plural=r),[o,i,s]}function $$(e,o,...t){const n=ve(t[0])?t[0]:{},a=!!n.useI18nComponentName;(Ae(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":qc.name,"I18nT"].forEach(s=>e.component(s,qc)),[Xc.name,"I18nN"].forEach(s=>e.component(s,Xc)),[Zc.name,"I18nD"].forEach(s=>e.component(s,Zc))),e.directive("t",_$(o))}function y$(e,o,t){return{beforeCreate(){const n=st();if(!n)throw ro(eo.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const r=a.i18n;if(a.__i18n&&(r.__i18n=a.__i18n),r.__root=o,this===this.$root)this.$i18n=eu(e,r);else{r.__injectWithOption=!0,r.__extender=t.__vueI18nExtend,this.$i18n=ts(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=eu(e,a);else{this.$i18n=ts({__i18n:a.__i18n,__injectWithOption:!0,__extender:t.__vueI18nExtend,__root:o});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&Uc(o,a,a),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,s)=>this.$i18n.te(r,s),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),t.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=st();if(!n)throw ro(eo.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 eu(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[Dc](o.pluralizationRules||e.pluralizationRules);const t=Ia(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 v$=$t("global-vue-i18n");function k$(e={},o){const t=__VUE_I18N_LEGACY_API__&&Ae(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Ae(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&t?!!e.allowComposition:!0,r=new Map,[s,i]=w$(e,t),l=$t("");function c(p){return r.get(p)||null}function u(p,m){r.set(p,m)}function d(p){r.delete(p)}{const p={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},get allowComposition(){return a},async install(m,...$){if(m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,p),ve($[0])){const v=$[0];p.__composerExtend=v.__composerExtend,p.__vueI18nExtend=v.__vueI18nExtend}let f=null;!t&&n&&(f=O$(m,p.global)),__VUE_I18N_FULL_INSTALL__&&$$(m,p,...$),__VUE_I18N_LEGACY_API__&&t&&m.mixin(y$(i,i.__composer,p));const _=m.unmount;m.unmount=()=>{f&&f(),p.dispose(),_()}},get global(){return i},dispose(){s.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:d};return p}}function po(e={}){const o=st();if(o==null)throw ro(eo.MUST_BE_CALL_SETUP_TOP);if(!o.isCE&&o.appContext.app!=null&&!o.appContext.app.__VUE_I18N_SYMBOL__)throw ro(eo.NOT_INSTALLED);const t=x$(o),n=S$(t),a=Gc(o),r=A$(e,a);if(__VUE_I18N_LEGACY_API__&&t.mode==="legacy"&&!e.__useComponent){if(!t.allowComposition)throw ro(eo.NOT_AVAILABLE_IN_LEGACY_MODE);return P$(o,r,n,e)}if(r==="global")return Uc(n,e,a),n;if(r==="parent"){let l=L$(t,o,e.__useComponent);return l==null&&(l=n),l}const s=t;let i=s.__getInstance(o);if(i==null){const l=uo({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=os(l),s.__composerExtend&&(i[es]=s.__composerExtend(i)),N$(s,o,i),s.__setInstance(o,i)}return i}function w$(e,o,t){const n=Ja();{const a=__VUE_I18N_LEGACY_API__&&o?n.run(()=>ts(e)):n.run(()=>os(e));if(a==null)throw ro(eo.UNEXPECTED_ERROR);return[n,a]}}function x$(e){{const o=xe(e.isCE?v$:e.appContext.app.__VUE_I18N_SYMBOL__);if(!o)throw ro(e.isCE?eo.NOT_INSTALLED_WITH_PROVIDE:eo.UNEXPECTED_ERROR);return o}}function A$(e,o){return Na(e)?"__i18n"in o?"local":"global":e.useScope?e.useScope:"local"}function S$(e){return e.mode==="composition"?e.global:e.global.__composer}function L$(e,o,t=!1){let n=null;const a=o.root;let r=C$(o,t);for(;r!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=s.__getInstance(r);i!=null&&(n=i.__composer,t&&n&&!n[Bc]&&(n=null))}if(n!=null||a===r)break;r=r.parent}return n}function C$(e,o=!1){return e==null?null:o&&e.vnode.ctx||e.parent}function N$(e,o,t){zo(()=>{},o),ma(()=>{const n=t;e.__deleteInstance(o);const a=n[es];a&&(a(),delete n[es])},o)}function P$(e,o,t,n={}){const a=o==="local",r=Vt(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw ro(eo.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const s=Ae(n.inheritLocale)?n.inheritLocale:!ce(n.locale),i=le(!a||s?t.locale.value:ce(n.locale)?n.locale:nn),l=le(!a||s?t.fallbackLocale.value:ce(n.fallbackLocale)||He(n.fallbackLocale)||ve(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=le(Ia(i.value,n)),u=le(ve(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),d=le(ve(n.numberFormats)?n.numberFormats:{[i.value]:{}}),p=a?t.missingWarn:Ae(n.missingWarn)||yt(n.missingWarn)?n.missingWarn:!0,m=a?t.fallbackWarn:Ae(n.fallbackWarn)||yt(n.fallbackWarn)?n.fallbackWarn:!0,$=a?t.fallbackRoot:Ae(n.fallbackRoot)?n.fallbackRoot:!0,f=!!n.fallbackFormat,_=je(n.missing)?n.missing:null,v=je(n.postTranslation)?n.postTranslation:null,C=a?t.warnHtmlMessage:Ae(n.warnHtmlMessage)?n.warnHtmlMessage:!0,w=!!n.escapeParameter,A=a?t.modifiers:ve(n.modifiers)?n.modifiers:{},x=n.pluralRules||a&&t.pluralRules;function P(){return[i.value,l.value,c.value,u.value,d.value]}const y=z({get:()=>r.value?r.value.locale.value:i.value,set:N=>{r.value&&(r.value.locale.value=N),i.value=N}}),L=z({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:N=>{r.value&&(r.value.fallbackLocale.value=N),l.value=N}}),b=z(()=>r.value?r.value.messages.value:c.value),O=z(()=>u.value),R=z(()=>d.value);function q(){return r.value?r.value.getPostTranslationHandler():v}function oe(N){r.value&&r.value.setPostTranslationHandler(N)}function ge(){return r.value?r.value.getMissingHandler():_}function ne(N){r.value&&r.value.setMissingHandler(N)}function X(N){return P(),N()}function F(...N){return r.value?X(()=>Reflect.apply(r.value.t,null,[...N])):X(()=>"")}function W(...N){return r.value?Reflect.apply(r.value.rt,null,[...N]):""}function Y(...N){return r.value?X(()=>Reflect.apply(r.value.d,null,[...N])):X(()=>"")}function Z(...N){return r.value?X(()=>Reflect.apply(r.value.n,null,[...N])):X(()=>"")}function ie(N){return r.value?r.value.tm(N):{}}function se(N,j){return r.value?r.value.te(N,j):!1}function Te(N){return r.value?r.value.getLocaleMessage(N):{}}function Pe(N,j){r.value&&(r.value.setLocaleMessage(N,j),c.value[N]=j)}function We(N,j){r.value&&r.value.mergeLocaleMessage(N,j)}function Se(N){return r.value?r.value.getDateTimeFormat(N):{}}function De(N,j){r.value&&(r.value.setDateTimeFormat(N,j),u.value[N]=j)}function oo(N,j){r.value&&r.value.mergeDateTimeFormat(N,j)}function so(N){return r.value?r.value.getNumberFormat(N):{}}function Be(N,j){r.value&&(r.value.setNumberFormat(N,j),d.value[N]=j)}function No(N,j){r.value&&r.value.mergeNumberFormat(N,j)}const S={get id(){return r.value?r.value.id:-1},locale:y,fallbackLocale:L,messages:b,datetimeFormats:O,numberFormats:R,get inheritLocale(){return r.value?r.value.inheritLocale:s},set inheritLocale(N){r.value&&(r.value.inheritLocale=N)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:A},get pluralRules(){return r.value?r.value.pluralRules:x},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:p},set missingWarn(N){r.value&&(r.value.missingWarn=N)},get fallbackWarn(){return r.value?r.value.fallbackWarn:m},set fallbackWarn(N){r.value&&(r.value.missingWarn=N)},get fallbackRoot(){return r.value?r.value.fallbackRoot:$},set fallbackRoot(N){r.value&&(r.value.fallbackRoot=N)},get fallbackFormat(){return r.value?r.value.fallbackFormat:f},set fallbackFormat(N){r.value&&(r.value.fallbackFormat=N)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:C},set warnHtmlMessage(N){r.value&&(r.value.warnHtmlMessage=N)},get escapeParameter(){return r.value?r.value.escapeParameter:w},set escapeParameter(N){r.value&&(r.value.escapeParameter=N)},t:F,getPostTranslationHandler:q,setPostTranslationHandler:oe,getMissingHandler:ge,setMissingHandler:ne,rt:W,d:Y,n:Z,tm:ie,te:se,getLocaleMessage:Te,setLocaleMessage:Pe,mergeLocaleMessage:We,getDateTimeFormat:Se,setDateTimeFormat:De,mergeDateTimeFormat:oo,getNumberFormat:so,setNumberFormat:Be,mergeNumberFormat:No};function E(N){N.locale.value=i.value,N.fallbackLocale.value=l.value,Object.keys(c.value).forEach(j=>{N.mergeLocaleMessage(j,c.value[j])}),Object.keys(u.value).forEach(j=>{N.mergeDateTimeFormat(j,u.value[j])}),Object.keys(d.value).forEach(j=>{N.mergeNumberFormat(j,d.value[j])}),N.escapeParameter=w,N.fallbackFormat=f,N.fallbackRoot=$,N.fallbackWarn=m,N.missingWarn=p,N.warnHtmlMessage=C}return Ti(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw ro(eo.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const N=r.value=e.proxy.$i18n.__composer;o==="global"?(i.value=N.locale.value,l.value=N.fallbackLocale.value,c.value=N.messages.value,u.value=N.datetimeFormats.value,d.value=N.numberFormats.value):a&&E(N)}),S}const E$=["locale","fallbackLocale","availableLocales"],ou=["t","rt","d","n","tm","te"];function O$(e,o){const t=Object.create(null);return E$.forEach(a=>{const r=Object.getOwnPropertyDescriptor(o,a);if(!r)throw ro(eo.UNEXPECTED_ERROR);const s=Ve(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(t,a,s)}),e.config.globalProperties.$i18n=t,ou.forEach(a=>{const r=Object.getOwnPropertyDescriptor(o,a);if(!r||!r.value)throw ro(eo.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,r)}),()=>{delete e.config.globalProperties.$i18n,ou.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(u$(),__INTLIFY_JIT_COMPILATION__?bc(a$):bc(n$),q_(C_),Y_(dc),__INTLIFY_PROD_DEVTOOLS__){const e=lt();e.__INTLIFY__=!0,F_(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const T$=Object.assign({"./locales/ar/allPeopleGroups.json":Rg,"./locales/ar/aria.json":Ig,"./locales/ar/buttons.json":Fg,"./locales/ar/connectivity.json":Dg,"./locales/ar/controls.json":Bg,"./locales/ar/dashboard.json":Gg,"./locales/ar/detail.json":Ug,"./locales/ar/gospel.json":jg,"./locales/ar/grid.json":Wg,"./locales/ar/legend.json":zg,"./locales/ar/messages.json":Vg,"./locales/ar/options.json":Hg,"./locales/ar/popup.json":Kg,"./locales/ar/prayerLaps.json":qg,"./locales/ar/regions.json":Yg,"./locales/ar/search.json":Xg,"./locales/ar/studio.json":Zg,"./locales/ar/tabs.json":Jg,"./locales/ar/vision.json":Qg,"./locales/de/allPeopleGroups.json":eh,"./locales/de/aria.json":oh,"./locales/de/buttons.json":th,"./locales/de/connectivity.json":nh,"./locales/de/controls.json":ah,"./locales/de/dashboard.json":rh,"./locales/de/detail.json":sh,"./locales/de/gospel.json":ih,"./locales/de/grid.json":lh,"./locales/de/legend.json":ch,"./locales/de/messages.json":uh,"./locales/de/options.json":ph,"./locales/de/popup.json":dh,"./locales/de/prayerLaps.json":gh,"./locales/de/regions.json":hh,"./locales/de/search.json":fh,"./locales/de/studio.json":mh,"./locales/de/tabs.json":bh,"./locales/de/vision.json":_h,"./locales/en/allPeopleGroups.json":$h,"./locales/en/aria.json":yh,"./locales/en/buttons.json":vh,"./locales/en/connectivity.json":Gl,"./locales/en/controls.json":kh,"./locales/en/dashboard.json":wh,"./locales/en/detail.json":xh,"./locales/en/gospel.json":Ah,"./locales/en/grid.json":Sh,"./locales/en/legend.json":Lh,"./locales/en/messages.json":Ch,"./locales/en/options.json":Nh,"./locales/en/popup.json":Ph,"./locales/en/prayerLaps.json":Eh,"./locales/en/regions.json":Oh,"./locales/en/search.json":Th,"./locales/en/studio.json":Mh,"./locales/en/tabs.json":Rh,"./locales/en/vision.json":Ih,"./locales/es/allPeopleGroups.json":Fh,"./locales/es/aria.json":Dh,"./locales/es/buttons.json":Bh,"./locales/es/connectivity.json":Gh,"./locales/es/controls.json":Uh,"./locales/es/dashboard.json":jh,"./locales/es/detail.json":Wh,"./locales/es/gospel.json":zh,"./locales/es/grid.json":Vh,"./locales/es/legend.json":Hh,"./locales/es/messages.json":Kh,"./locales/es/options.json":qh,"./locales/es/popup.json":Yh,"./locales/es/prayerLaps.json":Xh,"./locales/es/regions.json":Zh,"./locales/es/search.json":Jh,"./locales/es/studio.json":Qh,"./locales/es/tabs.json":ef,"./locales/es/vision.json":of,"./locales/fr/allPeopleGroups.json":tf,"./locales/fr/aria.json":nf,"./locales/fr/buttons.json":af,"./locales/fr/connectivity.json":rf,"./locales/fr/controls.json":sf,"./locales/fr/dashboard.json":lf,"./locales/fr/detail.json":cf,"./locales/fr/gospel.json":uf,"./locales/fr/grid.json":pf,"./locales/fr/legend.json":df,"./locales/fr/messages.json":gf,"./locales/fr/options.json":hf,"./locales/fr/popup.json":ff,"./locales/fr/prayerLaps.json":mf,"./locales/fr/regions.json":bf,"./locales/fr/search.json":_f,"./locales/fr/studio.json":$f,"./locales/fr/tabs.json":yf,"./locales/fr/vision.json":vf,"./locales/hi/allPeopleGroups.json":kf,"./locales/hi/aria.json":wf,"./locales/hi/buttons.json":xf,"./locales/hi/connectivity.json":Af,"./locales/hi/controls.json":Sf,"./locales/hi/dashboard.json":Lf,"./locales/hi/detail.json":Cf,"./locales/hi/gospel.json":Nf,"./locales/hi/grid.json":Pf,"./locales/hi/legend.json":Ef,"./locales/hi/messages.json":Of,"./locales/hi/options.json":Tf,"./locales/hi/popup.json":Mf,"./locales/hi/prayerLaps.json":Rf,"./locales/hi/regions.json":If,"./locales/hi/search.json":Ff,"./locales/hi/studio.json":Df,"./locales/hi/tabs.json":Bf,"./locales/hi/vision.json":Gf,"./locales/it/allPeopleGroups.json":Uf,"./locales/it/aria.json":jf,"./locales/it/buttons.json":Wf,"./locales/it/connectivity.json":zf,"./locales/it/controls.json":Vf,"./locales/it/dashboard.json":Hf,"./locales/it/detail.json":Kf,"./locales/it/gospel.json":qf,"./locales/it/grid.json":Yf,"./locales/it/legend.json":Xf,"./locales/it/messages.json":Zf,"./locales/it/options.json":Jf,"./locales/it/popup.json":Qf,"./locales/it/prayerLaps.json":em,"./locales/it/regions.json":om,"./locales/it/search.json":tm,"./locales/it/studio.json":nm,"./locales/it/tabs.json":am,"./locales/it/vision.json":rm,"./locales/pt/allPeopleGroups.json":sm,"./locales/pt/aria.json":im,"./locales/pt/buttons.json":lm,"./locales/pt/connectivity.json":cm,"./locales/pt/controls.json":um,"./locales/pt/dashboard.json":pm,"./locales/pt/detail.json":dm,"./locales/pt/gospel.json":gm,"./locales/pt/grid.json":hm,"./locales/pt/legend.json":fm,"./locales/pt/messages.json":mm,"./locales/pt/options.json":bm,"./locales/pt/popup.json":_m,"./locales/pt/prayerLaps.json":$m,"./locales/pt/regions.json":ym,"./locales/pt/search.json":vm,"./locales/pt/studio.json":km,"./locales/pt/tabs.json":wm,"./locales/pt/vision.json":xm,"./locales/ro/allPeopleGroups.json":Am,"./locales/ro/aria.json":Sm,"./locales/ro/buttons.json":Lm,"./locales/ro/connectivity.json":Cm,"./locales/ro/controls.json":Nm,"./locales/ro/dashboard.json":Pm,"./locales/ro/detail.json":Em,"./locales/ro/gospel.json":Om,"./locales/ro/grid.json":Tm,"./locales/ro/legend.json":Mm,"./locales/ro/messages.json":Rm,"./locales/ro/options.json":Im,"./locales/ro/popup.json":Fm,"./locales/ro/prayerLaps.json":Dm,"./locales/ro/regions.json":Bm,"./locales/ro/search.json":Gm,"./locales/ro/studio.json":Um,"./locales/ro/tabs.json":jm,"./locales/ro/vision.json":Wm,"./locales/ru/allPeopleGroups.json":zm,"./locales/ru/aria.json":Vm,"./locales/ru/buttons.json":Hm,"./locales/ru/connectivity.json":Km,"./locales/ru/controls.json":qm,"./locales/ru/dashboard.json":Ym,"./locales/ru/detail.json":Xm,"./locales/ru/gospel.json":Zm,"./locales/ru/grid.json":Jm,"./locales/ru/legend.json":Qm,"./locales/ru/messages.json":eb,"./locales/ru/options.json":ob,"./locales/ru/popup.json":tb,"./locales/ru/prayerLaps.json":nb,"./locales/ru/regions.json":ab,"./locales/ru/search.json":rb,"./locales/ru/studio.json":sb,"./locales/ru/tabs.json":ib,"./locales/ru/vision.json":lb,"./locales/zh/allPeopleGroups.json":cb,"./locales/zh/aria.json":ub,"./locales/zh/buttons.json":pb,"./locales/zh/connectivity.json":db,"./locales/zh/controls.json":gb,"./locales/zh/dashboard.json":hb,"./locales/zh/detail.json":fb,"./locales/zh/gospel.json":mb,"./locales/zh/grid.json":bb,"./locales/zh/legend.json":_b,"./locales/zh/messages.json":$b,"./locales/zh/options.json":yb,"./locales/zh/popup.json":vb,"./locales/zh/prayerLaps.json":kb,"./locales/zh/regions.json":wb,"./locales/zh/search.json":xb,"./locales/zh/studio.json":Ab,"./locales/zh/tabs.json":Sb,"./locales/zh/vision.json":Lb}),rn={};for(const[e,o]of Object.entries(T$)){const t=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!t)continue;const[,n,a]=t;rn[n]??(rn[n]={}),rn[n][a]=o}rn.en;const Fa=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],tu=new Set(["ar"]);function M$(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function R$(){var n;const e=M$();if(Fa.includes(e))return e;const t=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Fa.includes(t)?t:"en"}function I$(){const e=R$();try{tu.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}const o=k$({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:rn,missingWarn:!1,fallbackWarn:!1});Ke(o.global.locale,n=>nu(n),{immediate:!0});const t=o.install.bind(o);return o.install=(n,...a)=>{const r=t(n,...a);return n.provide("appI18n",o),r},o}const F$="__DOXA_PAGE_LOCALE";function nu(e){const o=String(e||"").split("-")[0].toLowerCase();if(Fa.includes(o))try{typeof window<"u"&&(window[F$]=o)}catch{}}function _o(e,o){const t=o||D$(e);zo(()=>{var i;const n=st();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const r=a.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${t}"]`))return;const s=document.createElement("style");s.setAttribute("data-shadow-styles",t),s.textContent=e,r.appendChild(s)})}function D$(e){let o=0;for(let t=0;t<e.length;t++)o=(o<<5)-o+e.charCodeAt(t),o|=0;return"s"+Math.abs(o).toString(36)}const B$={class:"pin-hint-pill"},G$={__name:"PinHint",setup(e){const o={"messages.pinHint.tapDot":"Tap a dot to see who still needs prayer"};let t=L=>o[L]||L,n=()=>!1;try{const L=po();t=L.t,n=L.te}catch{}const a=xe("uiStore",null),r=xe("profileConfig",null),s=z(()=>(a==null?void 0:a.theme)==="dark"),i=z(()=>{var O;const L=(O=r==null?void 0:r.value)==null?void 0:O.pinHintLabel;if(L)return L;const b="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?t("messages.pinHint.tapDot"):b}catch{return b}}),l=le(!1),c=le(null);let u=null,d=null,p=null,m=null,$=null,f=null,_=[],v=null,C=null;function w(){l.value=!1}function A(L,b){var R;let O=L==null?void 0:L.parentElement;for(let q=0;O&&q<12;q++,O=O.parentElement){if(O===b||(R=O.classList)!=null&&R.contains("profile-loader"))return null;let oe="";try{oe=getComputedStyle(O).position}catch{}if(oe&&oe!=="static"){const ge=O.getBoundingClientRect();if(ge.height>=120&&ge.width>=160)return O}}return null}function x(L){var O;const b=(O=m==null?void 0:m.querySelector)==null?void 0:O.call(m,".legend-mobile-sheet");if(!b)return 1/0;if($&&f!==b){try{$.disconnect()}catch{}$=null}if(!$&&typeof ResizeObserver<"u")try{$=new ResizeObserver(()=>P()),$.observe(b),f=b}catch{$=null}try{const R=b.getBoundingClientRect();return!(R.height>16)||!(R.width>16)||L.right<=R.left||R.right<=L.left?1/0:R.top}catch{return 1/0}}function P(){const L=c.value;if(L)try{L.style.removeProperty("--pin-hint-lift");const b=L.getBoundingClientRect();if(!b.height)return;const O=Math.min(window.innerHeight,x(b)),R=Math.round(b.bottom-O);R>0&&L.style.setProperty("--pin-hint-lift",R+8+"px")}catch{}}function y(L){const b=c.value;if(!b||!(L!=null&&L.querySelector))return;let O=0;try{const q=L.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(q){const oe=q.getBoundingClientRect(),ge=b.parentElement,ne=ge?ge.getBoundingClientRect():null;if(O=ne?Math.max(oe.height||0,ne.bottom-oe.top):oe.height||0,C!==q&&typeof ResizeObserver<"u"){if(p)try{p.disconnect()}catch{}C=q,p=new ResizeObserver(()=>y(L)),p.observe(q)}}}catch{}const R=Math.min(Math.max(Math.ceil(O)||20,20),72);b.style.setProperty("--pin-hint-attrib-clear",R+"px"),P()}return zo(()=>{var R,q,oe;const L=st(),b=(oe=(q=(R=L==null?void 0:L.proxy)==null?void 0:R.$el)==null?void 0:q.getRootNode)==null?void 0:oe.call(q);if(!b||typeof b.querySelector!="function")return;m=b;let O=0;u=setInterval(()=>{O++;const ge=b.querySelector("canvas");ge?(clearInterval(u),u=null,l.value=!0,mt(()=>{const ne=A(ge,b),X=c.value;if(ne&&X&&X.parentElement!==ne)try{ne.appendChild(X),d=ne}catch{}y(b),P(),_.push(setTimeout(P,1200),setTimeout(P,3e3),setTimeout(P,6e3));try{const F=c.value&&c.value.offsetParent||null;if(F&&typeof ResizeObserver<"u"){if(v)try{v.disconnect()}catch{}v=new ResizeObserver(()=>P()),v.observe(F)}}catch{}})):O>40&&(clearInterval(u),u=null)},300)}),Vo(()=>{var L;if(u&&clearInterval(u),p){try{p.disconnect()}catch{}p=null}if(C=null,v){try{v.disconnect()}catch{}v=null}if($){try{$.disconnect()}catch{}$=null}f=null;for(const b of _)clearTimeout(b);if(_=[],m=null,d&&((L=c.value)==null?void 0:L.parentElement)===d)try{d.removeChild(c.value)}catch{}d=null}),_o(`
|
||
.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"),(L,b)=>l.value?(I(),G("div",{key:0,ref_key:"hintEl",ref:c,class:ye(["pin-hint",{dark:s.value}]),role:"status"},[k("span",B$,[b[0]||(b[0]=k("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Ce(" "+K(i.value)+" ",1),k("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:w},"×")])],2)):pe("",!0)}};let U$=0;const j$=Rr("ui",{state:()=>({_storeInstanceId:++U$,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:r=!1}=e,s={id:this.nextToastId++,message:o,type:t,duration:n,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&n>0&&setTimeout(()=>{this.removeToast(s.id)},n),s.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)}))}}}),W$=Rr("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 r=o.getCenter();r&&(a=[r.lng,r.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()}}}),z$=Rr("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]=Nt({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]=Nt({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}}}),sn={_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}}},V$=".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}",Ft=(e,o)=>{const t=e.__vccOpts||e;for(const[n,a]of o)t[n]=a;return t},H$=["dir"],K$={key:0,class:"profile-error"},q$={key:1,class:"profile-error"},Y$=Ft({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var P;const t=e,n=xe("profileConfig",null),a=z(()=>{var L;if(!t.profileConfig)return null;let y;try{y=JSON.parse(t.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",t.profileConfig),null}if(y&&y.assetsBase===void 0){const b=(L=n==null?void 0:n.value)==null?void 0:L.assetsBase;typeof b=="string"&&b&&(y.assetsBase=b)}return y}),r=z(()=>{var y;return((y=a.value)==null?void 0:y.profile)||null}),s=Mg(),i=z(()=>{var L;const y=(L=a.value)==null?void 0:L.tk;return typeof y=="string"&&y?y:s.value||""});Ke(()=>{var y;return(y=a.value)==null?void 0:y.tk},y=>{typeof y=="string"&&y&&Bl(y)},{immediate:!0});const l=z(()=>{var y;return((y=a.value)==null?void 0:y.dataSource)||sn.activeSource||"doxa-csv"}),c=z(()=>{var y;return((y=a.value)==null?void 0:y.colorSet)||"default"}),u=z(()=>!1),d=z(()=>{var y;return((y=a.value)==null?void 0:y.pinHint)!==!1}),p=z(()=>{var L,b;const y=(((L=a.value)==null?void 0:L.locale)||((b=a.value)==null?void 0:b.lang)||"").split("-")[0].toLowerCase();return Fa.includes(y)?y:""}),m=xe("appI18n",null);zp(()=>{p.value&&(m&&(m.global.locale.value=p.value),nu(p.value))});const $=z(()=>{var y,L;return p.value||((L=(y=m==null?void 0:m.global)==null?void 0:y.locale)==null?void 0:L.value)||"en"}),f=z(()=>tu.has($.value)?"rtl":"ltr"),_=z(()=>{var y;return((y=a.value)==null?void 0:y.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),v=xe("profileModules",null);if(!v)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const C=z(()=>{if(!r.value)return null;const y=`./${r.value}.vue`;return v[y]?Dr(v[y]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(v)),null)});Lo("mapboxToken",i),Lo("dataSource",l),Lo("colorSet",c),Lo("profileConfig",a),Lo("instanceId",_),Lo("lang",$);const w=j$(),A=W$(),x=z$();try{const y=typeof localStorage<"u"?localStorage.getItem("theme"):null;y&&((P=w.setTheme)==null||P.call(w,y))}catch{}return Lo("uiStore",w),Lo("mapStore",A),Lo("dataStore",x),(y,L)=>(I(),G("div",{class:"profile-loader",dir:f.value},[a.value?C.value?(I(),Ze(Ri(C.value),{key:2})):(I(),G("div",q$,[k("p",null,[L[1]||(L[1]=Ce("⚠️ Profile ",-1)),k("strong",null,'"'+K(r.value)+'"',1),L[2]||(L[2]=Ce(" not found.",-1))])])):(I(),G("div",K$,[...L[0]||(L[0]=[k("p",null,[Ce("⚠️ "),k("strong",null,"doxa-map"),Ce(": missing or invalid "),k("code",null,"profile-config"),Ce(" prop.")],-1),k("p",null,[Ce("Example: "),k("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),C.value&&u.value?(I(),Ze(Ri(te(null)),{key:3})):pe("",!0),C.value&&d.value?(I(),Ze(G$,{key:4})):pe("",!0)],8,H$))}},[["styles",[V$]],["__scopeId","data-v-ccbcaedb"]]),X$=Object.assign({"./connectivity-list.vue":()=>pn(()=>Promise.resolve().then(()=>g0),void 0),"./connectivity-map.vue":()=>pn(()=>Promise.resolve().then(()=>kv),void 0),"./data-tables.vue":()=>pn(()=>Promise.resolve().then(()=>Hv),void 0)});function Z$(){return $g(Y$,{configureApp(e){e.use(Lg()),e.use(I$()),e.provide("profileModules",X$)}})}const J$=Z$();typeof customElements<"u"&&(customElements.get("cities-internet-map")||customElements.define("cities-internet-map",J$));const Q$={countries:[{iso3:"IND",country:"India",region:"Asia",clusters:541,people_groups:856,multi:164,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:79.4,mobile_year:"2024",national_population:1450935791,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CHN",country:"People's Republic of China",region:"Asia",clusters:130,people_groups:154,multi:19,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:131.8,mobile_year:"2024",national_population:1408975e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SDN",country:"Sudan",region:"Middle East",clusters:75,people_groups:105,multi:20,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:70.2,mobile_year:"2022",national_population:50448963,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRA",country:"Brazil",region:"Latin America & Caribbean",clusters:99,people_groups:104,multi:5,internet_access:"yes",internet_pct:84.5,internet_year:"2024",mobile_per_100:101.9,mobile_year:"2024",national_population:211998573,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LAO",country:"Lao People's Democratic Republic",region:"Asia",clusters:65,people_groups:95,multi:24,internet_access:"yes",internet_pct:65.6,internet_year:"2024",mobile_per_100:64.8,mobile_year:"2023",national_population:7769819,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCD",country:"Chad",region:"Africa",clusters:48,people_groups:54,multi:6,internet_access:"no",internet_pct:12.6,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:20299123,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NGA",country:"Nigeria",region:"Africa",clusters:35,people_groups:38,multi:3,internet_access:"partial",internet_pct:41.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:232679478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IDN",country:"Indonesia",region:"Asia",clusters:35,people_groups:36,multi:1,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:122.5,mobile_year:"2024",national_population:283487931,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NPL",country:"Nepal",region:"Asia",clusters:25,people_groups:33,multi:5,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:99.8,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ETH",country:"Ethiopia",region:"Africa",clusters:29,people_groups:29,multi:0,internet_access:"no",internet_pct:21.9,internet_year:"2024",mobile_per_100:65.1,mobile_year:"2024",national_population:132059767,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COL",country:"Colombia",region:"Latin America & Caribbean",clusters:26,people_groups:26,multi:0,internet_access:"yes",internet_pct:79.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:52886363,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAK",country:"Pakistan",region:"Asia",clusters:21,people_groups:24,multi:2,internet_access:"partial",internet_pct:57.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:251269164,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SSD",country:"South Sudan",region:"Africa",clusters:22,people_groups:22,multi:0,internet_access:"no",internet_pct:6.7,internet_year:"2019",mobile_per_100:46.6,mobile_year:"2023",national_population:11943408,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"RUS",country:"Russian Federation",region:"Europe",clusters:17,people_groups:21,multi:2,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:186.1,mobile_year:"2024",national_population:143669648,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AFG",country:"Afghanistan",region:"Asia",clusters:15,people_groups:21,multi:5,internet_access:"no",internet_pct:16.1,internet_year:"2024",mobile_per_100:60.1,mobile_year:"2024",national_population:42647492,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRN",country:"Islamic Republic of Iran",region:"Middle East",clusters:19,people_groups:20,multi:1,internet_access:"yes",internet_pct:85.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:91567738,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DZA",country:"Algeria",region:"Middle East",clusters:15,people_groups:17,multi:2,internet_access:"yes",internet_pct:77.4,internet_year:"2024",mobile_per_100:115.5,mobile_year:"2024",national_population:46814308,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VNM",country:"Vietnam",region:"Asia",clusters:15,people_groups:16,multi:1,internet_access:"yes",internet_pct:84.2,internet_year:"2024",mobile_per_100:127.6,mobile_year:"2024",national_population:100987686,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TZA",country:"United Republic of Tanzania",region:"Africa",clusters:16,people_groups:16,multi:0,internet_access:"partial",internet_pct:31.2,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:68560157,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBY",country:"Libya",region:"Middle East",clusters:13,people_groups:15,multi:2,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:193,mobile_year:"2022",national_population:7381023,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BTN",country:"Bhutan",region:"Asia",clusters:12,people_groups:13,multi:1,internet_access:"yes",internet_pct:91.3,internet_year:"2024",mobile_per_100:99.8,mobile_year:"2024",national_population:791524,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIN",country:"Guinea",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:33.3,internet_year:"2024",mobile_per_100:97.9,mobile_year:"2023",national_population:14754785,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLI",country:"Mali",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:36.8,internet_year:"2024",mobile_per_100:112.1,mobile_year:"2022",national_population:24478595,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYS",country:"Malaysia",region:"Asia",clusters:11,people_groups:12,multi:1,internet_access:"yes",internet_pct:98,internet_year:"2024",mobile_per_100:139.7,mobile_year:"2024",national_population:35557673,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AGO",country:"Angola",region:"Africa",clusters:9,people_groups:10,multi:1,internet_access:"partial",internet_pct:40.7,internet_year:"2024",mobile_per_100:69.7,mobile_year:"2024",national_population:37885849,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PER",country:"Peru",region:"Latin America & Caribbean",clusters:10,people_groups:10,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:124.6,mobile_year:"2024",national_population:34217848,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"YEM",country:"Yemen",region:"Middle East",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:17.5,internet_year:"2019",mobile_per_100:50.9,mobile_year:"2023",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COD",country:"Democratic Republic of the Congo",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:19.7,internet_year:"2024",mobile_per_100:58.5,mobile_year:"2024",national_population:109276265,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BEN",country:"Benin",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"partial",internet_pct:34,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:14462724,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SOM",country:"Somalia",region:"Africa",clusters:9,people_groups:9,multi:0,internet_access:"partial",internet_pct:27.9,internet_year:"2024",mobile_per_100:54,mobile_year:"2023",national_population:19009151,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ERI",country:"Eritrea",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"no",internet_pct:14.3,internet_year:"2020",mobile_per_100:59.1,mobile_year:"2022",national_population:3535603,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRQ",country:"Iraq",region:"Middle East",clusters:7,people_groups:8,multi:1,internet_access:"yes",internet_pct:81.5,internet_year:"2024",mobile_per_100:100.1,mobile_year:"2024",national_population:46042015,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BFA",country:"Burkina Faso",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"partial",internet_pct:28.3,internet_year:"2024",mobile_per_100:116.6,mobile_year:"2024",national_population:23548781,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"THA",country:"Thailand",region:"Asia",clusters:8,people_groups:8,multi:0,internet_access:"yes",internet_pct:90.9,internet_year:"2024",mobile_per_100:160.6,mobile_year:"2024",national_population:71668011,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PSE",country:"State of Palestine",region:"Middle East",clusters:3,people_groups:7,multi:1,internet_access:"yes",internet_pct:86.6,internet_year:"2023",mobile_per_100:76.7,mobile_year:"2023",national_population:5289152,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"OMN",country:"Oman",region:"Middle East",clusters:7,people_groups:7,multi:0,internet_access:"yes",internet_pct:95.3,internet_year:"2024",mobile_per_100:120.6,mobile_year:"2024",national_population:5281538,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MMR",country:"Myanmar",region:"Asia",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:45.4,internet_year:"2020",mobile_per_100:114.3,mobile_year:"2024",national_population:54500091,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CMR",country:"Cameroon",region:"Africa",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:46.3,internet_year:"2024",mobile_per_100:108.2,mobile_year:"2024",national_population:29123744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TGO",country:"Togo",region:"Africa",clusters:5,people_groups:6,multi:1,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:8406558,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JPN",country:"Japan",region:"Asia",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:85.5,internet_year:"2024",mobile_per_100:178.4,mobile_year:"2023",national_population:123975371,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UGA",country:"Uganda",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"no",internet_pct:8.9,internet_year:"2024",mobile_per_100:83.2,mobile_year:"2024",national_population:50015092,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZMB",country:"Zambia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:108.7,mobile_year:"2024",national_population:21314956,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VEN",country:"Venezuela",region:"Latin America & Caribbean",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:76.7,internet_year:"2024",mobile_per_100:71,mobile_year:"2024",national_population:28405543,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NAM",country:"Namibia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:3030131,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRN",country:"Brunei Darussalam",region:"Asia",clusters:4,people_groups:5,multi:1,internet_access:"yes",internet_pct:96.3,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:462721,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KEN",country:"Kenya",region:"Africa",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:35,internet_year:"2024",mobile_per_100:126.5,mobile_year:"2024",national_population:56432944,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SYR",country:"Syrian Arab Republic",region:"Middle East",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:33.8,internet_year:"2018",mobile_per_100:71.2,mobile_year:"2024",national_population:24672760,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBN",country:"Lebanon",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:80.6,internet_year:"2024",mobile_per_100:74,mobile_year:"2022",national_population:5805962,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MOZ",country:"Mozambique",region:"Africa",clusters:4,people_groups:4,multi:0,internet_access:"no",internet_pct:20.5,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2024",national_population:34631766,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAR",country:"Morocco",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:91.2,internet_year:"2024",mobile_per_100:153.1,mobile_year:"2024",national_population:38081173,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"QAT",country:"Qatar",region:"Middle East",clusters:1,people_groups:3,multi:1,internet_access:"yes",internet_pct:98.1,internet_year:"2024",mobile_per_100:153.6,mobile_year:"2024",national_population:2857822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SAU",country:"Saudi Arabia",region:"Middle East",clusters:2,people_groups:3,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:35300280,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUR",country:"Türkiye",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:87.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:85518661,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AZE",country:"Azerbaijan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:90.4,internet_year:"2024",mobile_per_100:109.5,mobile_year:"2024",national_population:10202830,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GMB",country:"Republic of The Gambia",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:49.5,internet_year:"2024",mobile_per_100:126.2,mobile_year:"2024",national_population:2759988,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JOR",country:"Jordan",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:95.6,internet_year:"2024",mobile_per_100:69.6,mobile_year:"2024",national_population:11552876,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZWE",country:"Zimbabwe",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:94.2,mobile_year:"2024",national_population:16634373,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COM",country:"Comoros",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:32.5,internet_year:"2024",mobile_per_100:109.9,mobile_year:"2023",national_population:866628,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"USA",country:"United States of America",region:"Other",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:94.7,internet_year:"2024",mobile_per_100:113.2,mobile_year:"2024",national_population:340003797,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGD",country:"Bangladesh",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:53.4,internet_year:"2024",mobile_per_100:108.1,mobile_year:"2024",national_population:173562364,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNB",country:"Guinea-Bissau",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:29.8,internet_year:"2024",mobile_per_100:147.2,mobile_year:"2024",national_population:2201352,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KOS",country:"KOS",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MRT",country:"Mauritania",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:45.8,internet_year:"2024",mobile_per_100:92.1,mobile_year:"2024",national_population:5169395,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESH",country:"Western Sahara",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TJK",country:"Tajikistan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:55.8,internet_year:"2024",mobile_per_100:76.2,mobile_year:"2023",national_population:10590927,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"EGY",country:"Egypt",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:74.6,internet_year:"2024",mobile_per_100:97.1,mobile_year:"2024",national_population:116538258,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNG",country:"Mongolia",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:85.1,internet_year:"2024",mobile_per_100:140.7,mobile_year:"2024",national_population:3524788,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHR",country:"Bahrain",region:"Middle East",clusters:1,people_groups:2,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:1588670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SUR",country:"Suriname",region:"North America & Non-Spanish Caribbean",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:142.1,mobile_year:"2024",national_population:634431,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NER",country:"Niger",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:60.6,mobile_year:"2024",national_population:27032412,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZAF",country:"South Africa",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:78.4,internet_year:"2024",mobile_per_100:179.3,mobile_year:"2024",national_population:64007187,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CCK",country:"Cocos (Keeling) Islands",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COG",country:"Republic of the Congo",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:47.3,internet_year:"2024",mobile_per_100:95.5,mobile_year:"2024",national_population:6332961,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARE",country:"United Arab Emirates",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:203.2,mobile_year:"2024",national_population:10986400,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GAB",country:"Gabon",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:68.7,internet_year:"2024",mobile_per_100:125.3,mobile_year:"2024",national_population:2538952,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUF",country:"French Guiana",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CIV",country:"Cote d'Ivoire",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:41.4,internet_year:"2024",mobile_per_100:183.9,mobile_year:"2024",national_population:31934230,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KGZ",country:"Kyrgyzstan",region:"Asia",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:107.5,mobile_year:"2024",national_population:7221868,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBR",country:"Liberia",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:32.2,internet_year:"2024",mobile_per_100:32.1,mobile_year:"2022",national_population:5612817,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWE",country:"Sweden",region:"Europe",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:140.7,mobile_year:"2024",national_population:10569709,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUN",country:"Tunisia",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:76.5,internet_year:"2024",mobile_per_100:117.6,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLE",country:"Sierra Leone",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:25.1,internet_year:"2024",mobile_per_100:107.9,mobile_year:"2022",national_population:8642022,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AND",country:"Andorra",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:155.7,mobile_year:"2024",national_population:81938,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SEN",country:"Senegal",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:60.1,internet_year:"2024",mobile_per_100:123.9,mobile_year:"2024",national_population:18501984,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNE",country:"Montenegro",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.9,internet_year:"2024",mobile_per_100:221.7,mobile_year:"2024",national_population:623525,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BOL",country:"Bolivia",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:79.7,internet_year:"2024",mobile_per_100:98,mobile_year:"2024",national_population:12413315,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ECU",country:"Ecuador",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:77.2,internet_year:"2024",mobile_per_100:101.6,mobile_year:"2024",national_population:18135478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VIR",country:"Virgin Islands, U.S.",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.5,mobile_year:"2022",national_population:104377,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ATG",country:"Antigua and Barbuda",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.7,internet_year:"2024",mobile_per_100:200.5,mobile_year:"2022",national_population:93772,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARM",country:"Armenia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.3,internet_year:"2024",mobile_per_100:134.9,mobile_year:"2024",national_population:3033500,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ABW",country:"Aruba",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.6,mobile_year:"2022",national_population:107995,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHS",country:"Bahamas",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:92.5,internet_year:"2024",mobile_per_100:96.7,mobile_year:"2024",national_population:401283,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRB",country:"Barbados",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.4,internet_year:"2024",mobile_per_100:114.6,mobile_year:"2022",national_population:282467,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLR",country:"Belarus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.3,internet_year:"2024",mobile_per_100:131.1,mobile_year:"2024",national_population:9132629,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BMU",country:"Bermuda",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:96.7,mobile_year:"2024",national_population:64636,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BIH",country:"Bosnia and Herzegovina",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.1,internet_year:"2024",mobile_per_100:121.2,mobile_year:"2024",national_population:3164253,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VGB",country:"Virgin Islands, British",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:39471,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGR",country:"Bulgaria",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82.4,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:6441421,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KHM",country:"Cambodia",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.5,internet_year:"2024",mobile_per_100:116.1,mobile_year:"2024",national_population:17638801,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYM",country:"Cayman Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:139.3,mobile_year:"2022",national_population:74457,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CAF",country:"Central African Republic",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:13.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2022",national_population:5330690,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CXR",country:"Christmas Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COK",country:"Cook Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUB",country:"Cuba",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.5,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:10979783,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUW",country:"Curaçao",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:93.8,mobile_year:"2023",national_population:155967,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYP",country:"Cyprus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.6,internet_year:"2024",mobile_per_100:156.2,mobile_year:"2024",national_population:1358282,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DJI",country:"Djibouti",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.3,internet_year:"2024",mobile_per_100:48.5,mobile_year:"2023",national_population:1168722,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DMA",country:"Dominica",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:85.2,mobile_year:"2022",national_population:66205,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNQ",country:"Equatorial Guinea",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.3,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2022",national_population:1892516,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FRO",country:"Faroe Islands",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:105.8,mobile_year:"2022",national_population:54640,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FJI",country:"Fiji",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:74.7,internet_year:"2024",mobile_per_100:574.2,mobile_year:"2024",national_population:928784,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PYF",country:"French Polynesia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:118.8,mobile_year:"2023",national_population:281807,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GEO",country:"Georgia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.8,internet_year:"2024",mobile_per_100:161.2,mobile_year:"2024",national_population:3812518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIB",country:"Gibraltar",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:97.6,mobile_year:"2022",national_population:39329,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRC",country:"Greece",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.3,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:10405134,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRD",country:"Grenada",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.2,internet_year:"2024",mobile_per_100:95.8,mobile_year:"2022",national_population:117207,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GLP",country:"Guadeloupe",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUM",country:"Guam",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:167777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GGY",country:"Guernsey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISL",country:"Iceland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.2,internet_year:"2024",mobile_per_100:120.9,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KIR",country:"Kiribati",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.4,internet_year:"2024",mobile_per_100:53.5,mobile_year:"2024",national_population:134518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JAM",country:"Jamaica",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:90.1,internet_year:"2024",mobile_per_100:117.7,mobile_year:"2024",national_population:2839175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JEY",country:"Jersey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KAZ",country:"Kazakhstan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.4,internet_year:"2024",mobile_per_100:127.1,mobile_year:"2024",national_population:20592571,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRK",country:"North Korea",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:24.1,mobile_year:"2022",national_population:26498823,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KWT",country:"Kuwait",region:"Middle East",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99.7,internet_year:"2024",mobile_per_100:167.7,mobile_year:"2023",national_population:4897263,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LIE",country:"Liechtenstein",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.3,internet_year:"2024",mobile_per_100:128.9,mobile_year:"2024",national_population:40450,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LUX",country:"Luxembourg",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.8,internet_year:"2024",mobile_per_100:144.5,mobile_year:"2023",national_population:677012,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYT",country:"Mayotte",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MDV",country:"Maldives",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.2,internet_year:"2024",mobile_per_100:148.1,mobile_year:"2024",national_population:527799,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLT",country:"Malta",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.9,internet_year:"2024",mobile_per_100:142.1,mobile_year:"2024",national_population:568847,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNP",country:"Northern Mariana Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:44278,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MHL",country:"Marshall Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.9,internet_year:"2024",mobile_per_100:39.7,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MUS",country:"Mauritius",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:73.3,internet_year:"2024",mobile_per_100:172.7,mobile_year:"2024",national_population:1245779,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FSM",country:"Micronesia, Federated States of",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:20,mobile_year:"2022",national_population:113160,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MCO",country:"Monaco",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99,internet_year:"2024",mobile_per_100:107.4,mobile_year:"2024",national_population:38631,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MSR",country:"Montserrat",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NCL",country:"New Caledonia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.7,mobile_year:"2022",national_population:292639,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NIU",country:"Niue",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VUT",country:"Vanuatu",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:89.3,mobile_year:"2023",national_population:327777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NFK",country:"Norfolk Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"HKG",country:"Hong Kong",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:364.8,mobile_year:"2024",national_population:7524100,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAC",country:"Macao",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.8,internet_year:"2024",mobile_per_100:201.1,mobile_year:"2024",national_population:687e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PLW",country:"Palau",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.9,internet_year:"2024",mobile_per_100:135.4,mobile_year:"2023",national_population:17695,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PNG",country:"Papua New Guinea",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:18.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2024",national_population:10576502,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLM",country:"Saint Barthélemy",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SHN",country:"Saint Helena",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LCA",country:"Saint Lucia",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.2,internet_year:"2024",mobile_per_100:98.7,mobile_year:"2022",national_population:179744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SMR",country:"San Marino",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:97.4,internet_year:"2024",mobile_per_100:120.3,mobile_year:"2022",national_population:33977,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ASM",country:"American Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46765,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WSM",country:"Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:62.4,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"STP",country:"Sao Tome and Principe",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:59.1,internet_year:"2024",mobile_per_100:62.4,mobile_year:"2024",national_population:235536,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SXM",country:"Sint Maarten (Dutch part)",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:205.4,mobile_year:"2022",national_population:43350,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLB",country:"Solomon Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:29,internet_year:"2024",mobile_per_100:62.1,mobile_year:"2022",national_population:819198,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LKA",country:"Sri Lanka",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:54.6,internet_year:"2024",mobile_per_100:132.5,mobile_year:"2024",national_population:21916e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SJM",country:"Svalbard and Jan Mayen",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWZ",country:"Eswatini",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.4,internet_year:"2024",mobile_per_100:139.8,mobile_year:"2024",national_population:1242822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TKL",country:"Tokelau",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TON",country:"Tonga",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.4,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:104175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCA",country:"Turks and Caicos Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46535,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VCT",country:"Saint Vincent and the Grenadines",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:76.2,internet_year:"2024",mobile_per_100:108.4,mobile_year:"2024",national_population:100616,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WLF",country:"Wallis and Futuna",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRY",country:"Paraguay",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.6,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2023",national_population:6929153,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FIN",country:"Finland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.7,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:5619911,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ALB",country:"Albania",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.9,internet_year:"2024",mobile_per_100:89.1,mobile_year:"2024",national_population:2377128,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAN",country:"Panama",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:156.6,mobile_year:"2023",national_population:4515577,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NZL",country:"New Zealand",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.1,mobile_year:"2024",national_population:529e4,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CZE",country:"Czech Republic",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:87.7,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:10905028,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GHA",country:"Ghana",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.2,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:34427414,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PHL",country:"Philippines",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.3,internet_year:"2024",mobile_per_100:115.3,mobile_year:"2024",national_population:115843670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISR",country:"Israel",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:10002200,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUY",country:"Guyana",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83,internet_year:"2024",mobile_per_100:112.6,mobile_year:"2022",national_population:831087,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UZB",country:"Uzbekistan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.5,internet_year:"2024",mobile_per_100:110.5,mobile_year:"2024",national_population:36361859,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESP",country:"Spain",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:130.3,mobile_year:"2024",national_population:48848840,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MWI",country:"Malawi",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:69.3,mobile_year:"2024",national_population:21655286,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}}]},e0={class:"ci-tot"},o0={class:"ci-chip"},t0={class:"ci-chip"},n0={class:"ci-chip"},a0={class:"ci-chip"},r0=["onClick"],s0={class:"sec-name"},i0={class:"sec-meta"},l0={class:"r-name"},c0={class:"r-sub"},u0={class:"r-num"},p0={class:"r-sub"},d0={class:"r-num"},g0=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-list",setup(e){const o=xe("profileConfig",le(null)),t=z(()=>{var d;return((d=o.value)==null?void 0:d.isDark)===!0}),n=z(()=>Q$.countries||[]),a=z(()=>{const d=new Map;for(const p of n.value){const m=p.region||"Other";d.has(m)||d.set(m,[]),d.get(m).push(p)}return[...d.entries()].map(([p,m])=>({name:p,items:m.slice().sort(($,f)=>f.people_groups-$.people_groups),groups:m.reduce(($,f)=>$+f.people_groups,0),unknown:m.filter($=>$.internet_access==="unknown").length})).sort((p,m)=>m.groups-p.groups)}),r=le({}),s=d=>!!r.value[d],i=d=>{r.value={...r.value,[d]:!r.value[d]}},l=z(()=>{const d=n.value;return{countries:d.length,resolved:d.filter(p=>p.internet_access!=="unknown").length,unknown:d.filter(p=>p.internet_access==="unknown").length,low:d.filter(p=>p.internet_access==="no").length}}),c=d=>d==="yes"?"ok":d==="partial"?"mid":d==="no"?"low":"unk",u=d=>d==="yes"?"connected":d==="partial"?"partial":d==="no"?"low":"unknown";return _o(".ci{position:absolute;inset:0;overflow-y:auto;padding:20px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ci.is-dark{background:#0a1410;color:#e5e7eb}.ci-h{margin:0 0 4px;font-size:19px;font-weight:700;text-align:center}.ci-sub{margin:0 auto 18px;max-width:640px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.ci-tot{display:flex;gap:14px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.ci-chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:600}.is-dark .ci-chip{background:rgba(255,255,255,.10)}.sec{max-width:1080px;margin:0 auto;padding-bottom:34px}.sec-head{position:sticky;top:0;z-index:6;background:#f6f7f9;display:flex;align-items:baseline;gap:10px;padding:10px 10px 8px;margin:0 2px 10px;border-bottom:1px solid rgba(0,0,0,.10);cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{background:#0a1410;border-bottom-color:rgba(255,255,255,.12)}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s}.sec-caret.open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700}.sec-meta{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.is-dark .row{border-bottom-color:rgba(255,255,255,.07)}.r-name{font-size:13.5px;font-weight:600}.r-sub{font-size:11px;opacity:.6}.r-num{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;min-width:72px}.pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:rgba(16,185,129,.15);color:#0b7a5b}.pill.mid{background:rgba(245,158,11,.16);color:#8a6414}.pill.low{background:rgba(220,38,38,.13);color:#a12020}.pill.unk{background:rgba(0,0,0,.07);color:#6b7280}.is-dark .pill.unk{background:rgba(255,255,255,.10);color:#9ca3af}.src{max-width:1080px;margin:8px auto 0;font-size:11px;line-height:1.6;opacity:.6;text-align:center}","doxa-cities-internet"),(d,p)=>(I(),G("div",{class:ye(["ci",{"is-dark":t.value}])},[p[1]||(p[1]=k("h2",{class:"ci-h"},"Cities with Internet",-1)),p[2]||(p[2]=k("p",{class:"ci-sub"},[Ce(" Connectivity where the unengaged people groups live. Every figure is a measured national statistic with its observation year — "),k("strong",null,"unknown means unmeasured, never assumed"),Ce(". ")],-1)),k("div",e0,[k("span",o0,K(l.value.countries)+" countries",1),k("span",t0,K(l.value.resolved)+" measured",1),k("span",n0,K(l.value.unknown)+" unknown",1),k("span",a0,K(l.value.low)+" low-connectivity",1)]),(I(!0),G(fe,null,Xe(a.value,m=>(I(),G("section",{key:m.name,class:"sec"},[k("button",{type:"button",class:"sec-head",onClick:$=>i(m.name)},[k("span",{class:ye(["sec-caret",{open:!s(m.name)}])},"▶",2),k("h3",s0,K(m.name),1),k("span",i0,[Ce(K(m.items.length)+" countries · "+K(m.groups.toLocaleString())+" people groups ",1),m.unknown?(I(),G(fe,{key:0},[Ce(" · "+K(m.unknown)+" unmeasured",1)],64)):pe("",!0)])],8,r0),wi(k("div",null,[(I(!0),G(fe,null,Xe(m.items,$=>(I(),G("div",{key:$.iso3,class:"row"},[k("div",null,[k("div",l0,K($.country),1),k("div",c0,[Ce(K($.people_groups)+" people groups · "+K($.clusters)+" locations ",1),$.multi?(I(),G(fe,{key:0},[Ce(" · "+K($.multi)+" population centres",1)],64)):pe("",!0)])]),k("div",u0,[$.internet_pct!==null&&$.internet_pct!==void 0?(I(),G(fe,{key:0},[Ce(K($.internet_pct)+"% ",1),k("div",p0,K($.internet_year),1)],64)):(I(),G(fe,{key:1},[Ce("—")],64))]),k("div",d0,[$.mobile_per_100!==null&&$.mobile_per_100!==void 0?(I(),G(fe,{key:0},[Ce(K($.mobile_per_100)+" ",1),p[0]||(p[0]=k("div",{class:"r-sub"},"mob/100",-1))],64)):(I(),G(fe,{key:1},[Ce("—")],64))]),k("span",{class:ye(["pill",c($.internet_access)])},K(u($.internet_access)),3)]))),128))],512),[[vl,!s(m.name)]])]))),128)),p[3]||(p[3]=k("p",{class:"src"}," Internet and mobile figures: World Bank Open Data (CC BY 4.0), most recent observation 2018–2024. Banding: connected ≥60% · partial 25–59% · low <25% of population using the internet. Country-resolution — per-city measurements are not publicly available at this scale. ISP names, carrier names and censorship history require per-country cited reporting and are not shown. ",-1))],2))}}},Symbol.toStringTag,{value:"Module"})),as={boundaries:{label:"geoBoundaries",href:"https://www.geoboundaries.org",title:"Country and administrative boundaries — geoBoundaries gbOpen (mixed upstream licences; see docs)"},mapbox:{label:"Mapbox",href:"https://www.mapbox.com/about/maps/"},osm:{label:"© OpenStreetMap",href:"https://www.openstreetmap.org/copyright"}};function h0(e,o={}){if(!e||typeof e.addControl!="function")return null;const{boundaries:t=!0,basemap:n=!0}=o,a=document.createElement("div");a.className="doxa-attribution mapboxgl-ctrl",a.style.cssText=["font:11px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif","background:rgba(255,255,255,.82)","color:#3a4048","padding:2px 6px","border-radius:3px 0 0 0","pointer-events:auto","max-width:min(92vw,420px)"].join(";");const r=[];t&&r.push(as.boundaries),n&&(r.push(as.mapbox),r.push(as.osm)),a.innerHTML=r.map(i=>`<a href="${i.href}" target="_blank" rel="noopener noreferrer"`+(i.title?` title="${i.title}"`:"")+` style="color:#2a5d8f;text-decoration:none">${i.label}</a>`).join(" · ");const s={onAdd:()=>a,onRemove:()=>{a.parentNode&&a.parentNode.removeChild(a)},getDefaultPosition:()=>"bottom-right"};return e.addControl(s,"bottom-right"),s}const f0={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const o=le(null);return Lo("mapToolbar",{el:o}),_o(`
|
||
.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"),(t,n)=>(I(),G("div",{ref_key:"toolbarEl",ref:o,class:ye(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[An(t.$slots,"default")],2))}},m0=["title","aria-label","disabled"],Un={__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 _o(`
|
||
.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"),(o,t)=>(I(),G("button",{class:ye(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:t[0]||(t[0]=n=>o.$emit("click"))},[An(o.$slots,"default")],10,m0))}},b0={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t:o}=po(),t=e;function n(){var a;t.disabled||(a=t.map)==null||a.zoomIn()}return(a,r)=>(I(),Ze(Un,{"is-dark":e.isDark,disabled:e.disabled,title:te(o)("buttons.zoomIn"),onClick:n},{default:To(()=>[...r[0]||(r[0]=[k("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},_0={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t:o}=po(),t=e;function n(){var a;t.disabled||(a=t.map)==null||a.zoomOut()}return(a,r)=>(I(),Ze(Un,{"is-dark":e.isDark,disabled:e.disabled,title:te(o)("buttons.zoomOut"),onClick:n},{default:To(()=>[...r[0]||(r[0]=[k("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},$0={__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:o}=po(),t=e;function n(){var r;(r=t.map)==null||r.flyTo({center:t.center,zoom:t.zoom,duration:1200})}function a(){if(t.map){if(typeof navigator>"u"||!navigator.geolocation){n();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:s,latitude:i}=r.coords;Number.isFinite(s)&&Number.isFinite(i)?t.map.flyTo({center:[s,i],zoom:t.userZoom,duration:1500}):n()},()=>n(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,s)=>(I(),Ze(Un,{"is-dark":e.isDark,title:te(o)("buttons.resetView"),onClick:a},{default:To(()=>[...s[0]||(s[0]=[k("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[k("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"]))}},y0={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},v0={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},k0={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:o}){const{t}=po(),n=e,a=o,r=le(!1);let s=null,i=null,l=null,c=null,u=null,d=null,p=null,m=null,$=null,f=null,_=null,v=0,C=0,w=null,A=null;function x(){if(typeof document>"u")return!1;const ne=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(ne)||ne.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function P(){var ne,X,F;return((F=(X=(ne=n.mapContainer)==null?void 0:ne.getRootNode)==null?void 0:X.call(ne))==null?void 0:F.host)??null}function y(){var X,F;const ne=(F=(X=n.mapContainer)==null?void 0:X.getRootNode)==null?void 0:F.call(X);return document.fullscreenElement||document.webkitFullscreenElement||(ne&&ne instanceof ShadowRoot?ne.fullscreenElement:null)||null}function L(ne){const X=ne.requestFullscreen||ne.webkitRequestFullscreen;if(!X)return Promise.reject(new Error("Fullscreen API unavailable"));const F=X.call(ne);return F&&typeof F.then=="function"?F:Promise.resolve()}function b(){const ne=document.exitFullscreen||document.webkitExitFullscreen;if(!ne)return Promise.reject(new Error("Fullscreen API unavailable"));const X=ne.call(document);return X&&typeof X.then=="function"?X:Promise.resolve()}function O(){const ne=P();if(!ne)return!1;if(l=ne,i=ne.style.cssText,ne.style.position="fixed",ne.style.top="0",ne.style.left="0",ne.style.right="0",ne.style.bottom="0",ne.style.width="100vw",ne.style.height="100vh",ne.style.height="100dvh",ne.style.zIndex="2147483647",ne.style.margin="0",ne.style.borderRadius="0",ne.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){v=window.scrollY||window.pageYOffset||0,C=window.scrollX||window.pageXOffset||0;const X=document.body,F=document.documentElement;c=X?X.style.overflow:null,u=F?F.style.overflow:null,d=X?X.style.position:null,p=X?X.style.top:null,m=X?X.style.left:null,$=X?X.style.width:null,f=X?X.style.touchAction:null,_=F?F.style.touchAction:null,F&&(F.style.overflow="hidden",F.style.touchAction="none"),X&&(X.style.overflow="hidden",X.style.position="fixed",X.style.top=`-${v}px`,X.style.left=`-${C}px`,X.style.width="100%",X.style.touchAction="none"),w=W=>{if(!l)return;const Y=W.target;Y&&(Y===l||l.contains&&l.contains(Y))||W.cancelable&&W.preventDefault()},A=W=>{if(!l)return;const Y=W.target;Y&&(Y===l||l.contains&&l.contains(Y))||W.cancelable&&W.preventDefault()},document.addEventListener("touchmove",w,{passive:!1,capture:!0}),document.addEventListener("wheel",A,{passive:!1,capture:!0})}return!0}function R(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const ne=document.body,X=document.documentElement;ne&&(ne.style.overflow=c??"",ne.style.position=d??"",ne.style.top=p??"",ne.style.left=m??"",ne.style.width=$??"",ne.style.touchAction=f??""),X&&(X.style.overflow=u??"",X.style.touchAction=_??""),w&&(document.removeEventListener("touchmove",w,{capture:!0}),w=null),A&&(document.removeEventListener("wheel",A,{capture:!0}),A=null),typeof window<"u"&&(v||C)&&window.scrollTo(C,v)}c=null,u=null,d=null,p=null,m=null,$=null,f=null,_=null,v=0,C=0}}function q(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function oe(){if(!x()){r.value?(R(),r.value=!1,a("change",!1)):O()&&(r.value=!0,a("change",!0)),q();return}if(y())b().then(()=>{r.value=!1,a("change",!1)}).catch(()=>{});else{const X=P()??document.documentElement;L(X).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{L(document.documentElement).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{})})}}function ge(){r.value=!!y(),a("change",r.value)}return zo(()=>{var X,F;document.addEventListener("fullscreenchange",ge),document.addEventListener("webkitfullscreenchange",ge);const ne=(F=(X=n.mapContainer)==null?void 0:X.getRootNode)==null?void 0:F.call(X);ne instanceof ShadowRoot&&(s=ne,ne.addEventListener("fullscreenchange",ge),ne.addEventListener("webkitfullscreenchange",ge))}),Vo(()=>{document.removeEventListener("fullscreenchange",ge),document.removeEventListener("webkitfullscreenchange",ge),s&&(s.removeEventListener("fullscreenchange",ge),s.removeEventListener("webkitfullscreenchange",ge),s=null),l&&R()}),(ne,X)=>(I(),Ze(Un,{"is-dark":e.isDark,active:r.value,title:te(t)("buttons.toggleFullscreen"),onClick:oe},{default:To(()=>[r.value?(I(),G("svg",v0,[...X[1]||(X[1]=[k("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)])])):(I(),G("svg",y0,[...X[0]||(X[0]=[k("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"]))}},w0=Gt&&Gt.tagName.toUpperCase()==="SCRIPT"&&Gt.src||new URL("cities-internet.js",document.baseURI).href,xt=e=>String(e||"").trim().replace(/\/+$/,"");function au(){try{const o=String(w0||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!o||o[2]!==o[3]?null:o[1]||null}catch{return null}}function x0(e){const o=e==null?void 0:e.embedBaseUrl;if(typeof o=="string"&&o.trim())return xt(o);if(typeof window<"u"){const t=window.MAP_EMBED_BASE_URL;if(typeof t=="string"&&t.trim())return xt(t)}return xt(au()||"")}function ru(e){const o=e==null?void 0:e.assetsBase;if(typeof o=="string"&&o.trim()){const n=xt(o);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const t=xt((e==null?void 0:e.treeBase)||"")||xt(au()||"");if(t)try{const n=typeof document<"u"?document.baseURI:void 0;return xt(new URL(t+"/assets",n).href)}catch{return xt(t+"/assets")}return"./assets"}function A0({shareUrl:e,embedPath:o,profileConfig:t}={}){const n=t||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(o||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=x0(n),l=s.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 S0=["aria-label"],L0={class:"mcm-header"},C0={class:"mcm-title"},N0={class:"mcm-body"},P0=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",rs="doxa-map-menu-open",E0={__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:o}){_o(`
|
||
.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 t=e,n=o,a=xe("mapToolbar",null),r=le(null),s=le(null),i=le({});function l(){var b;const m=(b=a==null?void 0:a.el)==null?void 0:b.value,$=r.value;if(!m||!$){i.value={};return}const f=$.getBoundingClientRect(),_=m.getBoundingClientRect(),v=(_.left+_.right)/2>(f.left+f.right)/2,C=8,w=12,A=v?f.right-_.left+C:_.right-f.left+C,x=Math.max(200,Math.min(t.width,f.width-A-w)),P=Math.max(0,_.top-f.top);let L=$.getAttribute&&$.getAttribute("data-map-area")==="share-fallback"?Math.max(120,(window.innerHeight||900)-_.top-w):Math.max(120,f.height-P-w);t.matchToolbar&&(L=Math.max(120,Math.min(L,_.height))),t.maxHeight&&(L=Math.min(L,t.maxHeight)),i.value={top:`${Math.round(P)}px`,[v?"right":"left"]:`${Math.round(A)}px`,width:`${Math.round(x)}px`,maxHeight:`${Math.round(L)}px`,...t.height?{height:`${Math.round(Math.min(t.height,L))}px`}:{}}}function c(m){t.open&&m.detail!==s.value&&n("close")}Ke(()=>t.open,async m=>{var $;if(m){await mt(),l();try{($=r.value)==null||$.dispatchEvent(new CustomEvent(rs,{detail:s.value}))}catch{}}});function u(){t.open&&l()}function d(m){m.key==="Escape"&&t.open&&n("close")}function p(m){var f;if(!t.open)return;const $=m.composedPath?m.composedPath():[m.target];s.value&&$.includes(s.value)||(f=a==null?void 0:a.el)!=null&&f.value&&$.includes(a.el.value)||$.some(_=>{var v,C,w,A;return((C=(v=_==null?void 0:_.classList)==null?void 0:v.contains)==null?void 0:C.call(v,"mapboxgl-canvas"))||((A=(w=_==null?void 0:_.classList)==null?void 0:w.contains)==null?void 0:A.call(w,"maplibregl-canvas"))})&&n("close")}return zo(()=>{var m,$,f;r.value=(($=(m=a==null?void 0:a.el)==null?void 0:m.value)==null?void 0:$.closest(P0))||null,(f=r.value)==null||f.addEventListener(rs,c),window.addEventListener("resize",u),document.addEventListener("click",p,!0),document.addEventListener("keydown",d)}),Vo(()=>{var m;(m=r.value)==null||m.removeEventListener(rs,c),window.removeEventListener("resize",u),document.removeEventListener("click",p,!0),document.removeEventListener("keydown",d)}),(m,$)=>(I(),Ze(Yp,{to:r.value,disabled:!r.value},[e.open?(I(),G("div",{key:0,ref_key:"el",ref:s,class:ye(["mcm",{light:!e.isDark}]),style:ze(i.value),role:"dialog","aria-label":e.title},[k("div",L0,[k("span",C0,K(e.title),1),k("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:$[0]||($[0]=f=>n("close"))},[...$[1]||($[1]=[k("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[k("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),k("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),k("div",N0,[An(m.$slots,"default")])],14,S0)):pe("",!0)],8,["to","disabled"]))}},O0={class:"share-steps"},T0={class:"share-tabs"},M0={key:0,class:"share-body"},R0={class:"share-url-box"},I0={class:"share-url-text"},F0={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},D0={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"},B0={key:1,class:"share-body"},G0={class:"share-size-pills"},U0=["onClick"],j0={class:"share-code-box"},W0={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},z0={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"},V0={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){_o(`
|
||
.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:o,tm:t,rt:n}=po(),a=e,r=le(null),s=le(!1),i=le(null),l=le(null),c=le("link"),u=le(!1),d=le(!1),p=le("medium"),m={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},$=xe("profileConfig",null),f=z(()=>A0({embedPath:a.embedPath,profileConfig:te($)||null})),_=z(()=>{const O=m[p.value].height;return'<iframe src="'+f.value+'" width="100%" height="'+O+'" style="border:none; border-radius:12px;" allowfullscreen></iframe>'});function v(){s.value=!s.value,s.value&&(c.value="link",u.value=!1,d.value=!1)}function C(){s.value=!1}async function w(O){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(O),!0}catch{}try{const R=document.createElement("textarea");R.value=O,R.setAttribute("readonly",""),R.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(R),R.select();const q=document.execCommand("copy");return document.body.removeChild(R),q}catch{return!1}}async function A(){await w(f.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function x(){await w(_.value)&&(d.value=!0,setTimeout(()=>{d.value=!1},2e3))}const P=xe("mapToolbar",null),y=le(null);Lo("mapToolbar",P||{el:y});const L=!P;function b(O){if(r.value=O||null,!L||!O){O||(y.value=null);return}const R=O.offsetParent||O.parentElement;R&&!R.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&R.setAttribute("data-map-area","share-fallback"),y.value=O}return(O,R)=>(I(),G("div",{ref:b,class:"share-wrap","data-share-root":""},[Me(Un,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:s.value,title:te(o)("buttons.share"),onClick:v},{default:To(()=>[...R[2]||(R[2]=[k("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"},[k("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),k("polyline",{points:"16 6 12 2 8 6"}),k("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),Me(E0,{open:s.value,title:te(o)("buttons.share"),"is-dark":e.isDark,onClose:C},{default:To(()=>[k("div",{ref_key:"popoverEl",ref:i,class:ye(["share-pop",{light:!e.isDark}])},[k("ul",O0,[(I(!0),G(fe,null,Xe(te(t)("buttons.shareSteps"),(q,oe)=>(I(),G("li",{key:oe},K(te(n)(q)),1))),128))]),k("div",T0,[k("button",{class:ye(["share-tab",{active:c.value==="link"}]),onClick:R[0]||(R[0]=q=>c.value="link")},"Embed link",2),k("button",{class:ye(["share-tab",{active:c.value==="embed"}]),onClick:R[1]||(R[1]=q=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(I(),G("div",M0,[k("div",R0,[k("div",I0,K(f.value),1)]),k("button",{class:ye(["share-primary-btn",{copied:u.value}]),onClick:A},[u.value?(I(),G("svg",D0,[...R[4]||(R[4]=[k("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(I(),G("svg",F0,[...R[3]||(R[3]=[k("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),k("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),Ce(" "+K(u.value?"Copied!":"Copy Link"),1)],2)])):pe("",!0),c.value==="embed"?(I(),G("div",B0,[R[7]||(R[7]=k("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),k("div",G0,[(I(),G(fe,null,Xe(m,(q,oe)=>k("button",{key:oe,class:ye(["share-size-pill",{active:p.value===oe}]),onClick:ge=>p.value=oe},K(q.label),11,U0)),64))]),k("div",j0,K(_.value),1),k("button",{class:ye(["share-secondary-btn",{copied:d.value}]),onClick:x},[d.value?(I(),G("svg",z0,[...R[6]||(R[6]=[k("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(I(),G("svg",W0,[...R[5]||(R[5]=[k("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),k("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),Ce(" "+K(d.value?"Copied!":"Copy Code"),1)],2)])):pe("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},H0=["mapbox","maplibre"],su="mapbox";function K0(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function q0(e){const o=K0(e),t=o==null?void 0:o.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,r=String(t||n||a||su).toLowerCase().trim();return H0.includes(r)?r:su}function iu(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function Y0(e){if(typeof window>"u")return;const o=window.maplibregl,t=window.mapboxgl;return o&&o.Map&&e instanceof o.Map?o:t&&t.Map&&e instanceof t.Map?t:t||o}function X0(e,o="circle"){return iu(e)?{[`${o}-emissive-strength`]:1}:{}}const Z0=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 J0(e,o="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const t=Z0[e];return t?o==="maplibre"?{style:t.maplibre,lightPreset:void 0,paint:t.paint}:{style:t.mapbox,lightPreset:t.lightPreset,paint:t.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}const lu={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 Q0(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function ey(e){if(typeof window>"u")return!1;const o=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let t=!1;for(const n of o)if(!(!n||!n.setRTLTextPlugin))try{if(Q0(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(lu.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(lu.mapbox,null,!0);t=!0}catch{}return t}const ln={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 ss(e){var t;const o=((t=ln[e])==null?void 0:t.global)||ln.mapbox.global;return typeof window<"u"?window[o]:void 0}function oy(e){return(ln[e]||ln.mapbox).css||null}async function ty(e){const o=ln[e]||ln.mapbox;if(ss(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${o.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=o.css,document.head.appendChild(n)}const t=document.querySelector(`script[src="${o.js}"]`);if(t){if(ss(e))return;await new Promise(n=>{t.addEventListener("load",n,{once:!0}),t.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const r=document.createElement("script");r.src=o.js,r.async=!1,r.addEventListener("load",n,{once:!0}),r.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(r)})}async function ny(e,o){if(!e)return;const t=e.getRootNode();if(!(t instanceof ShadowRoot))return;const n=s=>new Promise(i=>setTimeout(i,s)),a=t.querySelector(`link[href="${o}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(s=>{a.addEventListener("load",s,{once:!0}),a.addEventListener("error",s,{once:!0})}),n(2e3)]);return}const r=document.createElement("link");r.rel="stylesheet",r.href=o,await Promise.race([new Promise(s=>{r.addEventListener("load",s,{once:!0}),r.addEventListener("error",s,{once:!0}),t.prepend(r)}),n(2e3)])}const is={};function ls(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Gt&&Gt.tagName.toUpperCase()==="SCRIPT"&&Gt.src||new URL("cities-internet.js",document.baseURI).href}<"u"&&(is==null?void 0:is.VITE_API_BASE_URL)||""}class cu{constructor(o={}){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=o.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=sn,this.sourcesConfig}getActiveSourceId(){var o;return((o=this.sourcesConfig)==null?void 0:o.activeSource)||"doxa-csv"}getSourceConfig(o){var t,n;return(n=(t=this.sourcesConfig)==null?void 0:t.sources)==null?void 0:n[o]}async setActiveSource(o){const t=this.getSourceConfig(o);if(!t)throw new Error(`Source not found: ${o}`);if(this.activeSource=t,this.cacheEnabled&&this.cache.has(o)){const n=this.cache.get(o);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return t.type==="csv"?await this.loadCSVData(t):t.type==="api"?await this.loadAPIData(t):t.type==="rest-api"&&await this.loadRestApiData(t),this.cacheEnabled&&this.cache.set(o,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(o=null){o?this.cache.delete(o):this.cache.clear()}isCached(o){return this.cache.has(o)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(o){const t=[],n=[];let a="",r=!1,s=[],i=!0;for(let l=0;l<o.length;l++){const c=o[l],u=o[l+1];if(c==='"')r&&u==='"'?(a+='"',l++):r=!r;else if(c===","&&!r)s.push(a.trim()),a="";else if((c===`
|
||
`||c==="\r")&&!r){if(c==="\r"&&u===`
|
||
`&&l++,a||s.length>0){if(s.push(a.trim()),a="",i)n.push(...s),i=!1;else if(s.length>1){const d={};n.forEach((p,m)=>{d[p]=s[m]||""}),t.push(d)}s=[]}}else a+=c}if((a||s.length>0)&&(s.push(a.trim()),!i&&s.length>1)){const l={};n.forEach((c,u)=>{l[c]=s[u]||""}),t.push(l)}return{headers:n,data:t}}async loadCSVData(o){try{const n=await(await fetch(this.baseUrl+o.path)).text(),{headers:a,data:r}=this.parseCSV(n);return this.rawData=r,this.validateFieldMappings(o.fieldMappings,a,o.name),this.normalizeData(o),this.normalizedData}catch(t){throw console.error("Failed to load CSV data:",t),t}}validateFieldMappings(o,t,n){const a=new Set(t.map(s=>s.trim())),r=[];for(const[s,i]of Object.entries(o||{}))if(Array.isArray(i))for(const l of i)a.has(l)||r.push({systemField:s,sourceField:l,isComposite:!0});else i&&!a.has(i)&&r.push({systemField:s,sourceField:i,isComposite:!1});r.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,r)}async loadAPIData(o){try{const n=await(await fetch(o.url||o.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(o),this.normalizedData}catch(t){throw console.error("Failed to load API data:",t),t}}async loadRestApiData(o){var l,c;const t=ls(),n=((l=o.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=o.defaultFields)==null?void 0:c.join(","))||"",r=[];a&&r.push(`fields=${a}`);const s={...o.queryParams||{}};this.locale&&(s.lang=this.locale);for(const[u,d]of Object.entries(s))r.push(`${u}=${encodeURIComponent(d)}`);const i=`${t}${n}?${r.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const d=u.headers.get("content-type")||"";if(!d.includes("application/json"))throw new Error(`API returned "${d}" instead of JSON. Server at ${t} may be down or misconfigured.`);const p=await u.json();return this.rawData=Array.isArray(p)?p:p.posts||p.data||p.results||[],this.normalizeData(o),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${o.id}:`,u),u}}normalizeData(o){const t=o.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(t))if(Array.isArray(c)){const u=c.map(d=>this.getFieldValue(n,d));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,o.imageConfig);const r=a.engagementStatus;r!=null&&(typeof r=="object"&&"value"in r?(a.engagementStatusLabel=r.label||r.value,a.engagementStatus=r.value==="engaged"):a.engagementStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const s=a.adoptionStatus;s!=null&&(a.adoptionStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="object"&&!!(s!=null&&s.value)||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,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(o,t){if(!t)return"";if(o[t]!==void 0)return o[t];const n=t.trim();if(o[n]!==void 0)return o[n];for(const a of Object.keys(o))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return o[a];return""}parsePopulation(o){if(!o)return 0;const t=String(o).replace(/,/g,"").trim(),n=parseInt(t,10);return isNaN(n)?0:n}getImageUrl(o,t){if(!t)return"";const n=t.placeholderUrl||"",a=o[t.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(o){return this.dataByUniqueId.get(o)}getByCoordinates(o,t,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-o)<n&&Math.abs(a.longitude-t)<n)}getByPeopleGroupId(o){return this.normalizedData.filter(t=>t.peopleGroupId===o)}getLanguageFamilies(){const o=new Set;return this.normalizedData.forEach(t=>{t.languageFamily&&o.add(t.languageFamily)}),Array.from(o).sort()}getDataByLanguageFamily(){const o={};return this.normalizedData.forEach(t=>{const n=t.languageFamily||"Unknown";o[n]||(o[n]=[]),o[n].push(t)}),o}getDataByRegion(){const o={};return this.normalizedData.forEach(t=>{const n=t.doxaRegion||"Unknown";o[n]||(o[n]=[]),o[n].push(t)}),o}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(o=>o.peopleId3).length,withPhotos:this.normalizedData.filter(o=>o.imageUrl&&!String(o.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(o=>o.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new cu;const Da="#1a1a1a",pt="selected-pin-highlight";function ay(e=Da){const o=document.createElement("div");o.className="map-go-pin-wrapper";const t=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return o.innerHTML=`
|
||
<style>
|
||
/* Angled, brush-style pin: a slight tilt, a diagonal gradient and a stronger
|
||
drop-shadow give it a hand-drawn, "set down on the map" look without raster art. */
|
||
.map-go-pin-wrapper {
|
||
position: relative;
|
||
width: 32px;
|
||
height: 40px;
|
||
pointer-events: none;
|
||
overflow: visible;
|
||
}
|
||
.map-go-pin__svg {
|
||
position: relative;
|
||
width: 32px;
|
||
height: 40px;
|
||
filter: drop-shadow(2px 4px 3px rgba(0,0,0,0.4));
|
||
}
|
||
</style>
|
||
|
||
<svg
|
||
class="map-go-pin__svg"
|
||
viewBox="-2 -2 32 40"
|
||
xmlns="http://www.w3.org/2000/svg"
|
||
aria-label="Selected people group"
|
||
>
|
||
<defs>
|
||
<linearGradient id="${t}" x1="0%" y1="0%" x2="100%" y2="100%">
|
||
<stop offset="0%" stop-color="${e}" stop-opacity="0.92"/>
|
||
<stop offset="55%" stop-color="${e}" stop-opacity="1"/>
|
||
<stop offset="100%" stop-color="#000" stop-opacity="0.85"/>
|
||
</linearGradient>
|
||
</defs>
|
||
<path
|
||
d="M14 1 C6.8 1 1 6.8 1 14 C1 24 14 35 14 35 C14 35 27 24 27 14 C27 6.8 21.2 1 14 1 Z"
|
||
fill="none" stroke="white" stroke-width="2" stroke-linejoin="round"
|
||
/>
|
||
<path
|
||
d="M14 1 C6.8 1 1 6.8 1 14 C1 24 14 35 14 35 C14 35 27 24 27 14 C27 6.8 21.2 1 14 1 Z"
|
||
fill="url(#${t})"
|
||
/>
|
||
</svg>
|
||
`,o}function ry(e={}){const{getMap:o=()=>null,getActivePinColor:t=null}=e,n=xe("uiStore");let a=null,r=null;const s=t??xe("getActivePinColor",null);let i=Da;function l(){const f=o();f&&(f.getLayer(pt)||f.getSource("language-families")&&f.addLayer({id:pt,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,...X0(f),"circle-opacity":1,"circle-stroke-width":2,"circle-stroke-color":"#FFFFFF","circle-stroke-opacity":1},filter:["==",["get","uniqueId"],"__none__"]}))}function c(){a||(a=ay(Da))}function u(f,_){const v=o();v&&(c(),r&&r.remove(),r=new(Y0(v)).Marker({element:a,anchor:"bottom",offset:[0,0]}).setLngLat([f,_]).addTo(v))}function d(){r&&(r.remove(),r=null)}function p(f){var x,P;const _=o();if(!_)return;if(f&&(i=(s==null?void 0:s(f.properties))??Da),l(),_.getLayer(pt)&&(_.setPaintProperty(pt,"circle-color",i),iu(_)&&_.setPaintProperty(pt,"circle-emissive-strength",1)),!f){_.getLayer(pt)&&_.setFilter(pt,["==",["get","uniqueId"],"__none__"]),d();return}const v=((x=f.properties)==null?void 0:x.uniqueId)||"__none__",C=(P=f.geometry)==null?void 0:P.coordinates;if(!C)return;_.getLayer(pt)&&_.setFilter(pt,["==",["get","uniqueId"],v]);const[w,A]=C;u(w,A)}Ke(()=>n.selectedPeopleGroup,f=>{p(f)});function m(){l()}function $(){d(),a=null}return{initialize:m,cleanup:$,updateSelectedPin:p}}const uu="peoplePraying",Ba=144,At={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Dt=At,cs={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},sy=cs;function Ga(e){var n;const o=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,t=Number(o)||0;return t>=Ba?"fullPrayer":t>0?"hasPrayer":"noPrayer"}function us(e){return At[Ga(e)]}function pu(e){var t;const o=(e==null?void 0:e.peoplePraying)??((t=e==null?void 0:e._raw)==null?void 0:t.people_praying)??null;return o!==null&&o>0}function du(e){return Ga(e)==="fullPrayer"}function gu(e){return us(e)}function ps({colorSource:e="properties"}={}){const o=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",o,Ba],At.fullPrayer,[">",o,0],At.hasPrayer,At.noPrayer]}const hu=ps,iy=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Ba,LABELS:cs,PALETTE:At,PRAYER_COLORS:Dt,PRAYER_LABELS:sy,PROPERTY_KEY:uu,applyColor:ps,buildColorExpression:hu,checkHasFullPrayer:du,checkHasPrayer:pu,default:{name:"Prayer Progress",propertyKey:uu,palette:At,colors:At,labels:cs,threshold:Ba,getColor:gu,applyColor:ps,buildColorExpression:hu,getPrayerLevel:Ga,getPrayerColor:us,checkHasPrayer:pu,checkHasFullPrayer:du},getColor:gu,getPrayerColor:us,getPrayerLevel:Ga},Symbol.toStringTag,{value:"Module"})),ds=le(0),Ua=le(0),ja=le(0),gs=le(!1),hs=le(!1),fs=le(null);let jn=null;async function ly(){if(!gs.value)return jn||(hs.value=!0,fs.value=null,jn=(async()=>{var e,o;try{const t=((e=sn==null?void 0:sn.sources)==null?void 0:e[sn.activeSource])||{},n=ls(),a=((o=t.endpoints)==null?void 0:o.statistics)||"/api/people-groups/statistics",r=await fetch(`${n}${a}`,{cache:"no-store"});if(!r.ok)throw new Error(`statistics HTTP ${r.status}`);const s=await r.json();ds.value=Number(s.total||0),Ua.value=Number(s.total_with_prayer_committed??s.total_with_prayer??0),ja.value=Number(s.total_with_100_committed??s.total_with_full_prayer??0),gs.value=!0}catch(t){fs.value=t&&t.message?t.message:String(t)}finally{hs.value=!1,jn=null}})(),jn)}function cy(){return{total:ds,withPrayer:Ua,withFullPrayer:ja,loaded:gs,loading:hs,error:fs,load:ly,noPrayerCount:()=>Math.max(0,ds.value-Ua.value),hasPrayerCount:()=>Math.max(0,Ua.value-ja.value),fullPrayerCount:()=>ja.value}}const fu="engagementStatus",dt={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},ms=dt,bs={notEngaged:"Unengaged",hasEngagement:"Engaged"},uy=bs;function mu(e){var n;const o=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return o===!0||o===1||typeof o=="number"&&o>0||typeof o=="object"&&(o==null?void 0:o.value)?dt.hasEngagement:dt.notEngaged}function _s({colorSource:e="properties"}={}){const o=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",o,!0],dt.hasEngagement,["==",o,1],dt.hasEngagement,dt.notEngaged]}const bu=_s,py=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:ms,ENGAGEMENT_LABELS:uy,LABELS:bs,PALETTE:dt,PROPERTY_KEY:fu,applyColor:_s,buildColorExpression:bu,default:{name:"Engagement Progress",propertyKey:fu,palette:dt,colors:dt,labels:bs,getColor:mu,applyColor:_s,buildColorExpression:bu},getColor:mu},Symbol.toStringTag,{value:"Module"})),_u="adoptionStatus",gt={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},$s=gt,ys={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},dy=ys;function $u(e){var n;const o=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return o===!0||o===1||typeof o=="number"&&o>0||typeof o=="object"&&(o==null?void 0:o.value)?gt.hasAdoption:gt.notAdopted}function vs({colorSource:e="properties"}={}){const o=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",o,!0],gt.hasAdoption,["==",o,1],gt.hasAdoption,gt.notAdopted]}const yu=vs,gy=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:$s,ADOPTION_LABELS:dy,LABELS:ys,PALETTE:gt,PROPERTY_KEY:_u,applyColor:vs,buildColorExpression:yu,default:{name:"Adoption Progress",propertyKey:_u,palette:gt,colors:gt,labels:ys,getColor:$u,applyColor:vs,buildColorExpression:yu},getColor:$u},Symbol.toStringTag,{value:"Module"})),ks="languageFamily",hy="#000000",St={"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"},vu=St;function Fo(e){return St[e]||hy}const fy=(()=>{const e=t=>String(t||"").toLowerCase().trim(),o={};for(const t of Object.keys(St))o[e(t)]=t;return o})(),my={"tai-kadai":"Kra-Dai",none:"Unknown"};function ws(e){if(!e)return"Unknown";const o=String(e).trim(),t=o.toLowerCase();return my[t]||fy[t]||o}function ku(e){var o;return Fo(e.languageFamily||((o=e._normalized)==null?void 0:o.languageFamily))}function xs(){const e=["match",["get",ks]];return Object.entries(St).forEach(([o,t])=>{e.push(o,t)}),e.push("#95a5a6"),e}const wu=xs,by=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:vu,PALETTE:St,PROPERTY_KEY:ks,applyColor:xs,buildColorExpression:wu,canonicalFamilyName:ws,default:{name:"Language Family",propertyKey:ks,palette:St,colors:St,getColor:ku,applyColor:xs,buildColorExpression:wu,getLanguageFamilyColor:Fo,canonicalFamilyName:ws},defaultFamilyColor:"#95a5a6",getColor:ku,getLanguageFamilyColor:Fo,languageFamilyColors:St},Symbol.toStringTag,{value:"Module"})),xu="religion",As="#94a3b8",Wa={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},xo={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Ss(e){if(!e||typeof e!="string")return"U";const o=e.charAt(0).toUpperCase();return Wa[o]?o:"U"}function Au(e){var t,n,a;const o=(e==null?void 0:e.religion)||((n=(t=e==null?void 0:e._raw)==null?void 0:t.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return xo[Ss(o)]||As}function Ls(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",xo.C,"M",xo.M,"H",xo.H,"B",xo.B,"E",xo.E,"J",xo.J,"S",xo.S,"N",xo.N,"O",xo.O,As]}const Su=Ls,_y=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:xo,PROPERTY_KEY:xu,RELIGION_FAMILIES:Wa,applyColor:Ls,buildColorExpression:Su,default:{name:"Religion",propertyKey:xu,palette:xo,families:Wa,getColor:Au,applyColor:Ls,buildColorExpression:Su,fallback:As},getColor:Au,getReligionFamily:Ss},Symbol.toStringTag,{value:"Module"})),Lu="region",Cs="#6d766e",Cu={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"},Wn={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Ns=Object.keys(Wn);function Nu(e){var t,n,a;const o=(e==null?void 0:e.region)||((n=(t=e==null?void 0:e._raw)==null?void 0:t.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return Wn[o]||Cs}function Ps(){const e=["match",["coalesce",["get","region"],""]];for(const o of Ns)e.push(o,Wn[o]);return e.push(Cs),e}const Pu=Ps,$y=Object.assign({"./adoption.js":gy,"./engagement.js":py,"./language-family.js":by,"./prayer-progress.js":iy,"./religion.js":_y,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Wn,PROPERTY_KEY:Lu,REGION_ORDER:Ns,WAGF_REGIONS:Cu,applyColor:Ps,buildColorExpression:Pu,default:{name:"WAGF Region",propertyKey:Lu,palette:Wn,regions:Cu,order:Ns,getColor:Nu,applyColor:Ps,buildColorExpression:Pu,fallback:Cs},getColor:Nu},Symbol.toStringTag,{value:"Module"}))}),yy=e=>e.replace(/-([a-z0-9])/g,(o,t)=>t.toUpperCase()),vy=e=>e.replace(/-/g,"_").toUpperCase(),cn={...{STATUS:"status",CUSTOM:"custom"}},Es={};function ky(e){for(const o of Object.keys(e).sort()){const t=o.split("/").pop().replace(/\.js$/,"");if(t.startsWith("_")||t.startsWith("."))continue;const n=e[o].default;if(!n)continue;const a=yy(t);cn[vy(t)]=a,Es[a]=n}}ky($y);function za(e){return Es[e]||Es[cn.LANGUAGE_FAMILY]}const Lt={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"};function wy(e){return(e==null?void 0:e.properties)||e||{}}function Va(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function xy(e){if(!e||typeof e!="string")return null;const o=e.split(",").map(n=>n.trim()).filter(Boolean);if(o.length>=2){const n=[...o].reverse().join(" ");if(Lt[n])return Lt[n];if(o.length>=3){const a=[o[1],o[0]].join(" ");if(Lt[a])return Lt[a]}}if(Lt[e])return Lt[e];const t=e.replace(/\s*\(.*?\)\s*$/,"").trim();return t!==e&&Lt[t]?Lt[t]:null}const Ay=[[/ sign language$/i,"Sign Language"]];function Sy(e){if(!e||typeof e!="string")return"— Unknown —";const o=e.indexOf(",");return o>0?e.slice(0,o).trim():e.trim()}function Ly(e){if(!e||typeof e!="string")return null;const o=e.indexOf(",");return o>=0&&e.slice(o+1).trim()||null}function Cy(e){var s,i,l,c;const o=e.language_family??e.languageFamily??((s=e._raw)==null?void 0:s.LanguageFamily)??((i=e._raw)==null?void 0:i.language_family),t=Va(o),n=ws(t);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),r=Va(a);if(r){const u=String(r).trim(),d=xy(u);if(d)return d;for(const[p,m]of Ay)if(p.test(u))return m}return"Unknown"}function Ny(e){var a,r;const o=((a=e._raw)==null?void 0:a.primary_language)??((r=e._raw)==null?void 0:r.PrimaryLanguage);if(o){const s=Va(o);if(s)return String(s).trim()}const t=e.primary_language??e.primaryLanguage??e.language,n=Va(t);return n&&String(n).trim()||"— Unknown —"}function Py(e){var t,n;const o=e.population??((t=e._raw)==null?void 0:t.Population)??((n=e._raw)==null?void 0:n.population)??0;return parseInt(o,10)||0}function Ey(e,o){var t,n;return(e==null?void 0:e.id)??o.id??o.peopleGroupId??((t=o._raw)==null?void 0:t.PeopleID3)??((n=o._raw)==null?void 0:n.PeopleID)??null}function Oy(e,o){return(e==null?void 0:e.clusterId)??o.clusterId??null}function Ty(e,o){var a,r,s,i;const t=parseFloat(o.latitude??o.lat??((a=o._raw)==null?void 0:a.Latitude)??((r=o._raw)==null?void 0:r.latitude)),n=parseFloat(o.longitude??o.lng??((s=o._raw)==null?void 0:s.Longitude)??((i=o._raw)==null?void 0:i.longitude));return!isFinite(t)||!isFinite(n)?null:[n,t]}function My(e,o){return o.peopleGroupCount!==e.peopleGroupCount?o.peopleGroupCount-e.peopleGroupCount:(o.population||0)-(e.population||0)}function Ha(e,o){return(o.population||0)!==(e.population||0)?(o.population||0)-(e.population||0):o.peopleGroupCount-e.peopleGroupCount}function Eu(e,o={}){o.aggregator;const t=Wt({});function n(f){return!!t[f]}function a(f){t[f]=!t[f]}function r(f){const _=new Set(Array.isArray(f)?f:[]);for(const v of Object.keys(t))_.has(v)||(t[v]=!1);for(const v of _)t[v]=!0}const s=z(()=>{const f=(e==null?void 0:e.value)||[],_=new Map;for(const v of f){const C=wy(v),w=Cy(C),A=Ny(C),x=Sy(A),P=Ly(A),y=Py(C),L=Ey(v,C),b=Oy(v,C),O=Ty(v,C);let R=_.get(w);R||(R={key:w,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,languages:new Map},_.set(w,R)),R.peopleGroupCount+=1,R.population+=y,L!=null&&R.pinIds.push(L),O&&R.coords.push(O),b&&!R.clusterId&&(R.clusterId=b);let q=R.languages.get(x);if(q||(q={key:x,peopleGroupCount:0,population:0,pinIds:[],coords:[],clusterId:null,dialects:new Map},R.languages.set(x,q)),q.peopleGroupCount+=1,q.population+=y,L!=null&&q.pinIds.push(L),O&&q.coords.push(O),b&&!q.clusterId&&(q.clusterId=b),P){let oe=q.dialects.get(P);oe?oe.originalLabels.add(A):(oe={key:P,peopleGroupCount:0,population:0,pinIds:[],coords:[],originalLabels:new Set([A])},q.dialects.set(P,oe)),oe.peopleGroupCount+=1,oe.population+=y,L!=null&&oe.pinIds.push(L),O&&oe.coords.push(O)}}return _}),i=o.showAllKnown!==!1,l=z(()=>{const f=s.value,_=[],v=new Set;for(const C of f.values())_.push({key:C.key,label:C.key,color:Fo(C.key),peopleGroupCount:C.peopleGroupCount,population:C.population,kind:C.clusterId?"cluster":"family",clusterId:C.clusterId||void 0,pinIds:C.pinIds,coords:C.coords}),v.add(C.key);if(i)for(const C of Object.keys(vu))v.has(C)||_.push({key:C,label:C,color:Fo(C),peopleGroupCount:0,population:0,kind:"family",pinIds:[],coords:[]});return _.sort(My),_});function c(f){const _=s.value.get(f);if(!_)return[];const v=[];for(const C of _.languages.values())v.push({key:`${f}__${C.key}`,label:C.key,color:Fo(f),peopleGroupCount:C.peopleGroupCount,population:C.population,kind:C.clusterId?"cluster":"language",familyKey:f,clusterId:C.clusterId||void 0,pinIds:C.pinIds,coords:C.coords,hasDialects:C.dialects.size>0});return v.sort(Ha),v}function u(f){const _=f.indexOf("__");if(_<0)return[];const v=f.slice(0,_),C=f.slice(_+2),w=s.value.get(v);if(!w)return[];const A=w.languages.get(C);if(!A)return[];const x=[];for(const P of A.dialects.values())x.push({key:`${f}__${P.key}`,label:`${C}, ${P.key}`,dialectOnly:P.key,color:Fo(v),peopleGroupCount:P.peopleGroupCount,population:P.population,kind:"dialect",languageKey:C,familyKey:v,pinIds:P.pinIds,coords:P.coords,originalLabels:Array.from(P.originalLabels)});return x.sort(Ha),x}const d=z(()=>{const f=s.value,_=[];for(const v of f.values())for(const C of v.languages.values())_.push({key:`${v.key}__${C.key}`,label:C.key,color:Fo(v.key),peopleGroupCount:C.peopleGroupCount,population:C.population,kind:C.clusterId?"cluster":"language",familyKey:v.key,clusterId:C.clusterId||void 0,pinIds:C.pinIds,coords:C.coords,hasDialects:C.dialects.size>0});return _.sort(Ha),_}),p=z(()=>{const f=s.value,_=[];for(const v of f.values())for(const C of v.languages.values())for(const w of C.dialects.values())_.push({key:`${v.key}__${C.key}__${w.key}`,label:`${C.key}, ${w.key}`,dialectOnly:w.key,color:Fo(v.key),peopleGroupCount:w.peopleGroupCount,population:w.population,kind:"dialect",languageKey:C.key,familyKey:v.key,pinIds:w.pinIds,coords:w.coords,originalLabels:Array.from(w.originalLabels)});return _.sort(Ha),_});function m(f){let _=f;if(typeof f=="string"&&(_=l.value.find(C=>C.key===f),!_))return;const v={kind:_.kind,pinIds:_.pinIds||[],coords:_.coords||[]};_.kind==="family"&&(v.familyKey=_.label),_.kind==="language"&&(v.languageKey=_.label,v.familyKey=_.familyKey),_.kind==="dialect"&&(v.dialectKey=_.key,v.dialectOnly=_.dialectOnly||_.label,v.languageKey=_.languageKey,v.familyKey=_.familyKey,v.originalLabels=_.originalLabels||[]),_.kind==="cluster"&&(v.clusterId=_.clusterId),typeof window<"u"&&typeof window.CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("legend:highlight",{detail:v}))}const $=z(()=>{const f=s.value,_=[];for(const v of f.values()){const C=Fo(v.key),w=[];for(const x of v.languages.values()){x.key&&x.key!=="— Unknown —"&&w.push(x.key);for(const P of x.dialects.values())for(const y of P.originalLabels)y&&w.push(y)}const A={id:`fam:${v.key}`,label:v.key,color:C,count:v.peopleGroupCount,pop:v.population,filter:w.length>0?["any",["==",["get","languageFamily"],v.key],["in",["get","language"],["literal",Array.from(new Set(w))]]]:["==",["get","languageFamily"],v.key],children:[]};for(const x of v.languages.values()){const P=x.key,y={id:`lang:${v.key}__${P}`,label:P,color:C,count:x.peopleGroupCount,pop:x.population,filter:["any",["==",["get","language"],P],["==",["slice",["get","language"],0,P.length+1],P+","],["in"," "+P,["get","language"]]],children:[]};for(const L of x.dialects.values()){const b=Array.from(L.originalLabels);y.children.push({id:`dial:${v.key}__${P}__${L.key}`,label:`${P}, ${L.key}`,color:C,count:L.peopleGroupCount,pop:L.population,filter:b.length===1?["==",["get","language"],b[0]]:["in",["get","language"],["literal",b]],originalLabels:b,children:[]})}A.children.push(y)}_.push(A)}return _.sort((v,C)=>C.pop-v.pop||C.count-v.count),_});return{rows:l,languageRows:d,dialectRows:p,langTree:$,toggle:a,isExpanded:n,setExpansionToOnly:r,childRowsFor:c,dialectRowsFor:u,highlight:m}}const Ry=[];function Iy(){const e=za(cn.RESOURCE);return e&&e.propertyKey==="resourceType"?e:null}function Fy(){const e=za(cn.DOXA_REGION);return e&&e.propertyKey==="doxaRegion"?e.palette||{}:{}}function Dy(){const e=za(cn.AFFINITY_BLOCK);if(!e||e.propertyKey!=="affinityBlock")return{};const o=e.names||{},t=e.palette||{},n={};for(const a of Object.keys(o))n[o[a]]=t[a]||"#999";return n}function Bt(e,o){const a=Object.values(e.sources||{}).flatMap(r=>(r==null?void 0:r.features)||[]).filter(r=>o(r.properties||r));return{count:a.length,population:a.reduce((r,s)=>{var l;const i=s.properties||s;return r+(parseInt(i.population||((l=i._raw)==null?void 0:l.Population)||0)||0)},0)}}const Ou=100;function By(e){var t;let o=(e==null?void 0:e.peopleCommitted)??((t=e==null?void 0:e._raw)==null?void 0:t.people_committed)??(e==null?void 0:e.people_committed)??null;return o&&typeof o=="object"&&(o=o.value??o.label??0),Number(o)||0}function Os(e){return o=>{const t=By(o);return e==="fullPrayer"?t>=Ou:e==="hasPrayer"?t>0&&t<Ou:t<=0}}function Tu(e){var t;const o=e.engagementStatus??((t=e._raw)==null?void 0:t.people_committed);return o===!0||o===1||o==="1"||o==="true"||typeof o=="number"&&o>0||typeof o=="string"&&parseInt(o,10)>0}function Mu(e){var t;const o=e.adoptionStatus??((t=e._raw)==null?void 0:t.adopted_by_churches);return o===!0||o===1||o==="1"||o==="true"||typeof o=="number"&&o>0||typeof o=="string"&&parseInt(o,10)>0}const Gy={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 un(e){return e==="doxa-region"?"doxa-regions":e==="country"?"countries":e}function Uy(e){return e?e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toLocaleString():"0"}function jy(e){return(Number(e)||0).toLocaleString()}function Ru(e,o={}){const t=xe("dataStore"),n=xe("uiStore"),a=xe("mapStore"),{t:r}=po(),s=cy();s.load();const i=z(()=>{if(un(e.value)==="religion")return"Religion";const v=Gy[e.value];return v?r(v):""}),l=z(()=>un(e.value)==="affinity-blocs"?Ry:[{key:"count",label:r("legend.columns.upgs"),width:48},{key:"population",label:r("legend.columns.population"),width:48}]),c=z(()=>{const _=un(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 v=un(e.value);v==="prayer"?n.setPrayerFilter(n.prayerFilter===_?null:_):v==="engagement"?n.setEngagementFilter(n.engagementFilter===_?null:_):v==="adoption"?n.setAdoptionFilter(n.adoptionFilter===_?null:_):v==="language-families"?a.selectFamily(a.selectedFamily===_?null:_):v==="doxa-regions"?a.selectRegion(a.selectedRegion===_?null:_):v==="gospel-resources"?a.selectResource(a.selectedResource===_?null:_):v==="religion"&&n.setReligionFilter(n.religionFilter===_?null:_)}const d=z(()=>{var v,C,w,A;const _=un(e.value);if(_==="prayer"){const x=Bt(t,Os("noPrayer")),P=Bt(t,Os("hasPrayer")),y=Bt(t,Os("fullPrayer")),L=s.loaded.value,b=L?s.noPrayerCount():x.count,O=L?s.hasPrayerCount():P.count,R=L?s.fullPrayerCount():y.count;return[{key:"noPrayer",label:r("legend.prayer.needsPrayer"),color:Dt.noPrayer,count:b,population:x.population,filterKey:"noPrayer",children:[{key:"hasPrayer",label:r("legend.prayer.hasPrayer"),color:Dt.hasPrayer,count:O,population:P.population,filterKey:"hasPrayer"},{key:"fullPrayer",label:r("legend.prayer.fullPrayerCoverage"),color:Dt.fullPrayer,count:R,population:y.population,filterKey:"fullPrayer"}]}]}if(_==="engagement"){const x=Bt(t,y=>!Tu(y)),P=Bt(t,y=>Tu(y));return[{key:"notEngaged",label:r("legend.engagement.needsEngagement"),color:ms.notEngaged,count:x.count,population:x.population,filterKey:"notEngaged",children:[{key:"hasEngagement",label:r("legend.engagement.hasEngagement"),color:ms.hasEngagement,count:P.count,population:P.population,filterKey:"hasEngagement"}]}]}if(_==="adoption"){const x=Bt(t,y=>!Mu(y)),P=Bt(t,y=>Mu(y));return[{key:"notAdopted",label:r("legend.adoption.needsAdoption"),color:$s.notAdopted,count:x.count,population:x.population,filterKey:"notAdopted",children:[{key:"hasAdoption",label:r("legend.adoption.hasAdoption"),color:$s.hasAdoption,count:P.count,population:P.population,filterKey:"hasAdoption"}]}]}if(_==="religion"){const x={},y=Object.values(t.sources||{}).flatMap(O=>(O==null?void 0:O.features)||[]);for(const O of y){const R=O.properties||O,q=R.religion||((C=(v=R._raw)==null?void 0:v.religion)==null?void 0:C.value)||((w=R._raw)==null?void 0:w.religion)||"",oe=Ss(q);x[oe]||(x[oe]={count:0,population:0}),x[oe].count+=1,x[oe].population+=parseInt(R.population||((A=R._raw)==null?void 0:A.Population)||0)||0}const L=new Set((o==null?void 0:o.excludeReligionFamilies)||[]);for(const O of L)delete x[O];return Object.keys(x).sort((O,R)=>O==="C"?-1:R==="C"?1:x[R].population-x[O].population).map(O=>({key:O,label:Wa[O]||"Unknown",color:xo[O]||"#94a3b8",count:x[O].count,population:x[O].population,filterKey:O,children:[]}))}if(_==="language-families")return(t.languageFamiliesData||[]).map(x=>({key:x.name,label:x.name,color:Fo(x.name),count:x.count,population:x.population,filterKey:x.name,children:[]}));if(_==="language-family"){const P={value:Object.values(t.sources||{}).flatMap(L=>(L==null?void 0:L.features)||[])},{rows:y}=Eu(P);return y.value.map(L=>({key:L.key,label:L.label,color:L.color,count:L.peopleGroupCount,population:L.population,filterKey:L.key,children:[]}))}if(_==="doxa-regions"){const x=Fy();return(t.doxaRegionsData||[]).map(P=>({key:P.name,label:P.name,color:x[P.name]||"#999",count:P.count,population:P.population,filterKey:P.name,children:[]}))}if(_==="gospel-resources"){const x=Iy(),P=(x==null?void 0:x.palette)??{},y=(x==null?void 0:x.names)??{},L=t.resourcesData||[];return Object.keys(P).map(b=>{const O=L.find(R=>R.key===b);return{key:b,label:y[b]||b,color:P[b],count:(O==null?void 0:O.count)||0,population:(O==null?void 0:O.population)||0,filterKey:b,children:((O==null?void 0:O.children)||[]).map(R=>({key:R.key,label:R.name||R.key,color:R.color||P[b],count:R.count||0,population:R.population||0,filterKey:R.key}))}})}if(_==="affinity-blocs"){const x=Dy();return Object.keys(x).sort().map(P=>({key:P,label:P,color:x[P],filterKey:P,children:[]}))}return[]});function p(_,v){return _.reduce((C,w)=>{var x;let A=w[v]||0;return(x=w.children)!=null&&x.length&&(A+=p(w.children,v)),C+A},0)}const m=z(()=>p(d.value,"count")),$=z(()=>p(d.value,"population")),f=z(()=>{if(un(e.value)!=="prayer")return null;const _=d.value[0];if(!_)return null;const v=(_.children||[]).find(y=>y.key==="hasPrayer"),C=(_.children||[]).find(y=>y.key==="fullPrayer"),w=Number(_.count)||0,A=Number(v==null?void 0:v.count)||0,x=Number(C==null?void 0:C.count)||0,P=(Number(v==null?void 0:v.population)||0)+(Number(C==null?void 0:C.population)||0);return{covered:A+x,total:m.value,coveredPopulation:P,totalPopulation:$.value,segments:[{key:"fullPrayer",label:(C==null?void 0:C.label)??r("legend.prayer.fullPrayerCoverage"),count:x,color:Dt.fullPrayer},{key:"hasPrayer",label:(v==null?void 0:v.label)??r("legend.prayer.hasPrayer"),count:A,color:Dt.hasPrayer},{key:"noPrayer",label:_.label,count:w,color:Dt.noPrayer}]}});return{items:d,columns:l,title:i,activeFilter:c,setFilter:u,totalCount:m,totalPopulation:$,progress:f,fmtPop:Uy,fmtCount:jy}}const Wy="",zy=["data-covered","data-total","data-pct"],Vy={class:"lpb-track"},Hy=["data-span-pct"],Ky=["data-seg","data-count","aria-label","onMouseenter","onFocus","onClick"],qy=["data-seg","data-count","aria-label"],Yy=["aria-valuenow","aria-valuemax","aria-valuetext","aria-label","title"],Iu=Ft({__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:o}){const{t}=po();_o(`
|
||
.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=o,r=z(()=>n.total>0?Math.round(n.covered/n.total*100):0),s=z(()=>n.total>0?Math.min(100,Math.max(0,n.covered/n.total*100)):0),i=z(()=>n.segments.slice(0,-1)),l=z(()=>n.segments.length?n.segments[n.segments.length-1]:null);function c(y){return n.covered>0?Math.min(100,Math.max(0,(y.count||0)/n.covered*100)):0}function u(y){return n.total>0?Math.round((y.count||0)/n.total*100):0}const d=z(()=>n.label||t("legend.progress.covered",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value})),p=z(()=>t("legend.progress.short",{covered:n.fmtCount(n.covered),total:n.fmtCount(n.total),pct:r.value}));function m(y){return t("legend.progress.segment",{label:y.label,count:n.fmtCount(y.count||0),pct:u(y)})}const $=le(null),f=le(null),_={},v=le(null),C=le(0),w=z(()=>n.segments.find(y=>y.key===v.value)||null);function A(y,L){L?_[y]=L:delete _[y]}async function x(y){v.value=y,await mt();const L=$.value,b=_[y],O=f.value;if(!L||!b||!O)return;const R=L.getBoundingClientRect(),q=b.getBoundingClientRect(),oe=Math.max(0,R.width-O.offsetWidth);C.value=Math.min(Math.max(0,q.left-R.left),oe)}function P(){v.value=null}return(y,L)=>(I(),G("div",{ref_key:"rootEl",ref:$,class:ye(["lpb",[e.isDark?"lpb-dark":"lpb-light",{"lpb-stacked":e.stacked}]]),"data-covered":e.covered,"data-total":e.total,"data-pct":r.value,onMouseleave:P},[k("div",Vy,[k("span",{class:"lpb-span",style:ze({width:s.value+"%"}),"data-span-pct":s.value.toFixed(2)},[(I(!0),G(fe,null,Xe(i.value,b=>(I(),G("button",{key:b.key,type:"button",class:ye(["lpb-seg",{active:v.value===b.key}]),style:ze({width:c(b)+"%",background:b.color}),"data-seg":b.key,"data-count":b.count||0,"aria-label":m(b),ref_for:!0,ref:O=>A(b.key,O),onMouseenter:O=>x(b.key),onFocus:O=>x(b.key),onBlur:P,onClick:ao(O=>a("select-segment",b.key),["stop"])},null,46,Ky))),128))],12,Hy),l.value?(I(),G("button",{key:0,type:"button",class:ye(["lpb-seg lpb-seg-rest",{active:v.value===l.value.key}]),style:ze({background:l.value.color}),"data-seg":l.value.key,"data-count":l.value.count||0,"aria-label":m(l.value),ref:b=>A(l.value.key,b),onMouseenter:L[0]||(L[0]=b=>x(l.value.key)),onFocus:L[1]||(L[1]=b=>x(l.value.key)),onBlur:P,onClick:L[2]||(L[2]=ao(b=>a("select-segment",l.value.key),["stop"]))},null,46,qy)):pe("",!0)]),e.showText?(I(),G("span",{key:0,class:"lpb-text",role:"progressbar","aria-valuenow":e.covered,"aria-valuemin":"0","aria-valuemax":e.total,"aria-valuetext":p.value,"aria-label":d.value,title:d.value},K(e.compact?r.value+"%":p.value),9,Yy)):pe("",!0),w.value?(I(),G("div",{key:1,ref_key:"popEl",ref:f,class:"lpb-pop",role:"tooltip",style:ze({left:C.value+"px"})},[k("span",{class:"lpb-pop-dot",style:ze({background:w.value.color})},null,4),Ce(K(m(w.value)),1)],4)):pe("",!0)],42,zy))}},[["styles",[Wy]],["__scopeId","data-v-acafdbf6"]]),Xy="",Zy={key:0,class:"lrg-title-row"},Jy={class:"lrg-title-caret-slot"},Qy={class:"lrg-title"},e1=["data-lrg-filter-key"],o1=["onClick"],t1={key:1,class:"lrg-caret-placeholder","aria-hidden":"true"},n1=["onClick"],a1={class:"lrg-name"},r1={class:"lrg-badge-inner"},s1=["data-lrg-filter-key"],i1=["onClick"],l1={class:"lrg-name"},c1={class:"lrg-badge-inner"},u1={key:1,class:"lrg-footer"},p1={class:"lrg-footer-label"},Fu=Ft({__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:o}=po();_o(`
|
||
.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 t=e,n=xe("legendProgress",null),a=z(()=>t.progress??te(n)??null),r=z(()=>a.value?o("legend.progress.title"):t.title),s=le(null);function i(p){let m=p.parentElement;for(;m;){const $=getComputedStyle(m).overflowY;if(($==="auto"||$==="scroll")&&m.scrollHeight>m.clientHeight+1){const f=p.getBoundingClientRect(),_=m.getBoundingClientRect();m.scrollTop+=f.top-_.top-8}m=m.parentElement}}let l=0;Ke(()=>t.activeFilter,async p=>{if(!p)return;const m=++l,$=s.value;if(!$)return;await mt();const f=(_=0)=>{if(m!==l)return;const v=$.querySelector(`[data-lrg-filter-key="${CSS.escape(String(p))}"]`);v&&i(v),_<6&&setTimeout(()=>f(_+1),70)};f(0)});const c=Wt({});function u(p){c[p]=!c[p]}const d=z(()=>`var(--lrg-caret-col) minmax(80px, 1fr) ${t.columns.map(()=>"auto").join(" ")} var(--lrg-caret-col)`);return(p,m)=>(I(),G("div",{class:ye(["legend-row-group",e.isDark?"lrg-dark":"lrg-light"])},[k("div",{class:"lrg-items",style:ze({"--lrg-grid-cols":d.value}),ref_key:"itemsContainer",ref:s},[!e.hideColumnHeader&&(e.title||e.columns.length)?(I(),G("div",Zy,[k("span",Jy,[An(p.$slots,"title-caret",{},void 0,!0)]),k("span",Qy,K(r.value),1),(I(!0),G(fe,null,Xe(e.columns,$=>(I(),G("span",{key:$.key,class:"lrg-header-col"},K($.label),1))),128)),a.value?(I(),Ze(Iu,{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:m[0]||(m[0]=$=>p.$emit("filter-click",$))},null,8,["covered","total","segments","is-dark","fmt-count"])):pe("",!0)])):pe("",!0),(I(!0),G(fe,null,Xe(e.items,$=>(I(),G(fe,{key:$.key},[k("div",{class:"lrg-row","data-lrg-filter-key":$.filterKey},[$.children&&$.children.length&&!e.disableCollapse?(I(),G("button",{key:0,class:ye(["lrg-caret",{expanded:!c[$.key]}]),onClick:ao(f=>u($.key),["stop"]),"aria-label":"Toggle children"},[...m[1]||(m[1]=[k("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[k("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,o1)):(I(),G("span",t1)),k("div",{class:ye(["lrg-item",{selected:e.activeFilter===$.filterKey}]),onClick:f=>p.$emit("filter-click",$.filterKey)},[k("div",{class:"lrg-item-inner",style:ze({backgroundColor:$.color,"--lrg-item-color":$.color})},[k("span",a1,K($.label),1),(I(!0),G(fe,null,Xe(e.columns,f=>(I(),G("span",{key:f.key,class:"lrg-badge"},[k("span",r1,K(f.key==="population"?e.fmtPop($.population):e.fmtCount($.count)),1)]))),128))],4)],10,n1)],8,e1),$.children&&$.children.length&&!c[$.key]?(I(!0),G(fe,{key:0},Xe($.children,f=>(I(),G("div",{key:f.key,class:"lrg-row lrg-row-child","data-lrg-filter-key":f.filterKey},[m[2]||(m[2]=k("span",{class:"lrg-caret-placeholder","aria-hidden":"true"},null,-1)),k("div",{class:ye(["lrg-item",{selected:e.activeFilter===f.filterKey}]),onClick:_=>p.$emit("filter-click",f.filterKey)},[k("div",{class:"lrg-item-inner",style:ze({backgroundColor:f.color,"--lrg-item-color":f.color})},[k("span",l1,K(f.label),1),(I(!0),G(fe,null,Xe(e.columns,_=>(I(),G("span",{key:_.key,class:"lrg-badge"},[k("span",c1,K(_.key==="population"?e.fmtPop(f.population):e.fmtCount(f.count)),1)]))),128))],4)],10,i1)],8,s1))),128)):pe("",!0)],64))),128)),e.columns.length&&e.showFooter?(I(),G("div",u1,[m[3]||(m[3]=k("span",{class:"lrg-footer-caret-slot","aria-hidden":"true"},null,-1)),k("span",p1,K(te(o)("legend.footer.total")),1),(I(!0),G(fe,null,Xe(e.columns,$=>(I(),G("span",{key:$.key,class:"lrg-footer-value"},K($.key==="population"?e.fmtPop(e.totalPopulation):e.fmtCount(e.totalCount)),1))),128))])):pe("",!0)],4)],2))}},[["styles",[Xy]],["__scopeId","data-v-b2cd86d3"]]),Du="doxa-prayed-local";function d1(){try{const e=localStorage.getItem(Du);if(!e)return{};const o=JSON.parse(e);return o&&typeof o=="object"?o:{}}catch{return{}}}function g1(e){try{localStorage.setItem(Du,JSON.stringify(e))}catch{}}function h1(e){if(!e)return;const o=d1();o[e]=Date.now(),g1(o);try{window.dispatchEvent(new CustomEvent("doxa:prayed-locally",{detail:{slug:e}}))}catch{}}const Bu=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"];function Gu(e){const o=(e||"U")[0].toUpperCase(),t=o.charCodeAt(0)%Bu.length,n=Bu[t];return{letter:o,color:"#ffffff",backgroundColor:n}}function f1(e,o={}){const{size:t=32,borderRadius:n=4}=o,a=Gu(e);return{width:`${t}px`,height:`${t}px`,borderRadius:`${n}px`,backgroundColor:a.backgroundColor,color:a.color,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"600",fontSize:`${Math.floor(t*.5)}px`,flexShrink:"0"}}const m1=".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}}",b1={key:0,class:"detail-header"},_1={class:"header-left"},$1={class:"header-text"},y1={class:"people-group-name"},v1={class:"people-group-subtitle"},k1=["aria-label"],w1={class:"detail-content"},x1={key:0,class:"pg-name-lead"},A1={class:"action-buttons"},S1={class:"quick-stats"},L1={class:"stat-item"},C1={class:"stat-label"},N1={class:"stat-value"},P1={class:"stat-item"},E1={class:"stat-label"},O1={class:"stat-value"},T1={class:"stat-item"},M1={class:"stat-label"},R1={class:"stat-value"},I1={class:"stat-item"},F1={class:"stat-label"},D1={class:"stat-value"},B1={class:"stat-item stat-committed"},G1={class:"stat-label"},U1={class:"stat-value"},j1={key:1,class:"image-container position-inside"},W1=["src","alt"],z1={key:2,class:"description-section"},V1={key:0,class:"description-text"},H1={key:1,class:"description-text empty"},Uu="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",ju=Ft({__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:o,locale:t}=po();_o(`
|
||
.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=xe("uiStore"),r=xe("profileConfig",null),s=z(()=>a.legendState),i=z(()=>a.isMobile),l=z(()=>!i.value||s.value==="fullyOpen"),c=z(()=>Gu(n.peopleGroup.properties.name)),u=z(()=>c.value.letter),d=z(()=>f1(n.peopleGroup.properties.name,{size:32,borderRadius:4})),p=z(()=>n.peopleGroup.properties),m=le(null),$=le(!1),f=z(()=>p.value.slug||"");async function _(Z){if(!Z)return;const ie=ls();if(ie)try{const se=await fetch(`${ie}/api/people-groups/detail/${encodeURIComponent(Z)}?lang=${encodeURIComponent(t.value)}`);if(!se.ok)throw new Error(`HTTP ${se.status}`);m.value=await se.json()}catch{m.value=null}}Ke(f,Z=>{$.value=!1,m.value=null,_(Z)},{immediate:!0});const v=z(()=>{var Z;return p.value.countryName||p.value.countryIsoLabel||p.value.country||p.value.countryIso||((Z=p.value._raw)==null?void 0:Z.Country)||""}),C=z(()=>{var se;const Z=p.value.status||((se=p.value._raw)==null?void 0:se.Status),ie=v.value||"Unknown";return Z?`${ie} • ${Z}`:ie}),w=z(()=>{var ie;const Z=p.value.language||((ie=p.value._raw)==null?void 0:ie.Language);if(!Z)return"Unknown";if(typeof Z=="object"&&Z.label)return Z.label;if(typeof Z=="string"&&Z.startsWith("{"))try{const se=JSON.parse(Z);if(se!=null&&se.label)return se.label}catch{}return Z}),A=z(()=>{var Z;return p.value.population||((Z=p.value._raw)==null?void 0:Z.Population)||0}),x=z(()=>{var ie,se;const Z=[(ie=m.value)==null?void 0:ie.people_praying,p.value.peoplePraying,(se=p.value._raw)==null?void 0:se.people_praying];for(const Te of Z)if(Te!=null&&Te!=="")return Number(Te);return null}),P=z(()=>x.value===null?"—":x.value.toLocaleString()),y=z(()=>{var Z;return p.value.religionName||p.value.religionLabel||p.value.religion||((Z=p.value._raw)==null?void 0:Z.Religion)||""}),L=z(()=>{var Z,ie,se;return((Z=m.value)==null?void 0:Z.imb_people_description)||((ie=m.value)==null?void 0:ie.description)||p.value.description||((se=p.value._raw)==null?void 0:se.Description)||""}),b=z(()=>{var Z,ie,se;return((Z=m.value)==null?void 0:Z.image_url)||((ie=m.value)==null?void 0:ie.imageUrl)||p.value.imageUrl||((se=p.value._raw)==null?void 0:se.ImageURL)||Uu}),O=z(()=>{const Z=parseInt(A.value);return Z>=1e6?`${(Z/1e6).toFixed(1)}M`:Z>=1e3?`${(Z/1e3).toFixed(1)}K`:Z.toLocaleString()});function R(){a.selectPeopleGroup(null)}function q(){var Te;let Z="";try{Z=new URLSearchParams(window.location.search).get("utm_source")||""}catch{}const ie=(Te=r==null?void 0:r.value)==null?void 0:Te.utmSource,se=typeof window<"u"&&window.DOXA_UTM_SOURCE||"";return encodeURIComponent(String(Z||ie||se||"agwm"))}function oe(Z){return`https://pray.doxa.life/${encodeURIComponent(Z)}?source=doxalife&utm_source=${q()}`}function ge(Z){return`${ne()}/adopt/${encodeURIComponent(Z)}/?source=doxalife&utm_source=${q()}`}function ne(){const Z=typeof window<"u"&&window.DOXA_SITE_URL||"";return String(Z||"https://doxa.life").replace(/\/+$/,"")}function X(Z){return`${ne()}/research/${encodeURIComponent(Z)}/?utm_source=${q()}`}function F(){const Z=f.value;if(!Z)return;n.action!=="adopt"&&h1(Z);const ie=n.action==="adopt"?ge(Z):oe(Z);window.open(ie,"_blank","noopener")}function W(){const Z=f.value;Z&&window.open(X(Z),"_blank","noopener")}function Y(Z){Z.target.dataset.usedFallback||(Z.target.dataset.usedFallback="true",Z.target.src=Uu)}return(Z,ie)=>(I(),G("div",{class:ye(["people-group-detail",{"dark-mode":e.dark}])},[e.hideHeader?pe("",!0):(I(),G("div",b1,[k("div",_1,[k("div",{class:"avatar",style:ze(d.value)},K(u.value),5),k("div",$1,[k("h3",y1,K(e.peopleGroup.properties.name),1),k("p",v1,K(C.value),1)])]),k("button",{class:"close-button",onClick:R,"aria-label":te(o)("aria.closeDetailView")},[...ie[1]||(ie[1]=[k("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},[k("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,k1)])),k("div",w1,[e.hideHeader?(I(),G("h3",x1,K(e.peopleGroup.properties.name||te(o)("legend.header.peopleGroupFallback")),1)):pe("",!0),k("div",A1,[e.action==="pray"||e.action==="adopt"?(I(),G("button",{key:0,class:"action-btn primary",onClick:F},[ie[2]||(ie[2]=k("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[k("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),k("span",null,K(e.action==="adopt"?te(o)("buttons.adoptThem"):te(o)("buttons.prayForThem")),1)])):pe("",!0),k("button",{class:"action-btn secondary",onClick:W},[ie[3]||(ie[3]=k("svg",{class:"btn-icon",width:"16",height:"16",viewBox:"0 0 16 16"},[k("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),k("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),k("span",null,K(te(o)("buttons.moreInfo")),1)])]),k("div",S1,[k("div",L1,[k("span",C1,K(te(o)("detail.labels.country")),1),k("span",N1,K(v.value||"—"),1)]),k("div",P1,[k("span",E1,K(te(o)("detail.labels.population")),1),k("span",O1,K(O.value||"—"),1)]),k("div",T1,[k("span",M1,K(te(o)("detail.labels.language")),1),k("span",R1,K(w.value||"—"),1)]),k("div",I1,[k("span",F1,K(te(o)("detail.labels.religion")),1),k("span",D1,K(y.value||"—"),1)]),k("div",B1,[k("span",G1,K(te(o)("detail.labels.peopleCommitted")),1),k("span",U1,K(P.value),1)])]),l.value?(I(),G("div",j1,[k("div",{class:ye(["image-placeholder-svg",{hidden:$.value}])},[...ie[4]||(ie[4]=[k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 120",width:"80",height:"96","aria-hidden":"true"},[k("circle",{cx:"50",cy:"36",r:"22",fill:"#ccc"}),k("ellipse",{cx:"50",cy:"95",rx:"36",ry:"28",fill:"#ccc"})],-1)])],2),b.value?(I(),G("img",{key:0,src:b.value,alt:`${e.peopleGroup.properties.name} people group`,class:ye(["people-group-image",{loaded:$.value}]),onLoad:ie[0]||(ie[0]=se=>$.value=!0),onError:Y},null,42,W1)):pe("",!0)])):pe("",!0),l.value?(I(),G("div",z1,[L.value?(I(),G("p",V1,K(L.value),1)):(I(),G("p",H1,K(te(o)("detail.messages.noDescription")),1))])):pe("",!0)])],2))}},[["styles",[m1]],["__scopeId","data-v-06241c48"]]),Wu={excludeReligionFamilies:["C"]},K1="",q1={class:"legend-reopen-label"},Y1=["aria-label"],X1=["aria-label"],Z1=["aria-label"],J1=Ft({__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 o=Dr(()=>pn(()=>Promise.resolve().then(()=>Ku),void 0)),{t}=po();_o(`
|
||
.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;xe("mapStore"),xe("dataStore");const a=xe("uiStore"),r=hi(n,"legendType"),{items:s,columns:i,title:l,activeFilter:c,setFilter:u,totalCount:d,totalPopulation:p,progress:m,fmtPop:$,fmtCount:f}=Ru(r,Wu);xe("normalizedPeopleGroups",null);const _=xe("mapId",null),v=z(()=>a.isMobile),C=z(()=>a.legendMode),w=z(()=>a.selectedPeopleGroup),A=le(n.initiallyCollapsed);let x=null;const P=z(()=>{var b;return C.value==="detail"&&w.value?((b=w.value.properties)==null?void 0:b.name)||t("legend.header.peopleGroupFallback"):A.value?t("legend.header.collapsed"):l.value});function y(){A.value=!A.value}Ke(C,(b,O)=>{b==="detail"&&O!=="detail"&&A.value&&(A.value=!1)});function L(b){u(b)}return zo(()=>{window.innerWidth<768&&(A.value=!0),x=b=>{var O;_&&((O=b.detail)!=null&&O.mapId)&&b.detail.mapId!==_||(A.value=!1)},window.addEventListener("dxm:openDesktopLegend",x)}),Vo(()=>{x&&window.removeEventListener("dxm:openDesktopLegend",x)}),(b,O)=>v.value?(I(),Ze(te(o),{key:0,legendType:e.legendType,popupAction:e.popupAction,isDark:e.isDark,disableCollapse:e.disableCollapse},null,8,["legendType","popupAction","isDark","disableCollapse"])):A.value?(I(),G("button",{key:1,class:ye(["legend-reopen",{"legend-reopen-light":!e.isDark}]),title:"Expand legend",onClick:O[0]||(O[0]=R=>A.value=!1)},[O[2]||(O[2]=k("svg",{class:"legend-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[k("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),k("span",q1,K(te(l)),1),O[3]||(O[3]=k("svg",{class:"legend-reopen-caret",width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[k("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],2)):(I(),G("div",{key:2,class:ye(["legend-container",{"legend-dark":e.isDark}])},[C.value==="detail"?(I(),G("button",{key:0,class:"detail-collapse-btn",onClick:ao(y,["stop"]),"aria-label":te(t)("aria.toggleLegend")},null,8,Y1)):pe("",!0),C.value==="detail"?(I(),G("button",{key:1,class:"detail-close-btn",onClick:O[1]||(O[1]=ao(R=>te(a).selectPeopleGroup(null),["stop"])),"aria-label":te(t)("aria.backToLegend")},[...O[4]||(O[4]=[k("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[k("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,X1)):pe("",!0),k("div",{class:ye(["legend-content",{"no-padding":te(i).length>0}])},[C.value==="detail"&&w.value?(I(),Ze(ju,{key:0,peopleGroup:w.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):e.legendType==="language-family"?(I(),G(fe,{key:1},[],64)):(I(),Ze(Fu,{key:2,title:P.value,items:te(s),columns:te(i),activeFilter:te(c),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:te(d),totalPopulation:te(p),fmtPop:te($),fmtCount:te(f),progress:te(m),onFilterClick:L},{"title-caret":To(()=>[k("button",{class:"legend-collapse-caret",onClick:ao(y,["stop"]),"aria-label":te(t)("aria.toggleLegend")},[...O[5]||(O[5]=[k("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[k("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,Z1)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount","progress"]))],2)],2))}},[["styles",[K1]],["__scopeId","data-v-9250730f"]]),Q1={class:"gm-legend"},ev={class:"gm-title"},ov={class:"gm-keys"},tv={key:0,class:"gm-key"},nv={class:"gm-caveat"},av={key:1,class:"gm-err"},rv={key:2,class:"gm-pg-desktop"},sv={key:3,class:"gm-pg-mobile"},iv={key:4,class:"gm-sheet"},lv={class:"gm-sh-head"},cv={class:"gm-sh-name"},uv={key:0,class:"gm-ai"},pv=["aria-label"],dv={class:"gm-stat"},gv={class:"gm-stat"},hv={class:"gm-stat"},fv={class:"gm-stat"},mv={class:"gm-stat"},bv={key:1,class:"gm-list"},_v={class:"gm-list-h"},$v={key:2,class:"gm-list"},yv={class:"gm-list-h"},vv={class:"gm-note"},Ts="#e11d48",kv=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-map",setup(e){const o=Dr(()=>pn(()=>Promise.resolve().then(()=>Ku),void 0)),t=xe("profileConfig",le(null)),n=z(()=>{var F;return((F=t.value)==null?void 0:F.isDark)===!0}),a=z(()=>{var F;return((F=t.value)==null?void 0:F.tk)||window.DOXA_TOKEN||""}),r=z(()=>ru(t.value)),s=le(null),i=Vt(null),l=le([]),c=le(null),u=le(!0),d=le(null),p=xe("uiStore",null),m=(()=>{var W;const F=(W=xe("lang",null))==null?void 0:W.value;return F&&F!=="en"?F:null})(),$=new cu({locale:m}),f=Vt([]),_=le(0),v=ry({getMap:()=>i.value,getActivePinColor:()=>Ts});async function C(){await $.init();const F=await $.setActiveSource("pray-tools");f.value=Nt(F||[])}function w(){const F=[];for(const W of f.value){const Y=parseFloat(W.longitude??W.lng),Z=parseFloat(W.latitude??W.lat);if(!isFinite(Y)||!isFinite(Z))continue;const ie=W._normalized||{};F.push({type:"Feature",properties:{uniqueId:W.uniqueId,slug:W.slug||"",name:W.name,language:W.language,languageFamily:W.languageFamily||ie.languageFamily||"",country:W.country,countryIso:W.countryIso,countryIsoLabel:W.countryIsoLabel,countryName:W.countryName,religion:W.religion,religionLabel:W.religionLabel,religionName:W.religionName,population:W.population,status:W.status,description:W.description||"",imageUrl:W.imageUrl||"",peoplePraying:Number(W.peoplePraying??ie.peoplePraying??0)},geometry:{type:"Point",coordinates:[Y,Z]}})}return{type:"FeatureCollection",features:F}}function A(F){if(!f.value.length||F.getSource("language-families"))return;const W=w();if(_.value=W.features.length,F.addSource("language-families",{type:"geojson",data:W,promoteId:"uniqueId"}),W.features.length){let Y=180,Z=90,ie=-180,se=-90;for(const Pe of W.features){const[We,Se]=Pe.geometry.coordinates;We<Y&&(Y=We),We>ie&&(ie=We),Se<Z&&(Z=Se),Se>se&&(se=Se)}const Te=Math.round(Math.min(F.getContainer().clientWidth,F.getContainer().clientHeight)*.06)+8;try{const Pe=F.cameraForBounds([[Y,Z],[ie,se]],{padding:Te});if(F.fitBounds([[Y,Z],[ie,se]],{padding:Te,duration:0}),Pe&&F.getZoom()>Pe.zoom+.05){const We=F.getBounds(),Se=Math.min(360,We.getEast()-We.getWest());let De=F.getCenter().lng,oo=-1;for(let so=-180;so<180;so+=5){let Be=0;for(const No of W.features){let S=No.geometry.coordinates[0]-so;S=(S+540)%360-180,Math.abs(S)<=Se/2&&Be++}Be>oo&&(oo=Be,De=so)}F.jumpTo({center:[De,(Z+se)/2]})}}catch{}}F.addLayer({id:"ci-pg-dots",type:"circle",source:"language-families",paint:{"circle-color":Ts,"circle-radius":["interpolate",["linear"],["zoom"],0,2.6,4,3.6,8,6,12,8.5],"circle-stroke-color":"#ffffff","circle-stroke-width":["interpolate",["linear"],["zoom"],0,1,6,1.4,12,1.8],"circle-opacity":.95}}),F.on("click","ci-pg-dots",Y=>{var ie;const Z=(ie=Y.features)==null?void 0:ie[0];!Z||!p||(c.value=null,p.selectPeopleGroup(Z))}),F.on("mouseenter","ci-pg-dots",()=>{F.getCanvas().style.cursor="pointer"}),F.on("mouseleave","ci-pg-dots",()=>{F.getCanvas().style.cursor=""}),typeof window<"u"&&(window.__ciState=()=>{var Y,Z;return{groups:f.value.length,dots:_.value,hasLayer:!!F.getLayer("ci-pg-dots"),rendered:F.queryRenderedFeatures({layers:["ci-pg-dots"]}).length,selected:((Z=(Y=p==null?void 0:p.selectedPeopleGroup)==null?void 0:Y.properties)==null?void 0:Z.slug)||null}},window.__ciMap=F)}const x=F=>String(F).replace(/^connectivity\./,"").split(".").reduce((W,Y)=>W==null?W:W[Y],Gl),P=(F,W)=>W?String(F).replace(/\{(\w+)\}/g,(Y,Z)=>Z in W?W[Z]:Y):F;let y=(F,W)=>P(x(F)??String(F),W);try{const F=po();y=(W,Y)=>{const Z=F.t(W,Y||{});return Z===W?P(x(W)??W,Y):Z}}catch{}const L=[{id:"yes",color:"#10b981"},{id:"partial",color:"#e8c15a"},{id:"no",color:"#b42318"},{id:"unknown",color:"#9aa2ad"}],b=F=>(L.find(W=>W.id===F)||{}).color||"#9aa2ad",O=z(()=>{const F={};for(const W of l.value)F[W.iso3]=W;return F});async function R(){const[F,W]=await Promise.all([fetch(`${r.value}/tables/internet-by-country.json`).then(Y=>Y.json()),fetch(`${r.value}/boundaries/world-adm0.geojson`).then(Y=>Y.json())]);return l.value=F.countries||[],W}function q(F,W){const Y=O.value,ie={type:"FeatureCollection",features:(W.features||[]).map(se=>{var We;const Te=(We=se.properties)==null?void 0:We.iso3,Pe=Y[Te];return{type:"Feature",properties:{iso3:Te,band:(Pe==null?void 0:Pe.band)||"none",color:Pe?b(Pe.band):"rgba(0,0,0,0)",hasData:!!Pe},geometry:se.geometry}})};if(F.getSource("ci-src")){F.getSource("ci-src").setData(ie);return}F.addSource("ci-src",{type:"geojson",data:ie}),F.addLayer({id:"ci-fill",type:"fill",source:"ci-src",paint:{"fill-color":["get","color"],"fill-opacity":["case",["get","hasData"],.72,0]}}),F.addLayer({id:"ci-line",type:"line",source:"ci-src",paint:{"line-color":"rgba(255,255,255,0.5)","line-width":.5}}),F.on("click","ci-fill",se=>{var Pe,We,Se;if(F.getLayer("ci-pg-dots")&&F.queryRenderedFeatures(se.point,{layers:["ci-pg-dots"]}).length)return;const Te=(Se=(We=(Pe=se.features)==null?void 0:Pe[0])==null?void 0:We.properties)==null?void 0:Se.iso3;Te&&O.value[Te]&&(p==null||p.selectPeopleGroup(null),c.value=O.value[Te])}),F.on("mouseenter","ci-fill",()=>{F.getCanvas().style.cursor="pointer"}),F.on("mouseleave","ci-fill",()=>{F.getCanvas().style.cursor=""})}const oe=q0(xe("profileConfig",null));let ge=!1;zo(async()=>{try{await ty(oe)}catch{}const F=ss(oe)||window.mapboxgl;if(!ge){if(!F||!s.value){d.value="map engine not loaded";return}ey(F);try{const W=C().catch(se=>{console.warn("[connectivity-map] people groups:",(se==null?void 0:se.message)||se)}),Y=await R();if(ge||!s.value)return;const Z=oy(oe);if(Z&&await ny(s.value,Z),ge||!s.value)return;const ie=new F.Map({container:s.value,style:J0(n.value?"ink":"paper",oe).style||(n.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11"),accessToken:a.value,center:[42,18],zoom:1.3,projection:"mercator",attributionControl:!1});i.value=Nt(ie),h0(ie,{boundaries:!0}),ie.once("load",async()=>{q(ie,Y),v.initialize(),await W,A(ie)})}catch(W){d.value=String(W.message||W)}}}),Vo(()=>{var F;ge=!0,v.cleanup(),p==null||p.selectPeopleGroup(null);try{(F=i.value)==null||F.remove()}catch{}});const ne=F=>(Number(F)||0).toLocaleString(),X=z(()=>!!(p!=null&&p.selectedPeopleGroup));return _o(".gm{position:absolute;inset:0;overflow:hidden}.gm-map{position:absolute;inset:0}.gm-legend{position:absolute;top:8px;inset-inline-start:8px;width:var(--map-legend-width,380px);max-width:calc(100% - 16px);box-sizing:border-box;z-index:4;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.94);color:#0f1419;font:12px/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.16)}@media(max-width:480px){.gm-legend{width:auto;inset-inline-end:46px}}.is-dark .gm-legend{background:rgba(19,32,25,.95);color:#e5e7eb}.gm-title{font-weight:700;font-size:12.5px;margin-bottom:5px}.gm-keys{display:flex;flex-wrap:wrap;gap:5px 12px}.gm-key{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.gm-sw{width:12px;height:12px;border-radius:3px;flex:none}.gm-caveat{margin-top:5px;font-size:10.5px;opacity:.72;line-height:1.4}.gm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;max-height:62%;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:14px 16px 22px;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 -6px 26px rgba(0,0,0,.28)}@media(min-width:700px){.gm-sheet{inset-inline-start:auto;inset-inline-end:14px;bottom:14px;width:330px;border-radius:12px}}.is-dark .gm-sheet{background:#132019;color:#e5e7eb}.gm-sh-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.gm-sh-name{font-weight:800;font-size:15px}.gm-ai{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:7px 9px;border-radius:8px;font-size:11px;line-height:1.35;background:rgba(180,120,0,.12);color:#7a4f00;border:1px solid rgba(180,120,0,.25)}.is-dark .gm-ai{background:rgba(255,200,80,.10);color:#f0cf88;border-color:rgba(255,200,80,.22)}.gm-ai-x{margin-left:auto;flex:none;border:0;background:none;cursor:pointer;font-size:15px;line-height:1;color:inherit;opacity:.7;padding:0 2px}.gm-ai-x:hover{opacity:1}.gm-x{margin-left:auto;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit;font:600 12px inherit;padding:6px 12px;border-radius:8px;cursor:pointer;min-height:34px}.gm-stat{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.07);font-variant-numeric:tabular-nums}.is-dark .gm-stat{border-bottom-color:rgba(255,255,255,.09)}.gm-stat b{font-weight:700}.gm-list{margin-top:9px}.gm-list-h{font-weight:700;font-size:12px;margin-bottom:3px}.gm-list ul{margin:0;padding-left:17px;font-size:12px;line-height:1.5}.gm-note{margin-top:9px;font-size:11px;line-height:1.5;opacity:.75}.gm-err{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:13px;opacity:.7}.gm-dot{width:10px;height:10px;border-radius:50%;flex:none;box-sizing:border-box;border:1.5px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.25)}.gm-pg-mobile{display:none}@media(max-width:767px){.gm-pg-mobile{display:block}.gm-pg-desktop{display:none}}","doxa-connectivity-map"),(F,W)=>(I(),G("div",{class:ye(["gm",{"is-dark":n.value}])},[k("div",{ref_key:"mapEl",ref:s,class:"gm-map"},null,512),i.value?(I(),Ze(f0,{key:0},{default:To(()=>[Me(b0,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),Me(_0,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),Me($0,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),Me(k0,{"map-container":s.value,"is-dark":n.value},null,8,["map-container","is-dark"]),Me(V0,{"is-dark":n.value,"embed-path":"cities-internet/connectivity-map/index.html"},null,8,["is-dark"])]),_:1})):pe("",!0),wi(k("div",Q1,[k("div",ev,K(te(y)("connectivity.title")),1),k("div",ov,[(I(),G(fe,null,Xe(L,Y=>k("span",{key:Y.id,class:"gm-key"},[k("i",{class:"gm-sw",style:ze({background:Y.color})},null,4),Ce(K(te(y)("connectivity.bands."+Y.id)),1)])),64)),f.value.length?(I(),G("span",tv,[k("i",{class:"gm-dot",style:ze({background:Ts})},null,4),Ce(K(te(y)("connectivity.peopleGroup"))+" ("+K(ne(f.value.length))+") ",1)])):pe("",!0)]),k("div",nv,K(te(y)("connectivity.caveat")),1)],512),[[vl,!X.value]]),d.value?(I(),G("div",av,K(d.value),1)):pe("",!0),X.value?(I(),G("div",rv,[Me(J1,{"legend-type":"prayer","popup-action":"pray","initially-collapsed":!1,"is-dark":n.value},null,8,["is-dark"])])):pe("",!0),X.value?(I(),G("div",sv,[Me(te(o),{"legend-type":"prayer","popup-action":"pray","is-dark":n.value},null,8,["is-dark"])])):pe("",!0),c.value?(I(),G("div",iv,[k("div",lv,[k("span",cv,K(c.value.country),1),k("button",{type:"button",class:"gm-x",onClick:W[0]||(W[0]=Y=>c.value=null)},K(te(y)("connectivity.sheet.close")),1)]),u.value?(I(),G("div",uv,[k("span",null,K(te(y)("connectivity.sheet.ai")),1),k("button",{type:"button",class:"gm-ai-x",onClick:W[1]||(W[1]=Y=>u.value=!1),"aria-label":te(y)("connectivity.sheet.dismiss")},"×",8,pv)])):pe("",!0),k("div",dv,[k("span",null,K(te(y)("connectivity.sheet.internetUsers")),1),k("b",null,K(c.value.internet_pct!=null?c.value.internet_pct+"%":te(y)("connectivity.sheet.unknown")),1)]),k("div",gv,[k("span",null,K(te(y)("connectivity.sheet.measured")),1),k("b",null,K(c.value.internet_year||"—"),1)]),k("div",hv,[k("span",null,K(te(y)("connectivity.sheet.mobilePer100")),1),k("b",null,K(c.value.mobile_per_100??"—"),1)]),k("div",fv,[k("span",null,K(te(y)("connectivity.sheet.peopleGroups")),1),k("b",null,K(ne(c.value.people_groups)),1)]),k("div",mv,[k("span",null,K(te(y)("connectivity.sheet.topPlatform")),1),k("b",null,[Ce(K(c.value.top_platform||te(y)("connectivity.sheet.unknown")),1),c.value.top_platform_pct?(I(),G(fe,{key:0},[Ce(" · "+K(c.value.top_platform_pct)+"%",1)],64)):pe("",!0)])]),c.value.carriers&&c.value.carriers.length?(I(),G("div",bv,[k("div",_v,K(te(y)("connectivity.sheet.carriers",{n:c.value.carrier_count})),1),k("ul",null,[(I(!0),G(fe,null,Xe(c.value.carriers,(Y,Z)=>(I(),G("li",{key:Z},K(Y),1))),128))])])):pe("",!0),c.value.platforms&&c.value.platforms.length?(I(),G("div",$v,[k("div",yv,K(te(y)("connectivity.sheet.socialPlatforms")),1),k("ul",null,[(I(!0),G(fe,null,Xe(c.value.platforms,(Y,Z)=>(I(),G("li",{key:Z},K(Y.name)+" · "+K(Y.pct)+"%",1))),128))])])):pe("",!0),k("p",vv,K(te(y)("connectivity.sheet.note")),1)])):pe("",!0)],2))}}},Symbol.toStringTag,{value:"Module"}));function wv(e){const o=(e==null?void 0:e.parentElement)||e;if(!o||!o.ownerDocument)return{x:0,y:0};const t=o.ownerDocument.createElement("div");t.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",o.appendChild(t);const n=t.getBoundingClientRect();return t.remove(),{x:n.left,y:n.top}}function zu(e){const o=le(null),t=Vt({position:"fixed",inset:"0"}),n=()=>{var u,d;const r=o.value;if(!r)return;const s=wv(r),i=r.ownerDocument||(typeof document<"u"?document:null),l=((u=i==null?void 0:i.documentElement)==null?void 0:u.clientWidth)||0,c=((d=i==null?void 0:i.documentElement)==null?void 0:d.clientHeight)||0;t.value={position:"fixed",top:`${-s.y}px`,left:`${-s.x}px`,right:"auto",bottom:"auto",width:`${l}px`,height:`${c}px`,boxSizing:"border-box"}};Ke(e,r=>{r&&requestAnimationFrame(()=>{n(),requestAnimationFrame(n)})},{flush:"post"});const a=()=>{e.value&&n()};return typeof window<"u"&&window.addEventListener("resize",a),Vo(()=>{typeof window<"u"&&window.removeEventListener("resize",a)}),{scrimRef:o,scrimStyle:t}}const xv={class:"dt-head"},Av={class:"dt-title"},Sv={class:"dt-count"},Lv={key:0,class:"dt-grain"},Cv={class:"dt-actions"},Nv={key:0,class:"dt-err"},Pv={class:"dt-wrap"},Ev={class:"dt-hint"},Ov={class:"dt-sheet",role:"dialog","aria-label":"Row detail"},Tv={class:"dt-sheet-head"},Mv={class:"dt-dl"},Rv=["href"],Iv={key:1},Fv={key:2},Dv={key:2,class:"dt-caveats"},Bv={class:"dt-cav-k"},Gv={__name:"DataTable",props:{table:{type:Object,required:!0},assetsBase:{type:String,default:"./assets"},isDark:{type:Boolean,default:!1},height:{type:String,default:"560px"},frozen:{type:Number,default:1},pageSize:{type:Number,default:50}},emits:["row-click"],setup(e,{emit:o}){const t=e,n=o,a=le(!1),r=le(null),{scrimRef:s,scrimStyle:i}=zu(r),l=le(null),c=Vt(null),u=le(null),d=le(!1),p=z(()=>String(t.assetsBase||"./assets").replace(/\/+$/,"")),m=z(()=>{var b;return((b=t.table)==null?void 0:b.meta)||{}}),$=z(()=>{var b;return(((b=t.table)==null?void 0:b.rows)||[]).length}),f=z(()=>Object.entries(m.value).filter(([b,O])=>typeof O=="string"&&/caveat|meaning|note|boundary|measures|does_not/i.test(b)).map(([b,O])=>({key:b.replace(/_/g," "),text:O})));let _=null;function v(){return window.Tabulator?Promise.resolve(window.Tabulator):_||(_=new Promise((b,O)=>{const R=document.createElement("script");R.src=`${p.value}/vendor/tabulator/tabulator.min.js`,R.onload=()=>b(window.Tabulator),R.onerror=()=>O(new Error("Tabulator failed to load — is public/assets/vendor/tabulator/ present?")),document.head.appendChild(R)}),_)}async function C(b){if(!(!b||b.querySelector("style[data-tabulator]")))try{const O=await fetch(`${p.value}/vendor/tabulator/tabulator.min.css`);if(!O.ok)return;const R=document.createElement("style");R.setAttribute("data-tabulator",""),R.textContent=await O.text(),b.appendChild(R)}catch{}}function w(b){var oe,ge;if(!l.value)return;a.value=typeof window<"u"&&window.innerWidth<700;const O=((oe=t.table)==null?void 0:oe.columns)||[],q=(a.value?O.slice(0,3):O).map((ne,X)=>({title:ne.title,field:ne.field,headerFilter:ne.type==="boolean"?"tickCross":"input",headerFilterPlaceholder:"filter…",sorter:ne.type==="number"?"number":ne.type==="boolean"?"boolean":"string",formatter:ne.type==="boolean"?"tickCross":void 0,.../_url$/.test(ne.field)?{formatter:"link",formatterParams:{target:"_blank",label:()=>"open"}}:{},frozen:!a.value&&X<t.frozen,minWidth:a.value?78:ne.type==="number"?90:120,maxWidth:a.value?150:/method|caveat|pools|classification/.test(ne.field)?260:void 0,widthGrow:/method|caveat|pools|source|classification/.test(ne.field)?0:1}));c.value=new b(l.value,{data:((ge=t.table)==null?void 0:ge.rows)||[],columns:q,height:t.height,layout:a.value?"fitColumns":"fitDataStretch",pagination:!0,paginationSize:a.value?20:t.pageSize,paginationSizeSelector:[25,50,100,250],movableColumns:!0,placeholder:"No rows"}),c.value.on("rowClick",(ne,X)=>{r.value=X.getData(),n("row-click",X.getData())}),c.value.on("tableBuilt",()=>{d.value=!0})}const A=b=>{var O,R;return((R=(((O=t.table)==null?void 0:O.columns)||[]).find(q=>q.field===b))==null?void 0:R.title)||b.replace(/_/g," ")},x=b=>typeof b=="string"&&b.includes(", ")&&b.length>40?b.split(", "):null,P=b=>typeof b=="string"&&/^https?:\/\//.test(b),y=z(()=>r.value?Object.entries(r.value).filter(([,b])=>b!==""&&b!==null&&b!==void 0):[]);function L(b){var O;try{(O=c.value)==null||O.download(b,`${(m.value.title||"table").replace(/\W+/g,"-").toLowerCase()}.${b}`)}catch(R){u.value=String(R.message||R)}}return zo(async()=>{var b,O;try{await C((O=(b=l.value)==null?void 0:b.getRootNode)==null?void 0:O.call(b)),w(await v())}catch(R){u.value=String(R.message||R)}}),Vo(()=>{var b;try{(b=c.value)==null||b.destroy()}catch{}}),Ke(()=>t.table,()=>{var b,O;try{(O=c.value)==null||O.replaceData(((b=t.table)==null?void 0:b.rows)||[])}catch{}}),_o(".dt .tabulator{border:1px solid #d1d4cd;background:#fff;font-size:14px}.dt .tabulator .tabulator-header{background:#f3f3f1;border-bottom:1px solid #d1d4cd;color:#3b463d}.dt .tabulator .tabulator-header .tabulator-col{background:#f3f3f1;border-right:1px solid #d1d4cd;color:#3b463d}.dt .tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{background:#e9ebe6}.dt .tabulator .tabulator-col-title{color:#3b463d;font-weight:700}.dt .tabulator .tabulator-header .tabulator-col .tabulator-header-filter input,.dt .tabulator .tabulator-header .tabulator-col .tabulator-header-filter select{background:#fff;border:1px solid #d1d4cd;border-radius:5px;color:#3b463d;padding:3px 6px}.dt .tabulator .tabulator-row{background:#fff;color:#3b463d;border-bottom:1px solid #e6e8e3}.dt .tabulator .tabulator-row.tabulator-row-even{background:#faf9f7}.dt .tabulator .tabulator-row:hover{background:#e9ebe6}.dt .tabulator .tabulator-row .tabulator-cell{border-right:1px solid #e6e8e3;color:#3b463d}.dt .tabulator .tabulator-row .tabulator-cell a{color:#4a7a52;font-weight:600}.dt .tabulator .tabulator-footer{background:#f3f3f1;border-top:1px solid #d1d4cd;color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-paginator{color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-paginator label{color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-paginator select{background:#fff;border:1px solid #d1d4cd;border-radius:5px;color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-page{border:1px solid #d1d4cd;background:#fff;color:#3b463d;border-radius:5px}.dt .tabulator .tabulator-footer .tabulator-page.active{background:#92b195;border-color:#92b195;color:#fff}.dt .tabulator .tabulator-footer .tabulator-page:not(disabled):hover{background:#e9ebe6;color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-page:disabled{opacity:.45}.dt,.dt *{box-sizing:border-box}.dt{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.dt-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.dt-title{font-size:15px;font-weight:700;margin:0}.dt-count{font-size:11.5px;opacity:.6;font-variant-numeric:tabular-nums}.dt-grain{font-size:11px;opacity:.55}.dt-actions{margin-left:auto;display:flex;gap:6px}.dt-btn{font:600 11.5px inherit;padding:5px 11px;border-radius:6px;cursor:pointer;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-btn:hover{background:rgba(0,0,0,.05)}.dt-err{padding:10px 12px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.dt-caveats{margin-top:10px;padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.04);font-size:11.5px;line-height:1.6;opacity:.85}.is-dark .dt-caveats{background:rgba(255,255,255,.06)}.dt-cav-k{font-weight:700;text-transform:capitalize}.dt-scrim{position:fixed;inset:0;z-index:1200;background:rgba(8,12,16,.55);display:flex;align-items:flex-end;justify-content:center}@media(min-width:700px){.dt-scrim{align-items:center}}.dt-sheet{width:100%;max-width:560px;max-height:82vh;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:16px 18px 26px;box-shadow:0 -6px 30px rgba(0,0,0,.3)}@media(min-width:700px){.dt-sheet{border-radius:14px}}.is-dark .dt-sheet{background:#132019;color:#e5e7eb}.dt-sheet-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid rgba(0,0,0,.10);font-size:15px}.dt-close{margin-left:auto;font:600 12px inherit;padding:7px 14px;border-radius:8px;cursor:pointer;min-height:36px;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-dl{display:grid;grid-template-columns:minmax(96px,34%) 1fr;gap:7px 12px;margin:0;font-size:12.5px}.dt-dl dt{font-weight:700;opacity:.72;text-transform:capitalize}.dt-dl dd{margin:0;word-break:break-word}.dt-dl ul{margin:0;padding-left:16px}.dt-dl a{color:#0b7a5b;font-weight:600}.dt-hint{font-size:11px;opacity:.6;margin:6px 0 0}.dt-wrap{width:100%;overflow:hidden;border:1px solid rgba(0,0,0,.10);border-radius:8px}.is-dark .dt-wrap{border-color:rgba(255,255,255,.12)}","doxa-data-table"),(b,O)=>{var R,q;return I(),G("div",{class:ye(["dt",{"is-dark":e.isDark}])},[k("div",xv,[k("h3",Av,K(m.value.title||"Data"),1),k("span",Sv,K($.value.toLocaleString())+" rows",1),m.value.grain?(I(),G("span",Lv,"· "+K(m.value.grain),1)):pe("",!0),k("span",Cv,[k("button",{type:"button",class:"dt-btn",onClick:O[0]||(O[0]=oe=>L("csv"))},"CSV"),k("button",{type:"button",class:"dt-btn",onClick:O[1]||(O[1]=oe=>L("json"))},"JSON")])]),u.value?(I(),G("div",Nv,K(u.value),1)):pe("",!0),k("div",Pv,[k("div",{ref_key:"host",ref:l},null,512)]),k("p",Ev,"Tap any row for its full detail"+K(a.value?"":" — every field, including the lists the table flattens")+".",1),r.value?(I(),G("div",{key:1,ref_key:"scrimRef",ref:s,style:ze(te(i)),class:"dt-scrim",onClick:O[3]||(O[3]=ao(oe=>r.value=null,["self"]))},[k("div",Ov,[k("div",Tv,[k("strong",null,K(r.value[(q=(((R=e.table)==null?void 0:R.columns)||[])[0])==null?void 0:q.field]||"Detail"),1),k("button",{type:"button",class:"dt-close",onClick:O[2]||(O[2]=oe=>r.value=null)},"Close")]),k("dl",Mv,[(I(!0),G(fe,null,Xe(y.value,([oe,ge])=>(I(),G(fe,{key:oe},[k("dt",null,K(A(oe)),1),k("dd",null,[P(ge)?(I(),G("a",{key:0,href:ge,target:"_blank",rel:"noopener"},K(ge),9,Rv)):x(ge)?(I(),G("ul",Iv,[(I(!0),G(fe,null,Xe(x(ge),(ne,X)=>(I(),G("li",{key:X},K(ne),1))),128))])):(I(),G("span",Fv,K(ge===!0?"yes":ge===!1?"no":ge),1))])],64))),128))])])],4)):pe("",!0),f.value.length?(I(),G("div",Dv,[(I(!0),G(fe,null,Xe(f.value,oe=>(I(),G("div",{key:oe.key},[k("span",Bv,K(oe.key)+":",1),Ce(" "+K(oe.text),1)]))),128))])):pe("",!0)],2)}}},Uv={class:"ct-tabs"},jv=["onClick"],Wv={key:0,class:"ct-n"},zv={key:0,class:"ct-err"},Vv={key:1,class:"ct-load"},Hv=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"data-tables",setup(e){const o=xe("profileConfig",le(null)),t=z(()=>{var p;return((p=o.value)==null?void 0:p.isDark)===!0}),n=z(()=>ru(o.value)),a=[{id:"cities",label:"Key Cities",file:"key-cities"},{id:"internet",label:"Connectivity",file:"country-connectivity"},{id:"operators",label:"ISPs & Carriers",file:"network-operators"},{id:"social",label:"Social Platforms",file:"social-platforms"},{id:"messaging",label:"Messaging Apps",file:"messaging-channels"}],r=le("cities"),s=z(()=>a.find(p=>p.id===r.value)||a[0]),i=le({}),l=le(!1),c=le(null);async function u(p){if(!i.value[p]){l.value=!0,c.value=null;try{const m=await fetch(`${n.value}/tables/${p}.json`);if(!m.ok)throw new Error(`table not found (${m.status})`);i.value={...i.value,[p]:await m.json()}}catch(m){c.value=String(m.message||m)}finally{l.value=!1}}}Ke(s,p=>p&&u(p.file),{immediate:!0});const d=z(()=>{var p;return i.value[(p=s.value)==null?void 0:p.file]||null});return _o(".ct{position:absolute;inset:0;overflow-y:auto;padding:18px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ct.is-dark{background:#0a1410;color:#e5e7eb}.ct-h{margin:0 0 4px;font-size:18px;font-weight:700}.ct-sub{margin:0 0 14px;font-size:12.5px;opacity:.72;line-height:1.5}.ct-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.ct-tab{font:600 12px inherit;padding:7px 14px;border-radius:999px;cursor:pointer;border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit}.ct-tab.on{background:#10b981;border-color:#10b981;color:#04241a}.ct-load{padding:22px;text-align:center;font-size:12.5px;opacity:.6}.ct-err{padding:11px 13px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.ct-n{font-size:10.5px;opacity:.6;margin-left:5px;font-variant-numeric:tabular-nums}","doxa-cities-tables"),(p,m)=>(I(),G("div",{class:ye(["ct",{"is-dark":t.value}])},[m[0]||(m[0]=k("h2",{class:"ct-h"},"Cities Data",-1)),m[1]||(m[1]=k("p",{class:"ct-sub"}," Where the unengaged people groups live — and what reaches them. Sort, filter and export any table; each carries its own sources and limits. ",-1)),k("div",Uv,[(I(),G(fe,null,Xe(a,$=>k("button",{key:$.id,type:"button",class:ye(["ct-tab",{on:r.value===$.id}]),onClick:f=>r.value=$.id},[Ce(K($.label),1),i.value[$.file]?(I(),G("span",Wv,K((i.value[$.file].rows||[]).length.toLocaleString()),1)):pe("",!0)],10,jv)),64))]),c.value?(I(),G("div",zv,K(c.value),1)):d.value?(I(),Ze(Gv,{key:s.value.id,table:d.value,"assets-base":n.value,"is-dark":t.value,height:"600px"},null,8,["table","assets-base","is-dark"])):(I(),G("div",Vv,"Loading "+K(s.value.label)+"…",1))],2))}}},Symbol.toStringTag,{value:"Module"})),Kv="pplrInstance";function qv(){return xe(Kv,null)}const Yv="",Xv=["data-theme"],Zv={class:"stl-inner"},Jv={class:"stl-tb-caret-slot"},Qv=["title","aria-label","aria-expanded"],ek={class:"stl-tb-eyebrow"},ok=["title","aria-label"],tk=["title"],nk={key:2,class:"stl-tb-title"},ak={key:3,class:"stl-export"},rk=["aria-expanded"],sk={class:"stl-export-menu",role:"menu"},ik={key:0,class:"stl-tabs-wrap"},lk={class:"stl-tabs"},ck=["onClick"],uk=["title","onClick"],pk={key:0,class:"stl-info-pop"},dk={class:"stl-col-hdr"},gk={class:"stl-hdr-name"},hk=["title"],fk={key:0,class:"stl-sort-arrow"},mk=["title"],bk={key:0,class:"stl-sort-arrow"},_k=["data-stl-node-id","onClick"],$k=["aria-expanded","aria-label","onClick"],yk={key:1,class:"stl-caret-sp"},vk={key:3,class:"stl-dot-sp"},kk={class:"stl-name"},wk={key:4,class:"stl-num"},xk={key:5,class:"stl-num"},Ak={class:"stl-x-slot"},Sk=["title","aria-label"],Lk={key:0,class:"stl-empty stl-loading"},Ck={key:1,class:"stl-empty"},Nk={key:2,class:"stl-empty"},Pk={key:3,class:"stl-overflow"},Ek=["data-theme"],Ok={class:"stl-reopen-label"},Tk=Ft({__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:o}){const t=T=>String(T).split(".").pop().replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^./,U=>U.toUpperCase());let n=T=>t(T),a=()=>!1;try{const T=po();n=T.t,a=T.te}catch{}function r(T){const U="tabs."+((T==null?void 0:T.i18nKey)||(T==null?void 0:T.id));return T&&a(U)?n(U):(T==null?void 0:T.label)??""}function s(T){const U="legend.tabInfo."+((T==null?void 0:T.i18nKey)||(T==null?void 0:T.id));return T&&a(U)?n(U):(T==null?void 0:T.info)??""}const i=e,l=o,c=qv(),u=xe("legendProgress",null),d=z(()=>i.progress??te(u)??null),p=z(()=>d.value?n("legend.progress.title"):i.title),m=z(()=>((c==null?void 0:c.theme.value)||"dark")==="dark");function $(T,U){var ue;for(const de of T||[]){if((de==null?void 0:de.id)===U)return de;const _e=(ue=de==null?void 0:de.children)!=null&&ue.length?$(de.children,U):null;if(_e)return _e}return null}function f(T){const U=$(x.value,T);U&&g(U)}function _(T,U=0){return T!=null&&T.length?Math.max(...T.map(ue=>_(ue.children??[],U+1))):U}function v(T,U,ue=0){return ue===U?T.slice():T.flatMap(de=>v(de.children??[],U,ue+1))}function C(T,U,ue=[]){var de;for(const _e of T){if(_e.id===U)return ue;if((de=_e.children)!=null&&de.length){const qe=C(_e.children,U,[...ue,_e]);if(qe)return qe}}return null}function w(T,U=new Set){var ue;if(!((ue=T==null?void 0:T.children)!=null&&ue.length))return U;for(const de of T.children)U.add(de.id),w(de,U);return U}function A(T,U="root"){var de;if(!Array.isArray(T))return[];const ue=[];for(const _e of T){if(!_e||typeof _e!="object"){try{console.warn("[SemanticTreeLegend] dropped null node under",U)}catch{}continue}ue.push((de=_e.children)!=null&&de.length?{..._e,children:A(_e.children,_e.label||_e.id||U)}:_e)}return ue}const x=z(()=>A(i.nodes)),P=z(()=>_(x.value)),y=z(()=>{const T=i.tabs??[],U=T.length||P.value+1;return Array.from({length:U},(ue,de)=>T[de]??{id:`gen${de+1}`,label:`Generation ${de+1}`})}),L=le(Math.max(0,i.defaultTab|0)),b=le(new Set),O=le(null),R=le(i.open!==null?i.open:!0),q=le(null),oe=le(!1),{scrimRef:ge,scrimStyle:ne}=zu(oe),X=le(null),F=le("desc"),W=z({get:()=>{var T;return i.hideTabs?0:c&&!((T=c.activeTabTouched)!=null&&T.value)?Math.min(Math.max(0,i.defaultTab|0),Math.max(0,y.value.length-1)):c?c.activeTab.value:L.value},set:T=>{i.hideTabs||(c?(c.activeTab.value=T,c.activeTabTouched&&(c.activeTabTouched.value=!0)):L.value=T)}}),Y=z({get:()=>c?c.selection.value:O.value,set:T=>{c?c.selection.value=T:O.value=T}}),Z=z(()=>{var T;return((T=Y.value)==null?void 0:T.id)||null}),ie=le(null);Ke(()=>i.open,T=>{T!==null&&(R.value=T)}),Ke(()=>x.value,()=>{var _e;const T=c?(_e=c.activeTabTouched)==null?void 0:_e.value:!1,U=T?c==null?void 0:c.activeTab.value:void 0,ue=Math.min(Math.max(0,i.defaultTab|0),Math.max(0,y.value.length-1)),de=typeof U=="number"&&U>=0?U:ue;c?(c.activeTab.value=de,!T&&c.activeTabTouched&&(c.activeTabTouched.value=!1)):L.value=de,b.value=new Set,Y.value=null,l("select",null)},{deep:!1});let se=null;c&&Ke(()=>c.selection.value,T=>{if((T==null?void 0:T.id)===se)return;if(!T){se=null;return}se=T.id;const U=C(x.value,T.id)||[];typeof T.depth=="number"&&(W.value=Math.min(T.depth,y.value.length-1));const ue=new Set;U.forEach(de=>ue.add(de.id)),b.value=ue,l("select",T)});function Te(T,U){const ue=(U.pop??0)-(T.pop??0);return ue!==0?ue:(U.count??0)-(T.count??0)}const Pe=z(()=>{if(!X.value)return Te;const T=X.value,U=F.value==="asc"?1:-1;return(ue,de)=>((ue[T]??0)-(de[T]??0))*U});function We(T){X.value===T?F.value==="desc"?F.value="asc":(X.value=null,F.value="desc"):(X.value=T,F.value="desc")}const Se=le([]),De=le(!1);let oo=-1;function so(T){if(Se.value[T]){De.value=!1;return}De.value=!0,oo=T,setTimeout(()=>{if(oo!==T)return;const U=[...v(x.value,T)].sort(Pe.value),ue=[...Se.value];ue[T]=U,Se.value=ue,De.value=!1},0)}Ke(W,T=>so(T),{immediate:!0}),Ke(()=>[x.value,X.value,F.value],()=>{Se.value=[],so(W.value)},{deep:!1});const Be=z(()=>Se.value[W.value]||[]),No=z(()=>{var U;const T=(U=y.value[W.value])==null?void 0:U.topLimit;return T?Be.value.slice(0,T):Be.value}),S=z(()=>{var U;const T=(U=y.value[W.value])==null?void 0:U.topLimit;return T?Math.max(0,Be.value.length-T):0});function E(T,U,ue,de,_e){var qe;for(const we of U)we&&(T.push({node:we,relDepth:ue,parent:de,ancestors:_e}),b.value.has(we.id)&&((qe=we.children)!=null&&qe.length)&&E(T,[...we.children].sort(Pe.value),ue+1,we,[..._e,we]))}const N=z(()=>{const T=[];E(T,No.value,0,null,[]);for(let U=0;U<T.length;U++){const ue=T[U],de=[];for(let _e=0;_e<ue.relDepth;_e++){const qe=ue.ancestors[_e];let we=!1;for(let Ao=U+1;Ao<T.length;Ao++){const $o=T[Ao];if($o.relDepth<=_e)break;if($o.relDepth===_e+1&&$o.ancestors[_e]===qe){we=!0;break}$o.relDepth>_e+1&&$o.ancestors[_e]}if(_e===ue.relDepth-1){let Ao=!1;for(let $o=U+1;$o<T.length;$o++){const Zo=T[$o];if(Zo.relDepth<ue.relDepth)break;if(Zo.relDepth===ue.relDepth&&Zo.parent===ue.parent){Ao=!0;break}}de.push(Ao?"tee":"elbow")}else de.push(we?"pipe":"blank")}ue.trunks=de}return T}),j=z(()=>Z.value!==null),J=z(()=>i.columns.includes("count")),H=z(()=>i.columns.includes("pop")),ae=z(()=>Y.value?w(Y.value):new Set),Q=z(()=>{var qe;const T=Y.value;if(!T)return null;const U=C(x.value,T.id);if(!U||!U.length)return null;const ue=U[U.length-1],de=U.length-1,_e=((qe=y.value[de])==null?void 0:qe.label)||"Parent";return{node:ue,tabName:_e,depth:de}});function g(T){Z.value===T.id?(se=null,Y.value=null,l("select",null)):(se=T.id,Y.value=T,l("select",T))}function h(T,U){U==null||U.stopPropagation();const ue=new Set(b.value),de=ue.has(T);if(de?ue.delete(T):ue.add(T),b.value=ue,de&&Y.value){const _e=C(x.value,Y.value.id);_e&&_e.some(qe=>qe.id===T)&&(se=null,Y.value=null,l("select",null))}}function M(){const T=Q.value;T!=null&&T.node&&(!i.hideTabs&&typeof T.depth=="number"&&(W.value=T.depth),b.value=new Set,g(T.node))}function B(T){if(W.value===T){q.value=q.value===T?null:T;return}W.value=T,b.value=new Set,se=null,Y.value=null,q.value=null,l("select",null)}function re(T){T==null||T.stopPropagation(),se=null,Y.value=null,l("select",null)}function ee(T,U){U==null||U.stopPropagation(),q.value=q.value===T?null:T}function D(T){T==null||T.stopPropagation(),oe.value=!oe.value}function V(T){oe.value=!1,l("export",T)}Ke(Z,T=>{T||(oe.value=!1)});function he(T){let U=T.parentElement;for(;U;){const ue=getComputedStyle(U).overflowY;if((ue==="auto"||ue==="scroll")&&U.scrollHeight>U.clientHeight+1){const de=T.getBoundingClientRect(),_e=U.getBoundingClientRect();U.scrollTop+=de.top-_e.top-8}U=U.parentElement}}let ke=0;Ke(Z,async T=>{if(!T)return;const U=++ke,ue=ie.value;if(!ue)return;await mt();const de=(_e=0)=>{if(U!==ke)return;const qe=ue.querySelector(`[data-stl-node-id="${CSS.escape(String(T))}"]`);qe&&he(qe),_e<6&&setTimeout(()=>de(_e+1),70)};de(0)});function Ie(T){return T?T>=1e6?(T/1e6).toFixed(1)+"M":T>=1e3?Math.round(T/1e3)+"k":T.toLocaleString():"—"}function io(T){return T!=null?T.toLocaleString():"—"}function to(T){var U;return{selected:Z.value===T.node.id,descendant:j.value&&ae.value.has(T.node.id),child:T.relDepth>0,leaf:!((U=T.node.children)!=null&&U.length)}}return _o(`
|
||
.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"),(T,U)=>{var ue,de,_e,qe;return I(),G(fe,null,[k("div",{class:ye(["stl-panel",{closed:!R.value,"fit-content":e.hideTabs}]),"data-theme":((ue=te(c))==null?void 0:ue.theme.value)||"dark"},[k("div",Zv,[k("div",{class:ye(["stl-titlebar",{"has-progress":!!d.value}])},[k("span",Jv,[An(T.$slots,"title-caret",{},void 0,!0)]),T.$slots["title-caret"]?pe("",!0):(I(),G("button",{key:0,class:ye(["stl-collapse-btn",{closed:!R.value}]),title:R.value?te(n)("aria.collapseLegend"):te(n)("aria.expandLegend"),"aria-label":R.value?te(n)("aria.collapseLegend"):te(n)("aria.expandLegend"),"aria-expanded":String(R.value),onClick:U[0]||(U[0]=we=>{R.value=!R.value,l("update:open",R.value)})},[...U[8]||(U[8]=[k("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[k("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,Qv)),Q.value&&Y.value?(I(),G(fe,{key:1},[k("span",ek,K(Q.value.tabName),1),k("button",{type:"button",class:"stl-tb-up",title:`Go up to ${Q.value.node.label}`,"aria-label":`Go up to ${Q.value.tabName} ${Q.value.node.label}`,onClick:ao(M,["stop"])},[U[9]||(U[9]=k("svg",{class:"stl-tb-up-icon",width:"9",height:"9",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[k("path",{d:"M3 7.5L6 4.5L9 7.5",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),Q.value.node.color?(I(),G("span",{key:0,class:"stl-tb-dot",style:ze({background:Q.value.node.color})},null,4)):pe("",!0),k("span",{class:"stl-tb-text",title:Q.value.node.label},K(Q.value.node.label),9,tk)],8,ok)],64)):(I(),G("span",nk,K(p.value),1)),e.exportEnabled&&Y.value?(I(),G("div",ak,[k("button",{type:"button",class:ye(["stl-export-btn",{open:oe.value}]),"aria-expanded":oe.value?"true":"false","aria-haspopup":"menu",title:"Export selection","aria-label":"Export selection",onClick:ao(D,["stop"])},[...U[10]||(U[10]=[k("svg",{width:"11",height:"11",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true"},[k("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"}),k("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),k("span",{class:"stl-export-label"},"Export",-1)])],10,rk),oe.value?(I(),G(fe,{key:0},[k("div",{ref_key:"scrimRef",ref:ge,style:ze(te(ne)),class:"stl-export-backdrop",onClick:U[1]||(U[1]=ao(we=>oe.value=!1,["stop"]))},null,4),k("div",sk,[k("button",{type:"button",class:"stl-export-item",role:"menuitem",onClick:U[2]||(U[2]=ao(we=>V("poster"),["stop"]))},[...U[11]||(U[11]=[k("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true"},[k("rect",{x:"2",y:"1.5",width:"8",height:"9",rx:"1",stroke:"currentColor","stroke-width":"1.3"}),k("path",{d:"M4 4.5H8M4 6.5H8M4 8.5H6.5",stroke:"currentColor","stroke-width":"1.1","stroke-linecap":"round"})],-1),k("span",{class:"stl-export-item-label"},"Poster",-1)])]),k("button",{type:"button",class:"stl-export-item",role:"menuitem",onClick:U[3]||(U[3]=ao(we=>V("packet"),["stop"]))},[...U[12]||(U[12]=[Dd('<svg width="10" height="10" viewBox="0 0 12 12" fill="none" aria-hidden="true" data-v-a15d92ac><path d="M3 1.5H7.5L9.5 3.5V10.5H3V1.5Z" stroke="currentColor" stroke-width="1.3" stroke-linejoin="round" data-v-a15d92ac></path><path d="M7.5 1.5V3.5H9.5" stroke="currentColor" stroke-width="1.3" stroke-linejoin="round" data-v-a15d92ac></path><path d="M4.5 6H8M4.5 8H7" stroke="currentColor" stroke-width="1.1" stroke-linecap="round" data-v-a15d92ac></path></svg><span class="stl-export-item-label" data-v-a15d92ac>Packet</span>',2)])])])],64)):pe("",!0)])):pe("",!0),d.value?(I(),Ze(Iu,{key:4,class:"stl-progress","show-text":!1,covered:d.value.covered,total:d.value.total,segments:d.value.segments,"is-dark":m.value,"fmt-count":io,onSelectSegment:f},null,8,["covered","total","segments","is-dark"])):pe("",!0)],2),e.hideTabs?pe("",!0):(I(),G("div",ik,[k("div",lk,[(I(!0),G(fe,null,Xe(y.value,(we,Ao)=>(I(),G("div",{key:we.id,class:ye(["stl-tab-chip",{active:W.value===Ao}])},[k("button",{class:"stl-tab",onClick:$o=>B(Ao)},K(r(we)),9,ck),we.info?(I(),G("button",{key:0,class:"stl-tab-info",title:s(we),onClick:$o=>ee(Ao,$o)},"i",8,uk)):pe("",!0)],2))),128))]),q.value!==null&&((de=y.value[q.value])!=null&&de.info)?(I(),G("div",pk,K(s(y.value[q.value])),1)):pe("",!0)])),k("div",dk,[U[13]||(U[13]=k("span",{class:"stl-caret-sp"},null,-1)),U[14]||(U[14]=k("span",{class:"stl-dot-sp"},null,-1)),k("span",gk,K(e.columnLabel||(e.hideTabs?e.title:r(y.value[W.value])||te(n)("legend.columns.name"))),1),J.value?(I(),G("button",{key:0,class:ye(["stl-hdr-num",{active:X.value==="count"}]),title:te(n)("legend.sortByUpgs"),onClick:U[4]||(U[4]=we=>We("count"))},[Ce(K(te(n)("legend.columns.upgs"))+" ",1),X.value==="count"?(I(),G("span",fk,K(F.value==="desc"?"▼":"▲"),1)):pe("",!0)],10,hk)):pe("",!0),H.value?(I(),G("button",{key:1,class:ye(["stl-hdr-num",{active:X.value==="pop"}]),title:te(n)("legend.sortByPop"),onClick:U[5]||(U[5]=we=>We("pop"))},[Ce(K(te(n)("legend.columns.population"))+" ",1),X.value==="pop"?(I(),G("span",bk,K(F.value==="desc"?"▼":"▲"),1)):pe("",!0)],10,mk)):pe("",!0),U[15]||(U[15]=k("span",{class:"stl-x-slot"},null,-1))]),k("div",{class:ye(["stl-rows",{"has-sel":j.value}]),ref_key:"rowsContainer",ref:ie},[(I(!0),G(fe,null,Xe(N.value,we=>{var Ao,$o;return I(),G("div",{key:we.node.id,class:ye(["stl-row",to(we)]),"data-stl-node-id":we.node.id,style:ze({"--trunk-color":((Ao=we.parent)==null?void 0:Ao.color)||"#6e7681","--row-color":we.node.color||"#73A17F"}),onClick:Zo=>g(we.node)},[(I(!0),G(fe,null,Xe(we.trunks,(Zo,v2)=>(I(),G("span",{key:`tr${v2}`,class:ye(["stl-trunk",`stl-trunk-${Zo}`])},null,2))),128)),($o=we.node.children)!=null&&$o.length?(I(),G("button",{key:0,class:ye(["stl-caret",{open:b.value.has(we.node.id)}]),"aria-expanded":b.value.has(we.node.id)?"true":"false","aria-label":te(n)(b.value.has(we.node.id)?"legend.a11y.collapseRow":"legend.a11y.expandRow",{label:we.node.label}),onClick:ao(Zo=>h(we.node.id,Zo),["stop"])},[...U[16]||(U[16]=[k("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[k("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],10,$k)):(I(),G("span",yk)),we.node.color?(I(),G("span",{key:2,class:"stl-dot",style:ze({background:we.node.color})},null,4)):(I(),G("span",vk)),k("span",kk,K(we.node.label),1),J.value?(I(),G("span",wk,K(io(we.node.count)),1)):pe("",!0),H.value?(I(),G("span",xk,K(Ie(we.node.pop)),1)):pe("",!0),k("span",Ak,[Z.value===we.node.id?(I(),G("button",{key:0,class:"stl-x-chip",title:te(n)("legend.a11y.clearSelection"),"aria-label":te(n)("legend.a11y.clearSelection"),onClick:U[6]||(U[6]=ao(Zo=>re(Zo),["stop"]))},[...U[17]||(U[17]=[k("svg",{width:"8",height:"8",viewBox:"0 0 12 12",fill:"none"},[k("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,Sk)):pe("",!0)])],14,_k)}),128)),De.value&&!N.value.length?(I(),G("div",Lk,[U[18]||(U[18]=k("span",{class:"stl-spinner"},null,-1)),k("span",null,"Loading "+K(((_e=y.value[W.value])==null?void 0:_e.label)||"rows")+"…",1)])):!N.value.length&&e.nodes.length===0?(I(),G("div",Ck,"Loading data…")):N.value.length?pe("",!0):(I(),G("div",Nk,"No data at this level")),S.value>0?(I(),G("div",Pk,[Ce(" Showing top "+K(y.value[W.value].topLimit.toLocaleString())+" of "+K(Be.value.length.toLocaleString())+" — ",1),U[19]||(U[19]=k("span",{class:"stl-overflow-hint"},"use the geocoder above to find the rest",-1))])):pe("",!0)],2)])],10,Xv),R.value?pe("",!0):(I(),G("button",{key:0,class:"stl-reopen","data-theme":((qe=te(c))==null?void 0:qe.theme.value)||"dark",title:"Expand legend",onClick:U[7]||(U[7]=we=>{R.value=!0,l("update:open",!0)})},[U[20]||(U[20]=k("svg",{class:"stl-reopen-icon",width:"11",height:"11",viewBox:"0 0 12 12",fill:"none"},[k("path",{d:"M2 4h8M2 6h8M2 8h5",stroke:"currentColor","stroke-width":"1.4","stroke-linecap":"round"})],-1)),k("span",Ok,[Y.value?(I(),G(fe,{key:0},[Y.value.color?(I(),G("span",{key:0,class:"stl-reopen-dot",style:ze({background:Y.value.color})},null,4)):pe("",!0),Ce(" "+K(Y.value.label),1)],64)):(I(),G(fe,{key:1},[Ce(K(p.value),1)],64))]),U[21]||(U[21]=k("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none",class:"stl-reopen-caret"},[k("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Ek))],64)}}},[["styles",[Yv]],["__scopeId","data-v-a15d92ac"]]),Mk="#6b7280";function Rk(){const e=za(cn.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function Ik(e,o){const t=Rk();return e&&t[e]?t[e]:Mk}function Fk(e){return(e==null?void 0:e.properties)||e||{}}function Ms(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function Dk(e){var o;return String(e.affinityBlock||Ms((o=e._raw)==null?void 0:o.rop1)||"").trim()}function Bk(e){var o;return String(e.affinityBlockLabel||((o=e._raw)!=null&&o.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function Gk(e){var o;return String(e.cluster||Ms((o=e._raw)==null?void 0:o.imb_reg_of_people_2)||"").trim()}function Uk(e){var o;return String(e.clusterLabel||((o=e._raw)!=null&&o.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function jk(e){var o;return String(e.peopleGroup||Ms((o=e._raw)==null?void 0:o.imb_reg_of_people_25)||"").trim()}function Wk(e){var o;return String(e.peopleGroupLabel||((o=e._raw)!=null&&o.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 zk(e){var o;return String(e.uniqueId||e.slug||((o=e._raw)==null?void 0:o.slug)||"").trim()}function Vk(e){var o;return String(e.name||e.displayName||((o=e._raw)==null?void 0:o.name)||"").trim()}function Hk(e){var t;const o=Number(e.population??e.populationNum??((t=e._raw)==null?void 0:t.population)??0);return Number.isFinite(o)?o:0}function Kk(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function qk(e){const o=z(()=>{const r=e&&e.value||[],s=new Map;for(const i of r){const l=Fk(i),c=Dk(l),u=Bk(l)||c||"— Unknown —",d=Gk(l),p=Uk(l)||d||"— Unknown —",m=jk(l),$=Wk(l)||m||"— Unknown —",f=zk(l),_=Vk(l)||f,v=Hk(l),C=Kk(l);if(!f)continue;let w=s.get(c||"__unknown__");w||(w={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},s.set(c||"__unknown__",w)),w.count+=1,w.pop+=v,w.memberIds.push(f);let A=w.clusters.get(d||"__unknown__");A||(A={code:d,label:p,count:0,pop:0,memberIds:[],peopleGroups:new Map},w.clusters.set(d||"__unknown__",A)),A.count+=1,A.pop+=v,A.memberIds.push(f);let x=A.peopleGroups.get(m||"__unknown__");x||(x={code:m,label:$,count:0,pop:0,memberIds:[],instances:[]},A.peopleGroups.set(m||"__unknown__",x)),x.count+=1,x.pop+=v,x.memberIds.push(f),x.instances.push({id:f,name:_,country:C,pop:v})}return s}),t=r=>r&&r.length?["in",["get","uniqueId"],["literal",r]]:["==",["get","uniqueId"],"__none__"],n=z(()=>{const r=o.value,s=[];for(const i of r.values()){const l=Ik(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:t(i.memberIds),children:[]};for(const u of i.clusters.values()){const d={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:t(u.memberIds),children:[]};for(const p of u.peopleGroups.values()){const m={id:`pg:${i.code}__${u.code}__${p.code||p.label}`,label:`${p.label} (PG)`,color:l,count:p.count,pop:p.pop,filter:t(p.memberIds),children:[]};p.instances.sort(($,f)=>f.pop-$.pop||$.country.localeCompare(f.country));for(const $ of p.instances)m.children.push({id:`pgic:${$.id}`,label:`${$.country?`${$.name}, ${$.country}`:$.name} (PGIC)`,color:l,count:1,pop:$.pop,filter:["==",["get","uniqueId"],$.id],children:[]});d.children.push(m)}d.children.sort((p,m)=>m.count-p.count||m.pop-p.pop),c.children.push(d)}c.children.sort((u,d)=>d.count-u.count||d.pop-u.pop),s.push(c)}return s.sort((i,l)=>l.count-i.count||l.pop-i.pop),s});function a(r){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!r){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const s=String(r.id||""),i={kind:null,label:r.label,filterExpr:r.filter};s.startsWith("bloc:")?i.kind="bloc":s.startsWith("cluster:")?i.kind="cluster":s.startsWith("pg:")?i.kind="people-group":s.startsWith("pgic:")&&(i.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:i}))}return{aggregated:o,affinityTree:n,highlight:a}}const Yk={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Xk="#95a5a6";function Zk(e){return Yk[String(e||"").toLowerCase()]||Xk}function Jk(e){return(e==null?void 0:e.properties)||e||{}}function Qk(e){var t;const o=Number(e.population??e.populationNum??((t=e._raw)==null?void 0:t.population)??0);return Number.isFinite(o)?o:0}function e2(e){var o,t;return String(e.doxaRegion||e.wagfRegion||((t=(o=e._raw)==null?void 0:o.wagf_region)==null?void 0:t.value)||"").trim()}function o2(e){var t;const o=(t=e._raw)==null?void 0:t.wagf_region;return String(e.wagfRegionLabel||e.doxaRegionLabel||(o&&typeof o=="object"?o.label:"")||e.doxaRegion||"").trim()}function t2(e){var o,t;return String(e.wagfBlock||((t=(o=e._raw)==null?void 0:o.wagf_block)==null?void 0:t.value)||"").trim()}function n2(e){var t;const o=(t=e._raw)==null?void 0:t.wagf_block;return String(e.wagfBlockLabel||(o&&typeof o=="object"?o.label:"")||e.wagfBlock||"").trim()}function a2(e){var o,t;return String(e.countryIso||((t=(o=e._raw)==null?void 0:o.country_code)==null?void 0:t.value)||"").trim().toUpperCase()}function r2(e){var t;const o=(t=e._raw)==null?void 0:t.country_code;return String(e.countryIsoLabel||(o&&typeof o=="object"?o.label:"")||e.countryIso||"").trim()}function s2(e){const o=z(()=>{const a=e&&e.value||[],r=new Map;for(const s of a){const i=Jk(s),l=e2(i),c=o2(i)||l||"— Unknown —",u=t2(i),d=n2(i)||u||"— Unknown —",p=a2(i),m=r2(i)||p||"— Unknown —",$=Qk(i);if(!l||l==="na"||l==="none")continue;let f=r.get(l);if(f||(f={slug:l,label:c,count:0,pop:0,blocks:new Map},r.set(l,f)),f.count+=1,f.pop+=$,!u||u==="na")continue;let _=f.blocks.get(u);if(_||(_={slug:u,label:d,count:0,pop:0,countries:new Map},f.blocks.set(u,_)),_.count+=1,_.pop+=$,!p)continue;let v=_.countries.get(p);v||(v={iso:p,name:m,count:0,pop:0},_.countries.set(p,v)),v.count+=1,v.pop+=$}return r}),t=z(()=>{const a=o.value,r=[];for(const s of a.values()){const i=Zk(s.slug),l=[],c=[],u=[...s.blocks.values()].sort((d,p)=>p.pop-d.pop||d.label.localeCompare(p.label));for(const d of u){const p=[],m=[],$=[...d.countries.values()].sort((f,_)=>_.pop-f.pop||f.name.localeCompare(_.name));for(const f of $)p.push(f.iso),l.push(f.iso),m.push({id:`country:${s.slug}__${d.slug}__${f.iso}`,label:f.name,color:i,count:f.count,pop:f.pop,filter:["==",["get","countryIso"],f.iso],isoCodes:[f.iso],children:[]});c.push({id:`block:${s.slug}__${d.slug}`,label:`${d.label} (Bloc)`,color:i,count:d.count,pop:d.pop,filter:["==",["get","wagfBlock"],d.slug],isoCodes:p,children:m})}r.push({id:`region:${s.slug}`,label:`${s.label} (Region)`,color:i,count:s.count,pop:s.pop,filter:["==",["get","doxaRegion"],s.slug],isoCodes:[...new Set(l)],children:c})}return r.sort((s,i)=>i.pop-s.pop||s.label.localeCompare(i.label)),r});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 r=String(a.id||""),s={kind:null,label:a.label,filterExpr:a.filter};r.startsWith("region:")?s.kind="region":r.startsWith("block:")?s.kind="block":r.startsWith("country:")&&(s.kind="country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:s}))}return{aggregated:o,regionsTree:t,highlight:n}}const i2="",l2={class:"legend-sheet-root"},c2=["src","alt"],u2={key:0,class:"pull-tab-handle"},p2=["aria-label"],d2=["aria-label"],g2=["aria-label"],h2={class:"collapsed-detail-title"},f2={class:"legend-content"},m2=["aria-label"],b2=["aria-label"],Vu=80,_2=48,$2=44,y2=24,Hu="--legend-sheet-h",Ku=Object.freeze(Object.defineProperty({__proto__:null,default:Ft({__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:o}=po();_o(`
|
||
.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 t=e,n=xe("uiStore");xe("mapStore");const a=xe("dataStore"),r=xe("onSemanticTreeSelect",()=>{}),s=xe("onLegendExport",null),i=z(()=>typeof s=="function"),l=hi(t,"legendType"),{items:c,columns:u,title:d,activeFilter:p,setFilter:m,totalCount:$,totalPopulation:f,fmtPop:_,fmtCount:v}=Ru(l,Wu),C=xe("normalizedPeopleGroups",null),w=z(()=>{var h,M;if((h=C==null?void 0:C.value)!=null&&h.length)return C.value;const g=[];for(const B in(a==null?void 0:a.sources)||{}){const re=a.sources[B];(M=re==null?void 0:re.features)!=null&&M.length&&g.push(...re.features)}return g}),A={get value(){return w.value}},{langTree:x}=Eu(A),{affinityTree:P}=qk(A),{regionsTree:y}=s2(A),L=[{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."}],b=[{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."}],O=[{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."}],R=z(()=>["prayer","engagement","adoption","religion"].includes(t.legendType));function q(g){const h=[];for(const M of g){h.push({id:M.key,label:M.label,color:M.color,count:M.count??0,pop:M.population??0,filter:M.filterKey?["==",["get","_flat_filter"],M.filterKey]:null,children:[]});for(const B of M.children||[])h.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:[]})}return h}const oe=z(()=>t.nodes?t.nodes:R.value?q(c.value):t.legendType==="affinity-block"?P.value:t.legendType==="doxa-regions"?y.value:x.value),ge=z(()=>t.nodes?t.tabs:R.value?null:t.legendType==="affinity-block"?b:t.legendType==="doxa-regions"?O:L),ne=z(()=>t.title?t.title:R.value?o("legend.titleBar.legend"):t.legendType==="affinity-block"?o("legend.titleBar.peopleGroups"):t.legendType==="doxa-regions"?o("legend.titleBar.wagfRegions"):o("legend.titleBar.languages")),X=z(()=>t.columnLabel!==null?t.columnLabel:["religion","prayer","engagement","adoption"].includes(t.legendType)?o("legend.colLabel."+t.legendType):R.value?o("legend.colLabel.status"):""),F=le(null),W=le(!1),Y={pending:null,active:!1,startY:0,startH:0,startState:"",containerH:0,maxH:0,lastH:0,contentEl:null};let Z=0;const ie=()=>Date.now()-Z<400,se=z(()=>n.legendState),Te=z(()=>n.legendHeight),Pe=z(()=>n.caretRotation),We=z(()=>n.showPullTab),Se=z(()=>n.legendMode),De=z(()=>n.selectedPeopleGroup),oo=z(()=>{var g;return Se.value==="detail"&&De.value?((g=De.value.properties)==null?void 0:g.name)||o("legend.header.peopleGroupFallback"):se.value==="collapsed"?t.title||o("legend.header.collapsed"):t.title||d.value});function so(g){n.handleLegendItemClick(),m(g)}function Be(){ie()||n.toggleLegend()}function No(){ie()||(n.selectPeopleGroup(null),n.openLegend())}const S=z(()=>{var h;if(!De.value)return null;const g=De.value.properties||{};return g.imageUrl||((h=g._raw)==null?void 0:h.ImageURL)||null});function E(g){var ee;if(se.value==="collapsed")return;const h=g.touches[0],M=F.value;if(!h||!M)return;const re=h.clientY-M.getBoundingClientRect().top<=$2?"grab":Se.value==="detail"?"content":null;re&&(Y.pending=re,Y.active=!1,Y.startY=h.clientY,Y.startH=M.offsetHeight,Y.lastH=Y.startH,Y.startState=se.value,Y.containerH=((ee=M.parentElement)==null?void 0:ee.offsetHeight)||window.innerHeight,Y.maxH=Y.containerH-Vu,Y.contentEl=M.querySelector(".legend-content"))}function N(g){if(!Y.pending&&!Y.active)return;const h=g.touches[0];if(!h)return;const M=Y.startY-h.clientY;if(!Y.active){if(M===0)return;let re=Y.pending==="grab";if(Y.pending==="content"){const ee=!Y.contentEl||Y.contentEl.scrollTop<=0;re=M>0?Y.startH<Y.maxH-1:ee}if(Y.pending=null,!re)return;Y.active=!0,W.value=!0}g.preventDefault();const B=Math.round(Math.min(Y.maxH,Math.max(_2,Y.startH+M)));Y.lastH=B,n.setLegendHeight(`${B}px`)}function j(){if(Y.pending=null,!Y.active)return;Y.active=!1,W.value=!1,Z=Date.now();const g=Y.lastH,h=g-Y.startH,M=Y.containerH*.3;if(Se.value!=="detail"){g<M*.5&&n.collapseLegend();return}if(Math.abs(h)<y2){J(Y.startState);return}if(g<M*.5){n.collapseLegend();return}h>0?n.fullyOpenLegend():Y.startState==="fullyOpen"?n.openLegend():n.collapseLegend()}function J(g){g==="fullyOpen"?n.fullyOpenLegend():g==="collapsed"?n.collapseLegend():n.openLegend()}let H=null,ae=null,Q=null;return zo(()=>{const g=F.value;if(!g||typeof ResizeObserver>"u")return;const h=g.getRootNode();ae=h instanceof ShadowRoot?h.host:h.documentElement||null,ae&&(Q=g,H=new ResizeObserver(()=>{const M=g.offsetHeight;M<=0||(ae.style.setProperty(Hu,`${M}px`),ae.__legendSheetVarOwner=g)}),H.observe(g))}),Vo(()=>{H&&(H.disconnect(),H=null),ae&&ae.__legendSheetVarOwner===Q&&(ae.style.removeProperty(Hu),ae.__legendSheetVarOwner=null),ae=null,Q=null}),(g,h)=>{var M;return I(),G("div",l2,[Se.value==="detail"&&De.value&&se.value==="open"&&S.value?(I(),G("div",{key:0,class:"floating-mini-image",onClick:h[0]||(h[0]=B=>te(n).fullyOpenLegend())},[k("img",{src:S.value,alt:(M=De.value.properties)==null?void 0:M.name,class:"mini-image"},null,8,c2)])):pe("",!0),k("div",{ref_key:"sheetRef",ref:F,class:ye(["legend-mobile-sheet",[se.value,{"sheet-dark":e.isDark,dragging:W.value}]]),style:ze({height:Te.value,"--legend-sheet-top-reserve":Vu+"px"}),onTouchstart:E,onTouchmove:N,onTouchend:j,onTouchcancel:j},[k("div",{class:"sheet-drag-strip",onClick:Be},[We.value?(I(),G("div",u2)):pe("",!0)]),Se.value==="detail"&&se.value!=="collapsed"?(I(),G("button",{key:0,class:"detail-collapse-btn-mobile",onClick:ao(Be,["stop"]),"aria-label":te(o)("aria.toggleLegend")},null,8,p2)):pe("",!0),Se.value==="detail"&&se.value!=="collapsed"?(I(),G("button",{key:1,class:"detail-close-btn",onClick:ao(No,["stop"]),"aria-label":te(o)("aria.backToLegend")},[...h[2]||(h[2]=[k("svg",{width:"18",height:"18",viewBox:"0 0 20 20",fill:"none"},[k("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],8,d2)):pe("",!0),se.value==="collapsed"&&Se.value==="detail"&&De.value?(I(),G("div",{key:2,class:"collapsed-detail-footer",onClick:Be},[k("button",{class:"mobile-collapse-caret",style:ze({transform:`rotate(${Pe.value}deg)`}),"aria-label":te(o)("aria.toggleLegend"),tabindex:"-1"},[...h[3]||(h[3]=[k("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[k("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,g2),k("span",h2,K(oo.value),1)])):pe("",!0),k("div",f2,[Se.value==="detail"&&De.value?(I(),G(fe,{key:0},[se.value!=="collapsed"?(I(),Ze(ju,{key:0,peopleGroup:De.value,hideHeader:!0,dark:e.isDark,action:e.popupAction},null,8,["peopleGroup","dark","action"])):pe("",!0)],64)):e.legendType!=="default"?(I(),Ze(Tk,{key:1,nodes:oe.value,tabs:ge.value,"default-tab":e.defaultTab,title:oo.value||ne.value,hideTabs:e.nodes?!e.tabs:R.value,columnLabel:X.value,columns:e.columns||["count","pop"],"export-enabled":i.value,onSelect:te(r),onExport:h[1]||(h[1]=B=>te(s)&&te(s)(B))},{"title-caret":To(()=>[k("button",{class:"mobile-collapse-caret",style:ze({transform:`rotate(${Pe.value}deg)`}),onClick:ao(Be,["stop"]),"aria-label":te(o)("aria.toggleLegend")},[...h[4]||(h[4]=[k("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[k("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,m2)]),_:1},8,["nodes","tabs","default-tab","title","hideTabs","columnLabel","columns","export-enabled","onSelect"])):(I(),Ze(Fu,{key:2,title:oo.value,items:te(c),columns:te(u),activeFilter:te(p),isDark:e.isDark,hideColumnHeader:!1,showFooter:!1,disableCollapse:!0,totalCount:te($),totalPopulation:te(f),fmtPop:te(_),fmtCount:te(v),onFilterClick:so},{"title-caret":To(()=>[k("button",{class:"mobile-collapse-caret",style:ze({transform:`rotate(${Pe.value}deg)`}),onClick:ao(Be,["stop"]),"aria-label":te(o)("aria.toggleLegend")},[...h[5]||(h[5]=[k("svg",{width:"9",height:"9",viewBox:"0 0 12 12",fill:"none"},[k("path",{d:"M4.5 3L7.5 6L4.5 9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])],12,b2)]),_:1},8,["title","items","columns","activeFilter","isDark","totalCount","totalPopulation","fmtPop","fmtCount"]))])],38)])}}},[["styles",[i2]],["__scopeId","data-v-f1552af9"]])},Symbol.toStringTag,{value:"Module"}))})();
|