711 lines
714 KiB
JavaScript
711 lines
714 KiB
JavaScript
(function(){"use strict";var ap;var Qr=typeof document<"u"?document.currentScript:null;const j1="modulepreload",B1=function(e){return"/"+e},U1={},Kt=function(t,n,o){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 t().catch(r)})};/**
|
||
* @vue/shared v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/function es(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const et={},Mo=[],gn=()=>{},Oi=()=>!1,Oa=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),za=e=>e.startsWith("onUpdate:"),$t=Object.assign,ts=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},kp=Object.prototype.hasOwnProperty,Ke=(e,t)=>kp.call(e,t),xe=Array.isArray,Wn=e=>Zo(e)==="[object Map]",po=e=>Zo(e)==="[object Set]",zi=e=>Zo(e)==="[object Date]",Re=e=>typeof e=="function",rt=e=>typeof e=="string",Qt=e=>typeof e=="symbol",Ze=e=>e!==null&&typeof e=="object",Di=e=>(Ze(e)||Re(e))&&Re(e.then)&&Re(e.catch),Gi=Object.prototype.toString,Zo=e=>Gi.call(e),Sp=e=>Zo(e).slice(8,-1),Da=e=>Zo(e)==="[object Object]",Ga=e=>rt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Jo=es(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ha=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},xp=/-\w/g,Lt=Ha(e=>e.replace(xp,t=>t.slice(1).toUpperCase())),Pp=/\B([A-Z])/g,en=Ha(e=>e.replace(Pp,"-$1").toLowerCase()),ja=Ha(e=>e.charAt(0).toUpperCase()+e.slice(1)),ns=Ha(e=>e?`on${ja(e)}`:""),hn=(e,t)=>!Object.is(e,t),Ba=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},Hi=(e,t,n,o=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Ua=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ji=e=>{const t=rt(e)?Number(e):NaN;return isNaN(t)?e:t};let Bi;const Wa=()=>Bi||(Bi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Nt(e){if(xe(e)){const t={};for(let n=0;n<e.length;n++){const o=e[n],a=rt(o)?Mp(o):Nt(o);if(a)for(const r in a)t[r]=a[r]}return t}else if(rt(e)||Ze(e))return e}const Cp=/;(?![^(]*\))/g,Tp=/:([^]+)/,Lp=/\/\*[^]*?\*\//g;function Mp(e){const t={};return e.replace(Lp,"").split(Cp).forEach(n=>{if(n){const o=n.split(Tp);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function st(e){let t="";if(rt(e))t=e;else if(xe(e))for(let n=0;n<e.length;n++){const o=st(e[n]);o&&(t+=o+" ")}else if(Ze(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const Ap=es("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function Ui(e){return!!e||e===""}function Ep(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&o<e.length;o++)n=Vn(e[o],t[o]);return n}function Wi(e,t){if(e.size!==t.size)return!1;const n=Array.from(t),o=new Uint8Array(n.length);for(const a of e){let r=-1;for(let s=0;s<n.length;s++)if(!o[s]&&Vn(a,n[s])){r=s;break}if(r<0)return!1;o[r]=1}return!0}function Vn(e,t){if(e===t)return!0;let n=zi(e),o=zi(t);if(n||o)return n&&o?e.getTime()===t.getTime():!1;if(n=Qt(e),o=Qt(t),n||o)return e===t;if(n=xe(e),o=xe(t),n||o)return n&&o?Ep(e,t):!1;if(n=Ze(e),o=Ze(t),n||o){if(!n||!o)return!1;if(n=Wn(e),o=Wn(t),n||o||(n=po(e),o=po(t),n||o))return n&&o?Wi(e,t):!1;const a=Object.keys(e).length,r=Object.keys(t).length;if(a!==r)return!1;for(const s in e){const i=e.hasOwnProperty(s),l=t.hasOwnProperty(s);if(i&&!l||!i&&l||!Vn(e[s],t[s]))return!1}}return String(e)===String(t)}function Np(e,t){return e.findIndex(n=>Vn(n,t))}const Vi=e=>!!(e&&e.__v_isRef===!0),Y=e=>rt(e)?e:e==null?"":xe(e)||Ze(e)&&(e.toString===Gi||!Re(e.toString))?Vi(e)?Y(e.value):JSON.stringify(e,qi,2):String(e),qi=(e,t)=>Vi(t)?qi(e,t.value):Wn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,a],r)=>(n[os(o,r)+" =>"]=a,n),{})}:po(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>os(n))}:Qt(t)?os(t):Ze(t)&&!xe(t)&&!Da(t)?String(t):t,os=(e,t="")=>{var n;return Qt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
|
||
* @vue/reactivity v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let Pt;class Ki{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Pt&&(Pt.active?(this.parent=Pt,this.index=(Pt.scopes||(Pt.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.length;t<n;t++)o[t].pause()}for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes){const a=this.scopes.slice();for(t=0,n=a.length;t<n;t++)a[t].resume()}const o=this.effects.slice();for(t=0,n=o.length;t<n;t++)o[t].resume()}}run(t){if(this._active){const n=Pt;try{return Pt=this,t()}finally{Pt=n}}}on(){++this._on===1&&(this.prevScope=Pt,Pt=this)}off(){if(this._on>0&&--this._on===0){if(Pt===this)Pt=this.prevScope;else{let t=Pt;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n<o;n++)this.effects[n].stop();for(this.effects.length=0,n=0,o=this.cleanups.length;n<o;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){const a=this.scopes.slice();for(n=0,o=a.length;n<o;n++)a[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const a=this.parent.scopes.pop();a&&a!==this&&(this.parent.scopes[this.index]=a,a.index=this.index)}this.parent=void 0}}}function Va(e){return new Ki(e)}function Yi(){return Pt}function Fp(e,t=!1){Pt&&Pt.cleanups.push(e)}let nt;const as=new WeakSet;class Zi{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Pt&&(Pt.active?Pt.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,as.has(this)&&(as.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Xi(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,ol(this),Qi(this);const t=nt,n=on;nt=this,on=!0;try{return this.fn()}finally{el(this),nt=t,on=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)ls(t);this.deps=this.depsTail=void 0,ol(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?as.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){is(this)&&this.run()}get dirty(){return is(this)}}let Ji=0,Xo,Qo;function Xi(e,t=!1){if(e.flags|=8,t){e.next=Qo,Qo=e;return}e.next=Xo,Xo=e}function rs(){Ji++}function ss(){if(--Ji>0)return;if(Qo){let t=Qo;for(Qo=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Xo;){let t=Xo;for(Xo=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function Qi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function el(e){let t,n=e.depsTail,o=n;for(;o;){const a=o.prevDep;o.version===-1?(o===n&&(n=a),ls(o),Rp(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=a}e.deps=t,e.depsTail=n}function is(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(tl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function tl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ea)||(e.globalVersion=ea,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!is(e))))return;e.flags|=2;const t=e.dep,n=nt,o=on;nt=e,on=!0;try{Qi(e);const a=e.fn(e._value);(t.version===0||hn(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{nt=n,on=o,el(e),e.flags&=-3}}function ls(e,t=!1){const{dep:n,prevSub:o,nextSub:a}=e;if(o&&(o.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)ls(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Rp(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let on=!0;const nl=[];function mn(){nl.push(on),on=!1}function fn(){const e=nl.pop();on=e===void 0?!0:e}function ol(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=nt;nt=void 0;try{t()}finally{nt=n}}}let ea=0;class Ip{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class cs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!nt||!on||nt===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==nt)n=this.activeLink=new Ip(nt,this),nt.deps?(n.prevDep=nt.depsTail,nt.depsTail.nextDep=n,nt.depsTail=n):nt.deps=nt.depsTail=n,al(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=nt.depsTail,n.nextDep=void 0,nt.depsTail.nextDep=n,nt.depsTail=n,nt.deps===n&&(nt.deps=o)}return n}trigger(t){this.version++,ea++,this.notify(t)}notify(t){rs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ss()}}}function al(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)al(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const qa=new WeakMap,go=Symbol(""),us=Symbol(""),ta=Symbol("");function Ot(e,t,n){if(on&&nt){let o=qa.get(e);o||qa.set(e,o=new Map);let a=o.get(n);a||(o.set(n,a=new cs),a.map=o,a.key=n),a.track()}}function Ln(e,t,n,o,a,r){const s=qa.get(e);if(!s){ea++;return}const i=l=>{l&&l.trigger()};if(rs(),t==="clear")s.forEach(i);else{const l=xe(e),c=l&&Ga(n);if(l&&n==="length"){const u=Number(o);s.forEach((d,h)=>{(h==="length"||h===ta||!Qt(h)&&h>=u)&&i(d)})}else switch((n!==void 0||s.has(void 0))&&i(s.get(n)),c&&i(s.get(ta)),t){case"add":l?c&&i(s.get("length")):(i(s.get(go)),Wn(e)&&i(s.get(us)));break;case"delete":l||(i(s.get(go)),Wn(e)&&i(s.get(us)));break;case"set":Wn(e)&&i(s.get(go));break}}ss()}function Op(e,t){const n=qa.get(e);return n&&n.get(t)}function Ao(e){const t=We(e);return t===e?t:(Ot(t,"iterate",ta),Yt(e)?t:t.map(an))}function Ka(e){return Ot(e=We(e),"iterate",ta),e}function bn(e,t){return En(e)?Eo(An(e)?an(t):t):an(t)}const zp={__proto__:null,[Symbol.iterator](){return ds(this,Symbol.iterator,e=>bn(this,e))},concat(...e){return Ao(this).concat(...e.map(t=>xe(t)?Ao(t):t))},entries(){return ds(this,"entries",e=>(e[1]=bn(this,e[1]),e))},every(e,t){return Mn(this,"every",e,t,void 0,arguments)},filter(e,t){return Mn(this,"filter",e,t,n=>n.map(o=>bn(this,o)),arguments)},find(e,t){return Mn(this,"find",e,t,n=>bn(this,n),arguments)},findIndex(e,t){return Mn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Mn(this,"findLast",e,t,n=>bn(this,n),arguments)},findLastIndex(e,t){return Mn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Mn(this,"forEach",e,t,void 0,arguments)},includes(...e){return ps(this,"includes",e)},indexOf(...e){return ps(this,"indexOf",e)},join(e){return Ao(this).join(e)},lastIndexOf(...e){return ps(this,"lastIndexOf",e)},map(e,t){return Mn(this,"map",e,t,void 0,arguments)},pop(){return na(this,"pop")},push(...e){return na(this,"push",e)},reduce(e,...t){return rl(this,"reduce",e,t)},reduceRight(e,...t){return rl(this,"reduceRight",e,t)},shift(){return na(this,"shift")},some(e,t){return Mn(this,"some",e,t,void 0,arguments)},splice(...e){return na(this,"splice",e)},toReversed(){return Ao(this).toReversed()},toSorted(e){return Ao(this).toSorted(e)},toSpliced(...e){return Ao(this).toSpliced(...e)},unshift(...e){return na(this,"unshift",e)},values(){return ds(this,"values",e=>bn(this,e))}};function ds(e,t,n){const o=Ka(e),a=o[t]();return o!==e&&!Yt(e)&&(a._next=a.next,a.next=()=>{const r=a._next();return r.done||(r.value=n(r.value)),r}),a}const Dp=Array.prototype;function Mn(e,t,n,o,a,r){const s=Ka(e),i=s!==e&&!Yt(e),l=s[t];if(l!==Dp[t]){const d=l.apply(e,r);return i?an(d):d}let c=n;s!==e&&(i?c=function(d,h){return n.call(this,bn(e,d),h,e)}:n.length>2&&(c=function(d,h){return n.call(this,d,h,e)}));const u=l.call(s,c,o);return i&&a?a(u):u}function rl(e,t,n,o){const a=Ka(e),r=a!==e&&!Yt(e);let s=n,i=!1;a!==e&&(r?(i=o.length===0,s=function(c,u,d){return i&&(i=!1,c=bn(e,c)),n.call(this,c,bn(e,u),d,e)}):n.length>3&&(s=function(c,u,d){return n.call(this,c,u,d,e)}));const l=a[t](s,...o);return i?bn(e,l):l}function ps(e,t,n){const o=We(e);Ot(o,"iterate",ta);const a=o[t](...n);return(a===-1||a===!1)&&Qa(n[0])?(n[0]=We(n[0]),o[t](...n)):a}function na(e,t,n=[]){mn(),rs();const o=We(e)[t].apply(e,n);return ss(),fn(),o}const Gp=es("__proto__,__v_isRef,__isVue"),sl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Qt));function Hp(e){Qt(e)||(e=String(e));const t=We(this);return Ot(t,"has",e),t.hasOwnProperty(e)}class il{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const a=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!a;if(n==="__v_isReadonly")return a;if(n==="__v_isShallow")return r;if(n==="__v_raw")return o===(a?r?gl:pl:r?dl:ul).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const s=xe(t);if(!a){let l;if(s&&(l=zp[n]))return l;if(n==="hasOwnProperty")return Hp}const i=Reflect.get(t,n,ct(t)?t:o);if((Qt(n)?sl.has(n):Gp(n))||(a||Ot(t,"get",n),r))return i;if(ct(i)){const l=s&&Ga(n)?i:i.value;return a&&Ze(l)?hs(l):l}return Ze(i)?a?hs(i):oa(i):i}}class ll extends il{constructor(t=!1){super(!1,t)}set(t,n,o,a){let r=t[n];const s=xe(t)&&Ga(n);if(!this._isShallow){const c=En(r);if(!Yt(o)&&!En(o)&&(r=We(r),o=We(o)),!s&&ct(r)&&!ct(o))return c||(r.value=o),!0}const i=s?Number(n)<t.length:Ke(t,n),l=Reflect.set(t,n,o,ct(t)?t:a);return t===We(a)&&l&&(i?hn(o,r)&&Ln(t,"set",n,o):Ln(t,"add",n,o)),l}deleteProperty(t,n){const o=Ke(t,n);t[n];const a=Reflect.deleteProperty(t,n);return a&&o&&Ln(t,"delete",n,void 0),a}has(t,n){const o=Reflect.has(t,n);return(!Qt(n)||!sl.has(n))&&Ot(t,"has",n),o}ownKeys(t){return Ot(t,"iterate",xe(t)?"length":go),Reflect.ownKeys(t)}}class cl extends il{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const jp=new ll,Bp=new cl,Up=new ll(!0),Wp=new cl(!0),gs=e=>e,Ya=e=>Reflect.getPrototypeOf(e);function Vp(e,t,n){return function(...o){const a=this.__v_raw,r=We(a),s=Wn(r),i=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,c=a[e](...o),u=n?gs:t?Eo:an;return!t&&Ot(r,"iterate",l?us:go),$t(Object.create(c),{next(){const{value:d,done:h}=c.next();return h?{value:d,done:h}:{value:i?[u(d[0]),u(d[1])]:u(d),done:h}}})}}function Za(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function qp(e,t){const n={get(a){const r=this.__v_raw,s=We(r),i=We(a);e||(hn(a,i)&&Ot(s,"get",a),Ot(s,"get",i));const{has:l}=Ya(s),c=t?gs:e?Eo:an;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&&Ot(We(a),"iterate",go),a.size},has(a){const r=this.__v_raw,s=We(r),i=We(a);return e||(hn(a,i)&&Ot(s,"has",a),Ot(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=We(i),c=t?gs:e?Eo:an;return!e&&Ot(l,"iterate",go),i.forEach((u,d)=>a.call(r,c(u),c(d),s))}};return $t(n,e?{add:Za("add"),set:Za("set"),delete:Za("delete"),clear:Za("clear")}:{add(a){const r=We(this),s=Ya(r),i=We(a),l=!t&&!Yt(a)&&!En(a)?i:a;return s.has.call(r,l)||hn(a,l)&&s.has.call(r,a)||hn(i,l)&&s.has.call(r,i)||(r.add(l),Ln(r,"add",l,l)),this},set(a,r){!t&&!Yt(r)&&!En(r)&&(r=We(r));const s=We(this),{has:i,get:l}=Ya(s);let c=i.call(s,a);c||(a=We(a),c=i.call(s,a));const u=l.call(s,a);return s.set(a,r),c?hn(r,u)&&Ln(s,"set",a,r):Ln(s,"add",a,r),this},delete(a){const r=We(this),{has:s,get:i}=Ya(r);let l=s.call(r,a);l||(a=We(a),l=s.call(r,a)),i&&i.call(r,a);const c=r.delete(a);return l&&Ln(r,"delete",a,void 0),c},clear(){const a=We(this),r=a.size!==0,s=a.clear();return r&&Ln(a,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(a=>{n[a]=Vp(a,e,t)}),n}function Ja(e,t){const n=qp(e,t);return(o,a,r)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?o:Reflect.get(Ke(n,a)&&a in o?n:o,a,r)}const Kp={get:Ja(!1,!1)},Yp={get:Ja(!1,!0)},Zp={get:Ja(!0,!1)},Jp={get:Ja(!0,!0)},ul=new WeakMap,dl=new WeakMap,pl=new WeakMap,gl=new WeakMap;function Xp(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function oa(e){return En(e)?e:Xa(e,!1,jp,Kp,ul)}function Qp(e){return Xa(e,!1,Up,Yp,dl)}function hs(e){return Xa(e,!0,Bp,Zp,pl)}function V1(e){return Xa(e,!0,Wp,Jp,gl)}function Xa(e,t,n,o,a){if(!Ze(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=a.get(e);if(r)return r;const s=Xp(Sp(e));if(s===0)return e;const i=new Proxy(e,s===2?o:n);return a.set(e,i),i}function An(e){return En(e)?An(e.__v_raw):!!(e&&e.__v_isReactive)}function En(e){return!!(e&&e.__v_isReadonly)}function Yt(e){return!!(e&&e.__v_isShallow)}function Qa(e){return e?!!e.__v_raw:!1}function We(e){const t=e&&e.__v_raw;return t?We(t):e}function aa(e){return!Ke(e,"__v_skip")&&Object.isExtensible(e)&&Hi(e,"__v_skip",!0),e}const an=e=>Ze(e)?oa(e):e,Eo=e=>Ze(e)?hs(e):e;function ct(e){return e?e.__v_isRef===!0:!1}function Le(e){return hl(e,!1)}function er(e){return hl(e,!0)}function hl(e,t){return ct(e)?e:new eg(e,t)}class eg{constructor(t,n){this.dep=new cs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:We(t),this._value=n?t:an(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Yt(t)||En(t);t=o?t:We(t),hn(t,n)&&(this._rawValue=t,this._value=o?t:an(t),this.dep.trigger())}}function Oe(e){return ct(e)?e.value:e}const tg={get:(e,t,n)=>t==="__v_raw"?e:Oe(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const a=e[t];return ct(a)&&!ct(n)?(a.value=n,!0):Reflect.set(e,t,n,o)}};function ml(e){return An(e)?e:new Proxy(e,tg)}function ng(e){const t=xe(e)?new Array(e.length):{};for(const n in e)t[n]=ag(e,n);return t}class og{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Qt(n)?n:String(n),this._raw=We(t);let a=!0,r=t;if(!xe(t)||Qt(this._key)||!Ga(this._key))do a=!Qa(r)||Yt(r);while(a&&(r=r.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=Oe(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ct(this._raw[this._key])){const n=this._object[this._key];if(ct(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Op(this._raw,this._key)}}function ag(e,t,n){return new og(e,t,n)}class rg{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new cs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ea-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&nt!==this)return Xi(this,!0),!0}get value(){const t=this.dep.track();return tl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function sg(e,t,n=!1){let o,a;return Re(e)?o=e:(o=e.get,a=e.set),new rg(o,a,n)}const tr={},nr=new WeakMap;let ho;function ig(e,t=!1,n=ho){if(n){let o=nr.get(n);o||nr.set(n,o=[]),o.push(e)}}function lg(e,t,n=et){const{immediate:o,deep:a,once:r,scheduler:s,augmentJob:i,call:l}=n,c=k=>a?k:Yt(k)||a===!1||a===0?Nn(k,1):Nn(k);let u,d,h,S,F=!1,y=!1;if(ct(e)?(d=()=>e.value,F=Yt(e)):An(e)?(d=()=>c(e),F=!0):xe(e)?(y=!0,F=e.some(k=>An(k)||Yt(k)),d=()=>e.map(k=>{if(ct(k))return k.value;if(An(k))return c(k);if(Re(k))return l?l(k,2):k()})):Re(e)?t?d=l?()=>l(e,2):e:d=()=>{if(h){mn();try{h()}finally{fn()}}const k=ho;ho=u;try{return l?l(e,3,[S]):e(S)}finally{ho=k}}:d=gn,t&&a){const k=d,b=a===!0?1/0:a;d=()=>Nn(k(),b)}const L=Yi(),N=()=>{u.stop(),L&&L.active&&ts(L.effects,u)};if(r&&t){const k=t;t=(...b)=>{const v=k(...b);return N(),v}}let $=y?new Array(e.length).fill(tr):tr;const w=k=>{if(!(!(u.flags&1)||!u.dirty&&!k))if(t){const b=u.run();if(k||a||F||(y?b.some((v,E)=>hn(v,$[E])):hn(b,$))){h&&h();const v=ho;ho=u;try{const E=[b,$===tr?void 0:y&&$[0]===tr?[]:$,S];$=b,l?l(t,3,E):t(...E)}finally{ho=v}}}else u.run()};return i&&i(w),u=new Zi(d),u.scheduler=s?()=>s(w,!1):w,S=k=>ig(k,!1,u),h=u.onStop=()=>{const k=nr.get(u);if(k){if(l)l(k,4);else for(const b of k)b();nr.delete(u)}},t?o?w(!0):$=u.run():s?s(w.bind(null,!0),!0):u.run(),N.pause=u.pause.bind(u),N.resume=u.resume.bind(u),N.stop=N,N}function Nn(e,t=1/0,n){if(t<=0||!Ze(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ct(e))Nn(e.value,t,n);else if(xe(e))for(let o=0;o<e.length;o++)Nn(e[o],t,n);else if(po(e)||Wn(e))e.forEach(o=>{Nn(o,t,n)});else if(Da(e)){for(const o in e)Nn(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Nn(e[o],t,n)}return e}/**
|
||
* @vue/runtime-core v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/const ra=[];let ms=!1;function q1(e,...t){if(ms)return;ms=!0,mn();const n=ra.length?ra[ra.length-1].component:null,o=n&&n.appContext.config.warnHandler,a=cg();if(o)No(o,n,11,[e+t.map(r=>{var s,i;return(i=(s=r.toString)==null?void 0:s.call(r))!=null?i:JSON.stringify(r)}).join(""),n&&n.proxy,a.map(({vnode:r})=>`at <${gc(n,r.type)}>`).join(`
|
||
`),a]);else{const r=[`[Vue warn]: ${e}`,...t];a.length&&r.push(`
|
||
`,...ug(a)),console.warn(...r)}fn(),ms=!1}function cg(){let e=ra[ra.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function ug(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[`
|
||
`],...dg(n))}),t}function dg({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,a=` at <${gc(e.component,e.type,o)}`,r=">"+n;return e.props?[a,...pg(e.props),r]:[a+r]}function pg(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...fl(o,e[o]))}),n.length>3&&t.push(" ..."),t}function fl(e,t,n){return rt(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:ct(t)?(t=fl(e,We(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):Re(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=We(t),n?t:[`${e}=`,t])}function No(e,t,n,o){try{return o?e(...o):e()}catch(a){sa(a,t,n)}}function rn(e,t,n,o){if(Re(e)){const a=No(e,t,n,o);return a&&Di(a)&&a.catch(r=>{sa(r,t,n)}),a}if(xe(e)){const a=[];for(let r=0;r<e.length;r++)a.push(rn(e[r],t,n,o));return a}}function sa(e,t,n,o=!0){const a=t?t.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:s}=t&&t.appContext.config||et;if(t){let i=t.parent;const l=t.proxy,c=`https://vuejs.org/error-reference/#runtime-${n}`;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){mn(),No(r,null,10,[e,l,c]),fn();return}}gg(e,n,a,o,s)}function gg(e,t,n,o=!0,a=!1){if(a)throw e;console.error(e)}const Ht=[];let $n=-1;const Fo=[];let qn=null,Ro=0;const bl=Promise.resolve();let or=null;function Zt(e){const t=or||bl;return e?t.then(this?e.bind(this):e):t}function hg(e){let t=$n+1,n=Ht.length;for(;t<n;){const o=t+n>>>1,a=Ht[o],r=ia(a);r<e||r===e&&a.flags&2?t=o+1:n=o}return t}function fs(e){if(!(e.flags&1)){const t=ia(e),n=Ht[Ht.length-1];!n||!(e.flags&2)&&t>=ia(n)?Ht.push(e):Ht.splice(hg(t),0,e),e.flags|=1,$l()}}function $l(){or||(or=bl.then(_l))}function mg(e){if(!xe(e))qn&&e.id===-1?qn.splice(Ro+1,0,e):e.flags&1||(Fo.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)Fo.push(e[t]);$l()}function yl(e,t,n=$n+1){for(;n<Ht.length;n++){const o=Ht[n];if(o&&o.flags&2){if(e&&o.id!==e.uid)continue;Ht.splice(n,1),n--,o.flags&4&&(o.flags&=-2),o(),o.flags&4||(o.flags&=-2)}}}function vl(e){if(Fo.length){const t=[...new Set(Fo)].sort((n,o)=>ia(n)-ia(o));if(Fo.length=0,qn){for(let n=0;n<t.length;n++)qn.push(t[n]);return}for(qn=t,Ro=0;Ro<qn.length;Ro++){const n=qn[Ro];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}qn=null,Ro=0}}const ia=e=>e.id==null?e.flags&2?-1:1/0:e.id;function _l(e){try{for($n=0;$n<Ht.length;$n++){const t=Ht[$n];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),No(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;$n<Ht.length;$n++){const t=Ht[$n];t&&(t.flags&=-2)}$n=-1,Ht.length=0,vl(),or=null,(Ht.length||Fo.length)&&_l()}}let Jt=null,wl=null;function ar(e){const t=Jt;return Jt=e,wl=e&&e.type.__scopeId||null,t}function fg(e,t=Jt,n){if(!t||e._n)return e;const o=(...a)=>{o._d&&gr(-1);const r=ar(t),s=vo.length;let i;try{i=e(...a)}finally{for(let l=vo.length;l>s;l--)rc();ar(r),o._d&&gr(1)}return i};return o._n=!0,o._c=!0,o._d=!0,o}function la(e,t){if(Jt===null)return e;const n=$r(Jt),o=e.dirs||(e.dirs=[]);for(let a=0;a<t.length;a++){let[r,s,i,l=et]=t[a];r&&(Re(r)&&(r={mounted:r,updated:r}),r.deep&&Nn(s),o.push({dir:r,instance:n,value:s,oldValue:void 0,arg:i,modifiers:l}))}return e}function mo(e,t,n,o){const a=e.dirs,r=t&&t.dirs;for(let s=0;s<a.length;s++){const i=a[s];r&&(i.oldValue=r[s].value);let l=i.dir[o];l&&(mn(),rn(l,n,8,[e.el,i,e,t]),fn())}}function sn(e,t){if(Ft){let n=Ft.provides;const o=Ft.parent&&Ft.parent.provides;o===n&&(n=Ft.provides=Object.create(o)),n[e]=t}}function vt(e,t,n=!1){const o=_n();if(o||$o){let a=$o?$o._context.provides:o?o.parent==null||o.ce?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides:void 0;if(a&&e in a)return a[e];if(arguments.length>1)return n&&Re(t)?t.call(o&&o.proxy):t}}function bg(){return!!(_n()||$o)}const $g=Symbol.for("v-scx"),yg=()=>vt($g);function kl(e,t){return bs(e,null,t)}function _t(e,t,n){return bs(e,t,n)}function bs(e,t,n=et){const{immediate:o,deep:a,flush:r,once:s}=n,i=$t({},n),l=t&&o||!t&&r!=="post";let c;if(Oo){if(r==="sync"){const S=yg();c=S.__watcherHandles||(S.__watcherHandles=[])}else if(!l){const S=()=>{};return S.stop=gn,S.resume=gn,S.pause=gn,S}}const u=Ft;i.call=(S,F,y)=>rn(S,u,F,y);let d=!1;r==="post"?i.scheduler=S=>{Vt(S,u&&u.suspense)}:r!=="sync"&&(d=!0,i.scheduler=(S,F)=>{F?S():fs(S)}),i.augmentJob=S=>{t&&(S.flags|=4),d&&(S.flags|=2,u&&(S.id=u.uid,S.i=u))};const h=lg(e,t,i);return Oo&&(c?c.push(h):l&&h()),h}function vg(e,t,n){const o=this.proxy,a=rt(e)?e.includes(".")?Sl(o,e):()=>o[e]:e.bind(o,o);let r;Re(t)?r=t:(r=t.handler,n=t);const s=ba(this),i=bs(a,r.bind(o),n);return s(),i}function Sl(e,t){const n=t.split(".");return()=>{let o=e;for(let a=0;a<n.length&&o;a++)o=o[n[a]];return o}}const _g=Symbol("_vte"),rr=e=>e.__isTeleport,$s=Symbol("_leaveCb");function wg(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Rn){t=n;break}}return t}function xl(e){if(!lr(e))return rr(e.type)&&e.children?wg(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Re(n.default))return n.default()}}function ys(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;ys(rr(n.type)&&xl(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Kn(e,t){return Re(e)?$t({name:e.name},t,{setup:e}):e}function vs(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Pl(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const sr=new WeakMap;function ca(e,t,n,o,a=!1){if(xe(e)){e.forEach((y,L)=>ca(y,t&&(xe(t)?t[L]:t),n,o,a));return}if(ua(o)&&!a){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&ca(e,t,n,o.component.subTree);return}const r=o.shapeFlag&4?$r(o.component):o.el,s=a?null:r,{i,r:l}=e,c=t&&t.r,u=i.refs===et?i.refs={}:i.refs,d=i.setupState,h=We(d),S=d===et?Oi:y=>Pl(u,y)?!1:Ke(h,y),F=(y,L)=>!(L&&Pl(u,L));if(c!=null&&c!==l){if(Cl(t),rt(c))u[c]=null,S(c)&&(d[c]=null);else if(ct(c)){const y=t;F(c,y.k)&&(c.value=null),y.k&&(u[y.k]=null)}}if(Re(l))No(l,i,12,[s,u]);else{const y=rt(l),L=ct(l);if(y||L){const N=()=>{if(e.f){const $=y?S(l)?d[l]:u[l]:F()||!e.k?l.value:u[e.k];if(a)xe($)&&ts($,r);else if(xe($))$.includes(r)||$.push(r);else if(y)u[l]=[r],S(l)&&(d[l]=u[l]);else{const w=[r];F(l,e.k)&&(l.value=w),e.k&&(u[e.k]=w)}}else y?(u[l]=s,S(l)&&(d[l]=s)):L&&(F(l,e.k)&&(l.value=s),e.k&&(u[e.k]=s))};if(s){const $=()=>{N(),sr.delete(e)};$.id=-1,sr.set(e,$),Vt($,n)}else Cl(e),N()}}}function Cl(e){const t=sr.get(e);t&&(t.flags|=8,sr.delete(e))}const Tl=e=>e.nodeType===8;Wa().requestIdleCallback,Wa().cancelIdleCallback;function kg(e,t){if(Tl(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(Tl(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const ua=e=>!!e.type.__asyncLoader;function Sg(e){Re(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:a=200,hydrate:r,timeout:s,suspensible:i=!0,onError:l}=e;let c=null,u,d=0;const h=()=>(d++,c=null,S()),S=()=>{let F;return c||(F=c=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),l)return new Promise((L,N)=>{l(y,()=>L(h()),()=>N(y),d+1)});throw y}).then(y=>F!==c&&c?c:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),u=y,y)))};return Kn({name:"AsyncComponentWrapper",__asyncLoader:S,__asyncHydrate(F,y,L){const N=F.isConnected;let $=!1;(y.bu||(y.bu=[])).push(()=>$=!0);const w=()=>{$||!F.parentNode||N&&!F.isConnected||L()},k=r?()=>{const b=r(w,v=>kg(F,v));b&&(y.bum||(y.bum=[])).push(b)}:w;u?k():S().then(()=>!y.isUnmounted&&k())},get __asyncResolved(){return u},setup(){const F=Ft;if(vs(F),u)return()=>ir(u,F);const y=b=>{c=null,sa(b,F,13,!o)};if(i&&F.suspense||Oo)return S().then(b=>()=>ir(b,F)).catch(b=>(y(b),()=>o?Mt(o,{error:b}):null));const L=Le(!1),N=Le(),$=Le(!!a);let w,k;return ur(()=>{w!=null&&clearTimeout(w),k!=null&&clearTimeout(k)}),a&&(k=setTimeout(()=>{F.isUnmounted||($.value=!1)},a)),s!=null&&(w=setTimeout(()=>{if(!F.isUnmounted&&!L.value&&!N.value){const b=new Error(`Async component timed out after ${s}ms.`);y(b),N.value=b}},s)),S().then(()=>{F.isUnmounted||(L.value=!0,F.parent&&lr(F.parent.vnode)&&F.parent.update())}).catch(b=>{if(F.isUnmounted){c=null;return}y(b),N.value=b}),()=>{if(L.value&&u)return ir(u,F);if(N.value&&o)return Mt(o,{error:N.value});if(n&&!$.value)return ir(n,F)}}})}function ir(e,t){const{ref:n,props:o,children:a,ce:r}=t.vnode,s=Mt(e,o,a);return s.ref=n,s.ce=r,delete t.vnode.ce,s}const lr=e=>e.type.__isKeepAlive;function xg(e,t){Ll(e,"a",t)}function Pg(e,t){Ll(e,"da",t)}function Ll(e,t,n=Ft){const o=e.__wdc||(e.__wdc=()=>{let a=n;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(cr(t,o,n),n){let a=n.parent;for(;a&&a.parent;)lr(a.parent.vnode)&&Cg(o,t,n,a),a=a.parent}}function Cg(e,t,n,o){const a=cr(t,e,o,!0);ur(()=>{ts(o[t],a)},n)}function cr(e,t,n=Ft,o=!1){if(n){const a=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...s)=>{mn();const i=ba(n),l=rn(t,n,e,s);return i(),fn(),l});return o?a.unshift(r):a.push(r),r}}const Fn=e=>(t,n=Ft)=>{(!Oo||e==="sp")&&cr(e,(...o)=>t(...o),n)},Ml=Fn("bm"),fo=Fn("m"),Tg=Fn("bu"),Lg=Fn("u"),bo=Fn("bum"),ur=Fn("um"),Mg=Fn("sp"),Ag=Fn("rtg"),Eg=Fn("rtc");function Ng(e,t=Ft){cr("ec",e,t)}const Fg="components",Al=Symbol.for("v-ndc");function El(e){return rt(e)?Rg(Fg,e,!1)||e:e||Al}function Rg(e,t,n=!0,o=!1){const a=Jt||Ft;if(a){const r=a.type;{const i=pc(r,!1);if(i&&(i===t||i===Lt(t)||i===ja(Lt(t))))return r}const s=Nl(a[e]||r[e],t)||Nl(a.appContext[e],t);return!s&&o?r:s}}function Nl(e,t){return e&&(e[t]||e[Lt(t)]||e[ja(Lt(t))])}function ln(e,t,n,o){let a;const r=n,s=xe(e);if(s||rt(e)){const i=s&&An(e);let l=!1,c=!1;i&&(l=!Yt(e),c=En(e),e=Ka(e)),a=new Array(e.length);for(let u=0,d=e.length;u<d;u++)a[u]=t(l?c?Eo(an(e[u])):an(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]=t(i+1,i,void 0,r)}else if(Ze(e))if(e[Symbol.iterator])a=Array.from(e,(i,l)=>t(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]=t(e[u],u,l,r)}}else a=[];return a}const _s=e=>e?cc(e)?$r(e):_s(e.parent):null,da=$t(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=>_s(e.parent),$root:e=>_s(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ol(e),$forceUpdate:e=>e.f||(e.f=()=>{fs(e.update)}),$nextTick:e=>e.n||(e.n=Zt.bind(e.proxy)),$watch:e=>vg.bind(e)}),ws=(e,t)=>e!==et&&!e.__isScriptSetup&&Ke(e,t),Ig={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:a,props:r,accessCache:s,type:i,appContext:l}=e;if(t[0]!=="$"){const h=s[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return a[t];case 4:return n[t];case 3:return r[t]}else{if(ws(o,t))return s[t]=1,o[t];if(a!==et&&Ke(a,t))return s[t]=2,a[t];if(Ke(r,t))return s[t]=3,r[t];if(n!==et&&Ke(n,t))return s[t]=4,n[t];ks&&(s[t]=0)}}const c=da[t];let u,d;if(c)return t==="$attrs"&&Ot(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(n!==et&&Ke(n,t))return s[t]=4,n[t];if(d=l.config.globalProperties,Ke(d,t))return d[t]},set({_:e},t,n){const{data:o,setupState:a,ctx:r}=e;return ws(a,t)?(a[t]=n,!0):o!==et&&Ke(o,t)?(o[t]=n,!0):Ke(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:a,props:r,type:s}},i){let l;return!!(n[i]||e!==et&&i[0]!=="$"&&Ke(e,i)||ws(t,i)||Ke(r,i)||Ke(o,i)||Ke(da,i)||Ke(a.config.globalProperties,i)||(l=s.__cssModules)&&l[i])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Ke(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Fl(e){return xe(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ks=!0;function Og(e){const t=Ol(e),n=e.proxy,o=e.ctx;ks=!1,t.beforeCreate&&Rl(t.beforeCreate,e,"bc");const{data:a,computed:r,methods:s,watch:i,provide:l,inject:c,created:u,beforeMount:d,mounted:h,beforeUpdate:S,updated:F,activated:y,deactivated:L,beforeDestroy:N,beforeUnmount:$,destroyed:w,unmounted:k,render:b,renderTracked:v,renderTriggered:E,errorCaptured:C,serverPrefetch:A,expose:K,inheritAttrs:le,components:te,directives:G,filters:ce}=t;if(c&&zg(c,o,null),s)for(const ie in s){const J=s[ie];Re(J)&&(o[ie]=J.bind(n))}if(a){const ie=a.call(n,n);Ze(ie)&&(e.data=oa(ie))}if(ks=!0,r)for(const ie in r){const J=r[ie],M=Re(J)?J.bind(n,n):Re(J.get)?J.get.bind(n,n):gn,q=!Re(J)&&Re(J.set)?J.set.bind(n):gn,m=Se({get:M,set:q});Object.defineProperty(o,ie,{enumerable:!0,configurable:!0,get:()=>m.value,set:j=>m.value=j})}if(i)for(const ie in i)Il(i[ie],o,n,ie);if(l){const ie=Re(l)?l.call(n):l;Reflect.ownKeys(ie).forEach(J=>{sn(J,ie[J])})}u&&Rl(u,e,"c");function W(ie,J){xe(J)?J.forEach(M=>ie(M.bind(n))):J&&ie(J.bind(n))}if(W(Ml,d),W(fo,h),W(Tg,S),W(Lg,F),W(xg,y),W(Pg,L),W(Ng,C),W(Eg,v),W(Ag,E),W(bo,$),W(ur,k),W(Mg,A),xe(K))if(K.length){const ie=e.exposed||(e.exposed={});K.forEach(J=>{Object.defineProperty(ie,J,{get:()=>n[J],set:M=>n[J]=M,enumerable:!0})})}else e.exposed||(e.exposed={});b&&e.render===gn&&(e.render=b),le!=null&&(e.inheritAttrs=le),te&&(e.components=te),G&&(e.directives=G),A&&vs(e)}function zg(e,t,n=gn){xe(e)&&(e=Ss(e));for(const o in e){const a=e[o];let r;Ze(a)?"default"in a?r=vt(a.from||o,a.default,!0):r=vt(a.from||o):r=vt(a),ct(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):t[o]=r}}function Rl(e,t,n){rn(xe(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Il(e,t,n,o){let a=o.includes(".")?Sl(n,o):()=>n[o];if(rt(e)){const r=t[e];Re(r)&&_t(a,r)}else if(Re(e))_t(a,e.bind(n));else if(Ze(e))if(xe(e))e.forEach(r=>Il(r,t,n,o));else{const r=Re(e.handler)?e.handler.bind(n):t[e.handler];Re(r)&&_t(a,r,e)}}function Ol(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:a,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,i=r.get(t);let l;return i?l=i:!a.length&&!n&&!o?l=t:(l={},a.length&&a.forEach(c=>dr(l,c,s,!0)),dr(l,t,s)),Ze(t)&&r.set(t,l),l}function dr(e,t,n,o=!1){const{mixins:a,extends:r}=t;r&&dr(e,r,n,!0),a&&a.forEach(s=>dr(e,s,n,!0));for(const s in t)if(!(o&&s==="expose")){const i=Dg[s]||n&&n[s];e[s]=i?i(e[s],t[s]):t[s]}return e}const Dg={data:zl,props:Dl,emits:Dl,methods:pa,computed:pa,beforeCreate:jt,created:jt,beforeMount:jt,mounted:jt,beforeUpdate:jt,updated:jt,beforeDestroy:jt,beforeUnmount:jt,destroyed:jt,unmounted:jt,activated:jt,deactivated:jt,errorCaptured:jt,serverPrefetch:jt,components:pa,directives:pa,watch:Hg,provide:zl,inject:Gg};function zl(e,t){return t?e?function(){return $t(Re(e)?e.call(this,this):e,Re(t)?t.call(this,this):t)}:t:e}function Gg(e,t){return pa(Ss(e),Ss(t))}function Ss(e){if(xe(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function jt(e,t){return e?[...new Set([].concat(e,t))]:t}function pa(e,t){return e?$t(Object.create(null),e,t):t}function Dl(e,t){return e?xe(e)&&xe(t)?[...new Set([...e,...t])]:$t(Object.create(null),Fl(e),Fl(t??{})):t}function Hg(e,t){if(!e)return t;if(!t)return e;const n=$t(Object.create(null),e);for(const o in t)n[o]=jt(e[o],t[o]);return n}function Gl(){return{app:null,config:{isNativeTag:Oi,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 jg=0;function Bg(e,t){return function(o,a=null){Re(o)||(o=$t({},o)),a!=null&&!Ze(a)&&(a=null);const r=Gl(),s=new WeakSet,i=[];let l=!1;const c=r.app={_uid:jg++,_component:o,_props:a,_container:null,_context:r,_instance:null,version:_h,get config(){return r.config},set config(u){},use(u,...d){return s.has(u)||(u&&Re(u.install)?(s.add(u),u.install(c,...d)):Re(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,h){if(!l){const S=c._ceVNode||Mt(o,a);return S.appContext=r,h===!0?h="svg":h===!1&&(h=void 0),e(S,u,h),l=!0,c._container=u,u.__vue_app__=c,$r(S.component)}},onUnmount(u){i.push(u)},unmount(){l&&(rn(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=$o;$o=c;try{return u()}finally{$o=d}}};return c}}let $o=null;const Ug=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Lt(t)}Modifiers`]||e[`${en(t)}Modifiers`];function Wg(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||et;let a=n;const r=t.startsWith("update:"),s=r&&Ug(o,t.slice(7));s&&(s.trim&&(a=n.map(u=>rt(u)?u.trim():u)),s.number&&(a=a.map(Ua)));let i,l=o[i=ns(t)]||o[i=ns(Lt(t))];!l&&r&&(l=o[i=ns(en(t))]),l&&rn(l,e,6,a);const c=o[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,rn(c,e,6,a)}}const Vg=new WeakMap;function Hl(e,t,n=!1){const o=n?Vg:t.emitsCache,a=o.get(e);if(a!==void 0)return a;const r=e.emits;let s={},i=!1;if(!Re(e)){const l=c=>{const u=Hl(c,t,!0);u&&(i=!0,$t(s,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(Ze(e)&&o.set(e,null),null):(xe(r)?r.forEach(l=>s[l]=null):$t(s,r),Ze(e)&&o.set(e,s),s)}function pr(e,t){return!e||!Oa(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Ke(e,t[0].toLowerCase()+t.slice(1))||Ke(e,en(t))||Ke(e,t))}function K1(){}function jl(e){const{type:t,vnode:n,proxy:o,withProxy:a,propsOptions:[r],slots:s,attrs:i,emit:l,render:c,renderCache:u,props:d,data:h,setupState:S,ctx:F,inheritAttrs:y}=e,L=ar(e);let N,$;try{if(n.shapeFlag&4){const k=a||o,b=k;N=yn(c.call(b,k,u,d,S,h,F)),$=i}else{const k=t;N=yn(k.length>1?k(d,{attrs:i,slots:s,emit:l}):k(d,null)),$=t.props?i:qg(i)}}catch(k){vo.length=0,sa(k,e,1),N=Mt(Rn)}let w=N;if($&&y!==!1){const k=Object.keys($),{shapeFlag:b}=w;k.length&&b&7&&(r&&k.some(za)&&($=Kg($,r)),w=Io(w,$,!1,!0))}if(n.dirs&&(w=Io(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition){const k=rr(w.type)&&xl(w)||w;ys(k,n.transition)}return N=w,ar(L),N}const qg=e=>{let t;for(const n in e)(n==="class"||n==="style"||Oa(n))&&((t||(t={}))[n]=e[n]);return t},Kg=(e,t)=>{const n={};for(const o in e)(!za(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Yg(e,t,n){const{props:o,children:a,component:r}=e,{props:s,children:i,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?Bl(o,s,c):!!s;if(l&8){const u=t.dynamicProps;for(let d=0;d<u.length;d++){const h=u[d];if(Ul(s,o,h)&&!pr(c,h))return!0}}}else return(a||i)&&(!i||!i.$stable)?!0:o===s?!1:o?s?Bl(o,s,c):!0:!!s;return!1}function Bl(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let a=0;a<o.length;a++){const r=o[a];if(Ul(t,e,r)&&!pr(n,r))return!0}return!1}function Ul(e,t,n){const o=e[n],a=t[n];return n==="style"&&Ze(o)&&Ze(a)?!Vn(o,a):o!==a}function Zg({vnode:e,parent:t,suspense:n},o){for(;t;){const a=t.subTree;if(a.suspense&&a.suspense.activeBranch===e&&(a.suspense.vnode.el=a.el=o,e=a),a===e)(e=t.vnode).el=o,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=o)}const Wl={},Vl=()=>Object.create(Wl),ql=e=>Object.getPrototypeOf(e)===Wl;function Jg(e,t,n,o=!1){const a={},r=Vl();e.propsDefaults=Object.create(null),Kl(e,t,a,r);for(const s in e.propsOptions[0])s in a||(a[s]=void 0);n?e.props=o?a:Qp(a):e.type.props?e.props=a:e.props=r,e.attrs=r}function Xg(e,t,n,o){const{props:a,attrs:r,vnode:{patchFlag:s}}=e,i=We(a),[l]=e.propsOptions;let c=!1;if((o||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let d=0;d<u.length;d++){let h=u[d];if(pr(e.emitsOptions,h))continue;const S=t[h];if(l)if(Ke(r,h))S!==r[h]&&(r[h]=S,c=!0);else{const F=Lt(h);a[F]=xs(l,i,F,S,e,!1)}else S!==r[h]&&(r[h]=S,c=!0)}}}else{Kl(e,t,a,r)&&(c=!0);let u;for(const d in i)(!t||!Ke(t,d)&&((u=en(d))===d||!Ke(t,u)))&&(l?n&&(n[d]!==void 0||n[u]!==void 0)&&(a[d]=xs(l,i,d,void 0,e,!0)):delete a[d]);if(r!==i)for(const d in r)(!t||!Ke(t,d))&&(delete r[d],c=!0)}c&&Ln(e.attrs,"set","")}function Kl(e,t,n,o){const[a,r]=e.propsOptions;let s=!1,i;if(t)for(let l in t){if(Jo(l))continue;const c=t[l];let u;a&&Ke(a,u=Lt(l))?!r||!r.includes(u)?n[u]=c:(i||(i={}))[u]=c:pr(e.emitsOptions,l)||(!(l in o)||c!==o[l])&&(o[l]=c,s=!0)}if(r){const l=We(n),c=i||et;for(let u=0;u<r.length;u++){const d=r[u];n[d]=xs(a,l,d,c[d],e,!Ke(c,d))}}return s}function xs(e,t,n,o,a,r){const s=e[n];if(s!=null){const i=Ke(s,"default");if(i&&o===void 0){const l=s.default;if(s.type!==Function&&!s.skipFactory&&Re(l)){const{propsDefaults:c}=a;if(n in c)o=c[n];else{const u=ba(a);o=c[n]=l.call(null,t),u()}}else o=l;a.ce&&a.ce._setProp(n,o)}s[0]&&(r&&!i?o=!1:s[1]&&(o===""||o===en(n))&&(o=!0))}return o}const Qg=new WeakMap;function Yl(e,t,n=!1){const o=n?Qg:t.propsCache,a=o.get(e);if(a)return a;const r=e.props,s={},i=[];let l=!1;if(!Re(e)){const u=d=>{l=!0;const[h,S]=Yl(d,t,!0);$t(s,h),S&&i.push(...S)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return Ze(e)&&o.set(e,Mo),Mo;if(xe(r))for(let u=0;u<r.length;u++){const d=Lt(r[u]);Zl(d)&&(s[d]=et)}else if(r)for(const u in r){const d=Lt(u);if(Zl(d)){const h=r[u],S=s[d]=xe(h)||Re(h)?{type:h}:$t({},h),F=S.type;let y=!1,L=!0;if(xe(F))for(let N=0;N<F.length;++N){const $=F[N],w=Re($)&&$.name;if(w==="Boolean"){y=!0;break}else w==="String"&&(L=!1)}else y=Re(F)&&F.name==="Boolean";S[0]=y,S[1]=L,(y||Ke(S,"default"))&&i.push(d)}}const c=[s,i];return Ze(e)&&o.set(e,c),c}function Zl(e){return e[0]!=="$"&&!Jo(e)}const Ps=e=>e==="_"||e==="_ctx"||e==="$stable",Cs=e=>xe(e)?e.map(yn):[yn(e)],eh=(e,t,n)=>{if(t._n)return t;const o=fg((...a)=>Cs(t(...a)),n);return o._c=!1,o},Jl=(e,t,n)=>{const o=e._ctx;for(const a in e){if(Ps(a))continue;const r=e[a];if(Re(r))t[a]=eh(a,r,o);else if(r!=null){const s=Cs(r);t[a]=()=>s}}},Xl=(e,t)=>{const n=Cs(t);e.slots.default=()=>n},Ql=(e,t,n)=>{for(const o in t)(n||!Ps(o))&&(e[o]=t[o])},th=(e,t,n)=>{const o=e.slots=Vl();if(e.vnode.shapeFlag&32){const a=t._;a?(Ql(o,t,n),n&&Hi(o,"_",a,!0)):Jl(t,o)}else t&&Xl(e,t)},nh=(e,t,n)=>{const{vnode:o,slots:a}=e;let r=!0,s=et;if(o.shapeFlag&32){const i=t._;i?n&&i===1?r=!1:Ql(a,t,n):(r=!t.$stable,Jl(t,a)),s=t}else t&&(Xl(e,t),s={default:1});if(r)for(const i in a)!Ps(i)&&s[i]==null&&delete a[i]},Vt=ih;function oh(e){return ah(e)}function ah(e,t){const n=Wa();n.__VUE__=!0;const{insert:o,remove:a,patchProp:r,createElement:s,createText:i,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:h,setScopeId:S=gn,insertStaticContent:F}=e,y=(_,T,x,U=null,Q=null,X=null,de=void 0,ue=null,p=!!T.dynamicChildren)=>{if(_===T)return;_&&!ma(_,T)&&(U=Ce(_),j(_,Q,X,!0),_=null),T.patchFlag===-2&&(p=!1,T.dynamicChildren=null);const{type:g,ref:z,shapeFlag:O}=T;switch(g){case ga:L(_,T,x,U);break;case Rn:N(_,T,x,U);break;case Ls:_==null&&$(T,x,U,de);break;case Xe:te(_,T,x,U,Q,X,de,ue,p);break;default:O&1?b(_,T,x,U,Q,X,de,ue,p):O&6?G(_,T,x,U,Q,X,de,ue,p):(O&64||O&128)&&g.process(_,T,x,U,Q,X,de,ue,p,Me)}z!=null&&Q?ca(z,_&&_.ref,X,T||_,!T):z==null&&_&&_.ref!=null&&ca(_.ref,null,X,_,!0)},L=(_,T,x,U)=>{if(_==null)o(T.el=i(T.children),x,U);else{const Q=T.el=_.el;T.children!==_.children&&c(Q,T.children)}},N=(_,T,x,U)=>{_==null?o(T.el=l(T.children||""),x,U):T.el=_.el},$=(_,T,x,U)=>{[_.el,_.anchor]=F(_.children,T,x,U,_.el,_.anchor)},w=({el:_,anchor:T},x,U)=>{let Q;for(;_&&_!==T;)Q=h(_),o(_,x,U),_=Q;o(T,x,U)},k=({el:_,anchor:T})=>{let x;for(;_&&_!==T;)x=h(_),a(_),_=x;a(T)},b=(_,T,x,U,Q,X,de,ue,p)=>{if(T.type==="svg"?de="svg":T.type==="math"&&(de="mathml"),_==null)v(T,x,U,Q,X,de,ue,p);else{const g=_.el&&_.el._isVueCE?_.el:null;try{g&&g._beginPatch(),A(_,T,Q,X,de,ue,p)}finally{g&&g._endPatch()}}},v=(_,T,x,U,Q,X,de,ue)=>{let p,g;const{props:z,shapeFlag:O,transition:ge,dirs:se}=_;if(p=_.el=s(_.type,X,z&&z.is,z),O&8?u(p,_.children):O&16&&C(_.children,p,null,U,Q,Ts(_,X),de,ue),se&&mo(_,null,U,"created"),E(p,_,_.scopeId,de,U),z){for(const V in z)V!=="value"&&!Jo(V)&&r(p,V,null,z[V],X,U);"value"in z&&r(p,"value",null,z.value,X),(g=z.onVnodeBeforeMount)&&vn(g,U,_)}se&&mo(_,null,U,"beforeMount");const I=rh(Q,ge);I&&ge.beforeEnter(p),o(p,T,x),((g=z&&z.onVnodeMounted)||I||se)&&Vt(()=>{try{g&&vn(g,U,_),I&&ge.enter(p),se&&mo(_,null,U,"mounted")}finally{}},Q)},E=(_,T,x,U,Q)=>{if(x&&S(_,x),U)for(let X=0;X<U.length;X++)S(_,U[X]);if(Q){let X=Q.subTree;if(T===X||ac(X.type)&&(X.ssContent===T||X.ssFallback===T)){const de=Q.vnode;E(_,de,de.scopeId,de.slotScopeIds,Q.parent)}}},C=(_,T,x,U,Q,X,de,ue,p=0)=>{for(let g=p;g<_.length;g++){const z=_[g]=ue?In(_[g]):yn(_[g]);y(null,z,T,x,U,Q,X,de,ue)}},A=(_,T,x,U,Q,X,de)=>{const ue=T.el=_.el;let{patchFlag:p,dynamicChildren:g,dirs:z}=T;p|=_.patchFlag&16;const O=_.props||et,ge=T.props||et;let se;if(x&&yo(x,!1),(se=ge.onVnodeBeforeUpdate)&&vn(se,x,T,_),z&&mo(T,_,x,"beforeUpdate"),x&&yo(x,!0),g&&(!_.dynamicChildren||_.dynamicChildren.length!==g.length)&&(p=0,de=!1,g=null),(O.innerHTML&&ge.innerHTML==null||O.textContent&&ge.textContent==null)&&u(ue,""),g?K(_.dynamicChildren,g,ue,x,U,Ts(T,Q),X):de||J(_,T,ue,null,x,U,Ts(T,Q),X,!1),p>0){if(p&16)le(ue,O,ge,x,Q);else if(p&2&&O.class!==ge.class&&r(ue,"class",null,ge.class,Q),p&4&&r(ue,"style",O.style,ge.style,Q),p&8){const I=T.dynamicProps;for(let V=0;V<I.length;V++){const ke=I[V],Fe=O[ke],Be=ge[ke];(Be!==Fe||ke==="value")&&r(ue,ke,Fe,Be,Q,x)}}p&1&&_.children!==T.children&&u(ue,T.children)}else!de&&g==null&&le(ue,O,ge,x,Q);((se=ge.onVnodeUpdated)||z)&&Vt(()=>{se&&vn(se,x,T,_),z&&mo(T,_,x,"updated")},U)},K=(_,T,x,U,Q,X,de)=>{for(let ue=0;ue<T.length;ue++){const p=_[ue],g=T[ue],z=p.el&&(p.type===Xe||!ma(p,g)||p.shapeFlag&198)?d(p.el):x;y(p,g,z,null,U,Q,X,de,!0)}},le=(_,T,x,U,Q)=>{if(T!==x){if(T!==et)for(const X in T)!Jo(X)&&!(X in x)&&r(_,X,T[X],null,Q,U);for(const X in x){if(Jo(X))continue;const de=x[X],ue=T[X];de!==ue&&X!=="value"&&r(_,X,ue,de,Q,U)}"value"in x&&r(_,"value",T.value,x.value,Q)}},te=(_,T,x,U,Q,X,de,ue,p)=>{const g=T.el=_?_.el:i(""),z=T.anchor=_?_.anchor:i("");let{patchFlag:O,dynamicChildren:ge,slotScopeIds:se}=T;se&&(ue=ue?ue.concat(se):se),_==null?(o(g,x,U),o(z,x,U),C(T.children||[],x,z,Q,X,de,ue,p)):O>0&&O&64&&ge&&_.dynamicChildren&&_.dynamicChildren.length===ge.length?(K(_.dynamicChildren,ge,x,Q,X,de,ue),(T.key!=null||Q&&T===Q.subTree)&&ec(_,T,!0)):J(_,T,x,z,Q,X,de,ue,p)},G=(_,T,x,U,Q,X,de,ue,p)=>{T.slotScopeIds=ue,_==null?T.shapeFlag&512?Q.ctx.activate(T,x,U,de,p):ce(T,x,U,Q,X,de,p):H(_,T,p)},ce=(_,T,x,U,Q,X,de)=>{const ue=_.component=gh(_,U,Q);if(lr(_)&&(ue.ctx.renderer=Me),hh(ue,!1,de),ue.asyncDep){if(Q&&Q.registerDep(ue,W,de),!_.el){const p=ue.subTree=Mt(Rn);N(null,p,T,x),_.placeholder=p.el}}else W(ue,_,T,x,Q,X,de)},H=(_,T,x)=>{const U=T.component=_.component;if(Yg(_,T,x))if(U.asyncDep&&!U.asyncResolved){ie(U,T,x);return}else U.next=T,U.update();else T.el=_.el,U.vnode=T},W=(_,T,x,U,Q,X,de)=>{const ue=()=>{if(_.isMounted){let{next:O,bu:ge,u:se,parent:I,vnode:V}=_;{const ht=tc(_);if(ht){O&&(O.el=V.el,ie(_,O,de)),ht.asyncDep.then(()=>{Vt(()=>{_.isUnmounted||g()},Q)});return}}let ke=O,Fe;yo(_,!1),O?(O.el=V.el,ie(_,O,de)):O=V,ge&&Ba(ge),(Fe=O.props&&O.props.onVnodeBeforeUpdate)&&vn(Fe,I,O,V),yo(_,!0);const Be=jl(_),pt=_.subTree;_.subTree=Be,y(pt,Be,d(pt.el),Ce(pt),_,Q,X),O.el=Be.el,ke===null&&Zg(_,Be.el),se&&Vt(se,Q),(Fe=O.props&&O.props.onVnodeUpdated)&&Vt(()=>vn(Fe,I,O,V),Q)}else{let O;const{el:ge,props:se}=T,{bm:I,m:V,parent:ke,root:Fe,type:Be}=_,pt=ua(T);yo(_,!1),I&&Ba(I),!pt&&(O=se&&se.onVnodeBeforeMount)&&vn(O,ke,T),yo(_,!0);{Fe.ce&&Fe.ce._hasShadowRoot()&&Fe.ce._injectChildStyle(Be,_.parent?_.parent.type:void 0);const ht=_.subTree=jl(_);y(null,ht,x,U,_,Q,X),T.el=ht.el}if(V&&Vt(V,Q),!pt&&(O=se&&se.onVnodeMounted)){const ht=T;Vt(()=>vn(O,ke,ht),Q)}(T.shapeFlag&256||ke&&ua(ke.vnode)&&ke.vnode.shapeFlag&256)&&_.a&&Vt(_.a,Q),_.isMounted=!0,T=x=U=null}};_.scope.on();const p=_.effect=new Zi(ue);_.scope.off();const g=_.update=p.run.bind(p),z=_.job=p.runIfDirty.bind(p);z.i=_,z.id=_.uid,p.scheduler=()=>fs(z),yo(_,!0),g()},ie=(_,T,x)=>{T.component=_;const U=_.vnode.props;_.vnode=T,_.next=null,Xg(_,T.props,U,x),nh(_,T.children,x),mn(),yl(_),fn()},J=(_,T,x,U,Q,X,de,ue,p=!1)=>{const g=_&&_.children,z=_?_.shapeFlag:0,O=T.children,{patchFlag:ge,shapeFlag:se}=T;if(ge>0){if(ge&128){q(g,O,x,U,Q,X,de,ue,p);return}else if(ge&256){M(g,O,x,U,Q,X,de,ue,p);return}}se&8?(z&16&&Ne(g,Q,X),O!==g&&u(x,O)):z&16?se&16?q(g,O,x,U,Q,X,de,ue,p):Ne(g,Q,X,!0):(z&8&&u(x,""),se&16&&C(O,x,U,Q,X,de,ue,p))},M=(_,T,x,U,Q,X,de,ue,p)=>{_=_||Mo,T=T||Mo;const g=_.length,z=T.length,O=Math.min(g,z);let ge;for(ge=0;ge<O;ge++){const se=T[ge]=p?In(T[ge]):yn(T[ge]);y(_[ge],se,x,null,Q,X,de,ue,p)}g>z?Ne(_,Q,X,!0,!1,O):C(T,x,U,Q,X,de,ue,p,O)},q=(_,T,x,U,Q,X,de,ue,p)=>{let g=0;const z=T.length;let O=_.length-1,ge=z-1;for(;g<=O&&g<=ge;){const se=_[g],I=T[g]=p?In(T[g]):yn(T[g]);if(ma(se,I))y(se,I,x,null,Q,X,de,ue,p);else break;g++}for(;g<=O&&g<=ge;){const se=_[O],I=T[ge]=p?In(T[ge]):yn(T[ge]);if(ma(se,I))y(se,I,x,null,Q,X,de,ue,p);else break;O--,ge--}if(g>O){if(g<=ge){const se=ge+1,I=se<z?T[se].el:U;for(;g<=ge;)y(null,T[g]=p?In(T[g]):yn(T[g]),x,I,Q,X,de,ue,p),g++}}else if(g>ge)for(;g<=O;)j(_[g],Q,X,!0),g++;else{const se=g,I=g,V=new Map;for(g=I;g<=ge;g++){const mt=T[g]=p?In(T[g]):yn(T[g]);mt.key!=null&&V.set(mt.key,g)}let ke,Fe=0;const Be=ge-I+1;let pt=!1,ht=0;const pn=new Array(Be);for(g=0;g<Be;g++)pn[g]=0;for(g=se;g<=O;g++){const mt=_[g];if(Fe>=Be){j(mt,Q,X,!0);continue}let Wt;if(mt.key!=null)Wt=V.get(mt.key);else for(ke=I;ke<=ge;ke++)if(pn[ke-I]===0&&ma(mt,T[ke])){Wt=ke;break}Wt===void 0?j(mt,Q,X,!0):(pn[Wt-I]=g+1,Wt>=ht?ht=Wt:pt=!0,y(mt,T[Wt],x,null,Q,X,de,ue,p),Fe++)}const To=pt?sh(pn):Mo;for(ke=To.length-1,g=Be-1;g>=0;g--){const mt=I+g,Wt=T[mt],ao=T[mt+1],Hn=mt+1<z?ao.el||oc(ao):U;pn[g]===0?y(null,Wt,x,Hn,Q,X,de,ue,p):pt&&(ke<0||g!==To[ke]?m(Wt,x,Hn,2):ke--)}}},m=(_,T,x,U,Q=null)=>{const{el:X,type:de,transition:ue,children:p,shapeFlag:g}=_;if(g&6){m(_.component.subTree,T,x,U);return}if(g&128){_.suspense.move(T,x,U);return}if(g&64){de.move(_,T,x,Me);return}if(de===Xe){o(X,T,x);for(let O=0;O<p.length;O++)m(p[O],T,x,U);o(_.anchor,T,x);return}if(de===Ls){w(_,T,x);return}if(U!==2&&g&1&&ue)if(U===0)ue.persisted&&!X[$s]?o(X,T,x):(ue.beforeEnter(X),o(X,T,x),Vt(()=>ue.enter(X),Q));else{const{leave:O,delayLeave:ge,afterLeave:se}=ue,I=()=>{_.ctx.isUnmounted?a(X):o(X,T,x)},V=()=>{const ke=X._isLeaving||!!X[$s];X._isLeaving&&X[$s](!0),ue.persisted&&!ke?I():O(X,()=>{I(),se&&se()})};ge?ge(X,I,V):V()}else o(X,T,x)},j=(_,T,x,U=!1,Q=!1)=>{const{type:X,props:de,ref:ue,children:p,dynamicChildren:g,shapeFlag:z,patchFlag:O,dirs:ge,cacheIndex:se,memo:I}=_;if(O===-2&&(Q=!1),ue!=null&&(mn(),ca(ue,null,x,_,!0),fn()),se!=null&&(T.renderCache[se]=void 0),z&256){T.ctx.deactivate(_);return}const V=z&1&&ge,ke=!ua(_);let Fe;if(ke&&(Fe=de&&de.onVnodeBeforeUnmount)&&vn(Fe,T,_),z&6)ve(_.component,x,U);else{if(z&128){_.suspense.unmount(x,U);return}V&&mo(_,null,T,"beforeUnmount"),z&64?_.type.remove(_,T,x,Me,U):g&&!g.hasOnce&&(X!==Xe||O>0&&O&64)?Ne(g,T,x,!1,!0):(X===Xe&&O&384||!Q&&z&16)&&Ne(p,T,x),U&&me(_)}const Be=I!=null&&se==null;(ke&&(Fe=de&&de.onVnodeUnmounted)||V||Be)&&Vt(()=>{Fe&&vn(Fe,T,_),V&&mo(_,null,T,"unmounted"),Be&&(_.el=null)},x)},me=_=>{const{type:T,el:x,anchor:U,transition:Q}=_;if(T===Xe){pe(x,U);return}if(T===Ls){k(_);return}const X=()=>{a(x),Q&&!Q.persisted&&Q.afterLeave&&Q.afterLeave()};if(_.shapeFlag&1&&Q&&!Q.persisted){const{leave:de,delayLeave:ue}=Q,p=()=>de(x,X);ue?ue(_.el,X,p):p()}else X()},pe=(_,T)=>{let x;for(;_!==T;)x=h(_),a(_),_=x;a(T)},ve=(_,T,x)=>{const{bum:U,scope:Q,job:X,subTree:de,um:ue,m:p,a:g}=_;nc(p),nc(g),U&&Ba(U),Q.stop(),X&&(X.flags|=8,j(de,_,T,x)),ue&&Vt(ue,T),Vt(()=>{_.isUnmounted=!0},T)},Ne=(_,T,x,U=!1,Q=!1,X=0)=>{for(let de=X;de<_.length;de++)j(_[de],T,x,U,Q)},Ce=_=>{if(_.shapeFlag&6)return Ce(_.component.subTree);if(_.shapeFlag&128)return _.suspense.next();const T=h(_.anchor||_.el),x=T&&T[_g];return x?h(x):T};let qe=!1;const Te=(_,T,x)=>{let U;_==null?T._vnode&&(j(T._vnode,null,null,!0),U=T._vnode.component):y(T._vnode||null,_,T,null,null,null,x),T._vnode=_,qe||(qe=!0,yl(U),vl(),qe=!1)},Me={p:y,um:j,m,r:me,mt:ce,mc:C,pc:J,pbc:K,n:Ce,o:e};return{render:Te,hydrate:void 0,createApp:Bg(Te)}}function Ts({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function yo({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rh(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ec(e,t,n=!1){const o=e.children,a=t.children;if(xe(o)&&xe(a))for(let r=0;r<o.length;r++){const s=o[r];let i=a[r];i.shapeFlag&1&&!i.dynamicChildren&&((i.patchFlag<=0||i.patchFlag===32)&&(i=a[r]=In(a[r]),i.el=s.el),!n&&i.patchFlag!==-2&&ec(s,i)),i.type===ga&&(i.patchFlag===-1&&(i=a[r]=In(i)),i.el=s.el),i.type===Rn&&!i.el&&(i.el=s.el)}}function sh(e){const t=e.slice(),n=[0];let o,a,r,s,i;const l=e.length;for(o=0;o<l;o++){const c=e[o];if(c!==0){if(a=n[n.length-1],e[a]<c){t[o]=a,n.push(o);continue}for(r=0,s=n.length-1;r<s;)i=r+s>>1,e[n[i]]<c?r=i+1:s=i;c<e[n[r]]&&(r>0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,s=n[r-1];r-- >0;)n[r]=s,s=t[s];return n}function tc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:tc(t)}function nc(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function oc(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?oc(t.subTree):null}const ac=e=>e.__isSuspense;function ih(e,t){t&&t.pendingBranch?xe(e)?t.effects.push(...e):t.effects.push(e):mg(e)}const Xe=Symbol.for("v-fgt"),ga=Symbol.for("v-txt"),Rn=Symbol.for("v-cmt"),Ls=Symbol.for("v-stc"),vo=[];let Xt=null;function fe(e=!1){vo.push(Xt=e?null:[])}function rc(){vo.pop(),Xt=vo[vo.length-1]||null}let ha=1;function gr(e,t=!1){ha+=e,e<0&&Xt&&t&&(Xt.hasOnce=!0)}function sc(e){return e.dynamicChildren=ha>0?Xt||Mo:null,rc(),ha>0&&Xt&&Xt.push(e),e}function we(e,t,n,o,a,r){return sc(B(e,t,n,o,a,r,!0))}function Yn(e,t,n,o,a){return sc(Mt(e,t,n,o,a,!0))}function hr(e){return e?e.__v_isVNode===!0:!1}function ma(e,t){return e.type===t.type&&e.key===t.key}const ic=({key:e})=>e??null,mr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?rt(e)||ct(e)||Re(e)?{i:Jt,r:e,k:t,f:!!n}:e:null);function B(e,t=null,n=null,o=0,a=null,r=e===Xe?0:1,s=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ic(t),ref:t&&mr(t),scopeId:wl,slotScopeIds:null,children:n,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:o,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:Jt};return i?(fr(l,n),r&128&&e.normalize(l)):n&&(l.shapeFlag|=rt(n)?8:16),ha>0&&!s&&Xt&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Xt.push(l),l}const Mt=lh;function lh(e,t=null,n=null,o=0,a=null,r=!1){if((!e||e===Al)&&(e=Rn),hr(e)){const i=Io(e,t,!0);return n&&fr(i,n),ha>0&&!r&&Xt&&(i.shapeFlag&6?Xt[Xt.indexOf(e)]=i:Xt.push(i)),i.patchFlag=-2,i}if(vh(e)&&(e=e.__vccOpts),t){t=ch(t);let{class:i,style:l}=t;i&&!rt(i)&&(t.class=st(i)),Ze(l)&&(Qa(l)&&!xe(l)&&(l=$t({},l)),t.style=Nt(l))}const s=rt(e)?1:ac(e)?128:rr(e)?64:Ze(e)?4:Re(e)?2:0;return B(e,t,n,o,a,s,r,!0)}function ch(e){return e?Qa(e)||ql(e)?$t({},e):e:null}function Io(e,t,n=!1,o=!1){const{props:a,ref:r,patchFlag:s,children:i,transition:l}=e,c=t?uh(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&ic(c),ref:t&&t.ref?n&&r?xe(r)?r.concat(mr(t)):[r,mr(t)]:mr(t):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:t&&e.type!==Xe?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&&Io(e.ssContent),ssFallback:e.ssFallback&&Io(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&o&&ys(u,l.clone(u)),u}function Je(e=" ",t=0){return Mt(ga,null,e,t)}function ut(e="",t=!1){return t?(fe(),Yn(Rn,null,e)):Mt(Rn,null,e)}function yn(e){return e==null||typeof e=="boolean"?Mt(Rn):xe(e)?Mt(Xe,null,e.slice()):hr(e)?In(e):Mt(ga,null,String(e))}function In(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Io(e)}function fr(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(xe(t))n=16;else if(typeof t=="object")if(o&65){const a=t.default;a&&(a._c&&(a._d=!1),fr(e,a()),a._c&&(a._d=!0));return}else{n=32;const a=t._;!a&&!ql(t)?t._ctx=Jt:a===3&&Jt&&(Jt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Re(t)){if(o&65){fr(e,{default:t});return}t={default:t,_ctx:Jt},n=32}else t=String(t),o&64?(n=16,t=[Je(t)]):n=8;e.children=t,e.shapeFlag|=n}function uh(...e){const t={};for(let n=0;n<e.length;n++){const o=e[n];for(const a in o)if(a==="class")t.class!==o.class&&(t.class=st([t.class,o.class]));else if(a==="style")t.style=Nt([t.style,o.style]);else if(Oa(a)){const r=t[a],s=o[a];s&&r!==s&&!(xe(r)&&r.includes(s))?t[a]=r?[].concat(r,s):s:s==null&&r==null&&!za(a)&&(t[a]=s)}else a!==""&&(t[a]=o[a])}return t}function vn(e,t,n,o=null){rn(e,t,7,[n,o])}const dh=Gl();let ph=0;function gh(e,t,n){const o=e.type,a=(t?t.appContext:e.appContext)||dh,r={uid:ph++,vnode:e,type:o,parent:t,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Ki(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(a.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Yl(o,a),emitsOptions:Hl(o,a),emit:null,emitted:null,propsDefaults:et,inheritAttrs:o.inheritAttrs,ctx:et,data:et,props:et,attrs:et,slots:et,refs:et,setupState:et,setupContext:null,suspense:n,suspenseId:n?n.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=t?t.root:r,r.emit=Wg.bind(null,r),e.ce&&e.ce(r),r}let Ft=null;const _n=()=>Ft||Jt;let br,fa;{const e=Wa(),t=(n,o)=>{let a;return(a=e[n])||(a=e[n]=[]),a.push(o),r=>{a.length>1?a.forEach(s=>s(r)):a[0](r)}};br=t("__VUE_INSTANCE_SETTERS__",n=>Ft=n),fa=t("__VUE_SSR_SETTERS__",n=>Oo=n)}const ba=e=>{const t=Ft;return br(e),e.scope.on(),()=>{e.scope.off(),br(t)}},lc=()=>{Ft&&Ft.scope.off(),br(null)};function cc(e){return e.vnode.shapeFlag&4}let Oo=!1;function hh(e,t=!1,n=!1){t&&fa(t);const{props:o,children:a}=e.vnode,r=cc(e);Jg(e,o,r,t),th(e,a,n||t);const s=r?mh(e,t):void 0;return t&&fa(!1),s}function mh(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ig);const{setup:o}=n;if(o){mn();const a=e.setupContext=o.length>1?bh(e):null,r=ba(e),s=No(o,e,0,[e.props,a]),i=Di(s);if(fn(),r(),(i||e.sp)&&!ua(e)&&vs(e),i){if(s.then(lc,lc),t)return s.then(l=>{fa(!0);try{uc(e,l,t)}finally{fa(!1)}}).catch(l=>{sa(l,e,0)});e.asyncDep=s}else uc(e,s)}else dc(e)}function uc(e,t,n){Re(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ze(t)&&(e.setupState=ml(t)),dc(e)}function dc(e,t,n){const o=e.type;e.render||(e.render=o.render||gn);{const a=ba(e);mn();try{Og(e)}finally{fn(),a()}}}const fh={get(e,t){return Ot(e,"get",""),e[t]}};function bh(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,fh),slots:e.slots,emit:e.emit,expose:t}}function $r(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ml(aa(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in da)return da[n](e)},has(t,n){return n in t||n in da}})):e.proxy}const $h=/(?:^|[-_])\w/g,yh=e=>e.replace($h,t=>t.toUpperCase()).replace(/[-_]/g,"");function pc(e,t=!0){return Re(e)?e.displayName||e.name:e.name||t&&e.__name}function gc(e,t,n=!1){let o=pc(t);if(!o&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(o=a[1])}if(!o&&e){const a=r=>{for(const s in r)if(r[s]===t)return s};o=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return o?yh(o):n?"App":"Anonymous"}function vh(e){return Re(e)&&"__vccOpts"in e}const Se=(e,t)=>sg(e,t,Oo);function _o(e,t,n){try{gr(-1);const o=arguments.length;return o===2?Ze(t)&&!xe(t)?hr(t)?Mt(e,null,[t]):Mt(e,t):Mt(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&hr(n)&&(n=[n]),Mt(e,t,n))}finally{gr(1)}}const _h="3.5.42";/**
|
||
* @vue/runtime-dom v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let Ms;const hc=typeof window<"u"&&window.trustedTypes;if(hc)try{Ms=hc.createPolicy("vue",{createHTML:e=>e})}catch{}const mc=Ms?e=>Ms.createHTML(e):e=>e,wh="http://www.w3.org/2000/svg",kh="http://www.w3.org/1998/Math/MathML",On=typeof document<"u"?document:null,fc=On&&On.createElement("template"),Sh={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const a=t==="svg"?On.createElementNS(wh,e):t==="mathml"?On.createElementNS(kh,e):n?On.createElement(e,{is:n}):On.createElement(e);return e==="select"&&o&&o.multiple!=null&&a.setAttribute("multiple",o.multiple),a},createText:e=>On.createTextNode(e),createComment:e=>On.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>On.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,a,r){const s=n?n.previousSibling:t.lastChild;if(a&&(a===r||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),n),!(a===r||!(a=a.nextSibling)););else{fc.innerHTML=mc(o==="svg"?`<svg>${e}</svg>`:o==="mathml"?`<math>${e}</math>`:e);const i=fc.content;if(o==="svg"||o==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},xh=Symbol("_vtc");function Ph(e,t,n){const o=e[xh];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const yr=Symbol("_vod"),bc=Symbol("_vsh"),Ch={name:"show",beforeMount(e,{value:t},{transition:n}){e[yr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):$a(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),$a(e,!0),o.enter(e)):o.leave(e,()=>{$a(e,!1)}):$a(e,t))},beforeUnmount(e,{value:t}){$a(e,t)}};function $a(e,t){e.style.display=t?e[yr]:"none",e[bc]=!t}const Th=Symbol(""),Lh=/(?:^|;)\s*display\s*:/;function Mh(e,t,n){const o=e.style,a=rt(n);let r=!1;if(n&&!a){if(t)if(rt(t))for(const s of t.split(";")){const i=s.slice(0,s.indexOf(":")).trim();n[i]==null&&ya(o,i,"")}else for(const s in t)n[s]==null&&ya(o,s,"");for(const s in n){s==="display"&&(r=!0);const i=n[s];i!=null?Eh(e,s,!rt(t)&&t?t[s]:void 0,i)||ya(o,s,i):ya(o,s,"")}}else if(a){if(t!==n){const s=o[Th];s&&(n+=";"+s),o.cssText=n,r=Lh.test(n)}}else t&&e.removeAttribute("style");yr in e&&(e[yr]=r?o.display:"",e[bc]&&(o.display="none"))}const vr=/\s*!important$/;function ya(e,t,n){if(xe(n))n.forEach(o=>ya(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))vr.test(n)?e.setProperty(t,n.replace(vr,""),"important"):e.setProperty(t,n);else{const o=Ah(e,t);vr.test(n)?e.setProperty(en(o),n.replace(vr,""),"important"):e[o]=n}}const $c=["Webkit","Moz","ms"],As={};function Ah(e,t){const n=As[t];if(n)return n;let o=Lt(t);if(o!=="filter"&&o in e)return As[t]=o;o=ja(o);for(let a=0;a<$c.length;a++){const r=$c[a]+o;if(r in e)return As[t]=r}return t}function Eh(e,t,n,o){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&rt(o)&&n===o}const yc="http://www.w3.org/1999/xlink";function vc(e,t,n,o,a,r=Ap(t)){o&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(yc,t.slice(6,t.length)):e.setAttributeNS(yc,t,n):n==null||r&&!Ui(n)?e.removeAttribute(t):e.setAttribute(t,r?"":Qt(n)?String(n):n)}function _c(e,t,n,o,a){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?mc(n):n);return}const r=e.tagName;if(t==="value"&&r!=="PROGRESS"&&!r.includes("-")){const i=r==="OPTION"?e.getAttribute("value")||"":e.value,l=n==null?e.type==="checkbox"?"on":"":String(n);(i!==l||!("_value"in e))&&(e.value=l),n==null&&e.removeAttribute(t),e._value=n;return}let s=!1;if(n===""||n==null){const i=typeof e[t];i==="boolean"?n=Ui(n):n==null&&i==="string"?(n="",s=!0):i==="number"&&(n=0,s=!0)}try{e[t]=n}catch{}s&&e.removeAttribute(a||t)}function wo(e,t,n,o){e.addEventListener(t,n,o)}function Nh(e,t,n,o){e.removeEventListener(t,n,o)}const wc=Symbol("_vei");function Fh(e,t,n,o,a=null){const r=e[wc]||(e[wc]={}),s=r[t];if(o&&s)s.value=o;else{const[i,l]=Oh(t);if(o){const c=r[t]=Gh(o,a);wo(e,i,c,l)}else s&&(Nh(e,i,s,l),r[t]=void 0)}}const Rh=/(Once|Passive|Capture)$/,Ih=/^on:?(?:Once|Passive|Capture)$/;function Oh(e){let t,n;for(;(n=e.match(Rh))&&!Ih.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):en(e.slice(2)),t]}let Es=0;const zh=Promise.resolve(),Dh=()=>Es||(zh.then(()=>Es=0),Es=Date.now());function Gh(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const a=n.value;if(xe(a)){const r=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{r.call(o),o._stopped=!0};const s=a.slice(),i=[o];for(let l=0;l<s.length&&!o._stopped;l++){const c=s[l];c&&rn(c,t,5,i)}}else rn(a,t,5,[o])};return n.value=e,n.attached=Dh(),n}const kc=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Hh=(e,t,n,o,a,r)=>{const s=a==="svg";t==="class"?Ph(e,o,s):t==="style"?Mh(e,n,o):Oa(t)?za(t)||Fh(e,t,n,o,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):jh(e,t,o,s))?(_c(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&vc(e,t,o,s,r,t!=="value")):e._isVueCE&&(Bh(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!rt(o)))?_c(e,Lt(t),o,r,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),vc(e,t,o,s))};function jh(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&kc(t)&&Re(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return kc(t)&&rt(n)?!1:t in e}function Bh(e,t){const n=e._def.props;if(!n)return!1;const o=Lt(t);return Array.isArray(n)?n.some(a=>Lt(a)===o):Object.keys(n).some(a=>Lt(a)===o)}const Sc={};function Uh(e,t,n){let o=Kn(e,t);Da(o)&&(o=$t({},o,t));class a extends Ns{constructor(s){super(o,s,n)}}return a.def=o,a}const Wh=typeof HTMLElement<"u"?HTMLElement:class{};class Ns extends Wh{constructor(t,n={},o=Mc){super(),this._def=t,this._props=n,this._createApp=o,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&&o!==Mc?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow($t({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof Ns){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,Zt(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const n of t)this._setAttr(n.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let o=0;o<this.attributes.length;o++)this._setAttr(this.attributes[o].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});const t=(o,a=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:s}=o;let i;if(r&&!xe(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=ji(this._props[l])),(i||(i=Object.create(null)))[Lt(l)]=!0)}this._numberProps=i,this._resolveProps(o),this.shadowRoot&&this._applyStyles(s),this._mount(o)},n=this._def.__asyncLoader;if(n)return this._pendingResolve=n().then(o=>{o.configureApp=this._def.configureApp,t(this._def=o,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const n=this._instance&&this._instance.exposed;if(n)for(const o in n)Ke(this,o)||Object.defineProperty(this,o,{get:()=>Oe(n[o])})}_resolveProps(t){const{props:n}=t,o=xe(n)?n:Object.keys(n||{});for(const a of Object.keys(this))a[0]!=="_"&&o.includes(a)&&this._setProp(a,this[a]);for(const a of o.map(Lt))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(r){this._setProp(a,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let o=n?this.getAttribute(t):Sc;const a=Lt(t);n&&this._numberProps&&this._numberProps[a]&&(o=ji(o)),this._setProp(a,o,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,o=!0,a=!1){if(n!==this._props[t]&&(this._dirty=!0,n===Sc?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),a&&this._instance&&this._update(),o)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),n===!0?this.setAttribute(en(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(en(t),n+""):n||this.removeAttribute(en(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Qh(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=Mt(this._def,$t(t,this._props));return this._instance||(n.ce=o=>{this._instance=o,o.ce=this,o.isCE=!0;const a=(r,s)=>{this.dispatchEvent(new CustomEvent(r,Da(s[0])?$t({detail:s},s[0]):{detail:s}))};o.emit=(r,...s)=>{a(r,s),en(r)!==r&&a(en(r),s)},this._setParent()}),n}_applyStyles(t,n,o){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const a=this._nonce,r=this.shadowRoot,s=o?this._getStyleAnchor(o)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[l],r.insertBefore(c,i||s),i=c,l===0&&(o||this._styleAnchors.set(this._def,c),n&&this._styleAnchors.set(n,c))}}_getStyleAnchor(t){if(!t)return null;const n=this._styleAnchors.get(t);return n&&n.parentNode===this.shadowRoot?n:(n&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let n=0;n<t.childNodes.length;n++){const o=t.childNodes[n];if(!(o instanceof HTMLStyleElement))return o}return null}_parseSlots(){const t=this._slots={};let n;for(;n=this.firstChild;){const o=n.nodeType===1&&n.getAttribute("slot")||"default";(t[o]||(t[o]=[])).push(n),this.removeChild(n)}}_renderSlots(){const t=this._getSlots(),n=this._instance.type.__scopeId;for(let o=0;o<t.length;o++){const a=t[o],r=a.getAttribute("name")||"default",s=this._slots[r],i=a.parentNode;if(s)for(const l of s){if(n&&l.nodeType===1){const c=n+"-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 t=[this];this._teleportTargets&&t.push(...this._teleportTargets);const n=new Set;for(const o of t){const a=o.querySelectorAll("slot");for(let r=0;r<a.length;r++)n.add(a[r])}return Array.from(n)}_injectChildStyle(t,n){this._applyStyles(t.styles,t,n)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return this._def.shadowRoot!==!1}_removeChildStyle(t){}}function Vh(e){const t=_n(),n=t&&t.ce;return n||null}const _r=e=>{const t=e.props["onUpdate:modelValue"]||!1;return xe(t)?n=>Ba(t,n):t};function qh(e){e.target.composing=!0}function xc(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ko=Symbol("_assign"),wr=Symbol("_initialValue");function Fs(e,t,n){return t&&(e=e.trim()),n&&(e=Ua(e)),e}const Rs={created(e,{modifiers:{lazy:t,trim:n,number:o}},a){e.parentNode&&(e.type==="text"?e[wr]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[wr]=e.defaultValue.replace(/\r\n?/g,`
|
||
`))),e[ko]=_r(a);const r=o||a.props&&a.props.type==="number";wo(e,t?"change":"input",s=>{s.target.composing||e[ko](Fs(e.value,n,r))}),(n||r)&&wo(e,"change",()=>{e.value=Fs(e.value,n,r)}),t||(wo(e,"compositionstart",qh),wo(e,"compositionend",xc),wo(e,"change",xc))},mounted(e,{value:t,modifiers:{trim:n,number:o}}){const a=t??"",r=e[wr];delete e[wr],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[ko](Fs(e.value,n,o)):e.value=a},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:o,trim:a,number:r}},s){if(e[ko]=_r(s),e.composing)return;const i=(r||e.type==="number")&&!/^0\d/.test(e.value)?Ua(e.value):e.value,l=t??"";if(i===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(o&&t===n||a&&e.value.trim()===l)||(e.value=l)}},Kh={deep:!0,created(e,{value:t,modifiers:{number:n}},o){e._modelValue=t,wo(e,"change",()=>{const a=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?Ua(kr(l)):kr(l)),r=e.multiple,s=r?po(e._modelValue)?new Set(a):a:a[0],i=e._pendingValue=[r,r?xe(s)?a.slice():a:s];try{e[ko](s)}finally{Zt(()=>{e._pendingValue===i&&(e._pendingValue=void 0)})}}),e[ko]=_r(o)},mounted(e,{value:t}){Pc(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[ko]=_r(n)},updated(e,{value:t}){const n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!Yh(t,n[1],n[0]))&&Pc(e,t)}};function Yh(e,t,n){if(!n||xe(e))return Vn(e,t);if(po(e)){if(e.size!==t.length)return!1;for(const o of t)if(!e.has(o))return!1;return!0}return!1}function Pc(e,t){const n=e.multiple,o=xe(t);if(!(n&&!o&&!po(t))){for(let a=0,r=e.options.length;a<r;a++){const s=e.options[a],i=kr(s);if(n)if(o){const l=typeof i;l==="string"||l==="number"?s.selected=t.some(c=>String(c)===String(i)):s.selected=Np(t,i)>-1}else s.selected=t.has(i);else if(Vn(kr(s),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function kr(e){return"_value"in e?e._value:e.value}const Zh=["ctrl","shift","alt","meta"],Jh={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Zh.some(n=>e[`${n}Key`]&&!t.includes(n))},Cc=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(a,...r)=>{for(let s=0;s<t.length;s++){const i=Jh[t[s]];if(i&&i(a,t))return}return e(a,...r)})},Xh=$t({patchProp:Hh},Sh);let Tc;function Lc(){return Tc||(Tc=oh(Xh))}const Qh=(...e)=>{Lc().render(...e)},Mc=(...e)=>{const t=Lc().createApp(...e),{mount:n}=t;return t.mount=o=>{const a=t0(o);if(!a)return;const r=t._component;!Re(r)&&!r.render&&!r.template&&(r.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const s=n(a,!1,e0(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),s},t};function e0(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function t0(e){return rt(e)?document.querySelector(e):e}/*!
|
||
* pinia v2.3.1
|
||
* (c) 2025 Eduardo San Martin Morote
|
||
* @license MIT
|
||
*/let Ac;const Sr=e=>Ac=e,Ec=Symbol();function Is(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var va;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(va||(va={}));function n0(){const e=Va(!0),t=e.run(()=>Le({}));let n=[],o=[];const a=aa({install(r){Sr(a),a._a=r,r.provide(Ec,a),r.config.globalProperties.$pinia=a,o.forEach(s=>n.push(s)),o=[]},use(r){return this._a?n.push(r):o.push(r),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return a}const Nc=()=>{};function Fc(e,t,n,o=Nc){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),o())};return!n&&Yi()&&Fp(a),a}function zo(e,...t){e.slice().forEach(n=>{n(...t)})}const o0=e=>e(),Rc=Symbol(),Os=Symbol();function zs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,o)=>e.set(o,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const o=t[n],a=e[n];Is(a)&&Is(o)&&e.hasOwnProperty(n)&&!ct(o)&&!An(o)?e[n]=zs(a,o):e[n]=o}return e}const a0=Symbol();function r0(e){return!Is(e)||!e.hasOwnProperty(a0)}const{assign:Zn}=Object;function s0(e){return!!(ct(e)&&e.effect)}function i0(e,t,n,o){const{state:a,actions:r,getters:s}=t,i=n.state.value[e];let l;function c(){i||(n.state.value[e]=a?a():{});const u=ng(n.state.value[e]);return Zn(u,r,Object.keys(s||{}).reduce((d,h)=>(d[h]=aa(Se(()=>{Sr(n);const S=n._s.get(e);return s[h].call(S,S)})),d),{}))}return l=Ic(e,c,t,n,o,!0),l}function Ic(e,t,n={},o,a,r){let s;const i=Zn({actions:{}},n),l={deep:!0};let c,u,d=[],h=[],S;const F=o.state.value[e];!r&&!F&&(o.state.value[e]={});let y;function L(C){let A;c=u=!1,typeof C=="function"?(C(o.state.value[e]),A={type:va.patchFunction,storeId:e,events:S}):(zs(o.state.value[e],C),A={type:va.patchObject,payload:C,storeId:e,events:S});const K=y=Symbol();Zt().then(()=>{y===K&&(c=!0)}),u=!0,zo(d,A,o.state.value[e])}const N=r?function(){const{state:A}=n,K=A?A():{};this.$patch(le=>{Zn(le,K)})}:Nc;function $(){s.stop(),d=[],h=[],o._s.delete(e)}const w=(C,A="")=>{if(Rc in C)return C[Os]=A,C;const K=function(){Sr(o);const le=Array.from(arguments),te=[],G=[];function ce(ie){te.push(ie)}function H(ie){G.push(ie)}zo(h,{args:le,name:K[Os],store:b,after:ce,onError:H});let W;try{W=C.apply(this&&this.$id===e?this:b,le)}catch(ie){throw zo(G,ie),ie}return W instanceof Promise?W.then(ie=>(zo(te,ie),ie)).catch(ie=>(zo(G,ie),Promise.reject(ie))):(zo(te,W),W)};return K[Rc]=!0,K[Os]=A,K},k={_p:o,$id:e,$onAction:Fc.bind(null,h),$patch:L,$reset:N,$subscribe(C,A={}){const K=Fc(d,C,A.detached,()=>le()),le=s.run(()=>_t(()=>o.state.value[e],te=>{(A.flush==="sync"?u:c)&&C({storeId:e,type:va.direct,events:S},te)},Zn({},l,A)));return K},$dispose:$},b=oa(k);o._s.set(e,b);const E=(o._a&&o._a.runWithContext||o0)(()=>o._e.run(()=>(s=Va()).run(()=>t({action:w}))));for(const C in E){const A=E[C];if(ct(A)&&!s0(A)||An(A))r||(F&&r0(A)&&(ct(A)?A.value=F[C]:zs(A,F[C])),o.state.value[e][C]=A);else if(typeof A=="function"){const K=w(A,C);E[C]=K,i.actions[C]=A}}return Zn(b,E),Zn(We(b),E),Object.defineProperty(b,"$state",{get:()=>o.state.value[e],set:C=>{L(A=>{Zn(A,C)})}}),o._p.forEach(C=>{Zn(b,s.run(()=>C({store:b,app:o._a,pinia:o,options:i})))}),F&&r&&n.hydrate&&n.hydrate(b.$state,F),c=!0,u=!0,b}/*! #__NO_SIDE_EFFECTS__ */function Ds(e,t,n){let o,a;const r=typeof t=="function";typeof e=="string"?(o=e,a=r?n:t):(a=e,o=e.id);function s(i,l){const c=bg();return i=i||(c?vt(Ec,null):null),i&&Sr(i),i=Ac,i._s.has(o)||(r?Ic(o,t,a,i):i0(o,a,i)),i._s.get(o)}return s.$id=o,s}const l0=3,c0=e=>e*500;async function u0(e,t=void 0,{attempts:n=l0,backoff:o=c0,signal:a=null}={}){let r;for(let s=1;s<=Math.max(1,n);s++){if(a!=null&&a.aborted)throw a.reason??new Error("aborted");try{return await fetch(e,t)}catch(i){if((i==null?void 0:i.name)==="AbortError"||a!=null&&a.aborted)throw i;if(r=i,s>=n)break;await new Promise(l=>setTimeout(l,o(s)))}}throw r}const Gs="__doxaMapToken",Hs="doxa:map-token",Oc="__doxaMapTokenBridge",Do=()=>{if(typeof window>"u")return"";const e=window[Gs];return typeof e=="string"?e:""};function js(e){if(typeof window>"u")return"";zc();const t=typeof e=="string"?e.trim():"";if(!t||t===Do())return Do();window[Gs]=t;try{window.dispatchEvent(new CustomEvent(Hs,{detail:t}))}catch{}return t}function zc(){var t;if(typeof window>"u"||window[Oc]&&((t=Object.getOwnPropertyDescriptor(window,"MAP_TOKEN"))!=null&&t.get))return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Do()&&(window[Gs]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Do()},set(n){js(n)}}),window[Oc]=!0}catch{}}function d0(){zc();const e=Le(Do());if(typeof window<"u"){const t=()=>{e.value=Do()};window.addEventListener(Hs,t);try{bo(()=>window.removeEventListener(Hs,t))}catch{}}return e}function p0(e){if(typeof window>"u"||!/^https?:\/\//i.test(String(e||"")))return Promise.resolve("");const t=window.__doxaMapTokenFetches=window.__doxaMapTokenFetches||{};if(t[e])return t[e];const n=u0(e).then(o=>{if(!o.ok)throw new Error("HTTP "+o.status);return(o.headers.get("content-type")||"").includes("json")?o.json():o.text()}).then(o=>{const a=String((typeof o=="string"?o:o&&(o.token||o.tk||o.accessToken))||"").trim();return a.startsWith("pk.")?(js(a),a):""}).catch(o=>(console.warn(`[map token] ${e}: ${o&&o.message?o.message:o}`),"")).finally(()=>{window.__doxaMapTokenPending===n&&(window.__doxaMapTokenPending=null)});return window.__doxaMapTokenPending=n,t[e]=n,n}/*!
|
||
* shared v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function g0(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const xr=typeof window<"u",Jn=(e,t=!1)=>t?Symbol.for(e):Symbol(e),h0=(e,t,n)=>m0({l:e,k:t,s:n}),m0=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),yt=e=>typeof e=="number"&&isFinite(e),f0=e=>Bc(e)==="[object Date]",Xn=e=>Bc(e)==="[object RegExp]",Pr=e=>Ie(e)&&Object.keys(e).length===0,Rt=Object.assign,b0=Object.create,Qe=(e=null)=>b0(e);let Dc;const _a=()=>Dc||(Dc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Qe());function Gc(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Hc(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function $0(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(o,a,r)=>`${a}="${Hc(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(o,a,r)=>`${a}='${Hc(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(o=>{e=e.replace(o,"$1javascript:")}),e}const y0=Object.prototype.hasOwnProperty;function cn(e,t){return y0.call(e,t)}const it=Array.isArray,ot=e=>typeof e=="function",be=e=>typeof e=="string",je=e=>typeof e=="boolean",Ve=e=>e!==null&&typeof e=="object",v0=e=>Ve(e)&&ot(e.then)&&ot(e.catch),jc=Object.prototype.toString,Bc=e=>jc.call(e),Ie=e=>{if(!Ve(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},_0=e=>e==null?"":it(e)||Ie(e)&&e.toString===jc?JSON.stringify(e,null,2):String(e);function w0(e,t=""){return e.reduce((n,o,a)=>a===0?n+o:n+t+o,"")}function Cr(e){let t=e;return()=>++t}const Tr=e=>!Ve(e)||it(e);function Lr(e,t){if(Tr(e)||Tr(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:o,des:a}=n.pop();Object.keys(o).forEach(r=>{r!=="__proto__"&&(Ve(o[r])&&!Ve(a[r])&&(a[r]=Array.isArray(o[r])?[]:Qe()),Tr(a[r])||Tr(o[r])?a[r]=o[r]:n.push({src:o[r],des:a[r]}))})}}/*!
|
||
* message-compiler v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function k0(e,t,n){return{line:e,column:t,offset:n}}function Mr(e,t,n){return{start:e,end:t}}const S0=/\{([0-9a-zA-Z]+)\}/g;function Uc(e,...t){return t.length===1&&x0(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(S0,(n,o)=>t.hasOwnProperty(o)?t[o]:"")}const Wc=Object.assign,Vc=e=>typeof e=="string",x0=e=>e!==null&&typeof e=="object";function qc(e,t=""){return e.reduce((n,o,a)=>a===0?n+o:n+t+o,"")}const Bs={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},P0={[Bs.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function C0(e,t,...n){const o=Uc(P0[e],...n||[]),a={message:String(o),code:e};return t&&(a.location=t),a}const Ee={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},T0={[Ee.EXPECTED_TOKEN]:"Expected token: '{0}'",[Ee.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Ee.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Ee.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Ee.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Ee.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Ee.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Ee.EMPTY_PLACEHOLDER]:"Empty placeholder",[Ee.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Ee.INVALID_LINKED_FORMAT]:"Invalid linked format",[Ee.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Ee.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Ee.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Ee.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Ee.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Ee.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Go(e,t,n={}){const{domain:o,messages:a,args:r}=n,s=Uc((a||T0)[e]||"",...r||[]),i=new SyntaxError(String(s));return i.code=e,t&&(i.location=t),i.domain=o,i}function L0(e){throw e}const zn=" ",M0="\r",Bt=`
|
||
`,A0="\u2028",E0="\u2029";function N0(e){const t=e;let n=0,o=1,a=1,r=0;const s=E=>t[E]===M0&&t[E+1]===Bt,i=E=>t[E]===Bt,l=E=>t[E]===E0,c=E=>t[E]===A0,u=E=>s(E)||i(E)||l(E)||c(E),d=()=>n,h=()=>o,S=()=>a,F=()=>r,y=E=>s(E)||l(E)||c(E)?Bt:t[E],L=()=>y(n),N=()=>y(n+r);function $(){return r=0,u(n)&&(o++,a=0),s(n)&&n++,n++,a++,t[n]}function w(){return s(n+r)&&r++,r++,t[n+r]}function k(){n=0,o=1,a=1,r=0}function b(E=0){r=E}function v(){const E=n+r;for(;E!==n;)$();r=0}return{index:d,line:h,column:S,peekOffset:F,charAt:y,currentChar:L,currentPeek:N,next:$,peek:w,reset:k,resetPeek:b,skipToPeek:v}}const Qn=void 0,F0=".",Kc="'",R0="tokenizer";function I0(e,t={}){const n=t.location!==!1,o=N0(e),a=()=>o.index(),r=()=>k0(o.line(),o.column(),o.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}=t;function d(p,g,z,...O){const ge=c();if(g.column+=z,g.offset+=z,u){const se=n?Mr(ge.startLoc,g):null,I=Go(p,se,{domain:R0,args:O});u(I)}}function h(p,g,z){p.endLoc=r(),p.currentType=g;const O={type:g};return n&&(O.loc=Mr(p.startLoc,p.endLoc)),z!=null&&(O.value=z),O}const S=p=>h(p,14);function F(p,g){return p.currentChar()===g?(p.next(),g):(d(Ee.EXPECTED_TOKEN,r(),0,g),"")}function y(p){let g="";for(;p.currentPeek()===zn||p.currentPeek()===Bt;)g+=p.currentPeek(),p.peek();return g}function L(p){const g=y(p);return p.skipToPeek(),g}function N(p){if(p===Qn)return!1;const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g===95}function $(p){if(p===Qn)return!1;const g=p.charCodeAt(0);return g>=48&&g<=57}function w(p,g){const{currentType:z}=g;if(z!==2)return!1;y(p);const O=N(p.currentPeek());return p.resetPeek(),O}function k(p,g){const{currentType:z}=g;if(z!==2)return!1;y(p);const O=p.currentPeek()==="-"?p.peek():p.currentPeek(),ge=$(O);return p.resetPeek(),ge}function b(p,g){const{currentType:z}=g;if(z!==2)return!1;y(p);const O=p.currentPeek()===Kc;return p.resetPeek(),O}function v(p,g){const{currentType:z}=g;if(z!==8)return!1;y(p);const O=p.currentPeek()===".";return p.resetPeek(),O}function E(p,g){const{currentType:z}=g;if(z!==9)return!1;y(p);const O=N(p.currentPeek());return p.resetPeek(),O}function C(p,g){const{currentType:z}=g;if(!(z===8||z===12))return!1;y(p);const O=p.currentPeek()===":";return p.resetPeek(),O}function A(p,g){const{currentType:z}=g;if(z!==10)return!1;const O=()=>{const se=p.currentPeek();return se==="{"?N(p.peek()):se==="@"||se==="%"||se==="|"||se===":"||se==="."||se===zn||!se?!1:se===Bt?(p.peek(),O()):te(p,!1)},ge=O();return p.resetPeek(),ge}function K(p){y(p);const g=p.currentPeek()==="|";return p.resetPeek(),g}function le(p){const g=y(p),z=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:z,hasSpace:g.length>0}}function te(p,g=!0){const z=(ge=!1,se="",I=!1)=>{const V=p.currentPeek();return V==="{"?se==="%"?!1:ge:V==="@"||!V?se==="%"?!0:ge:V==="%"?(p.peek(),z(ge,"%",!0)):V==="|"?se==="%"||I?!0:!(se===zn||se===Bt):V===zn?(p.peek(),z(!0,zn,I)):V===Bt?(p.peek(),z(!0,Bt,I)):!0},O=z();return g&&p.resetPeek(),O}function G(p,g){const z=p.currentChar();return z===Qn?Qn:g(z)?(p.next(),z):null}function ce(p){const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36}function H(p){return G(p,ce)}function W(p){const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36||g===45}function ie(p){return G(p,W)}function J(p){const g=p.charCodeAt(0);return g>=48&&g<=57}function M(p){return G(p,J)}function q(p){const g=p.charCodeAt(0);return g>=48&&g<=57||g>=65&&g<=70||g>=97&&g<=102}function m(p){return G(p,q)}function j(p){let g="",z="";for(;g=M(p);)z+=g;return z}function me(p){L(p);const g=p.currentChar();return g!=="%"&&d(Ee.EXPECTED_TOKEN,r(),0,g),p.next(),"%"}function pe(p){let g="";for(;;){const z=p.currentChar();if(z==="{"||z==="}"||z==="@"||z==="|"||!z)break;if(z==="%")if(te(p))g+=z,p.next();else break;else if(z===zn||z===Bt)if(te(p))g+=z,p.next();else{if(K(p))break;g+=z,p.next()}else g+=z,p.next()}return g}function ve(p){L(p);let g="",z="";for(;g=ie(p);)z+=g;return p.currentChar()===Qn&&d(Ee.UNTERMINATED_CLOSING_BRACE,r(),0),z}function Ne(p){L(p);let g="";return p.currentChar()==="-"?(p.next(),g+=`-${j(p)}`):g+=j(p),p.currentChar()===Qn&&d(Ee.UNTERMINATED_CLOSING_BRACE,r(),0),g}function Ce(p){return p!==Kc&&p!==Bt}function qe(p){L(p),F(p,"'");let g="",z="";for(;g=G(p,Ce);)g==="\\"?z+=Te(p):z+=g;const O=p.currentChar();return O===Bt||O===Qn?(d(Ee.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),O===Bt&&(p.next(),F(p,"'")),z):(F(p,"'"),z)}function Te(p){const g=p.currentChar();switch(g){case"\\":case"'":return p.next(),`\\${g}`;case"u":return Me(p,g,4);case"U":return Me(p,g,6);default:return d(Ee.UNKNOWN_ESCAPE_SEQUENCE,r(),0,g),""}}function Me(p,g,z){F(p,g);let O="";for(let ge=0;ge<z;ge++){const se=m(p);if(!se){d(Ee.INVALID_UNICODE_ESCAPE_SEQUENCE,r(),0,`\\${g}${O}${p.currentChar()}`);break}O+=se}return`\\${g}${O}`}function lt(p){return p!=="{"&&p!=="}"&&p!==zn&&p!==Bt}function _(p){L(p);let g="",z="";for(;g=G(p,lt);)z+=g;return z}function T(p){let g="",z="";for(;g=H(p);)z+=g;return z}function x(p){const g=z=>{const O=p.currentChar();return O==="{"||O==="%"||O==="@"||O==="|"||O==="("||O===")"||!O||O===zn?z:(z+=O,p.next(),g(z))};return g("")}function U(p){L(p);const g=F(p,"|");return L(p),g}function Q(p,g){let z=null;switch(p.currentChar()){case"{":return g.braceNest>=1&&d(Ee.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),p.next(),z=h(g,2,"{"),L(p),g.braceNest++,z;case"}":return g.braceNest>0&&g.currentType===2&&d(Ee.EMPTY_PLACEHOLDER,r(),0),p.next(),z=h(g,3,"}"),g.braceNest--,g.braceNest>0&&L(p),g.inLinked&&g.braceNest===0&&(g.inLinked=!1),z;case"@":return g.braceNest>0&&d(Ee.UNTERMINATED_CLOSING_BRACE,r(),0),z=X(p,g)||S(g),g.braceNest=0,z;default:{let ge=!0,se=!0,I=!0;if(K(p))return g.braceNest>0&&d(Ee.UNTERMINATED_CLOSING_BRACE,r(),0),z=h(g,1,U(p)),g.braceNest=0,g.inLinked=!1,z;if(g.braceNest>0&&(g.currentType===5||g.currentType===6||g.currentType===7))return d(Ee.UNTERMINATED_CLOSING_BRACE,r(),0),g.braceNest=0,de(p,g);if(ge=w(p,g))return z=h(g,5,ve(p)),L(p),z;if(se=k(p,g))return z=h(g,6,Ne(p)),L(p),z;if(I=b(p,g))return z=h(g,7,qe(p)),L(p),z;if(!ge&&!se&&!I)return z=h(g,13,_(p)),d(Ee.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,z.value),L(p),z;break}}return z}function X(p,g){const{currentType:z}=g;let O=null;const ge=p.currentChar();switch((z===8||z===9||z===12||z===10)&&(ge===Bt||ge===zn)&&d(Ee.INVALID_LINKED_FORMAT,r(),0),ge){case"@":return p.next(),O=h(g,8,"@"),g.inLinked=!0,O;case".":return L(p),p.next(),h(g,9,".");case":":return L(p),p.next(),h(g,10,":");default:return K(p)?(O=h(g,1,U(p)),g.braceNest=0,g.inLinked=!1,O):v(p,g)||C(p,g)?(L(p),X(p,g)):E(p,g)?(L(p),h(g,12,T(p))):A(p,g)?(L(p),ge==="{"?Q(p,g)||O:h(g,11,x(p))):(z===8&&d(Ee.INVALID_LINKED_FORMAT,r(),0),g.braceNest=0,g.inLinked=!1,de(p,g))}}function de(p,g){let z={type:14};if(g.braceNest>0)return Q(p,g)||S(g);if(g.inLinked)return X(p,g)||S(g);switch(p.currentChar()){case"{":return Q(p,g)||S(g);case"}":return d(Ee.UNBALANCED_CLOSING_BRACE,r(),0),p.next(),h(g,3,"}");case"@":return X(p,g)||S(g);default:{if(K(p))return z=h(g,1,U(p)),g.braceNest=0,g.inLinked=!1,z;const{isModulo:ge,hasSpace:se}=le(p);if(ge)return se?h(g,0,pe(p)):h(g,4,me(p));if(te(p))return h(g,0,pe(p));break}}return z}function ue(){const{currentType:p,offset:g,startLoc:z,endLoc:O}=l;return l.lastType=p,l.lastOffset=g,l.lastStartLoc=z,l.lastEndLoc=O,l.offset=a(),l.startLoc=r(),o.currentChar()===Qn?h(l,14):de(o,l)}return{nextToken:ue,currentOffset:a,currentPosition:r,context:c}}const O0="parser",z0=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function D0(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const o=parseInt(t||n,16);return o<=55295||o>=57344?String.fromCodePoint(o):"<22>"}}}function G0(e={}){const t=e.location!==!1,{onError:n,onWarn:o}=e;function a(w,k,b,v,...E){const C=w.currentPosition();if(C.offset+=v,C.column+=v,n){const A=t?Mr(b,C):null,K=Go(k,A,{domain:O0,args:E});n(K)}}function r(w,k,b,v,...E){const C=w.currentPosition();if(C.offset+=v,C.column+=v,o){const A=t?Mr(b,C):null;o(C0(k,A,E))}}function s(w,k,b){const v={type:w};return t&&(v.start=k,v.end=k,v.loc={start:b,end:b}),v}function i(w,k,b,v){t&&(w.end=k,w.loc&&(w.loc.end=b))}function l(w,k){const b=w.context(),v=s(3,b.offset,b.startLoc);return v.value=k,i(v,w.currentOffset(),w.currentPosition()),v}function c(w,k){const b=w.context(),{lastOffset:v,lastStartLoc:E}=b,C=s(5,v,E);return C.index=parseInt(k,10),w.nextToken(),i(C,w.currentOffset(),w.currentPosition()),C}function u(w,k,b){const v=w.context(),{lastOffset:E,lastStartLoc:C}=v,A=s(4,E,C);return A.key=k,b===!0&&(A.modulo=!0),w.nextToken(),i(A,w.currentOffset(),w.currentPosition()),A}function d(w,k){const b=w.context(),{lastOffset:v,lastStartLoc:E}=b,C=s(9,v,E);return C.value=k.replace(z0,D0),w.nextToken(),i(C,w.currentOffset(),w.currentPosition()),C}function h(w){const k=w.nextToken(),b=w.context(),{lastOffset:v,lastStartLoc:E}=b,C=s(8,v,E);return k.type!==12?(a(w,Ee.UNEXPECTED_EMPTY_LINKED_MODIFIER,b.lastStartLoc,0),C.value="",i(C,v,E),{nextConsumeToken:k,node:C}):(k.value==null&&a(w,Ee.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,un(k)),C.value=k.value||"",i(C,w.currentOffset(),w.currentPosition()),{node:C})}function S(w,k){const b=w.context(),v=s(7,b.offset,b.startLoc);return v.value=k,i(v,w.currentOffset(),w.currentPosition()),v}function F(w){const k=w.context(),b=s(6,k.offset,k.startLoc);let v=w.nextToken();if(v.type===9){const E=h(w);b.modifier=E.node,v=E.nextConsumeToken||w.nextToken()}switch(v.type!==10&&a(w,Ee.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,un(v)),v=w.nextToken(),v.type===2&&(v=w.nextToken()),v.type){case 11:v.value==null&&a(w,Ee.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,un(v)),b.key=S(w,v.value||"");break;case 5:v.value==null&&a(w,Ee.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,un(v)),b.key=u(w,v.value||"");break;case 6:v.value==null&&a(w,Ee.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,un(v)),b.key=c(w,v.value||"");break;case 7:v.value==null&&a(w,Ee.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,un(v)),b.key=d(w,v.value||"");break;default:{a(w,Ee.UNEXPECTED_EMPTY_LINKED_KEY,k.lastStartLoc,0);const E=w.context(),C=s(7,E.offset,E.startLoc);return C.value="",i(C,E.offset,E.startLoc),b.key=C,i(b,E.offset,E.startLoc),{nextConsumeToken:v,node:b}}}return i(b,w.currentOffset(),w.currentPosition()),{node:b}}function y(w){const k=w.context(),b=k.currentType===1?w.currentOffset():k.offset,v=k.currentType===1?k.endLoc:k.startLoc,E=s(2,b,v);E.items=[];let C=null,A=null;do{const te=C||w.nextToken();switch(C=null,te.type){case 0:te.value==null&&a(w,Ee.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,un(te)),E.items.push(l(w,te.value||""));break;case 6:te.value==null&&a(w,Ee.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,un(te)),E.items.push(c(w,te.value||""));break;case 4:A=!0;break;case 5:te.value==null&&a(w,Ee.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,un(te)),E.items.push(u(w,te.value||"",!!A)),A&&(r(w,Bs.USE_MODULO_SYNTAX,k.lastStartLoc,0,un(te)),A=null);break;case 7:te.value==null&&a(w,Ee.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,un(te)),E.items.push(d(w,te.value||""));break;case 8:{const G=F(w);E.items.push(G.node),C=G.nextConsumeToken||null;break}}}while(k.currentType!==14&&k.currentType!==1);const K=k.currentType===1?k.lastOffset:w.currentOffset(),le=k.currentType===1?k.lastEndLoc:w.currentPosition();return i(E,K,le),E}function L(w,k,b,v){const E=w.context();let C=v.items.length===0;const A=s(1,k,b);A.cases=[],A.cases.push(v);do{const K=y(w);C||(C=K.items.length===0),A.cases.push(K)}while(E.currentType!==14);return C&&a(w,Ee.MUST_HAVE_MESSAGES_IN_PLURAL,b,0),i(A,w.currentOffset(),w.currentPosition()),A}function N(w){const k=w.context(),{offset:b,startLoc:v}=k,E=y(w);return k.currentType===14?E:L(w,b,v,E)}function $(w){const k=I0(w,Wc({},e)),b=k.context(),v=s(0,b.offset,b.startLoc);return t&&v.loc&&(v.loc.source=w),v.body=N(k),e.onCacheKey&&(v.cacheKey=e.onCacheKey(w)),b.currentType!==14&&a(k,Ee.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,w[b.offset]||""),i(v,k.currentOffset(),k.currentPosition()),v}return{parse:$}}function un(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function H0(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function Yc(e,t){for(let n=0;n<e.length;n++)Us(e[n],t)}function Us(e,t){switch(e.type){case 1:Yc(e.cases,t),t.helper("plural");break;case 2:Yc(e.items,t);break;case 6:{Us(e.key,t),t.helper("linked"),t.helper("type");break}case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named");break}}function j0(e,t={}){const n=H0(e);n.helper("normalize"),e.body&&Us(e.body,n);const o=n.context();e.helpers=Array.from(o.helpers)}function B0(e){const t=e.body;return t.type===2?Zc(t):t.cases.forEach(n=>Zc(n)),e}function Zc(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;n<e.items.length;n++){const o=e.items[n];if(!(o.type===3||o.type===9)||o.value==null)break;t.push(o.value)}if(t.length===e.items.length){e.static=qc(t);for(let n=0;n<e.items.length;n++){const o=e.items[n];(o.type===3||o.type===9)&&delete o.value}}}}const U0="minifier";function Ho(e){switch(e.t=e.type,e.type){case 0:{const t=e;Ho(t.body),t.b=t.body,delete t.body;break}case 1:{const t=e,n=t.cases;for(let o=0;o<n.length;o++)Ho(n[o]);t.c=n,delete t.cases;break}case 2:{const t=e,n=t.items;for(let o=0;o<n.length;o++)Ho(n[o]);t.i=n,delete t.items,t.static&&(t.s=t.static,delete t.static);break}case 3:case 9:case 8:case 7:{const t=e;t.value&&(t.v=t.value,delete t.value);break}case 6:{const t=e;Ho(t.key),t.k=t.key,delete t.key,t.modifier&&(Ho(t.modifier),t.m=t.modifier,delete t.modifier);break}case 5:{const t=e;t.i=t.index,delete t.index;break}case 4:{const t=e;t.k=t.key,delete t.key;break}default:throw Go(Ee.UNHANDLED_MINIFIER_NODE_TYPE,null,{domain:U0,args:[e.type]})}delete e.type}const W0="parser";function V0(e,t){const{filename:n,breakLineCode:o,needIndent:a}=t,r=t.location!==!1,s={filename:n,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:o,needIndent:a,indentLevel:0};r&&e.loc&&(s.source=e.loc.source);const i=()=>s;function l(y,L){s.code+=y}function c(y,L=!0){const N=L?o:"";l(a?N+" ".repeat(y):N)}function u(y=!0){const L=++s.indentLevel;y&&c(L)}function d(y=!0){const L=--s.indentLevel;y&&c(L)}function h(){c(s.indentLevel)}return{context:i,push:l,indent:u,deindent:d,newline:h,helper:y=>`_${y}`,needIndent:()=>s.needIndent}}function q0(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),jo(e,t.key),t.modifier?(e.push(", "),jo(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function K0(e,t){const{helper:n,needIndent:o}=e;e.push(`${n("normalize")}([`),e.indent(o());const a=t.items.length;for(let r=0;r<a&&(jo(e,t.items[r]),r!==a-1);r++)e.push(", ");e.deindent(o()),e.push("])")}function Y0(e,t){const{helper:n,needIndent:o}=e;if(t.cases.length>1){e.push(`${n("plural")}([`),e.indent(o());const a=t.cases.length;for(let r=0;r<a&&(jo(e,t.cases[r]),r!==a-1);r++)e.push(", ");e.deindent(o()),e.push("])")}}function Z0(e,t){t.body?jo(e,t.body):e.push("null")}function jo(e,t){const{helper:n}=e;switch(t.type){case 0:Z0(e,t);break;case 1:Y0(e,t);break;case 2:K0(e,t);break;case 6:q0(e,t);break;case 8:e.push(JSON.stringify(t.value),t);break;case 7:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${n("interpolate")}(${n("list")}(${t.index}))`,t);break;case 4:e.push(`${n("interpolate")}(${n("named")}(${JSON.stringify(t.key)}))`,t);break;case 9:e.push(JSON.stringify(t.value),t);break;case 3:e.push(JSON.stringify(t.value),t);break;default:throw Go(Ee.UNHANDLED_CODEGEN_NODE_TYPE,null,{domain:W0,args:[t.type]})}}const J0=(e,t={})=>{const n=Vc(t.mode)?t.mode:"normal",o=Vc(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":`
|
||
`,r=t.needIndent?t.needIndent:n!=="arrow",s=e.helpers||[],i=V0(e,{filename:o,breakLineCode:a,needIndent:r});i.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),s.length>0&&(i.push(`const { ${qc(s.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),jo(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 X0(e,t={}){const n=Wc({},t),o=!!n.jit,a=!!n.minify,r=n.optimize==null?!0:n.optimize,i=G0(n).parse(e);return o?(r&&B0(i),a&&Ho(i),{ast:i,code:""}):(j0(i,n),J0(i,n))}/*!
|
||
* core-base v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/function Q0(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(_a().__INTLIFY_PROD_DEVTOOLS__=!1)}function wn(e){return Ve(e)&&Ws(e)===0&&(cn(e,"b")||cn(e,"body"))}const Jc=["b","body"];function em(e){return eo(e,Jc)}const Xc=["c","cases"];function tm(e){return eo(e,Xc,[])}const Qc=["s","static"];function nm(e){return eo(e,Qc)}const eu=["i","items"];function om(e){return eo(e,eu,[])}const tu=["t","type"];function Ws(e){return eo(e,tu)}const nu=["v","value"];function Ar(e,t){const n=eo(e,nu);if(n!=null)return n;throw wa(t)}const ou=["m","modifier"];function am(e){return eo(e,ou)}const au=["k","key"];function rm(e){const t=eo(e,au);if(t)return t;throw wa(6)}function eo(e,t,n){for(let o=0;o<t.length;o++){const a=t[o];if(cn(e,a)&&e[a]!=null)return e[a]}return n}const ru=[...Jc,...Xc,...Qc,...eu,...au,...ou,...nu,...tu];function wa(e){return new Error(`unhandled node type: ${e}`)}const to=[];to[0]={w:[0],i:[3,0],"[":[4],o:[7]},to[1]={w:[1],".":[2],"[":[4],o:[7]},to[2]={w:[2],i:[3,0],0:[3,0]},to[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},to[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},to[5]={"'":[4,0],o:8,l:[5,0]},to[6]={'"':[4,0],o:8,l:[6,0]};const sm=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function im(e){return sm.test(e)}function lm(e){const t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===n&&(t===34||t===39)?e.slice(1,-1):e}function cm(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 um(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:im(t)?lm(t):"*"+t}function dm(e){const t=[];let n=-1,o=0,a=0,r,s,i,l,c,u,d;const h=[];h[0]=()=>{s===void 0?s=i:s+=i},h[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},h[2]=()=>{h[0](),a++},h[3]=()=>{if(a>0)a--,o=4,h[0]();else{if(a=0,s===void 0||(s=um(s),s===!1))return!1;h[1]()}};function S(){const F=e[n+1];if(o===5&&F==="'"||o===6&&F==='"')return n++,i="\\"+F,h[0](),!0}for(;o!==null;)if(n++,r=e[n],!(r==="\\"&&S())){if(l=cm(r),d=to[o],c=d[l]||d.l||8,c===8||(o=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(i=r,u()===!1))))return;if(o===7)return t}}const su=new Map;function pm(e,t){return Ve(e)?e[t]:null}function gm(e,t){if(!Ve(e))return null;let n=su.get(t);if(n||(n=dm(t),n&&su.set(t,n)),!n)return null;const o=n.length;let a=e,r=0;for(;r<o;){const s=n[r];if(ru.includes(s)&&wn(a))return null;const i=a[s];if(i===void 0||ot(a))return null;a=i,r++}return a}const hm=e=>e,mm=e=>"",fm="text",bm=e=>e.length===0?"":w0(e),$m=_0;function iu(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function ym(e){const t=yt(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(yt(e.named.count)||yt(e.named.n))?yt(e.named.count)?e.named.count:yt(e.named.n)?e.named.n:t:t}function vm(e,t){t.count||(t.count=e),t.n||(t.n=e)}function _m(e={}){const t=e.locale,n=ym(e),o=Ve(e.pluralRules)&&be(t)&&ot(e.pluralRules[t])?e.pluralRules[t]:iu,a=Ve(e.pluralRules)&&be(t)&&ot(e.pluralRules[t])?iu:void 0,r=N=>N[o(n,N.length,a)],s=e.list||[],i=N=>s[N],l=e.named||Qe();yt(e.pluralIndex)&&vm(n,l);const c=N=>l[N];function u(N){const $=ot(e.messages)?e.messages(N):Ve(e.messages)?e.messages[N]:!1;return $||(e.parent?e.parent.message(N):mm)}const d=N=>e.modifiers?e.modifiers[N]:hm,h=Ie(e.processor)&&ot(e.processor.normalize)?e.processor.normalize:bm,S=Ie(e.processor)&&ot(e.processor.interpolate)?e.processor.interpolate:$m,F=Ie(e.processor)&&be(e.processor.type)?e.processor.type:fm,L={list:i,named:c,plural:r,linked:(N,...$)=>{const[w,k]=$;let b="text",v="";$.length===1?Ve(w)?(v=w.modifier||v,b=w.type||b):be(w)&&(v=w||v):$.length===2&&(be(w)&&(v=w||v),be(k)&&(b=k||b));const E=u(N)(L),C=b==="vnode"&&it(E)&&v?E[0]:E;return v?d(v)(C,b):C},message:u,type:F,interpolate:S,normalize:h,values:Rt(Qe(),s,l)};return L}let ka=null;function wm(e){ka=e}function km(e,t,n){ka&&ka.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const Sm=xm("function:translate");function xm(e){return t=>ka&&ka.emit(e,t)}const Pm=Bs.__EXTEND_POINT__,So=Cr(Pm),Cm={FALLBACK_TO_TRANSLATE:So(),CANNOT_FORMAT_NUMBER:So(),FALLBACK_TO_NUMBER_FORMAT:So(),CANNOT_FORMAT_DATE:So(),FALLBACK_TO_DATE_FORMAT:So(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:So(),__EXTEND_POINT__:So()},lu=Ee.__EXTEND_POINT__,xo=Cr(lu),kn={INVALID_ARGUMENT:lu,INVALID_DATE_ARGUMENT:xo(),INVALID_ISO_DATE_ARGUMENT:xo(),NOT_SUPPORT_NON_STRING_MESSAGE:xo(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:xo(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:xo(),NOT_SUPPORT_LOCALE_TYPE:xo(),__EXTEND_POINT__:xo()};function Dn(e){return Go(e,null,void 0)}function Vs(e,t){return t.locale!=null?cu(t.locale):cu(e.locale)}let qs;function cu(e){if(be(e))return e;if(ot(e)){if(e.resolvedOnce&&qs!=null)return qs;if(e.constructor.name==="Function"){const t=e();if(v0(t))throw Dn(kn.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return qs=t}else throw Dn(kn.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Dn(kn.NOT_SUPPORT_LOCALE_TYPE)}function Tm(e,t,n){return[...new Set([n,...it(t)?t:Ve(t)?Object.keys(t):be(t)?[t]:[n]])]}function uu(e,t,n){const o=be(n)?n:Bo,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let r=a.__localeChainCache.get(o);if(!r){r=[];let s=[n];for(;it(s);)s=du(r,s,t);const i=it(t)||!Ie(t)?t:t.default?t.default:null;s=be(i)?[i]:i,it(s)&&du(r,s,!1),a.__localeChainCache.set(o,r)}return r}function du(e,t,n){let o=!0;for(let a=0;a<t.length&&je(o);a++){const r=t[a];be(r)&&(o=Lm(e,t[a],n))}return o}function Lm(e,t,n){let o;const a=t.split("-");do{const r=a.join("-");o=Mm(e,r,n),a.splice(-1,1)}while(a.length&&o===!0);return o}function Mm(e,t,n){let o=!1;if(!e.includes(t)&&(o=!0,t)){o=t[t.length-1]!=="!";const a=t.replace(/!/g,"");e.push(a),(it(n)||Ie(n))&&n[a]&&(o=n[a])}return o}const Am="9.14.5",Er=-1,Bo="en-US",pu="",gu=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Em(){return{upper:(e,t)=>t==="text"&&be(e)?e.toUpperCase():t==="vnode"&&Ve(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&be(e)?e.toLowerCase():t==="vnode"&&Ve(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&be(e)?gu(e):t==="vnode"&&Ve(e)&&"__v_isVNode"in e?gu(e.children):e}}let hu;function Nm(e){hu=e}let mu;function Fm(e){mu=e}let fu;function Rm(e){fu=e}let bu=null;const Im=e=>{bu=e},Om=()=>bu;let $u=null;const yu=e=>{$u=e},zm=()=>$u;let vu=0;function Dm(e={}){const t=ot(e.onWarn)?e.onWarn:g0,n=be(e.version)?e.version:Am,o=be(e.locale)||ot(e.locale)?e.locale:Bo,a=ot(o)?Bo:o,r=it(e.fallbackLocale)||Ie(e.fallbackLocale)||be(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,s=Ie(e.messages)?e.messages:Ks(a),i=Ie(e.datetimeFormats)?e.datetimeFormats:Ks(a),l=Ie(e.numberFormats)?e.numberFormats:Ks(a),c=Rt(Qe(),e.modifiers,Em()),u=e.pluralRules||Qe(),d=ot(e.missing)?e.missing:null,h=je(e.missingWarn)||Xn(e.missingWarn)?e.missingWarn:!0,S=je(e.fallbackWarn)||Xn(e.fallbackWarn)?e.fallbackWarn:!0,F=!!e.fallbackFormat,y=!!e.unresolving,L=ot(e.postTranslation)?e.postTranslation:null,N=Ie(e.processor)?e.processor:null,$=je(e.warnHtmlMessage)?e.warnHtmlMessage:!0,w=!!e.escapeParameter,k=ot(e.messageCompiler)?e.messageCompiler:hu,b=ot(e.messageResolver)?e.messageResolver:mu||pm,v=ot(e.localeFallbacker)?e.localeFallbacker:fu||Tm,E=Ve(e.fallbackContext)?e.fallbackContext:void 0,C=e,A=Ve(C.__datetimeFormatters)?C.__datetimeFormatters:new Map,K=Ve(C.__numberFormatters)?C.__numberFormatters:new Map,le=Ve(C.__meta)?C.__meta:{};vu++;const te={version:n,cid:vu,locale:o,fallbackLocale:r,messages:s,modifiers:c,pluralRules:u,missing:d,missingWarn:h,fallbackWarn:S,fallbackFormat:F,unresolving:y,postTranslation:L,processor:N,warnHtmlMessage:$,escapeParameter:w,messageCompiler:k,messageResolver:b,localeFallbacker:v,fallbackContext:E,onWarn:t,__meta:le};return te.datetimeFormats=i,te.numberFormats=l,te.__datetimeFormatters=A,te.__numberFormatters=K,__INTLIFY_PROD_DEVTOOLS__&&km(te,n,le),te}const Ks=e=>({[e]:Qe()});function Ys(e,t,n,o,a){const{missing:r,onWarn:s}=e;if(r!==null){const i=r(e,n,t,a);return be(i)?i:t}else return t}function Sa(e,t,n){const o=e;o.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function Gm(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Hm(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let o=n+1;o<t.length;o++)if(Gm(e,t[o]))return!0;return!1}function Zs(e){return n=>jm(n,e)}function jm(e,t){const n=em(t);if(n==null)throw wa(0);if(Ws(n)===1){const r=tm(n);return e.plural(r.reduce((s,i)=>[...s,_u(e,i)],[]))}else return _u(e,n)}function _u(e,t){const n=nm(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const o=om(t).reduce((a,r)=>[...a,Js(e,r)],[]);return e.normalize(o)}}function Js(e,t){const n=Ws(t);switch(n){case 3:return Ar(t,n);case 9:return Ar(t,n);case 4:{const o=t;if(cn(o,"k")&&o.k)return e.interpolate(e.named(o.k));if(cn(o,"key")&&o.key)return e.interpolate(e.named(o.key));throw wa(n)}case 5:{const o=t;if(cn(o,"i")&&yt(o.i))return e.interpolate(e.list(o.i));if(cn(o,"index")&&yt(o.index))return e.interpolate(e.list(o.index));throw wa(n)}case 6:{const o=t,a=am(o),r=rm(o);return e.linked(Js(e,r),a?Js(e,a):void 0,e.type)}case 7:return Ar(t,n);case 8:return Ar(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const Bm=e=>e;let Nr=Qe();function Um(e,t={}){let n=!1;const o=t.onError||L0;return t.onError=a=>{n=!0,o(a)},{...X0(e,t),detectError:n}}function Wm(e,t){if(be(e)){je(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||Bm)(e),a=Nr[o];if(a)return a;const{ast:r,detectError:s}=Um(e,{...t,location:!1,jit:!0}),i=Zs(r);return s?i:Nr[o]=i}else{const n=e.cacheKey;if(n){const o=Nr[n];return o||(Nr[n]=Zs(e))}else return Zs(e)}}const wu=()=>"",tn=e=>ot(e);function ku(e,...t){const{fallbackFormat:n,postTranslation:o,unresolving:a,messageCompiler:r,fallbackLocale:s,messages:i}=e,[l,c]=Xs(...t),u=je(c.missingWarn)?c.missingWarn:e.missingWarn,d=je(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=je(c.escapeParameter)?c.escapeParameter:e.escapeParameter,S=!!c.resolvedMessage,F=be(c.default)||je(c.default)?je(c.default)?r?l:()=>l:c.default:n?r?l:()=>l:"",y=n||F!=="",L=Vs(e,c);h&&Vm(c);let[N,$,w]=S?[l,L,i[L]||Qe()]:Su(e,l,L,s,d,u),k=N,b=l;if(!S&&!(be(k)||wn(k)||tn(k))&&y&&(k=F,b=k),!S&&(!(be(k)||wn(k)||tn(k))||!be($)))return a?Er:l;let v=!1;const E=()=>{v=!0},C=tn(k)?k:xu(e,l,$,k,b,E);if(v)return k;const A=Ym(e,$,w,c),K=_m(A),le=qm(e,C,K);let te=o?o(le,l):le;if(h&&be(te)&&(te=$0(te)),__INTLIFY_PROD_DEVTOOLS__){const G={timestamp:Date.now(),key:be(l)?l:tn(k)?k.key:"",locale:$||(tn(k)?k.locale:""),format:be(k)?k:tn(k)?k.source:"",message:te};G.meta=Rt({},e.__meta,Om()||{}),Sm(G)}return te}function Vm(e){it(e.list)?e.list=e.list.map(t=>be(t)?Gc(t):t):Ve(e.named)&&Object.keys(e.named).forEach(t=>{be(e.named[t])&&(e.named[t]=Gc(e.named[t]))})}function Su(e,t,n,o,a,r){const{messages:s,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,o,n);let d=Qe(),h,S=null;const F="translate";for(let y=0;y<u.length&&(h=u[y],d=s[h]||Qe(),(S=l(d,t))===null&&(S=d[t]),!(be(S)||wn(S)||tn(S)));y++)if(!Hm(h,u)){const L=Ys(e,t,h,r,F);L!==t&&(S=L)}return[S,h,d]}function xu(e,t,n,o,a,r){const{messageCompiler:s,warnHtmlMessage:i}=e;if(tn(o)){const c=o;return c.locale=c.locale||n,c.key=c.key||t,c}if(s==null){const c=()=>o;return c.locale=n,c.key=t,c}const l=s(o,Km(e,n,a,o,i,r));return l.locale=n,l.key=t,l.source=o,l}function qm(e,t,n){return t(n)}function Xs(...e){const[t,n,o]=e,a=Qe();if(!be(t)&&!yt(t)&&!tn(t)&&!wn(t))throw Dn(kn.INVALID_ARGUMENT);const r=yt(t)?String(t):(tn(t),t);return yt(n)?a.plural=n:be(n)?a.default=n:Ie(n)&&!Pr(n)?a.named=n:it(n)&&(a.list=n),yt(o)?a.plural=o:be(o)?a.default=o:Ie(o)&&Rt(a,o),[r,a]}function Km(e,t,n,o,a,r){return{locale:t,key:n,warnHtmlMessage:a,onError:s=>{throw r&&r(s),s},onCacheKey:s=>h0(t,n,s)}}function Ym(e,t,n,o){const{modifiers:a,pluralRules:r,messageResolver:s,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:a,pluralRules:r,messages:S=>{let F=s(n,S);if(F==null&&u){const[,,y]=Su(u,S,t,i,l,c);F=s(y,S)}if(be(F)||wn(F)){let y=!1;const N=xu(e,S,t,F,S,()=>{y=!0});return y?wu:N}else return tn(F)?F:wu}};return e.processor&&(h.processor=e.processor),o.list&&(h.list=o.list),o.named&&(h.named=o.named),yt(o.plural)&&(h.pluralIndex=o.plural),h}function Pu(e,...t){const{datetimeFormats:n,unresolving:o,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__datetimeFormatters:i}=e,[l,c,u,d]=Qs(...t),h=je(u.missingWarn)?u.missingWarn:e.missingWarn;je(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const S=!!u.part,F=Vs(e,u),y=s(e,a,F);if(!be(l)||l==="")return new Intl.DateTimeFormat(F,d).format(c);let L={},N,$=null;const w="datetime format";for(let v=0;v<y.length&&(N=y[v],L=n[N]||{},$=L[l],!Ie($));v++)Ys(e,l,N,h,w);if(!Ie($)||!be(N))return o?Er:l;let k=`${N}__${l}`;Pr(d)||(k=`${k}__${JSON.stringify(d)}`);let b=i.get(k);return b||(b=new Intl.DateTimeFormat(N,Rt({},$,d)),i.set(k,b)),S?b.formatToParts(c):b.format(c)}const Cu=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function Qs(...e){const[t,n,o,a]=e,r=Qe();let s=Qe(),i;if(be(t)){const l=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!l)throw Dn(kn.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 Dn(kn.INVALID_ISO_DATE_ARGUMENT)}}else if(f0(t)){if(isNaN(t.getTime()))throw Dn(kn.INVALID_DATE_ARGUMENT);i=t}else if(yt(t))i=t;else throw Dn(kn.INVALID_ARGUMENT);return be(n)?r.key=n:Ie(n)&&Object.keys(n).forEach(l=>{Cu.includes(l)?s[l]=n[l]:r[l]=n[l]}),be(o)?r.locale=o:Ie(o)&&(s=o),Ie(a)&&(s=a),[r.key||"",i,r,s]}function Tu(e,t,n){const o=e;for(const a in n){const r=`${t}__${a}`;o.__datetimeFormatters.has(r)&&o.__datetimeFormatters.delete(r)}}function Lu(e,...t){const{numberFormats:n,unresolving:o,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:i}=e,[l,c,u,d]=ei(...t),h=je(u.missingWarn)?u.missingWarn:e.missingWarn;je(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const S=!!u.part,F=Vs(e,u),y=s(e,a,F);if(!be(l)||l==="")return new Intl.NumberFormat(F,d).format(c);let L={},N,$=null;const w="number format";for(let v=0;v<y.length&&(N=y[v],L=n[N]||{},$=L[l],!Ie($));v++)Ys(e,l,N,h,w);if(!Ie($)||!be(N))return o?Er:l;let k=`${N}__${l}`;Pr(d)||(k=`${k}__${JSON.stringify(d)}`);let b=i.get(k);return b||(b=new Intl.NumberFormat(N,Rt({},$,d)),i.set(k,b)),S?b.formatToParts(c):b.format(c)}const Mu=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function ei(...e){const[t,n,o,a]=e,r=Qe();let s=Qe();if(!yt(t))throw Dn(kn.INVALID_ARGUMENT);const i=t;return be(n)?r.key=n:Ie(n)&&Object.keys(n).forEach(l=>{Mu.includes(l)?s[l]=n[l]:r[l]=n[l]}),be(o)?r.locale=o:Ie(o)&&(s=o),Ie(a)&&(s=a),[r.key||"",i,r,s]}function Au(e,t,n){const o=e;for(const a in n){const r=`${t}__${a}`;o.__numberFormatters.has(r)&&o.__numberFormatters.delete(r)}}Q0();/*!
|
||
* vue-i18n v9.14.5
|
||
* (c) 2025 kazuya kawaguchi
|
||
* Released under the MIT License.
|
||
*/const Zm="9.14.5";function Jm(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(_a().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(_a().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(_a().__INTLIFY_PROD_DEVTOOLS__=!1)}const Xm=Cm.__EXTEND_POINT__,Gn=Cr(Xm);Gn(),Gn(),Gn(),Gn(),Gn(),Gn(),Gn(),Gn(),Gn();const Eu=kn.__EXTEND_POINT__,qt=Cr(Eu),Ct={UNEXPECTED_RETURN_TYPE:Eu,INVALID_ARGUMENT:qt(),MUST_BE_CALL_SETUP_TOP:qt(),NOT_INSTALLED:qt(),NOT_AVAILABLE_IN_LEGACY_MODE:qt(),REQUIRED_VALUE:qt(),INVALID_VALUE:qt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:qt(),NOT_INSTALLED_WITH_PROVIDE:qt(),UNEXPECTED_ERROR:qt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:qt(),BRIDGE_SUPPORT_VUE_2_ONLY:qt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:qt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:qt(),__EXTEND_POINT__:qt()};function At(e,...t){return Go(e,null,void 0)}const ti=Jn("__translateVNode"),ni=Jn("__datetimeParts"),oi=Jn("__numberParts"),Nu=Jn("__setPluralRules"),Fu=Jn("__injectWithOption"),ai=Jn("__dispose");function xa(e){if(!Ve(e)||wn(e))return e;for(const t in e)if(cn(e,t))if(!t.includes("."))Ve(e[t])&&xa(e[t]);else{const n=t.split("."),o=n.length-1;let a=e,r=!1;for(let s=0;s<o;s++){if(n[s]==="__proto__")throw new Error(`unsafe key: ${n[s]}`);if(n[s]in a||(a[n[s]]=Qe()),!Ve(a[n[s]])){r=!0;break}a=a[n[s]]}if(r||(wn(a)?ru.includes(n[o])||delete e[t]:(a[n[o]]=e[t],delete e[t])),!wn(a)){const s=a[n[o]];Ve(s)&&xa(s)}}return e}function Fr(e,t){const{messages:n,__i18n:o,messageResolver:a,flatJson:r}=t,s=Ie(n)?n:it(o)?Qe():{[e]:Qe()};if(it(o)&&o.forEach(i=>{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(s[l]=s[l]||Qe(),Lr(c,s[l])):Lr(c,s)}else be(i)&&Lr(JSON.parse(i),s)}),a==null&&r)for(const i in s)cn(s,i)&&xa(s[i]);return s}function Ru(e){return e.type}function Iu(e,t,n){let o=Ve(t.messages)?t.messages:Qe();"__i18nGlobal"in n&&(o=Fr(e.locale.value,{messages:o,__i18n:n.__i18nGlobal}));const a=Object.keys(o);a.length&&a.forEach(r=>{e.mergeLocaleMessage(r,o[r])});{if(Ve(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,t.datetimeFormats[s])})}if(Ve(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,t.numberFormats[s])})}}}function Ou(e){return Mt(ga,null,e,0)}const zu="__INTLIFY_META__",Du=()=>[],Qm=()=>!1;let Gu=0;function Hu(e){return(t,n,o,a)=>e(n,o,_n()||void 0,a)}const ef=()=>{const e=_n();let t=null;return e&&(t=Ru(e)[zu])?{[zu]:t}:null};function ri(e={},t){const{__root:n,__injectWithOption:o}=e,a=n===void 0,r=e.flatJson,s=xr?Le:er,i=!!e.translateExistCompatible;let l=je(e.inheritLocale)?e.inheritLocale:!0;const c=s(n&&l?n.locale.value:be(e.locale)?e.locale:Bo),u=s(n&&l?n.fallbackLocale.value:be(e.fallbackLocale)||it(e.fallbackLocale)||Ie(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),d=s(Fr(c.value,e)),h=s(Ie(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),S=s(Ie(e.numberFormats)?e.numberFormats:{[c.value]:{}});let F=n?n.missingWarn:je(e.missingWarn)||Xn(e.missingWarn)?e.missingWarn:!0,y=n?n.fallbackWarn:je(e.fallbackWarn)||Xn(e.fallbackWarn)?e.fallbackWarn:!0,L=n?n.fallbackRoot:je(e.fallbackRoot)?e.fallbackRoot:!0,N=!!e.fallbackFormat,$=ot(e.missing)?e.missing:null,w=ot(e.missing)?Hu(e.missing):null,k=ot(e.postTranslation)?e.postTranslation:null,b=n?n.warnHtmlMessage:je(e.warnHtmlMessage)?e.warnHtmlMessage:!0,v=!!e.escapeParameter;const E=n?n.modifiers:Ie(e.modifiers)?e.modifiers:{};let C=e.pluralRules||n&&n.pluralRules,A;A=(()=>{a&&yu(null);const I={version:Zm,locale:c.value,fallbackLocale:u.value,messages:d.value,modifiers:E,pluralRules:C,missing:w===null?void 0:w,missingWarn:F,fallbackWarn:y,fallbackFormat:N,unresolving:!0,postTranslation:k===null?void 0:k,warnHtmlMessage:b,escapeParameter:v,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};I.datetimeFormats=h.value,I.numberFormats=S.value,I.__datetimeFormatters=Ie(A)?A.__datetimeFormatters:void 0,I.__numberFormatters=Ie(A)?A.__numberFormatters:void 0;const V=Dm(I);return a&&yu(V),V})(),Sa(A,c.value,u.value);function le(){return[c.value,u.value,d.value,h.value,S.value]}const te=Se({get:()=>c.value,set:I=>{c.value=I,A.locale=c.value}}),G=Se({get:()=>u.value,set:I=>{u.value=I,A.fallbackLocale=u.value,Sa(A,c.value,I)}}),ce=Se(()=>d.value),H=Se(()=>h.value),W=Se(()=>S.value);function ie(){return ot(k)?k:null}function J(I){k=I,A.postTranslation=I}function M(){return $}function q(I){I!==null&&(w=Hu(I)),$=I,A.missing=w}const m=(I,V,ke,Fe,Be,pt)=>{le();let ht;try{__INTLIFY_PROD_DEVTOOLS__,a||(A.fallbackContext=n?zm():void 0),ht=I(A)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(A.fallbackContext=void 0)}if(ke!=="translate exists"&&yt(ht)&&ht===Er||ke==="translate exists"&&!ht){const[pn,To]=V();return n&&L?Fe(n):Be(pn)}else{if(pt(ht))return ht;throw At(Ct.UNEXPECTED_RETURN_TYPE)}};function j(...I){return m(V=>Reflect.apply(ku,null,[V,...I]),()=>Xs(...I),"translate",V=>Reflect.apply(V.t,V,[...I]),V=>V,V=>be(V))}function me(...I){const[V,ke,Fe]=I;if(Fe&&!Ve(Fe))throw At(Ct.INVALID_ARGUMENT);return j(V,ke,Rt({resolvedMessage:!0},Fe||{}))}function pe(...I){return m(V=>Reflect.apply(Pu,null,[V,...I]),()=>Qs(...I),"datetime format",V=>Reflect.apply(V.d,V,[...I]),()=>pu,V=>be(V))}function ve(...I){return m(V=>Reflect.apply(Lu,null,[V,...I]),()=>ei(...I),"number format",V=>Reflect.apply(V.n,V,[...I]),()=>pu,V=>be(V))}function Ne(I){return I.map(V=>be(V)||yt(V)||je(V)?Ou(String(V)):V)}const qe={normalize:Ne,interpolate:I=>I,type:"vnode"};function Te(...I){return m(V=>{let ke;const Fe=V;try{Fe.processor=qe,ke=Reflect.apply(ku,null,[Fe,...I])}finally{Fe.processor=null}return ke},()=>Xs(...I),"translate",V=>V[ti](...I),V=>[Ou(V)],V=>it(V))}function Me(...I){return m(V=>Reflect.apply(Lu,null,[V,...I]),()=>ei(...I),"number format",V=>V[oi](...I),Du,V=>be(V)||it(V))}function lt(...I){return m(V=>Reflect.apply(Pu,null,[V,...I]),()=>Qs(...I),"datetime format",V=>V[ni](...I),Du,V=>be(V)||it(V))}function _(I){C=I,A.pluralRules=C}function T(I,V){return m(()=>{if(!I)return!1;const ke=be(V)?V:c.value,Fe=Q(ke),Be=A.messageResolver(Fe,I);return i?Be!=null:wn(Be)||tn(Be)||be(Be)},()=>[I],"translate exists",ke=>Reflect.apply(ke.te,ke,[I,V]),Qm,ke=>je(ke))}function x(I){let V=null;const ke=uu(A,u.value,c.value);for(let Fe=0;Fe<ke.length;Fe++){const Be=d.value[ke[Fe]]||{},pt=A.messageResolver(Be,I);if(pt!=null){V=pt;break}}return V}function U(I){const V=x(I);return V??(n?n.tm(I)||{}:{})}function Q(I){return d.value[I]||{}}function X(I,V){if(r){const ke={[I]:V};for(const Fe in ke)cn(ke,Fe)&&xa(ke[Fe]);V=ke[I]}d.value[I]=V,A.messages=d.value}function de(I,V){d.value[I]=d.value[I]||{};const ke={[I]:V};if(r)for(const Fe in ke)cn(ke,Fe)&&xa(ke[Fe]);V=ke[I],Lr(V,d.value[I]),A.messages=d.value}function ue(I){return h.value[I]||{}}function p(I,V){h.value[I]=V,A.datetimeFormats=h.value,Tu(A,I,V)}function g(I,V){h.value[I]=Rt(h.value[I]||{},V),A.datetimeFormats=h.value,Tu(A,I,V)}function z(I){return S.value[I]||{}}function O(I,V){S.value[I]=V,A.numberFormats=S.value,Au(A,I,V)}function ge(I,V){S.value[I]=Rt(S.value[I]||{},V),A.numberFormats=S.value,Au(A,I,V)}Gu++,n&&xr&&(_t(n.locale,I=>{l&&(c.value=I,A.locale=I,Sa(A,c.value,u.value))}),_t(n.fallbackLocale,I=>{l&&(u.value=I,A.fallbackLocale=I,Sa(A,c.value,u.value))}));const se={id:Gu,locale:te,fallbackLocale:G,get inheritLocale(){return l},set inheritLocale(I){l=I,I&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,Sa(A,c.value,u.value))},get availableLocales(){return Object.keys(d.value).sort()},messages:ce,get modifiers(){return E},get pluralRules(){return C||{}},get isGlobal(){return a},get missingWarn(){return F},set missingWarn(I){F=I,A.missingWarn=F},get fallbackWarn(){return y},set fallbackWarn(I){y=I,A.fallbackWarn=y},get fallbackRoot(){return L},set fallbackRoot(I){L=I},get fallbackFormat(){return N},set fallbackFormat(I){N=I,A.fallbackFormat=N},get warnHtmlMessage(){return b},set warnHtmlMessage(I){b=I,A.warnHtmlMessage=I},get escapeParameter(){return v},set escapeParameter(I){v=I,A.escapeParameter=I},t:j,getLocaleMessage:Q,setLocaleMessage:X,mergeLocaleMessage:de,getPostTranslationHandler:ie,setPostTranslationHandler:J,getMissingHandler:M,setMissingHandler:q,[Nu]:_};return se.datetimeFormats=H,se.numberFormats=W,se.rt=me,se.te=T,se.tm=U,se.d=pe,se.n=ve,se.getDateTimeFormat=ue,se.setDateTimeFormat=p,se.mergeDateTimeFormat=g,se.getNumberFormat=z,se.setNumberFormat=O,se.mergeNumberFormat=ge,se[Fu]=o,se[ti]=Te,se[ni]=lt,se[oi]=Me,se}function tf(e){const t=be(e.locale)?e.locale:Bo,n=be(e.fallbackLocale)||it(e.fallbackLocale)||Ie(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,o=ot(e.missing)?e.missing:void 0,a=je(e.silentTranslationWarn)||Xn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=je(e.silentFallbackWarn)||Xn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=je(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Ie(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=ot(e.postTranslation)?e.postTranslation:void 0,d=be(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,S=je(e.sync)?e.sync:!0;let F=e.messages;if(Ie(e.sharedMessages)){const v=e.sharedMessages;F=Object.keys(v).reduce((C,A)=>{const K=C[A]||(C[A]={});return Rt(K,v[A]),C},F||{})}const{__i18n:y,__root:L,__injectWithOption:N}=e,$=e.datetimeFormats,w=e.numberFormats,k=e.flatJson,b=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:F,flatJson:k,datetimeFormats:$,numberFormats:w,missing:o,missingWarn:a,fallbackWarn:r,fallbackRoot:s,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:d,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:S,translateExistCompatible:b,__i18n:y,__root:L,__injectWithOption:N}}function si(e={},t){{const n=ri(tf(e)),{__extender:o}=e,a={id:n.id,get locale(){return n.locale.value},set locale(r){n.locale.value=r},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(r){n.fallbackLocale.value=r},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return n.getMissingHandler()},set missing(r){n.setMissingHandler(r)},get silentTranslationWarn(){return je(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(r){n.missingWarn=je(r)?!r:r},get silentFallbackWarn(){return je(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(r){n.fallbackWarn=je(r)?!r:r},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(r){n.fallbackFormat=r},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(r){n.setPostTranslationHandler(r)},get sync(){return n.inheritLocale},set sync(r){n.inheritLocale=r},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){n.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(r){n.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...r){const[s,i,l]=r,c={};let u=null,d=null;if(!be(s))throw At(Ct.INVALID_ARGUMENT);const h=s;return be(i)?c.locale=i:it(i)?u=i:Ie(i)&&(d=i),it(l)?u=l:Ie(l)&&(d=l),Reflect.apply(n.t,n,[h,u||d||{},c])},rt(...r){return Reflect.apply(n.rt,n,[...r])},tc(...r){const[s,i,l]=r,c={plural:1};let u=null,d=null;if(!be(s))throw At(Ct.INVALID_ARGUMENT);const h=s;return be(i)?c.locale=i:yt(i)?c.plural=i:it(i)?u=i:Ie(i)&&(d=i),be(l)?c.locale=l:it(l)?u=l:Ie(l)&&(d=l),Reflect.apply(n.t,n,[h,u||d||{},c])},te(r,s){return n.te(r,s)},tm(r){return n.tm(r)},getLocaleMessage(r){return n.getLocaleMessage(r)},setLocaleMessage(r,s){n.setLocaleMessage(r,s)},mergeLocaleMessage(r,s){n.mergeLocaleMessage(r,s)},d(...r){return Reflect.apply(n.d,n,[...r])},getDateTimeFormat(r){return n.getDateTimeFormat(r)},setDateTimeFormat(r,s){n.setDateTimeFormat(r,s)},mergeDateTimeFormat(r,s){n.mergeDateTimeFormat(r,s)},n(...r){return Reflect.apply(n.n,n,[...r])},getNumberFormat(r){return n.getNumberFormat(r)},setNumberFormat(r,s){n.setNumberFormat(r,s)},mergeNumberFormat(r,s){n.mergeNumberFormat(r,s)},getChoiceIndex(r,s){return-1}};return a.__extender=o,a}}const ii={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function nf({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((o,a)=>[...o,...a.type===Xe?a.children:[a]],[]):t.reduce((n,o)=>{const a=e[o];return a&&(n[o]=a()),n},Qe())}function ju(e){return Xe}const Bu=Kn({name:"i18n-t",props:Rt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>yt(e)||!isNaN(e)}},ii),setup(e,t){const{slots:n,attrs:o}=t,a=e.i18n||Pa({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(d=>d!=="_"),s=Qe();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=be(e.plural)?+e.plural:e.plural);const i=nf(t,r),l=a[ti](e.keypath,i,s),c=Rt(Qe(),o),u=be(e.tag)||Ve(e.tag)?e.tag:ju();return _o(u,c,l)}}});function of(e){return it(e)&&!be(e[0])}function Uu(e,t,n,o){const{slots:a,attrs:r}=t;return()=>{const s={part:!0};let i=Qe();e.locale&&(s.locale=e.locale),be(e.format)?s.key=e.format:Ve(e.format)&&(be(e.format.key)&&(s.key=e.format.key),i=Object.keys(e.format).reduce((h,S)=>n.includes(S)?Rt(Qe(),h,{[S]:e.format[S]}):h,Qe()));const l=o(e.value,s,i);let c=[s.key];it(l)?c=l.map((h,S)=>{const F=a[h.type],y=F?F({[h.type]:h.value,index:S,parts:l}):[h.value];return of(y)&&(y[0].key=`${h.type}-${S}`),y}):be(l)&&(c=[l]);const u=Rt(Qe(),r),d=be(e.tag)||Ve(e.tag)?e.tag:ju();return _o(d,u,c)}}const Wu=Kn({name:"i18n-n",props:Rt({value:{type:Number,required:!0},format:{type:[String,Object]}},ii),setup(e,t){const n=e.i18n||Pa({useScope:e.scope,__useComponent:!0});return Uu(e,t,Mu,(...o)=>n[oi](...o))}}),Vu=Kn({name:"i18n-d",props:Rt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},ii),setup(e,t){const n=e.i18n||Pa({useScope:e.scope,__useComponent:!0});return Uu(e,t,Cu,(...o)=>n[ni](...o))}});function af(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const o=n.__getInstance(t);return o!=null?o.__composer:e.global.__composer}}function rf(e){const t=s=>{const{instance:i,modifiers:l,value:c}=s;if(!i||!i.$)throw At(Ct.UNEXPECTED_ERROR);const u=af(e,i.$),d=qu(c);return[Reflect.apply(u.t,u,[...Ku(d)]),u]};return{created:(s,i)=>{const[l,c]=t(i);xr&&e.global===c&&(s.__i18nWatcher=_t(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),s.__composer=c,s.textContent=l},unmounted:s=>{xr&&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=qu(i);s.textContent=Reflect.apply(l.t,l,[...Ku(c)])}},getSSRProps:s=>{const[i]=t(s);return{textContent:i}}}}function qu(e){if(be(e))return{path:e};if(Ie(e)){if(!("path"in e))throw At(Ct.REQUIRED_VALUE,"path");return e}else throw At(Ct.INVALID_VALUE)}function Ku(e){const{path:t,locale:n,args:o,choice:a,plural:r}=e,s={},i=o||{};return be(n)&&(s.locale=n),yt(a)&&(s.plural=a),yt(r)&&(s.plural=r),[t,i,s]}function sf(e,t,...n){const o=Ie(n[0])?n[0]:{},a=!!o.useI18nComponentName;(je(o.globalInstall)?o.globalInstall:!0)&&([a?"i18n":Bu.name,"I18nT"].forEach(s=>e.component(s,Bu)),[Wu.name,"I18nN"].forEach(s=>e.component(s,Wu)),[Vu.name,"I18nD"].forEach(s=>e.component(s,Vu))),e.directive("t",rf(t))}function lf(e,t,n){return{beforeCreate(){const o=_n();if(!o)throw At(Ct.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const r=a.i18n;if(a.__i18n&&(r.__i18n=a.__i18n),r.__root=t,this===this.$root)this.$i18n=Yu(e,r);else{r.__injectWithOption=!0,r.__extender=n.__vueI18nExtend,this.$i18n=si(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Yu(e,a);else{this.$i18n=si({__i18n:a.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&Iu(t,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),n.__setInstance(o,this.$i18n)},mounted(){},unmounted(){const o=_n();if(!o)throw At(Ct.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),n.__deleteInstance(o),delete this.$i18n}}}function Yu(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Nu](t.pluralizationRules||e.pluralizationRules);const n=Fr(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(o=>e.mergeLocaleMessage(o,n[o])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(o=>e.mergeDateTimeFormat(o,t.datetimeFormats[o])),t.numberFormats&&Object.keys(t.numberFormats).forEach(o=>e.mergeNumberFormat(o,t.numberFormats[o])),e}const cf=Jn("global-vue-i18n");function uf(e={},t){const n=__VUE_I18N_LEGACY_API__&&je(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=je(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,r=new Map,[s,i]=df(e,n),l=Jn("");function c(h){return r.get(h)||null}function u(h,S){r.set(h,S)}function d(h){r.delete(h)}{const h={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return a},async install(S,...F){if(S.__VUE_I18N_SYMBOL__=l,S.provide(S.__VUE_I18N_SYMBOL__,h),Ie(F[0])){const N=F[0];h.__composerExtend=N.__composerExtend,h.__vueI18nExtend=N.__vueI18nExtend}let y=null;!n&&o&&(y=vf(S,h.global)),__VUE_I18N_FULL_INSTALL__&&sf(S,h,...F),__VUE_I18N_LEGACY_API__&&n&&S.mixin(lf(i,i.__composer,h));const L=S.unmount;S.unmount=()=>{y&&y(),h.dispose(),L()}},get global(){return i},dispose(){s.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:d};return h}}function Pa(e={}){const t=_n();if(t==null)throw At(Ct.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw At(Ct.NOT_INSTALLED);const n=pf(t),o=hf(n),a=Ru(t),r=gf(e,a);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw At(Ct.NOT_AVAILABLE_IN_LEGACY_MODE);return $f(t,r,o,e)}if(r==="global")return Iu(o,e,a),o;if(r==="parent"){let l=mf(n,t,e.__useComponent);return l==null&&(l=o),l}const s=n;let i=s.__getInstance(t);if(i==null){const l=Rt({},e);"__i18n"in a&&(l.__i18n=a.__i18n),o&&(l.__root=o),i=ri(l),s.__composerExtend&&(i[ai]=s.__composerExtend(i)),bf(s,t,i),s.__setInstance(t,i)}return i}function df(e,t,n){const o=Va();{const a=__VUE_I18N_LEGACY_API__&&t?o.run(()=>si(e)):o.run(()=>ri(e));if(a==null)throw At(Ct.UNEXPECTED_ERROR);return[o,a]}}function pf(e){{const t=vt(e.isCE?cf:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw At(e.isCE?Ct.NOT_INSTALLED_WITH_PROVIDE:Ct.UNEXPECTED_ERROR);return t}}function gf(e,t){return Pr(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function hf(e){return e.mode==="composition"?e.global:e.global.__composer}function mf(e,t,n=!1){let o=null;const a=t.root;let r=ff(t,n);for(;r!=null;){const s=e;if(e.mode==="composition")o=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=s.__getInstance(r);i!=null&&(o=i.__composer,n&&o&&!o[Fu]&&(o=null))}if(o!=null||a===r)break;r=r.parent}return o}function ff(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function bf(e,t,n){fo(()=>{},t),ur(()=>{const o=n;e.__deleteInstance(t);const a=o[ai];a&&(a(),delete o[ai])},t)}function $f(e,t,n,o={}){const a=t==="local",r=er(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw At(Ct.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const s=je(o.inheritLocale)?o.inheritLocale:!be(o.locale),i=Le(!a||s?n.locale.value:be(o.locale)?o.locale:Bo),l=Le(!a||s?n.fallbackLocale.value:be(o.fallbackLocale)||it(o.fallbackLocale)||Ie(o.fallbackLocale)||o.fallbackLocale===!1?o.fallbackLocale:i.value),c=Le(Fr(i.value,o)),u=Le(Ie(o.datetimeFormats)?o.datetimeFormats:{[i.value]:{}}),d=Le(Ie(o.numberFormats)?o.numberFormats:{[i.value]:{}}),h=a?n.missingWarn:je(o.missingWarn)||Xn(o.missingWarn)?o.missingWarn:!0,S=a?n.fallbackWarn:je(o.fallbackWarn)||Xn(o.fallbackWarn)?o.fallbackWarn:!0,F=a?n.fallbackRoot:je(o.fallbackRoot)?o.fallbackRoot:!0,y=!!o.fallbackFormat,L=ot(o.missing)?o.missing:null,N=ot(o.postTranslation)?o.postTranslation:null,$=a?n.warnHtmlMessage:je(o.warnHtmlMessage)?o.warnHtmlMessage:!0,w=!!o.escapeParameter,k=a?n.modifiers:Ie(o.modifiers)?o.modifiers:{},b=o.pluralRules||a&&n.pluralRules;function v(){return[i.value,l.value,c.value,u.value,d.value]}const E=Se({get:()=>r.value?r.value.locale.value:i.value,set:x=>{r.value&&(r.value.locale.value=x),i.value=x}}),C=Se({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:x=>{r.value&&(r.value.fallbackLocale.value=x),l.value=x}}),A=Se(()=>r.value?r.value.messages.value:c.value),K=Se(()=>u.value),le=Se(()=>d.value);function te(){return r.value?r.value.getPostTranslationHandler():N}function G(x){r.value&&r.value.setPostTranslationHandler(x)}function ce(){return r.value?r.value.getMissingHandler():L}function H(x){r.value&&r.value.setMissingHandler(x)}function W(x){return v(),x()}function ie(...x){return r.value?W(()=>Reflect.apply(r.value.t,null,[...x])):W(()=>"")}function J(...x){return r.value?Reflect.apply(r.value.rt,null,[...x]):""}function M(...x){return r.value?W(()=>Reflect.apply(r.value.d,null,[...x])):W(()=>"")}function q(...x){return r.value?W(()=>Reflect.apply(r.value.n,null,[...x])):W(()=>"")}function m(x){return r.value?r.value.tm(x):{}}function j(x,U){return r.value?r.value.te(x,U):!1}function me(x){return r.value?r.value.getLocaleMessage(x):{}}function pe(x,U){r.value&&(r.value.setLocaleMessage(x,U),c.value[x]=U)}function ve(x,U){r.value&&r.value.mergeLocaleMessage(x,U)}function Ne(x){return r.value?r.value.getDateTimeFormat(x):{}}function Ce(x,U){r.value&&(r.value.setDateTimeFormat(x,U),u.value[x]=U)}function qe(x,U){r.value&&r.value.mergeDateTimeFormat(x,U)}function Te(x){return r.value?r.value.getNumberFormat(x):{}}function Me(x,U){r.value&&(r.value.setNumberFormat(x,U),d.value[x]=U)}function lt(x,U){r.value&&r.value.mergeNumberFormat(x,U)}const _={get id(){return r.value?r.value.id:-1},locale:E,fallbackLocale:C,messages:A,datetimeFormats:K,numberFormats:le,get inheritLocale(){return r.value?r.value.inheritLocale:s},set inheritLocale(x){r.value&&(r.value.inheritLocale=x)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:k},get pluralRules(){return r.value?r.value.pluralRules:b},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:h},set missingWarn(x){r.value&&(r.value.missingWarn=x)},get fallbackWarn(){return r.value?r.value.fallbackWarn:S},set fallbackWarn(x){r.value&&(r.value.missingWarn=x)},get fallbackRoot(){return r.value?r.value.fallbackRoot:F},set fallbackRoot(x){r.value&&(r.value.fallbackRoot=x)},get fallbackFormat(){return r.value?r.value.fallbackFormat:y},set fallbackFormat(x){r.value&&(r.value.fallbackFormat=x)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:$},set warnHtmlMessage(x){r.value&&(r.value.warnHtmlMessage=x)},get escapeParameter(){return r.value?r.value.escapeParameter:w},set escapeParameter(x){r.value&&(r.value.escapeParameter=x)},t:ie,getPostTranslationHandler:te,setPostTranslationHandler:G,getMissingHandler:ce,setMissingHandler:H,rt:J,d:M,n:q,tm:m,te:j,getLocaleMessage:me,setLocaleMessage:pe,mergeLocaleMessage:ve,getDateTimeFormat:Ne,setDateTimeFormat:Ce,mergeDateTimeFormat:qe,getNumberFormat:Te,setNumberFormat:Me,mergeNumberFormat:lt};function T(x){x.locale.value=i.value,x.fallbackLocale.value=l.value,Object.keys(c.value).forEach(U=>{x.mergeLocaleMessage(U,c.value[U])}),Object.keys(u.value).forEach(U=>{x.mergeDateTimeFormat(U,u.value[U])}),Object.keys(d.value).forEach(U=>{x.mergeNumberFormat(U,d.value[U])}),x.escapeParameter=w,x.fallbackFormat=y,x.fallbackRoot=F,x.fallbackWarn=S,x.missingWarn=h,x.warnHtmlMessage=$}return Ml(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw At(Ct.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const x=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=x.locale.value,l.value=x.fallbackLocale.value,c.value=x.messages.value,u.value=x.datetimeFormats.value,d.value=x.numberFormats.value):a&&T(x)}),_}const yf=["locale","fallbackLocale","availableLocales"],Zu=["t","rt","d","n","tm","te"];function vf(e,t){const n=Object.create(null);return yf.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r)throw At(Ct.UNEXPECTED_ERROR);const s=ct(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,a,s)}),e.config.globalProperties.$i18n=n,Zu.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r||!r.value)throw At(Ct.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,r)}),()=>{delete e.config.globalProperties.$i18n,Zu.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(Jm(),Nm(Wm),Fm(gm),Rm(uu),__INTLIFY_PROD_DEVTOOLS__){const e=_a();e.__INTLIFY__=!0,wm(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const _f=Object.assign({"./locales/ar/aria.json":{backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها",searchPeopleGroups:"ابحث عن الشعوب",resetAllFilters:"إعادة تعيين كل عوامل التصفية والبحث",selectAllRows:"تحديد كل الصفوف",deselectAllRows:"إلغاء تحديد كل الصفوف",rowDetail:"تفاصيل الصف",dismissHint:"إخفاء التلميح",resizeFiltersRail:"تغيير حجم شريط عوامل التصفية",resizeFiltersRailHint:"اسحب أو استخدم مفاتيح الأسهم لتغيير حجم شريط عوامل التصفية",resizeChartsRail:"تغيير حجم شريط الرسوم البيانية",resizeChartsRailHint:"اسحب أو استخدم مفاتيح الأسهم لتغيير حجم شريط الرسوم البيانية",resizeMapTableSplit:"تغيير نسبة التقسيم بين الخريطة والجدول",resizeMapTableSplitHint:"اسحب أو استخدم مفاتيح الأسهم لتغيير نسبة التقسيم بين الخريطة والجدول",resizeTable:"تغيير ارتفاع الجدول",resizeTableHint:"اسحب أو استخدم مفاتيح الأسهم لتغيير حجم الجدول",resizeDashboardHeight:"تغيير ارتفاع لوحة المعلومات",resizeDashboardHeightHint:"اسحب أو استخدم مفاتيح الأسهم لتغيير ارتفاع لوحة المعلومات",removeFilter:"إزالة عامل التصفية {name}",closeDetail:"إغلاق التفاصيل",filterBreadcrumb:"مسار عوامل التصفية",railViews:"طرق عرض الشريط",upgCountLegend:"مفتاح عدد UPG",donutChart:"مخطط دائري مجوّف: {title}"},"./locales/ar/buttons.json":{prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف",packetVariantAria:"تفاصيل حزمة الصلاة",packetFull:"تفاصيل كاملة",packetLightweight:"مختصرة",working:"جارٍ العمل…",postersPerRowAuto:"تلقائي"},"./locales/ar/grid.json":{search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية.",search_people_or_countries:"ابحث عن الشعوب أو الدول…",cards_per_row:"البطاقات في كل صف",cards_per_row_auto:"تلقائي"},"./locales/ar/mapui.json":{map:"الخريطة",marker:"علامة على الخريطة",closePopup:"إغلاق النافذة المنبثقة",zoomIn:"تكبير",zoomOut:"تصغير",resetBearing:"اسحب لتدوير الخريطة، وانقر لإعادة الشمال",toggleAttribution:"إظهار/إخفاء المصادر",mapFeedback:"ملاحظات على الخريطة",enterFullscreen:"ملء الشاشة",exitFullscreen:"الخروج من ملء الشاشة",findMyLocation:"تحديد موقعي",locationNotAvailable:"الموقع غير متاح",enableGlobe:"تفعيل الكرة الأرضية",disableGlobe:"إيقاف الكرة الأرضية",ctrlScroll:"استخدم Ctrl مع التمرير لتكبير الخريطة",cmdScroll:"استخدم ⌘ مع التمرير لتكبير الخريطة",twoFingers:"استخدم إصبعين لتحريك الخريطة",mapboxHomepage:"الصفحة الرئيسية لـ Mapbox",maplibreLogo:"شعار MapLibre"},"./locales/ar/messages.json":{menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG100 — قوائم صلاة وملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntroA:"كيف تُطعم جمعًا من خمسة آلاف؟ أجلسهم يسوع جماعاتٍ من خمسين ومن مئة، فصار المستحيل قابلًا للمشاركة (لوقا ٩:١٤). فعلنا المثل مع ٢١٠٦ شعوب غير مبلَّغة: ٢٧ قائمة من نحو خمسين إلى مئة. تُطبع كل قائمة حزمةَ صلاة وملصقًا، ليحمل ٢٧ تلميذًا أو كنيسة أو قائدًا محليًا كلٌّ واحدة — مصلّين لأجلهم ",upg100WallIntroEmph:"باسم شعبهم",upg100WallIntroB:".",loadingNamed:"جارٍ تحميل {name}…",couldNotLoadNamed:"تعذّر تحميل {name}.",engineMissing:"لم يتم تحميل محرك الخرائط {engine}.",packetFailed:"فشل إنشاء الكُتيّب: {reason}",selectionPacketFailed:"فشل إنشاء كُتيّب التحديد: {reason}",posterOneTerritory:"الملصق يطبع منطقة واحدة في كل مرة — {count} محددة.",selectionPosterFailed:"فشل إنشاء ملصق التحديد: {reason}",mapUnavailable:"الخريطة غير متاحة",copied:"تم النسخ!",copyFailed:"فشل النسخ — اضغط Ctrl/Cmd-C",engineNotLoaded:"لم يتم تحميل محرك الخريطة",engineNotLoadedDetail:"لم يتم تحميل محرك الخريطة {engine}. القائمة ووسيلة الإيضاح غير متأثرتين.",viewLoadFailed:"تعذّر تحميل هذا العرض.",retry:"إعادة المحاولة",noMapboxToken:"لا يوجد رمز Mapbox",noMapboxTokenDetail:"لم يُضبط أي رمز Mapbox. القائمة ووسيلة الإيضاح غير متأثرتين.",loadingBoundaries:"جارٍ تحميل الحدود…",fetchingUupgs:"جارٍ جلب {n} من UUPG…",mapStatusCounts:"المساحات: {polys} · المناطق: {zones}/{total} · الدبابيس: {pins}",tapTerritoriesHint:"انقر على الأقاليم في الخريطة أو صفوف وسيلة الإيضاح لإضافتها · انقر مجددًا لإزالتها",territoriesSelected:"الأقاليم: {count}",bandInRange:"✓ النطاق 50–100",bandOutOfRange:"النطاق 50–100",mapContextLost:"تم إلغاء تحميل هذه الخريطة لتحرير ذاكرة الرسوميات.",nOfTotal:"{n} من {total}",mapInitFailed:"تعذّر تهيئة الخريطة — تحقّق من الرمز والحاوية",countryWallIntroA:"ملصق لكل دولة، جاهز للصلاة والطباعة والتعليق على الحائط — نصلّي لأجلهم ",countryWallIntroB:". رُتّبت المناطق والدول بحسب عدد الشعوب غير المبلَّغة فيها، لتتقدّم الحاجة الأكبر.",countryWallSoon:"قريبًا: ستُنشأ قائمة صلاة لكل دولة، تسمّي كل شعب غير مبلَّغ فيها.",countryWallHeading:"ملصقات الدول — قوائم صلاة وملصقات",largerScreenNotice:"هذه الخريطة التجريبية مُعدّة للشاشات الكبيرة. تُفتح هنا، لكن بعض أجزائها قد لا يتّسع أو لا يعمل جيدًا على الهاتف.",desktopOnlyNotice:"{label} يعمل على الحاسوب فقط — افتح هذه الصفحة على حاسوب لاستخدامه.",noticeDismiss:"إغلاق",countryPosterTooMany:"عدد الشعوب أكبر من أن يتّسع له ملصق واحد بوضوح — ونعمل على حلّ لذلك."},"./locales/ar/neighbor.json":{brand:"جيراني من الشعوب غير المُبشَّرة",chooseView:"اختر عرضًا",views:{cockpit:"نظرة عامة",sendMap:"خريطة الإرسال",flowerMesh:"زهرة الشبكة",langCluster:"عناقيد اللغات",flowers:"الزهور",mobilize:"التعبئة",campaigns:"الحركات"},hints:{cockpit:"مركز التصفية المتقاطعة",sendMap:"أقواس من المُبشَّر إلى غير المُبشَّر",flowerMesh:"تفتّح شعاعي",langCluster:"مجموعات لغوية محددة",flowers:"عائلة · لغة · لهجة، مع بتلات تفصيلية"},title:{overview:"جيراني · نظرة عامة",send:"جيراني · SEND",langClusters:"جيراني · عناقيد اللغات",flowerMesh:"جيراني · زهرة الشبكة"},search:"بحث",searchCockpit:"ابحث عن هدف / مُرسِل / لغة…",searchStrip:"ابحث عن هدف / لغة / مُرسِل…",searchBrush:"بحث وتحديد",remove:"إزالة {label}",selectTarget:"اختر دولة الهدف غير المُبشَّر",loadingSend:"جارٍ تحميل خريطة SEND…",send:{unreachedTarget:"هدف غير مُبشَّر —",clickOne:"انقر واحدًا",toFocus:"للتركيز عليه",reachedSender:"مُرسِل مُبشَّر (SEND →)"},pctChristian:"مسيحيون: {n}%",groups:"الشعوب: {n}",people:"السكان",unreached:"غير مُبشَّر",reached:"مُبشَّر",unknown:"غير معروف",lc:{loading:"جارٍ تحميل الشعوب…",apiDown:"واجهة doxa المباشرة غير متاحة: {message}",clusters:"عناقيد لغوية",pgs:"غير مُبشَّرة",provinces:"مقاطعات IN/CN",withReach:"لها مطابقة مُبشَّرة",legendCluster:"عنقود لغوي غير مُبشَّر (الحجم = عدد الشعوب)",legendReached:"جار مُبشَّر (مطابق باللغة)",legendHelp:"حلقة خضراء = للعنقود مطابقة مُبشَّرة · انقر عنقودًا للتعمّق",setCount:"Bounded set — شعوب غير مُبشَّرة: {n}",more:"+{n} أخرى",reachedSame:"جيران مُبشَّرون (اللغة نفسها): {n}",frontier:"لا يشترك أي شعب مُبشَّر في هذه اللغة ضمن هذه البيانات. إنها جبهة جديدة: صلِّ من أجل الفعلة (لوقا 10:2).",openFlower:"فتح عرض الزهرة ▸"},fm:{languageMesh:"شبكة اللغة",reachedNeighbors:"جيران مُبشَّرون",countries:"دول",upgsInCenter:"UPG في المركز",meshLinks:"روابط الشبكة",growing:"تنمو الزهرة…",upgs:"UPG: {n}",people:"السكان: {n}",legendTitle:"الزهرة",unreachedTarget:"هدف غير مُبشَّر (doxa-2000)",reachedDeeper:"جار مُبشَّر (الأغمق = مسيحيون أكثر)",sendPath:"مسار SEND ← إلى غير المُبشَّرين",viaCluster:"عبر عنقود لغوي قريب",mesh:"شبكة تعاون باللغة نفسها",whorl:"الدائرة الداخلية = الدولة نفسها · البتلات = الدول المحيطة",loadError:"تعذّر تحميل بيانات الجيران المُبشَّرين"},strip:{lens:"العدسة",lensAria:"عدسة اللغة",noLens:"— بلا عدسة —",color:"اللون",colorAria:"لوّن المُرسِلين المُبشَّرين حسب",pctReached:"% مُبشَّر",religion:"الدين",senderLanguage:"لغة المُرسِل",senderCountry:"دولة المُرسِل",clear:"مسح",noSenders:"لا مُرسِلين",byLanguage:"المُرسِلون حسب اللغة",byCountry:"المُرسِلون حسب الدولة",quantile:"% مُبشَّر (الشرائح)",histogram:"مدرّج نسبة المُبشَّرين",religionFamily:"عائلة الدين",bridgeType:"نوع الجسر",donut:"حلقة حسب الفئة"},list:{hidden:"· مخفيّة بالمرشحات: {n}",clear:"مسح",copy:"نسخ",csvDownloaded:"تم تنزيل CSV ({n})",copied:"تم النسخ ({n})",copyFailed:"فشل النسخ — اضغط Ctrl/Cmd-C",sendersAvailable:"{n} من المُرسِلين متاحون",buildSendList:"إنشاء قائمة الإرسال",noSenders:"لا يطابق أي مُرسِل عوامل التصفية الحالية",sendersHidden:"{n} من المُرسِلين مخفيون — امسح عامل تصفية لرؤيتهم",noReachedYet:"لا يوجد لهذا الهدف بعدُ جيران تم الوصول إليهم في البيانات المحفوظة",pickTarget:"اختر هدفًا أحمر",clustersNearby:"{c} من المجموعات غير المُبشَّرة · {s} من المُرسِلين الذين تم الوصول إليهم قريبًا",tapBubble:"اضغط على فقاعة حمراء في الخريطة لإنشاء قائمة الإرسال الخاصة بها.",colPeopleGroup:"الشعب",colCountry:"الدولة",colLanguage:"اللغة",colPopulation:"عدد السكان",colReligion:"الدين",colPctChristian:"% مسيحيون",colAdjacency:"التجاور",colCode:"الرمز",sortMobilization:"التعبئة",sortFrontier:"المناطق الحدودية أولًا",colName:"الاسم"},fc:{clusterBy:"التجميع حسب",flowers:"زهور",unreached:"غير مُبشَّرة",legendTitle:"عناقيد الزهور",legendCore:"عنقود لغوي غير مُبشَّر (نواة، الحجم = عدد الشعوب)",legendPetal:"جار مُبشَّر (تفصيلي، إحداثيات حقيقية)",legendHelp:"انقر دائرة عليا لإعادة التجميع · انقر نواة لتتفتح بتلاتها",clustering:"جارٍ تجميع الحصاد حسب اللغة…",signLanguage:"لغة الإشارة",mode:{family:"العائلة",language:"اللغة",dialect:"اللهجة"},size:{fewerBigger:"أقل · أكبر",more:"أكثر",most:"الأكثر"}},mc:{greenEncoding:"ترميز اللون الأخضر",provinces:"مقاطعات IN/CN",provincesTitle:"إظهار حدود المقاطعات في IN/CN",resetFocus:"✕ إلغاء التركيز",needsToken:"تحتاج الخريطة إلى رمز Mapbox (tk في profile-config)…",rendering:"جارٍ رسم حقل الحصاد…"},bloom:"تفتّح",cockpit:{viewSwitch:"عرض الخريطة أو الزهرة",loading:"جارٍ تحميل حقل الحصاد…",unreachedTarget:"هدف غير مُبشَّر",map:"الخريطة",flower:"الزهرة",details:"التفاصيل",senders:"مُرسِلون ←",clustersHidden:"مجموعات · {n} مخفية",legendSend:"SEND (متصل = اللغة نفسها · متقطع = مجموعة · منقط = داخل الدولة)",legendSelection:"التحديد · نصف القطر = لوغاريتم السكان · لوقا 10:2",navySend:"الكحلي = SEND",goldMesh:"الذهبي = شبكة اللغة الواحدة"},flower:{pickTarget:"اختر هدفًا أحمر على الخريطة —",bloomsHere:"يتفتّح جيرانه الذين تم الوصول إليهم هنا كزهرة."},sm:{counts:"{u} شعبًا غير مُبشَّر · {s} من المُرسِلين الذين تم الوصول إليهم",noSenders:"لا يوجد مُرسِلون مؤهّلون تم الوصول إليهم ولهم مركز دولة معروف لهذا الهدف."},about:{button:"كيف يعمل",title:"تعبئة الجيران القريبين",close:"إغلاق",why:"المؤمنون الأقدر على الوصول إلى شعب غير مبلَغ هم عادةً الأقرب إليه لغةً وثقافة. تجدهم هذه الأداة لكل مجموعة غير مبلَغة، باستخدام مقياسَي E وP لرالف د. وينتر، لتخطط مَن تعبّئ، وبأي لغة، وأين.",greenTitle:"للكنائس: ابدأ من نقطة خضراء",green:"اختر شعبًا مُبشَّرًا (أخضر)، من قائمة المجموعات المُبشَّرة أو من نقطة خضراء، لترى الشعوب غير المُبشَّرة التي يكون مؤمنوه في أفضل موقع للوصول إليها، مستوى E واحدًا في كل مرة، والأقرب أولًا. ثم صدِّر القائمة (CSV) أو اكتب رسالة إلى مؤمنيه أو اطبع حزمة الصلاة، لتلك الكنيسة أو شركائها في الإرسالية.",eTitle:"مقياس E: المسافة التي يجب أن يعبرها الشاهد",pTitle:"مقياس P: المسافة بين شعب وكنيسة",dataTitle:"البيانات وحدودها",data:"المبلَغ يعني أن نسبة الإنجيليين 2% على الأقل (تعريف IMB). تُقدَّر اللغة والثقافة من رمز اللغة وتصنيف الشعوب لدى IMB (المجموعة، الكتلة، العائلة اللغوية): مؤشرات عامة جيدة، لا تقييمات ميدانية. أعداد المؤمنين تقديرية من السكان وفئات نسب الإنجيليين؛ استخدمها لتقدير حجم الجمهور لا كأعداد دقيقة.",source:"بيانات الشعوب: peoplegroups.org (IMB)، people_groups.csv. مقياسا E وP: رالف د. وينتر، مؤتمر لوزان، 1974."},e:{short1:"E-1 · اللغة نفسها",short2:"E-2 · ثقافة قريبة",short3:"E-3 · قريب، ثقافة أخرى",title1:"E-1 · يتكلمون اللغة نفسها",title2:"E-2 · ثقافة قريبة",title3:"E-3 · قريبون، ثقافة مختلفة",long1:"مؤمنون يتكلمون لغة هذه المجموعة. يمكنهم مشاركة الإنجيل دون عبور حاجز اللغة، ويمكن لحركة بهذه اللغة أن تحفّزهم.",long2:"مؤمنون من شعب قريب: المجموعة الشعبية نفسها، أو العائلة اللغوية نفسها ضمن الكتلة نفسها. خطوة ثقافية أقصر من البدء من الصفر.",long3:"مؤمنون يعيشون بالقرب (ضمن 600 كم أو في الدولة نفسها) لكن ثقافتهم مختلفة. يشاركونهم المنطقة لا اللغة.",rlong1:"مجموعات غير مُبشَّرة تتكلم لغة هذه المجموعة. يستطيع مؤمنوها الوصول إليها دون عبور حاجز لغوي.",rlong2:"مجموعات غير مُبشَّرة من شعب قريب: العنقود الشعبي نفسه، أو العائلة اللغوية نفسها في كتلة الانتماء نفسها.",rlong3:"مجموعات غير مُبشَّرة قريبة (ضمن 600 كم أو في البلد نفسه) ثقافتها مختلفة."},p:{title0:"لم يُعثر على جيران مبلَغين",title1:"يوجد مؤمنون بلغته",title2:"أقرب المؤمنين من ثقافة قريبة",title3:"أقرب المؤمنين من ثقافة بعيدة",long0:"لا توجد مجموعة مبلَغة تطابق هذا الشعب لغةً أو ثقافةً أو مسافةً في هذه البيانات.",long1:"في مكان ما، تتكلم مجموعة مبلَغة لغة هذا الشعب. تعبئتهم هي الطريق الأكثر مباشرة.",long2:"لا توجد مجموعة مبلَغة تتكلم هذه اللغة، لكن لدى شعوب قريبة مؤمنون.",long3:"لا يوجد بالقرب إلا مؤمنون من ثقافة مختلفة. الوصول إلى هذا الشعب يحتاج إلى عاملين عبر الثقافات."},res:{bible:"الكتاب المقدس",film:"فيلم يسوع",audio:"صوتيات",radio:"راديو"},mob:{legend:"مفتاح الخريطة",legendUnreached:"مجموعة غير مبلَغة",searchPlaceholder:"ابحث عن مجموعة غير مبلَغة أو دولة أو لغة",kind:"أي المجموعات تُعرض",listUnreached:"المجموعات غير المبلَغة",listReached:"المجموعات المُبشَّرة",searchReached:"ابحث عن مجموعة مُبشَّرة أو دولة أو لغة",introReached:"اختر مجموعة مُبشَّرة (الأكثر مؤمنين أولًا)، أو انقر نقطة خضراء على الخريطة، لترى المجموعات غير المبلَغة الأقرب إلى مؤمنيها.",pFilter:"تصفية حسب مستوى P",pAll:"الكل",loading:"جارٍ تحميل الشعوب…",intro:"اختر مجموعة غير مبلَغة (الأكبر أولًا)، أو انقر نقطة حمراء على الخريطة، لترى مَن تعبّئ.",noMatch:"لا توجد نتائج.",back:"كل المجموعات",people:"{n} نسمة",believersNear:"نحو {n} مؤمن بين الجيران أدناه.",resources:"الموارد بلغته",export:"تصدير شرائح الجمهور (CSV)",openBridge:"خطّط لحركة بلغة {lang}",samePeople:"الشعب نفسه",cardStats:"~{b} مؤمن · على بعد {km} كم",noNeighbors:"لا يوجد جيران مبلَغون في هذه البيانات.",caveat:"تقديرات من بيانات peoplegroups.org. تحقّق من الواقع المحلي قبل التصرف.",loadError:"تعذّر تحميل بيانات الشعوب: {message}",legendReached:"مجموعة مُبشَّرة",introBoth:"اختر مجموعة غير مُبشَّرة (الأكبر أولًا)، أو انقر نقطة على الخريطة. النقطة الحمراء تُظهر المؤمنين الذين يمكن تعبئتهم لأجلها، والنقطة الخضراء تُظهر المجموعات غير المُبشَّرة الأقرب إلى مؤمنيها.",reachedTitle:"مُبشَّرة: 2% أو أكثر من الإنجيليين",reachedLong:"نحو {n} مؤمن. في الأسفل المجموعات غير المُبشَّرة التي تَعُدّ هذه المجموعة من أقرب جيرانها المُبشَّرين.",reachCount:"{n} مجموعة غير مُبشَّرة · {p} نسمة",cardStatsU:"{p} نسمة · على بُعد {km} كم",showNeighbors:"اعرض جيرانها",noUnreachedNeighbors:"لا توجد مجموعة غير مُبشَّرة تَعُدّ هذه المجموعة من أقرب جيرانها المُبشَّرين.",showAll:"اعرض الكل ({n})",eFilter:"اعرض الجيران حسب مستوى E",sheetHide:"إخفاء القائمة",sheetShow:"إظهار القائمة"},camp:{intro:"لغات الجسر: لغات يتكلمها مؤمنون وشعوب غير مبلَغة. حركة واحدة بهذه اللغة، موجهة إلى حيث يعيش المؤمنون، يمكنها أن تحفّزهم للوصول إلى غير المبلَغين بلغتهم.",searchPlaceholder:"ابحث عن لغة أو دولة",minBelievers:"على الأقل",exportAll:"تصدير القائمة (CSV)",unreachedPeople:"{n} غير مبلَغ",believers:"~{n} مؤمن",believersIn:"مؤمنون في: {list}",back:"كل اللغات",bigBelievers:"مؤمن للتعبئة ({g} مجموعة، {c} دولة)",bigUnreached:"غير مبلَغ للوصول إليهم ({g} مجموعة، {c} دولة)",export:"تصدير هذه الحركة (CSV)",whereToRun:"أين تُطلقها: المؤمنون حسب الدولة",believersInGroups:"~{n} في {g} مجموعة",whoTheyReach:"مَن يمكنهم الوصول إليه"},letter:{button:"اكتب رسالة",title:"رسالة إلى مؤمني {group}",greeting:"أيها الأصدقاء الأعزاء من مؤمني {group} في {country}،",intro:"هذه {n} من الشعوب غير المبلَغة تعدّكم من أقرب المؤمنين إليها ({level}). ولا يعيش بينها إلا قليل من المؤمنين حتى الآن.",item:"{name}، {country}: {pop} نسمة، يتكلمون {language}، على بُعد {km} كم.",pray:"صلّوا لأجلهم: {url}",more:"…و{n} غيرها. القائمة الكاملة في ملف CSV المُصدَّر.",close:"هل ستصلّون لأجلهم وتسألون الله كيف يمكن لكنيستكم أن تباركهم؟ كل شعب من هذه الشعوب محبوب من الله.",sign:"باسم يسوع،",copy:"انسخ الرسالة",download:"تنزيل (.txt)"},packet:{button:"حزمة الصلاة",label:"{group}: جيرانها غير المبلَغين ({level})",labelCapped:"{group}: أقرب {n} من جيرانها غير المبلَغين الـ{total} ({level})"}},"./locales/ar/pinHint.json":{line1:"اضغط على نقطة ملوّنة",line2:"لا يزال هناك من يحتاج إلى الصلاة"},"./locales/ar/wall.json":{title:"جدار الشعوب",toPortrait:"📱 التبديل إلى الوضع الطولي",toLandscape:"🖼️ التبديل إلى الوضع العرضي",currentLandscape:"الحالي: عرضي (4 × 3 أقدام)",currentPortrait:"الحالي: طولي (3 × 4 أقدام)",resetZoom:"إعادة ضبط التكبير",groupsLoaded:"الشعوب المحمّلة: {n}",loading:"جارٍ تحميل الشعوب…",offlineTitle:"تعذّر الوصول إلى بيانات الصلاة المباشرة.",offlineBody:"يقرأ الجدار شعوبه من pray.doxa.life. قد تكون غير متصل، أو قد لا تسمح الواجهة البرمجية بعنوان هذه الصفحة على خادم تطوير محلي.",tryAgain:"حاول مرة أخرى",prayedCount:"صلّوا: {n}",viewPrayers:"عرض الصلوات",prayerTools:"أدوات الصلاة",close:"إغلاق",unknown:"غير معروف",unknownGroup:"شعب غير معروف",status:"الحالة:",unengaged:"غير مُبشَّر",prayingNow:"هل تصلي الآن من أجل هذا الشعب؟",yesPraying:"نعم، أنا أصلي",thankYou:"شكرًا لصلاتك!",sharePrayer:"شارك صلاتك (اختياري)",prayerPlaceholder:"اكتب صلاتك هنا…",sendPrayer:"إرسال الصلاة",peopleGroup:"شعب",chatsTitle:"محادثات الشعب",id:"المعرّف:",location:"الموقع:",na:"غير متوفر",havePrayed:"صلّوا: {n}",youPrayed:"✓ لقد صلّيت!",prayForGroup:"🙏 صلِّ من أجل هذا الشعب",prayersComments:"الصلوات والتعليقات",noComments:"لا صلوات أو تعليقات بعد. كن الأول!",commentPlaceholder:"شارك صلاتك أو أفكارك…",postComment:"نشر التعليق",noPeopleId:"ليس لهذا الشعب معرّف PeopleID3",statusUnknown:"الحالة غير معروفة",printPoster:"🖨️ طباعة ملصق عالي الدقة",printPreparing:"جارٍ تجهيز الملصق: {n} من {total} صورة",printMissing:"صور تعذّر تحميلها: {n}. ستُطبع مربعاتٍ رمادية.",blessBanner:"باركوا الأمم باسم يسوع",modeLabel:"وضع الجدار",modeBless:"بركة",modeSocial:"تفاعلي",shareSoon:"المشاركة ستأتي لاحقًا.",drawLibError:"تعذّر على الجدار تحميل مكتبة الرسم الخاصة به:",posterSize:"حجم الملصق",posterSubtitle:"DOXA (δόξα) تعني المجد. حركة صلاة عالمية تبارك هذه الشعوب الـ {n} باسم يسوع. اعرف المزيد وانضم عبر pray.doxa.life.",glueHere:"الصق الورقة العلوية هنا",themesLabel:"مواضيع الصلاة",oldTestament:"العهد القديم",newTestament:"العهد الجديد",themeTreasure:"الكنز",themeMountain:"الجبل",themeSea:"البحر",posterClosing:"يسوع المسيح هو حجر الزاوية، ونحن حجارة حيّة. هذه الشعوب هي مكافأة آلامه. لنحمل دعوتنا الكهنوتية: باركوهم باسمه، وانضموا إلى العائلة العالمية في الصلاة.",journeyCalled:"الدعوة",journeyPromised:"الوعد",journeyRedeemed:"مُفتَدون",journeyCornerstone:"حجر الزاوية",journeyChildren:"أبناء إبراهيم",journeyPriesthood:"كهنوت ملوكي",journeySent:"مُرسَلون إلى الهالكين",peopleGroupCount:"لا شعوب | شعب واحد | شعبان | {n} شعوب | {n} شعبًا | {n} شعب",listCount:"لا قوائم | قائمة واحدة | قائمتان | {n} قوائم | {n} قائمة | {n} قائمة",stockCard:"بطاقة",stockPostcard:"بطاقة بريدية",stockLandscape:"أفقي",hud:{kindPoster:"ملصق",kindList:"قائمة",kindPacket:"حزمة صلاة",fetchingPoster:"جارٍ جلب الملصق",generatingPoster:"جارٍ إنشاء الملصق",openingPrint:"جارٍ فتح نافذة الطباعة",printOpened:"فُتحت نافذة الطباعة",readyToPrint:"جاهز للطباعة",printNow:"طباعة",saving:"جارٍ الحفظ",fetchingRecords:"جارٍ جلب البيانات",fetchingGroups:"جارٍ جلب الشعوب",layingOutRows:"لا صفوف | صف واحد قيد الترتيب | صفّان قيد الترتيب | {n} صفوف قيد الترتيب | {n} صفًا قيد الترتيب | {n} صف قيد الترتيب",layingOutCards:"لا بطاقات | بطاقة واحدة قيد الترتيب | بطاقتان قيد الترتيب | {n} بطاقات قيد الترتيب | {n} بطاقةً قيد الترتيب | {n} بطاقة قيد الترتيب",printingGroups:"لا شعوب | طباعة شعب واحد | طباعة شعبين | طباعة {n} شعوب | طباعة {n} شعبًا | طباعة {n} شعب",kindCardDeck:"مجموعة البطاقات",kindPrayerList:"قائمة الصلاة",saved:"تم الحفظ",noRecords:"لا تحتوي هذه القائمة على شعوب للطباعة",noPoster:"لا يتوفر ملصق لهذه القائمة",posterNotFound:"لم يُعثر على الملصق ({status})",posterBlank:"خرج الملصق المُنشأ فارغًا",noApi:"لم تُهيَّأ خدمة الشعوب",fetchFailed:"تعذّر تحميل الشعوب ({status})"},posterAlt:"{label} — ملصق صلاة",posterAltAction:"{label} — ملصق صلاة (انقر للمعاينة والطباعة)"},"./locales/de/aria.json":{backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden",searchPeopleGroups:"Volksgruppen suchen",resetAllFilters:"Alle Filter und die Suche zurücksetzen",selectAllRows:"Alle Zeilen auswählen",deselectAllRows:"Auswahl aller Zeilen aufheben",rowDetail:"Zeilendetails",dismissHint:"Hinweis schließen",resizeFiltersRail:"Filterleiste in der Größe ändern",resizeFiltersRailHint:"Ziehen oder Pfeiltasten verwenden, um die Filterleiste in der Größe zu ändern",resizeChartsRail:"Diagrammleiste in der Größe ändern",resizeChartsRailHint:"Ziehen oder Pfeiltasten verwenden, um die Diagrammleiste in der Größe zu ändern",resizeMapTableSplit:"Aufteilung zwischen Karte und Tabelle ändern",resizeMapTableSplitHint:"Ziehen oder Pfeiltasten verwenden, um die Aufteilung zwischen Karte und Tabelle zu ändern",resizeTable:"Tabellenhöhe ändern",resizeTableHint:"Ziehen oder Pfeiltasten verwenden, um die Tabelle in der Größe zu ändern",resizeDashboardHeight:"Höhe des Dashboards ändern",resizeDashboardHeightHint:"Ziehen oder Pfeiltasten verwenden, um die Höhe des Dashboards zu ändern",removeFilter:"Filter {name} entfernen",closeDetail:"Details schließen",filterBreadcrumb:"Filterpfad",railViews:"Ansichten der Leiste",upgCountLegend:"Legende der UPG-Anzahl",donutChart:"Ringdiagramm: {title}"},"./locales/de/buttons.json":{prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile",packetVariantAria:"Detailgrad des Gebetspakets",packetFull:"Vollständig",packetLightweight:"Kompakt",working:"Wird bearbeitet…",postersPerRowAuto:"Automatisch"},"./locales/de/grid.json":{search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter.",search_people_or_countries:"Volksgruppen oder Länder suchen…",cards_per_row:"Karten pro Zeile",cards_per_row_auto:"Automatisch"},"./locales/de/mapui.json":{map:"Karte",marker:"Kartenmarkierung",closePopup:"Popup schließen",zoomIn:"Vergrößern",zoomOut:"Verkleinern",resetBearing:"Ziehen, um die Karte zu drehen; klicken, um nach Norden auszurichten",toggleAttribution:"Quellenangaben ein-/ausblenden",mapFeedback:"Feedback zur Karte",enterFullscreen:"Vollbild",exitFullscreen:"Vollbild beenden",findMyLocation:"Meinen Standort finden",locationNotAvailable:"Standort nicht verfügbar",enableGlobe:"Globus einschalten",disableGlobe:"Globus ausschalten",ctrlScroll:"Strg + Scrollen zum Zoomen der Karte",cmdScroll:"⌘ + Scrollen zum Zoomen der Karte",twoFingers:"Mit zwei Fingern die Karte bewegen",mapboxHomepage:"Mapbox-Startseite",maplibreLogo:"MapLibre-Logo"},"./locales/de/messages.json":{menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntroA:"Wie würden Sie eine Menge von fünftausend speisen? Jesus ließ sie in Gruppen zu fünfzig und hundert lagern, und das Unmögliche wurde teilbar (Lukas 9,14). Dasselbe haben wir mit den 2.106 unerreichten Volksgruppen getan: 27 Listen von etwa fünfzig bis hundert. Jede Liste druckt als Gebetspaket und als Poster, damit 27 Jünger, Gemeinden oder einheimische Leiter je eine tragen können — und für sie beten ",upg100WallIntroEmph:"mit dem Namen ihrer Volksgruppe",upg100WallIntroB:".",loadingNamed:"{name} wird geladen…",couldNotLoadNamed:"{name} konnte nicht geladen werden.",engineMissing:"Die Karten-Engine {engine} wurde nicht geladen.",packetFailed:"Heft fehlgeschlagen: {reason}",selectionPacketFailed:"Heft der Auswahl fehlgeschlagen: {reason}",posterOneTerritory:"Das Plakat druckt ein Gebiet auf einmal — {count} ausgewählt.",selectionPosterFailed:"Plakat der Auswahl fehlgeschlagen: {reason}",mapUnavailable:"Karte nicht verfügbar",copied:"Kopiert!",copyFailed:"Kopieren fehlgeschlagen — Strg/Cmd-C drücken",engineNotLoaded:"Karten-Engine nicht geladen",engineNotLoadedDetail:"Die Karten-Engine {engine} wurde nicht geladen. Liste und Legende sind nicht betroffen.",viewLoadFailed:"Diese Ansicht konnte nicht geladen werden.",retry:"Erneut versuchen",noMapboxToken:"Kein Mapbox-Token",noMapboxTokenDetail:"Kein Mapbox-Token konfiguriert. Liste und Legende sind nicht betroffen.",loadingBoundaries:"Grenzen werden geladen…",fetchingUupgs:"{n} UUPGs werden abgerufen…",mapStatusCounts:"Flächen: {polys} · Zonen: {zones}/{total} · Pins: {pins}",tapTerritoriesHint:"Tippen Sie auf Gebiete auf der Karte oder auf Legendenzeilen, um sie hinzuzufügen · erneut tippen zum Entfernen",territoriesSelected:"Gebiete: {count}",bandInRange:"✓ Bereich 50–100",bandOutOfRange:"Bereich 50–100",mapContextLost:"Diese Karte wurde entladen, um Grafikspeicher freizugeben.",nOfTotal:"{n} von {total}",mapInitFailed:"Karte konnte nicht initialisiert werden — Token und Container prüfen",countryWallIntroA:"Ein Poster pro Land, bereit zum Beten, Drucken und Aufhängen — und für sie beten ",countryWallIntroB:". Regionen und Länder sind danach geordnet, wie viele unerreichte Volksgruppen sie umfassen, damit der größte Bedarf vorne steht.",countryWallSoon:"Demnächst: Für jedes Land wird eine Gebetsliste erstellt, die jede unerreichte Volksgruppe darin mit Namen nennt.",countryWallHeading:"Länderposter — Gebetslisten und Poster",largerScreenNotice:"Diese experimentelle Karte ist für große Bildschirme gebaut. Sie öffnet sich hier, aber Teile passen oder funktionieren auf einem Telefon womöglich nicht gut.",desktopOnlyNotice:"{label} funktioniert nur am Desktop – öffnen Sie diese Seite an einem Computer.",noticeDismiss:"Schließen",countryPosterTooMany:"Zu viele Volksgruppen, um lesbar auf ein Plakat zu passen – an einer Lösung wird gearbeitet."},"./locales/de/neighbor.json":{brand:"Meine UPG-Nachbarn",chooseView:"Ansicht wählen",views:{cockpit:"Überblick",sendMap:"Sendekarte",flowerMesh:"Blütennetz",langCluster:"Sprachcluster",flowers:"Blüten",mobilize:"Mobilisieren",campaigns:"Bewegungen"},hints:{cockpit:"Crossfilter-Zentrale",sendMap:"Bögen von erreicht zu unerreicht",flowerMesh:"radiale Blüte",langCluster:"sprachlich begrenzte Mengen",flowers:"Familie · Sprache · Dialekt als Kerne, feine Blütenblätter"},title:{overview:"Meine UPG-Nachbarn · Überblick",send:"Meine UPG-Nachbarn · SEND",langClusters:"Meine UPG-Nachbarn · Sprachcluster",flowerMesh:"Meine UPG-Nachbarn · Blütennetz"},search:"Suchen",searchCockpit:"Ziel / Sender / Sprache suchen…",searchStrip:"Ziel / Sprache / Sender suchen…",searchBrush:"Suchen und auswählen",remove:"{label} entfernen",selectTarget:"Unerreichtes Zielland wählen",loadingSend:"SEND-Karte wird geladen…",send:{unreachedTarget:"Unerreichtes Ziel —",clickOne:"eines anklicken",toFocus:"zum Fokussieren",reachedSender:"Erreichter Sender (SEND →)"},pctChristian:"{n} % Christen",groups:"Gruppen: {n}",people:"Menschen",unreached:"unerreicht",reached:"erreicht",unknown:"Unbekannt",lc:{loading:"Volksgruppen werden geladen…",apiDown:"Die Live-API von doxa ist nicht erreichbar: {message}",clusters:"Sprachcluster",pgs:"unerreicht",provinces:"IN/CN-Provinzen",withReach:"mit erreichter Entsprechung",legendCluster:"Unerreichter Sprachcluster (Größe = Anzahl Gruppen)",legendReached:"Erreichter Nachbar (über die Sprache zugeordnet)",legendHelp:"grüner Ring = Cluster hat eine erreichte Entsprechung · Cluster anklicken zum Vertiefen",setCount:"Bounded set — unerreichte Gruppen: {n}",more:"+{n} weitere",reachedSame:"Erreichte Nachbarn (gleiche Sprache): {n}",frontier:"Keine erreichte Volksgruppe teilt diese Sprache in diesem Datensatz. Eine Grenze: betet um Arbeiter (Lukas 10,2).",openFlower:"Blütenansicht öffnen ▸"},fm:{languageMesh:"Sprachnetz",reachedNeighbors:"erreichte Nachbarn",countries:"Länder",upgsInCenter:"UPGs im Zentrum",meshLinks:"Netzverbindungen",growing:"Die Blüte wächst…",upgs:"UPGs: {n}",people:"Menschen: {n}",legendTitle:"Die Blüte",unreachedTarget:"Unerreichtes Ziel (doxa-2000)",reachedDeeper:"Erreichter Nachbar (dunkler = mehr Christen)",sendPath:"SEND-Pfad → zu den Unerreichten",viaCluster:"über einen verwandten Sprachcluster",mesh:"Zusammenarbeitsnetz gleicher Sprache",whorl:"innerer Kreis = gleiches Land · Blütenblätter = Nachbarländer",loadError:"Die Daten der erreichten Nachbarn konnten nicht geladen werden"},strip:{lens:"Linse",lensAria:"Sprachlinse",noLens:"— keine Linse —",color:"Farbe",colorAria:"Erreichte Sender färben nach",pctReached:"% erreicht",religion:"Religion",senderLanguage:"Sprache des Senders",senderCountry:"Land des Senders",clear:"löschen",noSenders:"keine Sender",byLanguage:"Sender nach Sprache",byCountry:"Sender nach Land",quantile:"% erreicht (Quantile)",histogram:"Histogramm des Erreichtheitsanteils",religionFamily:"Religionsfamilie",bridgeType:"Brückentyp",donut:"Ring nach Kategorie"},list:{hidden:"· durch Filter ausgeblendet: {n}",clear:"Löschen",copy:"Kopieren",csvDownloaded:"CSV heruntergeladen ({n})",copied:"Kopiert ({n})",copyFailed:"Kopieren fehlgeschlagen – Strg/Cmd-C drücken",sendersAvailable:"{n} Sender verfügbar",buildSendList:"Sendeliste erstellen",noSenders:"Keine Sender passen zu den aktuellen Filtern",sendersHidden:"{n} Sender ausgeblendet — einen Filter löschen, um sie zu sehen",noReachedYet:"Dieses Ziel hat im gespeicherten Datensatz noch keine erreichten Nachbarn",pickTarget:"Ein rotes Ziel wählen",clustersNearby:"{c} unerreichte Cluster · {s} erreichte Sender in der Nähe",tapBubble:"Tippe auf eine rote Blase auf der Karte, um ihre Sendeliste zu erstellen.",colPeopleGroup:"Volksgruppe",colCountry:"Land",colLanguage:"Sprache",colPopulation:"Bevölkerung",colReligion:"Religion",colPctChristian:"% Christen",colAdjacency:"Nachbarschaft",colCode:"Kennung",sortMobilization:"Mobilisierung",sortFrontier:"Grenzgebiete zuerst",colName:"Name"},fc:{clusterBy:"Gruppieren nach",flowers:"Blüten",unreached:"unerreicht",legendTitle:"Blütencluster",legendCore:"Unerreichter Sprachcluster (Kern, Größe = Anzahl Gruppen)",legendPetal:"Erreichter Nachbar (fein, echte Koordinaten)",legendHelp:"oberen Kreis anklicken zum Neugruppieren · Kern anklicken, um die Blütenblätter zu öffnen",clustering:"Die Ernte wird nach Sprache gruppiert…",signLanguage:"Gebärdensprache",mode:{family:"Familie",language:"Sprache",dialect:"Dialekt"},size:{fewerBigger:"weniger · größer",more:"mehr",most:"am meisten"}},mc:{greenEncoding:"Kodierung der Grünfarbe",provinces:"IN/CN-Provinzen",provincesTitle:"Provinzgrenzen von IN/CN einblenden",resetFocus:"✕ Fokus zurücksetzen",needsToken:"Die Karte braucht einen Mapbox-Token (tk in profile-config)…",rendering:"Das Erntefeld wird gezeichnet…"},bloom:"Blüte",cockpit:{viewSwitch:"Karten- oder Blumenansicht",loading:"Erntefeld wird geladen…",unreachedTarget:"unerreichtes Ziel",map:"Karte",flower:"Blume",details:"Details",senders:"Sender →",clustersHidden:"Cluster · {n} ausgeblendet",legendSend:"SEND (durchgezogen = gleiche Sprache · gestrichelt = Cluster · gepunktet = im Land)",legendSelection:"Auswahl · Radius = log. Bevölkerung · Lukas 10,2",navySend:"Marineblau = SEND",goldMesh:"Gold = Netz gleicher Sprache"},flower:{pickTarget:"Ein rotes Ziel auf der Karte wählen —",bloomsHere:"seine erreichten Nachbarn erblühen hier als Blume."},sm:{counts:"{u} UPGs · {s} erreichte Sender",noSenders:"Keine geeigneten erreichten Sender mit bekanntem Länderschwerpunkt für dieses Ziel."},about:{button:"So funktioniert es",title:"Nahe Nachbarn mobilisieren",close:"Schließen",why:"Die Gläubigen, die ein unerreichtes Volk am besten erreichen können, stehen ihm meist in Sprache und Kultur am nächsten. Dieses Werkzeug findet sie für jede unerreichte Volksgruppe mit Ralph D. Winters E-Skala und P-Skala, damit Sie planen können, wen Sie mobilisieren, in welcher Sprache und wo.",greenTitle:"Für Gemeinden: bei einem grünen Punkt beginnen",green:"Wählen Sie eine erreichte (grüne) Gruppe, in der Liste Erreichte Gruppen oder über einen grünen Punkt, um die unerreichten Völker zu sehen, die ihre Gläubigen am besten erreichen können, eine E-Stufe nach der anderen, die nächsten zuerst. Exportieren Sie dann die Liste (CSV), schreiben Sie ihren Gläubigen einen Brief oder drucken Sie ein Gebetspaket, für diese Gemeinde oder ihre Missionspartner.",eTitle:"E-Skala: die Distanz, die ein Zeuge überwinden muss",pTitle:"P-Skala: die Distanz zwischen einem Volk und einer Gemeinde",dataTitle:"Daten und Grenzen",data:"Erreicht heißt mindestens 2 % Evangelikale (IMB-Definition). Sprache und Kultur werden aus dem Sprachcode und der IMB-Völkertaxonomie (Cluster, Affinitätsblock, Sprachfamilie) abgeleitet: gute öffentliche Näherungswerte, keine Feldbewertungen. Die Zahl der Gläubigen ist aus Bevölkerung und Evangelikalen-Spannen geschätzt; sie dient zur Größenabschätzung eines Publikums, nicht als Zählung.",source:"Volksgruppendaten: peoplegroups.org (IMB), people_groups.csv. E-Skala und P-Skala: Ralph D. Winter, Lausanner Kongress, 1974."},e:{short1:"E-1 · gleiche Sprache",short2:"E-2 · nahe Kultur",short3:"E-3 · in der Nähe, andere Kultur",title1:"E-1 · Sie sprechen dieselbe Sprache",title2:"E-2 · Eine nahe Kultur",title3:"E-3 · In der Nähe, eine andere Kultur",long1:"Gläubige, die die Sprache dieser Gruppe sprechen. Sie können das Evangelium ohne Sprachbarriere weitergeben, und eine Bewegung in dieser Sprache kann sie mobilisieren.",long2:"Gläubige aus einem verwandten Volk: gleiches Völkercluster oder gleiche Sprachfamilie im selben Affinitätsblock. Ein kürzerer kultureller Schritt als ein Neuanfang.",long3:"Gläubige in der Nähe (im Umkreis von 600 km oder im selben Land) mit anderer Kultur. Sie teilen die Region, nicht die Sprache.",rlong1:"Unerreichte Gruppen, die die Sprache dieser Gruppe sprechen. Ihre Gläubigen können sie ohne Sprachbarriere erreichen.",rlong2:"Unerreichte Gruppen aus einem verwandten Volk: derselbe Volkscluster oder dieselbe Sprachfamilie im selben Affinitätsblock.",rlong3:"Unerreichte Gruppen in der Nähe (bis 600 km oder im selben Land) mit einer anderen Kultur."},p:{title0:"Keine erreichten Nachbarn gefunden",title1:"Es gibt Gläubige in seiner Sprache",title2:"Die nächsten Gläubigen sind eine nahe Kultur",title3:"Die nächsten Gläubigen sind eine ferne Kultur",long0:"In diesen Daten passt keine erreichte Gruppe nach Sprache, Kultur oder Entfernung zu diesem Volk.",long1:"Irgendwo spricht eine erreichte Gruppe die Sprache dieses Volkes. Sie zu mobilisieren ist der direkteste Weg.",long2:"Keine erreichte Gruppe spricht diese Sprache, aber verwandte Völker haben Gläubige.",long3:"In der Nähe gibt es nur Gläubige anderer Kultur. Dieses Volk zu erreichen braucht interkulturelle Mitarbeiter."},res:{bible:"Bibel",film:"JESUS-Film",audio:"Audio",radio:"Radio"},mob:{legend:"Kartenlegende",legendUnreached:"Unerreichte Gruppe",searchPlaceholder:"Unerreichte Gruppe, Land oder Sprache suchen",kind:"Welche Gruppen anzeigen",listUnreached:"Unerreichte Gruppen",listReached:"Erreichte Gruppen",searchReached:"Erreichte Gruppe, Land oder Sprache suchen",introReached:"Wählen Sie eine erreichte Gruppe (die mit den meisten Gläubigen zuerst) oder klicken Sie auf einen grünen Punkt der Karte, um die unerreichten Gruppen zu sehen, denen ihre Gläubigen am nächsten sind.",pFilter:"Nach P-Stufe filtern",pAll:"Alle",loading:"Volksgruppen werden geladen…",intro:"Wählen Sie eine unerreichte Gruppe (die größten zuerst) oder klicken Sie auf einen roten Punkt, um zu sehen, wen Sie mobilisieren können.",noMatch:"Keine Treffer.",back:"Alle Gruppen",people:"{n} Menschen",believersNear:"Etwa {n} Gläubige unter den Nachbarn unten.",resources:"Ressourcen in seiner Sprache",export:"Zielgruppensegmente exportieren (CSV)",openBridge:"Bewegung auf {lang} planen",samePeople:"gleiches Volk",cardStats:"~{b} Gläubige · {km} km entfernt",noNeighbors:"Keine erreichten Nachbarn in diesen Daten.",caveat:"Schätzungen aus Daten von peoplegroups.org. Prüfen Sie die Lage vor Ort, bevor Sie handeln.",loadError:"Die Volksgruppendaten konnten nicht geladen werden: {message}",legendReached:"Erreichte Gruppe",introBoth:"Wählen Sie eine unerreichte Gruppe (größte zuerst) oder klicken Sie auf einen Punkt der Karte. Ein roter Punkt zeigt die Gläubigen, die man für sie mobilisieren kann; ein grüner Punkt zeigt die unerreichten Gruppen, denen ihre Gläubigen am nächsten sind.",reachedTitle:"Erreicht: 2 % oder mehr Evangelikale",reachedLong:"Etwa {n} Gläubige. Unten stehen die unerreichten Gruppen, die diese Gruppe zu ihren nächsten erreichten Nachbarn zählen.",reachCount:"{n} unerreichte Gruppen · {p} Menschen",cardStatsU:"{p} Menschen · {km} km entfernt",showNeighbors:"Ihre Nachbarn zeigen",noUnreachedNeighbors:"Keine unerreichte Gruppe zählt diese Gruppe zu ihren nächsten erreichten Nachbarn.",showAll:"Alle {n} zeigen",eFilter:"Nachbarn nach E-Stufe zeigen",sheetHide:"Liste ausblenden",sheetShow:"Liste einblenden"},camp:{intro:"Brückensprachen: Sprachen, die sowohl Gläubige als auch unerreichte Völker sprechen. Eine Bewegung in dieser Sprache, dort angestoßen, wo die Gläubigen leben, kann sie mobilisieren, die Unerreichten in ihrer eigenen Sprache zu erreichen.",searchPlaceholder:"Sprache oder Land suchen",minBelievers:"Mindestens",exportAll:"Liste exportieren (CSV)",unreachedPeople:"{n} unerreicht",believers:"~{n} Gläubige",believersIn:"Gläubige in: {list}",back:"Alle Sprachen",bigBelievers:"Gläubige zum Mobilisieren ({g} Gruppen, {c} Länder)",bigUnreached:"Unerreichte zum Erreichen ({g} Gruppen, {c} Länder)",export:"Diese Bewegung exportieren (CSV)",whereToRun:"Wo sie laufen soll: Gläubige nach Land",believersInGroups:"~{n} in {g} Gruppen",whoTheyReach:"Wen sie erreichen können"},letter:{button:"Einen Brief schreiben",title:"Ein Brief an die Gläubigen der {group}",greeting:"Liebe Freunde unter den Gläubigen der {group} ({country}),",intro:"Diese {n} unerreichten Völker zählen euch zu ihren nächsten Gläubigen ({level}). Unter ihnen leben bisher nur wenige Gläubige.",item:"{name}, {country}: {pop} Menschen, Sprache {language}, {km} km entfernt.",pray:"Betet für sie: {url}",more:"…und {n} weitere. Die vollständige Liste steht im CSV-Export.",close:"Werdet ihr für sie beten und Gott fragen, wie eure Gemeinde sie segnen kann? Jedes dieser Völker ist von Gott geliebt.",sign:"In Jesu Namen,",copy:"Brief kopieren",download:"Herunterladen (.txt)"},packet:{button:"Gebetspaket",label:"{group}: ihre unerreichten Nachbarn ({level})",labelCapped:"{group}: die {n} nächsten ihrer {total} unerreichten Nachbarn ({level})"}},"./locales/de/pinHint.json":{line1:"Tippe auf einen farbigen Punkt",line2:"jemand braucht noch Gebet"},"./locales/de/wall.json":{title:"Wand der Volksgruppen",toPortrait:"📱 Hochformat",toLandscape:"🖼️ Querformat",currentLandscape:"Aktuell: Querformat (4 × 3 Fuß)",currentPortrait:"Aktuell: Hochformat (3 × 4 Fuß)",resetZoom:"Zoom zurücksetzen",groupsLoaded:"Geladen: {n}",loading:"Volksgruppen werden geladen…",offlineTitle:"Die Live-Gebetsdaten sind nicht erreichbar.",offlineBody:"Die Wand liest ihre Volksgruppen von pray.doxa.life. Vielleicht sind Sie offline, oder auf einem lokalen Entwicklungsserver lässt die API die Adresse dieser Seite nicht zu.",tryAgain:"Erneut versuchen",prayedCount:"Gebetet: {n}",viewPrayers:"Gebete ansehen",prayerTools:"Gebetswerkzeuge",close:"Schließen",unknown:"Unbekannt",unknownGroup:"Unbekannte Volksgruppe",status:"Status:",unengaged:"unerreicht",prayingNow:"Beten Sie gerade für diese Volksgruppe?",yesPraying:"Ja, ich bete",thankYou:"Danke für Ihr Gebet!",sharePrayer:"Ihr Gebet teilen (optional)",prayerPlaceholder:"Schreiben Sie Ihr Gebet hier…",sendPrayer:"Gebet senden",peopleGroup:"Volksgruppe",chatsTitle:"Volksgruppen-Chats",id:"ID:",location:"Ort:",na:"k. A.",havePrayed:"Gebetet: {n}",youPrayed:"✓ Sie haben gebetet!",prayForGroup:"🙏 Für diese Volksgruppe beten",prayersComments:"Gebete & Kommentare",noComments:"Noch keine Gebete oder Kommentare. Seien Sie der Erste!",commentPlaceholder:"Teilen Sie Ihr Gebet oder Ihre Gedanken…",postComment:"Kommentar posten",noPeopleId:"Diese Volksgruppe hat keine PeopleID3",statusUnknown:"Status unbekannt",printPoster:"🖨️ HD-Poster drucken",printPreparing:"Poster wird vorbereitet: {n} von {total} Fotos",printMissing:"Fotos, die nicht geladen werden konnten: {n}. Sie werden als graue Felder gedruckt.",blessBanner:"Segnet die Nationen im Namen Jesu",modeLabel:"Modus der Wand",modeBless:"Segnen",modeSocial:"Sozial",shareSoon:"Teilen kommt später.",drawLibError:"Die Wand konnte ihre Zeichenbibliothek nicht laden:",posterSize:"Postergröße",posterSubtitle:"DOXA (δόξα) bedeutet Herrlichkeit. Eine weltweite Gebetsbewegung segnet diese {n} Volksgruppen im Namen Jesu. Mehr erfahren und mitmachen: pray.doxa.life.",glueHere:"obere Bahn hier aufkleben",themesLabel:"Gebetsthemen",oldTestament:"Altes Testament",newTestament:"Neues Testament",themeTreasure:"Schatz",themeMountain:"Berg",themeSea:"Meer",posterClosing:"Jesus Christus ist der Eckstein, und wir sind lebendige Steine. Diese Volksgruppen sind der Lohn seines Leidens. Nehmen wir unsere priesterliche Berufung an: Segnen wir sie in seinem Namen und schließen wir uns der weltweiten Gebetsfamilie an.",journeyCalled:"Berufen",journeyPromised:"Verheißen",journeyRedeemed:"Erlöst",journeyCornerstone:"Der Eckstein",journeyChildren:"Kinder Abrahams",journeyPriesthood:"Eine königliche Priesterschaft",journeySent:"Gesandt zu den Verlorenen",peopleGroupCount:"{n} Volksgruppe | {n} Volksgruppen",listCount:"{n} Liste | {n} Listen",stockCard:"Karte",stockPostcard:"Postkarte",stockLandscape:"Querformat",hud:{kindPoster:"Poster",kindList:"Liste",kindPacket:"Gebetsheft",fetchingPoster:"Poster wird geladen",generatingPoster:"Poster wird erstellt",openingPrint:"Druckdialog wird geöffnet",printOpened:"Druckdialog geöffnet",readyToPrint:"bereit zum Drucken",printNow:"Drucken",saving:"wird gespeichert",fetchingRecords:"Daten werden geladen",fetchingGroups:"Volksgruppen werden geladen",layingOutRows:"{n} Zeile wird gesetzt | {n} Zeilen werden gesetzt",layingOutCards:"{n} Karte wird gesetzt | {n} Karten werden gesetzt",printingGroups:"{n} Volksgruppe wird gedruckt | {n} Volksgruppen werden gedruckt",kindCardDeck:"Kartenset",kindPrayerList:"Gebetsliste",saved:"gespeichert",noRecords:"diese Liste enthält keine Volksgruppen zum Drucken",noPoster:"für diese Liste ist kein Plakat verfügbar",posterNotFound:"Plakat nicht gefunden ({status})",posterBlank:"das erzeugte Plakat ist leer",noApi:"kein Volksgruppen-Dienst konfiguriert",fetchFailed:"Volksgruppen konnten nicht geladen werden ({status})"},posterAlt:"{label} — Gebetsposter",posterAltAction:"{label} — Gebetsposter (zum Ansehen und Drucken klicken)"},"./locales/en/aria.json":{backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend",searchPeopleGroups:"Search people groups",resetAllFilters:"Reset all filters and search",selectAllRows:"Select all rows",deselectAllRows:"Deselect all rows",rowDetail:"Row detail",dismissHint:"Dismiss hint",resizeFiltersRail:"Resize filters rail",resizeFiltersRailHint:"Drag or use arrow keys to resize the filters rail",resizeChartsRail:"Resize charts rail",resizeChartsRailHint:"Drag or use arrow keys to resize the charts rail",resizeMapTableSplit:"Resize map/table split",resizeMapTableSplitHint:"Drag or use arrow keys to resize the map/table split",resizeTable:"Resize table height",resizeTableHint:"Drag or use arrow keys to resize the table",resizeDashboardHeight:"Resize dashboard height",resizeDashboardHeightHint:"Drag or use arrow keys to resize the dashboard's height",removeFilter:"Remove filter {name}",closeDetail:"Close detail",filterBreadcrumb:"Filter breadcrumb",railViews:"Rail views",upgCountLegend:"UPG count legend",donutChart:"{title} donut chart"},"./locales/en/buttons.json":{prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",working:"Working…",packetVariantAria:"Prayer packet detail",packetFull:"Full detail",packetLightweight:"Lightweight",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",postersPerRowAuto:"Auto"},"./locales/en/grid.json":{search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load More",full_profile:"Full Profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter.",search_people_or_countries:"Search people groups or countries…",cards_per_row:"Cards per row",cards_per_row_auto:"Auto"},"./locales/en/mapui.json":{map:"Map",marker:"Map marker",closePopup:"Close popup",zoomIn:"Zoom in",zoomOut:"Zoom out",resetBearing:"Drag to rotate map, click to reset north",toggleAttribution:"Toggle attribution",mapFeedback:"Map feedback",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",findMyLocation:"Find my location",locationNotAvailable:"Location not available",enableGlobe:"Enable globe",disableGlobe:"Disable globe",ctrlScroll:"Use Ctrl + scroll to zoom the map",cmdScroll:"Use ⌘ + scroll to zoom the map",twoFingers:"Use two fingers to move the map",mapboxHomepage:"Mapbox homepage",maplibreLogo:"MapLibre logo"},"./locales/en/messages.json":{menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntroA:"How would you feed a crowd of five thousand? Jesus sat them down in groups of fifty and a hundred, and the impossible became shareable (Luke 9:14). We did the same with the 2,106 unreached people groups: 27 lists of about fifty to a hundred. Each list prints as a prayer packet and a poster, so 27 disciples, churches or local leaders can each carry one — praying for them ",upg100WallIntroEmph:"by their people group name",upg100WallIntroB:".",loadingNamed:"Loading {name}…",couldNotLoadNamed:"Could not load {name}.",engineMissing:"The {engine} map engine did not load.",packetFailed:"Packet failed: {reason}",selectionPacketFailed:"Selection packet failed: {reason}",posterOneTerritory:"Poster prints one territory at a time — {count} selected.",selectionPosterFailed:"Selection poster failed: {reason}",mapUnavailable:"Map unavailable",copied:"Copied!",copyFailed:"Copy failed — press Ctrl/Cmd-C",engineNotLoaded:"map engine not loaded",engineNotLoadedDetail:"The {engine} map engine did not load. The list and legend are unaffected.",viewLoadFailed:"This view couldn't load.",retry:"Retry",noMapboxToken:"No Mapbox token",noMapboxTokenDetail:"No Mapbox token configured. The list and legend are unaffected.",loadingBoundaries:"Loading boundaries…",fetchingUupgs:"Fetching {n} UUPGs…",mapStatusCounts:"Areas: {polys} · zones: {zones}/{total} · pins: {pins}",tapTerritoriesHint:"Tap territories on the map or legend rows to add · tap again to remove",territoriesSelected:"Territories: {count}",bandInRange:"✓ 50–100 band",bandOutOfRange:"band 50–100",mapContextLost:"This map was unloaded to free graphics memory.",nOfTotal:"{n} of {total}",mapInitFailed:"Map failed to initialize — check token and container",countryWallIntroA:"One poster per country, ready to pray, print, and put on a wall — praying for them ",countryWallIntroB:". Regions and countries are ordered by how many unengaged people groups they hold, so the greatest need leads.",countryWallSoon:"Coming soon — a prayer list will be generated for each country, naming every unengaged people group within it.",countryWallHeading:"Country Posters — Prayer Lists & Posters",largerScreenNotice:"This experimental map is built for larger screens. It opens here, but parts of it may not fit or work well on a phone.",desktopOnlyNotice:"{label} only supports desktop — open this page on a desktop to use it.",noticeDismiss:"Dismiss",countryPosterTooMany:"Too many people groups to fit on one poster legibly — a solution is in progress."},"./locales/en/neighbor.json":{brand:"My UPG Neighbors",chooseView:"Choose a view",views:{cockpit:"Overview",sendMap:"Send Map",flowerMesh:"Flower Mesh",langCluster:"Language Clusters",flowers:"Flowers",mobilize:"Mobilize",campaigns:"Movements"},hints:{cockpit:"crossfilter hub",sendMap:"reached → unreached arcs",flowerMesh:"radial bloom",langCluster:"language bounded sets",flowers:"family · language · dialect cores + granular petals"},title:{overview:"My UPG Neighbor · Overview",send:"My UPG Neighbor · SEND",langClusters:"My UPG Neighbor · Language Clusters",flowerMesh:"My UPG Neighbor · Flower-Mesh"},search:"Search",searchCockpit:"Search target / sender / language…",searchStrip:"Search target / language / sender…",searchBrush:"Search and brush",remove:"remove {label}",selectTarget:"Select unreached target country",loadingSend:"Loading SEND map…",send:{unreachedTarget:"Unreached target —",clickOne:"click one",toFocus:"to focus it",reachedSender:"Reached sender (SEND →)"},pctChristian:"{n}% Christian",groups:"{n} groups",people:"people",unreached:"unreached",reached:"reached",unknown:"Unknown",lc:{loading:"Loading people groups…",apiDown:"The live doxa API is unreachable: {message}",clusters:"language clusters",pgs:"unreached",provinces:"IN/CN provinces",withReach:"with a reached match",legendCluster:"Unreached language cluster (size = number of groups)",legendReached:"Reached neighbor (matched by language)",legendHelp:"green ring = the cluster has a reached match · click a cluster to drill in",setCount:"Bounded set — unreached groups: {n}",more:"+{n} more",reachedSame:"Reached neighbors (same language): {n}",frontier:"No reached people group shares this language in this data set. A frontier: pray for laborers (Luke 10:2).",openFlower:"Open flower view ▸"},fm:{languageMesh:"language mesh",reachedNeighbors:"reached neighbors",countries:"countries",upgsInCenter:"UPGs in the center",meshLinks:"mesh links",growing:"Growing the flower…",upgs:"{n} UPGs",people:"{n} people",legendTitle:"The flower",unreachedTarget:"Unreached target (doxa-2000)",reachedDeeper:"Reached neighbor (deeper = more Christian)",sendPath:"SEND path → into the unreached",viaCluster:"via a related language cluster",mesh:"Same-language collaboration mesh",whorl:"inner whorl = same country · petals = surrounding countries",loadError:"Could not load the reached-neighbor data"},strip:{lens:"Lens",lensAria:"Language lens",noLens:"— no lens —",color:"Color",colorAria:"Color reached senders by",pctReached:"% reached",religion:"religion",senderLanguage:"Sender language",senderCountry:"Sender country",clear:"clear",noSenders:"no senders",byLanguage:"Senders by language",byCountry:"Senders by country",quantile:"% reached (quantile)",histogram:"Reached percent histogram",religionFamily:"Religion family",bridgeType:"Bridge type",donut:"Donut by category"},list:{hidden:"· {n} hidden by filters",clear:"Clear",copy:"Copy",csvDownloaded:"CSV downloaded ({n})",copied:"Copied ({n})",copyFailed:"Copy failed — press Ctrl/Cmd-C",sendersAvailable:"{n} senders available",buildSendList:"Build send list",noSenders:"No senders match the current filters",sendersHidden:"{n} senders hidden — clear a facet to see them",noReachedYet:"This target has no reached neighbors in the baked set yet",pickTarget:"Pick a red target",clustersNearby:"{c} unreached clusters · {s} reached senders nearby",tapBubble:"Tap a red bubble on the map to build its send list.",colPeopleGroup:"People group",colCountry:"Country",colLanguage:"Language",colPopulation:"Population",colReligion:"Religion",colPctChristian:"% Christian",colAdjacency:"Adjacency",colCode:"Code",sortMobilization:"Mobilization",sortFrontier:"Frontier first",colName:"Name"},fc:{clusterBy:"Cluster by",flowers:"flowers",unreached:"unreached",legendTitle:"Flower clusters",legendCore:"Unreached language cluster (core, size = number of groups)",legendPetal:"Reached neighbor (granular, real coordinates)",legendHelp:"click a top circle to re-cluster · click a core to bloom its petals",clustering:"Clustering the harvest by language…",signLanguage:"Sign Language",mode:{family:"Family",language:"Language",dialect:"Dialect"},size:{fewerBigger:"fewer · bigger",more:"more",most:"most"}},mc:{greenEncoding:"Green color encoding",provinces:"IN/CN provinces",provincesTitle:"Overlay IN/CN admin-1 boundaries",resetFocus:"✕ reset focus",needsToken:"The map needs a Mapbox token (tk in profile-config)…",rendering:"Rendering the harvest field…"},bloom:"Bloom",cockpit:{viewSwitch:"Map or flower view",loading:"Loading the harvest field…",unreachedTarget:"unreached target",map:"Map",flower:"Flower",details:"Details",senders:"senders →",clustersHidden:"clusters · {n} hidden",legendSend:"SEND (solid = same language · dashed = cluster · dotted = in-country)",legendSelection:"selection · radius = log of population · Luke 10:2",navySend:"navy = SEND",goldMesh:"gold = same-language mesh"},flower:{pickTarget:"Pick a red target on the map —",bloomsHere:"its reached neighbors bloom here as a flower."},sm:{counts:"{u} UPGs · {s} reached senders",noSenders:"No qualifying reached senders with a known country centroid for this target."},about:{button:"How it works",title:"Mobilizing near neighbors",close:"Close",why:"The believers best placed to reach an unreached people are usually the ones nearest to it in language and culture. This tool finds them for every unreached group, using Ralph D. Winter's E-scale and P-scale, so you can plan whom to mobilize, in which language, and where.",greenTitle:"For churches: start from a green dot",green:"Pick a reached (green) group, from the Reached groups list or a green dot, to see the unreached peoples its believers are best placed to reach, one E-level at a time, closest first. Then export the list (CSV), write a letter to its believers or print a prayer packet, for that church or its mission partners.",eTitle:"E-scale: the distance a witness must cross",pTitle:"P-scale: the distance between a people and a church",dataTitle:"Data and limits",data:"Reached means at least 2% evangelical (the IMB definition). Language and culture are judged from the language code and the IMB people taxonomy (cluster, affinity bloc, language family): good public proxies, not field assessments. Believer numbers are estimates from population and evangelical bands; use them to size an audience, not as counts.",source:"People group data: peoplegroups.org (IMB), people_groups.csv. E-scale and P-scale: Ralph D. Winter, Lausanne Congress, 1974."},e:{short1:"E-1 · same language",short2:"E-2 · near culture",short3:"E-3 · nearby, other culture",title1:"E-1 · They speak the same language",title2:"E-2 · A near culture",title3:"E-3 · Nearby, a different culture",long1:"Believers who speak this group's language. They can share the gospel without crossing a language barrier, and a mobilization movement in this language can reach them.",long2:"Believers from a related people: the same people cluster, or the same language family in the same affinity bloc. A shorter cultural step than starting from scratch.",long3:"Believers living nearby (within 600 km or in the same country) whose culture is different. They share the region, not the language.",rlong1:"Unreached groups who speak this group's language. Its believers can reach them without crossing a language barrier.",rlong2:"Unreached groups from a related people: the same people cluster, or the same language family in the same affinity bloc.",rlong3:"Unreached groups nearby (within 600 km or in the same country) whose culture is different."},p:{title0:"No reached neighbors found",title1:"Believers in its own language exist",title2:"The nearest believers are a near culture",title3:"The nearest believers are a distant culture",long0:"No reached group matched this people by language, culture or distance in this data.",long1:"Somewhere, a reached group speaks this people's language. Mobilizing them is the most direct path.",long2:"No reached group speaks this language, but related peoples have believers.",long3:"Only believers of a different culture are nearby. Reaching this people needs cross-cultural workers."},res:{bible:"Bible",film:"JESUS Film",audio:"Audio",radio:"Radio"},mob:{legend:"Map legend",legendUnreached:"Unreached group",searchPlaceholder:"Search an unreached group, country or language",kind:"Which groups to list",listUnreached:"Unreached groups",listReached:"Reached groups",searchReached:"Search a reached group, country or language",introReached:"Pick a reached group (most believers first), or click a green dot on the map, to see the unreached groups its believers are nearest to.",pFilter:"Filter by P-level",pAll:"All",loading:"Loading people groups…",intro:"Pick an unreached group (largest first), or click a red dot on the map, to see whom to mobilize.",noMatch:"Nothing matches.",back:"All groups",people:"{n} people",believersNear:"About {n} believers among the neighbors below.",resources:"Resources in its language",export:"Export audience segments (CSV)",openBridge:"Plan a {lang} mobilization movement",samePeople:"same people",cardStats:"~{b} believers · {km} km away",noNeighbors:"No reached neighbors in this data.",caveat:"Estimates from peoplegroups.org data. Check local realities before acting.",loadError:"Could not load the people-group data: {message}",legendReached:"Reached group",introBoth:"Pick an unreached group (largest first), or click a dot on the map. A red dot shows the believers to mobilize for it; a green dot shows the unreached groups its believers are nearest to.",reachedTitle:"Reached: 2% or more evangelical",reachedLong:"About {n} believers. Below are the unreached groups that count this group among their nearest reached neighbors.",reachCount:"{n} unreached groups · {p} people",cardStatsU:"{p} people · {km} km away",showNeighbors:"Show its neighbors",noUnreachedNeighbors:"No unreached group counts this group among its nearest reached neighbors.",showAll:"Show all {n}",eFilter:"Show neighbours by E-level",sheetHide:"Hide the list",sheetShow:"Show the list"},camp:{intro:"Bridge languages: languages spoken by believers and by unreached peoples. One mobilization movement in the language, aimed where the believers live, can stir them to reach the unreached in their own language.",searchPlaceholder:"Search a language or country",minBelievers:"At least",exportAll:"Export list (CSV)",unreachedPeople:"{n} unreached",believers:"~{n} believers",believersIn:"Believers in: {list}",back:"All languages",bigBelievers:"believers to mobilize ({g} groups, {c} countries)",bigUnreached:"unreached people to reach ({g} groups, {c} countries)",export:"Export this movement (CSV)",whereToRun:"Where to run it: believers by country",believersInGroups:"~{n} in {g} groups",whoTheyReach:"Whom they can reach"},letter:{button:"Write a letter",title:"A letter to the {group} believers",greeting:"Dear friends among the {group} believers in {country},",intro:"These {n} unreached peoples count you among their nearest believers ({level}). Few believers live among them yet.",item:"{name}, {country}: {pop} people, speaking {language}, {km} km away.",pray:"Pray for them: {url}",more:"…and {n} more. The full list is in the CSV export.",close:"Will you pray for them, and ask God how your church could bless them? Each of these peoples is loved by God.",sign:"In Jesus' name,",copy:"Copy the letter",download:"Download (.txt)"},packet:{button:"Prayer packet",label:"{group}: its unreached neighbours ({level})",labelCapped:"{group}: the {n} closest of its {total} unreached neighbours ({level})"}},"./locales/en/pinHint.json":{line1:"Tap a coloured dot",line2:"someone still needs prayer"},"./locales/en/wall.json":{title:"Wall of People Groups",toPortrait:"📱 Switch to Portrait",toLandscape:"🖼️ Switch to Landscape",currentLandscape:"Current: Landscape (4 ft × 3 ft)",currentPortrait:"Current: Portrait (3 ft × 4 ft)",resetZoom:"Reset Zoom",groupsLoaded:"{n} Groups Loaded",loading:"Loading people groups…",offlineTitle:"The live prayer data could not be reached.",offlineBody:"The wall reads its people groups from pray.doxa.life. You may be offline, or, on a local development server, the API may not allow this page's address.",tryAgain:"Try again",prayedCount:"0 prayed | {n} person prayed | {n} people prayed",viewPrayers:"View prayers",prayerTools:"Prayer Tools",close:"Close",unknown:"Unknown",unknownGroup:"Unknown Group",status:"Status:",unengaged:"unengaged",prayingNow:"Are you praying right now for this people group?",yesPraying:"Yes, I'm Praying",thankYou:"Thank you for praying!",sharePrayer:"Share your prayer (optional)",prayerPlaceholder:"Type your prayer here…",sendPrayer:"Send Prayer",peopleGroup:"People Group",chatsTitle:"People Group Chats",id:"ID:",location:"Location:",na:"N/A",havePrayed:"no one has prayed yet | {n} person has prayed | {n} people have prayed",youPrayed:"✓ You prayed!",prayForGroup:"🙏 Pray for this group",prayersComments:"Prayers & Comments",noComments:"No prayers or comments yet. Be the first!",commentPlaceholder:"Share your prayer or thoughts…",postComment:"Post Comment",noPeopleId:"This people group doesn't have a PeopleID3",statusUnknown:"Status Unknown",printPoster:"🖨️ Print HD poster",printPreparing:"Preparing the poster: {n} of {total} photos",printMissing:"Photos that could not load: {n}. They print as grey boxes.",blessBanner:"Bless the nations in Jesus’ name",modeLabel:"Wall mode",modeBless:"Bless",modeSocial:"Social",shareSoon:"Sharing is coming later.",drawLibError:"The wall could not load its drawing library:",posterSize:"Poster size",posterSubtitle:"DOXA (δόξα) means glory. A global prayer movement is blessing these {n} people groups in Jesus’ name. Learn more and join at pray.doxa.life.",glueHere:"glue the sheet above here",themesLabel:"Prayer themes",oldTestament:"Old Testament",newTestament:"New Testament",themeTreasure:"Treasure",themeMountain:"Mountain",themeSea:"Sea",posterClosing:"Jesus Christ is the cornerstone, and we are living stones. These people groups are the reward of his suffering. Take up our priestly calling: bless them in his name, and join the global family in prayer.",journeyCalled:"Called",journeyPromised:"Promised",journeyRedeemed:"Redeemed",journeyCornerstone:"The cornerstone",journeyChildren:"Children of Abraham",journeyPriesthood:"A royal priesthood",journeySent:"Sent to the lost",peopleGroupCount:"{n} people group | {n} people groups",listCount:"{n} list | {n} lists",stockCard:"Card",stockPostcard:"Postcard",stockLandscape:"landscape",hud:{kindPoster:"Poster",kindList:"List",kindPacket:"Prayer Packet",fetchingPoster:"fetching the poster",generatingPoster:"generating the poster",openingPrint:"opening the print dialog",printOpened:"print dialog opened",readyToPrint:"ready to print",printNow:"Print",saving:"saving",fetchingRecords:"fetching records",fetchingGroups:"fetching people groups",layingOutRows:"laying out {n} row | laying out {n} rows",layingOutCards:"laying out {n} card | laying out {n} cards",printingGroups:"printing {n} people group | printing {n} people groups",kindCardDeck:"Card Deck",kindPrayerList:"Prayer List",saved:"saved",noRecords:"that list has no people groups to print",noPoster:"no poster is available for this list",posterNotFound:"poster not found ({status})",posterBlank:"the generated poster came out blank",noApi:"no people-groups service is configured",fetchFailed:"could not load the people groups ({status})"},posterAlt:"{label} — prayer poster",posterAltAction:"{label} — prayer poster (click to preview and print)"},"./locales/es/aria.json":{backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda",searchPeopleGroups:"Buscar pueblos",resetAllFilters:"Restablecer todos los filtros y la búsqueda",selectAllRows:"Seleccionar todas las filas",deselectAllRows:"Deseleccionar todas las filas",rowDetail:"Detalle de la fila",dismissHint:"Descartar la sugerencia",resizeFiltersRail:"Cambiar el tamaño del panel de filtros",resizeFiltersRailHint:"Arrastra o usa las teclas de flecha para cambiar el tamaño del panel de filtros",resizeChartsRail:"Cambiar el tamaño del panel de gráficos",resizeChartsRailHint:"Arrastra o usa las teclas de flecha para cambiar el tamaño del panel de gráficos",resizeMapTableSplit:"Cambiar la división entre el mapa y la tabla",resizeMapTableSplitHint:"Arrastra o usa las teclas de flecha para cambiar la división entre el mapa y la tabla",resizeTable:"Cambiar la altura de la tabla",resizeTableHint:"Arrastra o usa las teclas de flecha para cambiar el tamaño de la tabla",resizeDashboardHeight:"Cambiar la altura del panel",resizeDashboardHeightHint:"Arrastra o usa las teclas de flecha para cambiar la altura del panel",removeFilter:"Quitar el filtro {name}",closeDetail:"Cerrar el detalle",filterBreadcrumb:"Ruta de filtros",railViews:"Vistas del panel",upgCountLegend:"Leyenda del recuento de UPG",donutChart:"Gráfico de anillo: {title}"},"./locales/es/buttons.json":{prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila",packetVariantAria:"Detalle del paquete de oración",packetFull:"Detalle completo",packetLightweight:"Ligero",working:"Procesando…",postersPerRowAuto:"Automático"},"./locales/es/grid.json":{search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro.",search_people_or_countries:"Buscar pueblos o países…",cards_per_row:"Tarjetas por fila",cards_per_row_auto:"Automático"},"./locales/es/mapui.json":{map:"Mapa",marker:"Marcador del mapa",closePopup:"Cerrar ventana",zoomIn:"Acercar",zoomOut:"Alejar",resetBearing:"Arrastra para girar el mapa; haz clic para orientar al norte",toggleAttribution:"Mostrar u ocultar atribución",mapFeedback:"Comentarios sobre el mapa",enterFullscreen:"Pantalla completa",exitFullscreen:"Salir de pantalla completa",findMyLocation:"Buscar mi ubicación",locationNotAvailable:"Ubicación no disponible",enableGlobe:"Activar globo",disableGlobe:"Desactivar globo",ctrlScroll:"Usa Ctrl + desplazamiento para hacer zoom en el mapa",cmdScroll:"Usa ⌘ + desplazamiento para hacer zoom en el mapa",twoFingers:"Usa dos dedos para mover el mapa",mapboxHomepage:"Página de inicio de Mapbox",maplibreLogo:"Logotipo de MapLibre"},"./locales/es/messages.json":{menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntroA:"¿Cómo alimentarías a una multitud de cinco mil? Jesús los sentó en grupos de cincuenta y de cien, y lo imposible se volvió compartible (Lucas 9:14). Hicimos lo mismo con los 2.106 pueblos no alcanzados: 27 listas de unos cincuenta a cien. Cada lista se imprime como paquete de oración y cartel, para que 27 discípulos, iglesias o líderes locales lleven una cada uno — orando por ellos ",upg100WallIntroEmph:"por el nombre de su pueblo",upg100WallIntroB:".",loadingNamed:"Cargando {name}…",couldNotLoadNamed:"No se pudo cargar {name}.",engineMissing:"El motor de mapas {engine} no se cargó.",packetFailed:"Error al generar el cuadernillo: {reason}",selectionPacketFailed:"Error al generar el cuadernillo de la selección: {reason}",posterOneTerritory:"El cartel imprime un territorio a la vez: {count} seleccionados.",selectionPosterFailed:"Error al generar el cartel de la selección: {reason}",mapUnavailable:"Mapa no disponible",copied:"¡Copiado!",copyFailed:"Error al copiar: pulsa Ctrl/Cmd-C",engineNotLoaded:"motor de mapas no cargado",engineNotLoadedDetail:"El motor de mapas {engine} no se cargó. La lista y la leyenda no se ven afectadas.",viewLoadFailed:"No se pudo cargar esta vista.",retry:"Reintentar",noMapboxToken:"No hay token de Mapbox",noMapboxTokenDetail:"No hay ningún token de Mapbox configurado. La lista y la leyenda no se ven afectadas.",loadingBoundaries:"Cargando límites…",fetchingUupgs:"Obteniendo {n} UUPG…",mapStatusCounts:"Áreas: {polys} · zonas: {zones}/{total} · marcadores: {pins}",tapTerritoriesHint:"Toque territorios en el mapa o filas de la leyenda para añadirlos · toque de nuevo para quitarlos",territoriesSelected:"Territorios: {count}",bandInRange:"✓ franja 50–100",bandOutOfRange:"franja 50–100",mapContextLost:"Este mapa se descargó para liberar memoria gráfica.",nOfTotal:"{n} de {total}",mapInitFailed:"No se pudo iniciar el mapa: revisa el token y el contenedor",countryWallIntroA:"Un cartel por país, listo para orar, imprimir y colgar en una pared — orando por ellos ",countryWallIntroB:". Las regiones y los países se ordenan según cuántos pueblos no comprometidos contienen, para que la mayor necesidad vaya primero.",countryWallSoon:"Próximamente: se generará una lista de oración para cada país, con el nombre de cada pueblo no alcanzado que hay en él.",countryWallHeading:"Carteles por país — Listas de oración y carteles",largerScreenNotice:"Este mapa experimental está pensado para pantallas grandes. Se abre aquí, pero algunas partes pueden no caber o no funcionar bien en un teléfono.",desktopOnlyNotice:"{label} solo funciona en escritorio: abra esta página en un ordenador para usarlo.",noticeDismiss:"Cerrar",countryPosterTooMany:"Demasiados pueblos para que quepan legiblemente en un solo cartel; estamos trabajando en una solución."},"./locales/es/neighbor.json":{brand:"Mis vecinos UPG",chooseView:"Elige una vista",views:{cockpit:"Resumen",sendMap:"Mapa de envío",flowerMesh:"Malla floral",langCluster:"Grupos lingüísticos",flowers:"Flores",mobilize:"Movilizar",campaigns:"Movimientos"},hints:{cockpit:"centro de filtros cruzados",sendMap:"arcos de alcanzado a no alcanzado",flowerMesh:"floración radial",langCluster:"conjuntos acotados por idioma",flowers:"núcleos de familia · idioma · dialecto y pétalos detallados"},title:{overview:"Mis vecinos UPG · Resumen",send:"Mis vecinos UPG · SEND",langClusters:"Mis vecinos UPG · Grupos lingüísticos",flowerMesh:"Mis vecinos UPG · Malla floral"},search:"Buscar",searchCockpit:"Buscar destino / emisor / idioma…",searchStrip:"Buscar destino / idioma / emisor…",searchBrush:"Buscar y seleccionar",remove:"quitar {label}",selectTarget:"Elige el país destino no alcanzado",loadingSend:"Cargando mapa SEND…",send:{unreachedTarget:"Destino no alcanzado —",clickOne:"haz clic en uno",toFocus:"para enfocarlo",reachedSender:"Emisor alcanzado (SEND →)"},pctChristian:"{n} % cristianos",groups:"grupos: {n}",people:"personas",unreached:"no alcanzado",reached:"alcanzado",unknown:"Desconocido",lc:{loading:"Cargando pueblos…",apiDown:"La API en vivo de doxa no responde: {message}",clusters:"grupos lingüísticos",pgs:"no alcanzados",provinces:"provincias IN/CN",withReach:"con coincidencia alcanzada",legendCluster:"Grupo lingüístico no alcanzado (tamaño = número de pueblos)",legendReached:"Vecino alcanzado (emparejado por idioma)",legendHelp:"anillo verde = el grupo tiene una coincidencia alcanzada · haz clic en un grupo para profundizar",setCount:"Bounded set — pueblos no alcanzados: {n}",more:"+{n} más",reachedSame:"Vecinos alcanzados (mismo idioma): {n}",frontier:"Ningún pueblo alcanzado comparte este idioma en estos datos. Una frontera: oren por obreros (Lucas 10:2).",openFlower:"Abrir vista de flor ▸"},fm:{languageMesh:"malla de idiomas",reachedNeighbors:"vecinos alcanzados",countries:"países",upgsInCenter:"UPG en el centro",meshLinks:"enlaces de la malla",growing:"Creciendo la flor…",upgs:"UPG: {n}",people:"personas: {n}",legendTitle:"La flor",unreachedTarget:"Destino no alcanzado (doxa-2000)",reachedDeeper:"Vecino alcanzado (más intenso = más cristianos)",sendPath:"Ruta SEND → hacia los no alcanzados",viaCluster:"por un grupo lingüístico afín",mesh:"Malla de colaboración del mismo idioma",whorl:"círculo interior = mismo país · pétalos = países vecinos",loadError:"No se pudieron cargar los datos de vecinos alcanzados"},strip:{lens:"Lente",lensAria:"Lente de idioma",noLens:"— sin lente —",color:"Color",colorAria:"Colorear emisores alcanzados por",pctReached:"% alcanzado",religion:"religión",senderLanguage:"Idioma del emisor",senderCountry:"País del emisor",clear:"borrar",noSenders:"sin emisores",byLanguage:"Emisores por idioma",byCountry:"Emisores por país",quantile:"% alcanzado (cuantiles)",histogram:"Histograma del porcentaje alcanzado",religionFamily:"Familia religiosa",bridgeType:"Tipo de puente",donut:"Anillo por categoría"},list:{hidden:"· ocultos por filtros: {n}",clear:"Borrar",copy:"Copiar",csvDownloaded:"CSV descargado ({n})",copied:"Copiado ({n})",copyFailed:"No se pudo copiar: pulsa Ctrl/Cmd-C",sendersAvailable:"{n} enviadores disponibles",buildSendList:"Crear lista de envío",noSenders:"Ningún enviador coincide con los filtros actuales",sendersHidden:"{n} enviadores ocultos — quita un filtro para verlos",noReachedYet:"Este objetivo aún no tiene vecinos alcanzados en los datos guardados",pickTarget:"Elige un objetivo rojo",clustersNearby:"{c} grupos no alcanzados · {s} enviadores alcanzados cerca",tapBubble:"Toca una burbuja roja en el mapa para crear su lista de envío.",colPeopleGroup:"Pueblo",colCountry:"País",colLanguage:"Idioma",colPopulation:"Población",colReligion:"Religión",colPctChristian:"% cristianos",colAdjacency:"Adyacencia",colCode:"Código",sortMobilization:"Movilización",sortFrontier:"Frontera primero",colName:"Nombre"},fc:{clusterBy:"Agrupar por",flowers:"flores",unreached:"no alcanzados",legendTitle:"Grupos florales",legendCore:"Grupo lingüístico no alcanzado (núcleo, tamaño = número de pueblos)",legendPetal:"Vecino alcanzado (detallado, coordenadas reales)",legendHelp:"haz clic en un círculo superior para reagrupar · haz clic en un núcleo para abrir sus pétalos",clustering:"Agrupando la cosecha por idioma…",signLanguage:"Lengua de señas",mode:{family:"Familia",language:"Idioma",dialect:"Dialecto"},size:{fewerBigger:"menos · más grandes",more:"más",most:"la mayoría"}},mc:{greenEncoding:"Codificación del color verde",provinces:"provincias IN/CN",provincesTitle:"Mostrar límites provinciales de IN/CN",resetFocus:"✕ quitar enfoque",needsToken:"El mapa necesita un token de Mapbox (tk en profile-config)…",rendering:"Dibujando el campo de cosecha…"},bloom:"Floración",cockpit:{viewSwitch:"Vista de mapa o de flor",loading:"Cargando el campo de la cosecha…",unreachedTarget:"objetivo no alcanzado",map:"Mapa",flower:"Flor",details:"Detalles",senders:"emisores →",clustersHidden:"clústeres · {n} ocultos",legendSend:"SEND (continua = mismo idioma · discontinua = clúster · punteada = en el país)",legendSelection:"selección · radio = log de la población · Lucas 10:2",navySend:"azul marino = SEND",goldMesh:"dorado = red de un mismo idioma"},flower:{pickTarget:"Elige un objetivo rojo en el mapa —",bloomsHere:"sus vecinos alcanzados florecen aquí como una flor."},sm:{counts:"{u} PNA · {s} enviadores alcanzados",noSenders:"No hay enviadores alcanzados que califiquen con un centroide de país conocido para este objetivo."},about:{button:"Cómo funciona",title:"Movilizar a los vecinos cercanos",close:"Cerrar",why:"Los creyentes mejor situados para alcanzar a un pueblo no alcanzado suelen ser los más cercanos a él en idioma y cultura. Esta herramienta los encuentra para cada grupo no alcanzado, con la escala E y la escala P de Ralph D. Winter, para que puedas planificar a quién movilizar, en qué idioma y dónde.",greenTitle:"Para iglesias: empiece por un punto verde",green:"Elija un grupo alcanzado (verde), en la lista Grupos alcanzados o con un punto verde, para ver los pueblos no alcanzados que sus creyentes están mejor situados para alcanzar, un nivel E a la vez, los más cercanos primero. Luego exporte la lista (CSV), escriba una carta a sus creyentes o imprima un paquete de oración, para esa iglesia o sus socios misioneros.",eTitle:"Escala E: la distancia que debe cruzar un testigo",pTitle:"Escala P: la distancia entre un pueblo y una iglesia",dataTitle:"Datos y límites",data:"Alcanzado significa al menos un 2 % de evangélicos (definición del IMB). El idioma y la cultura se deducen del código de idioma y de la taxonomía de pueblos del IMB (clúster, bloque de afinidad, familia lingüística): buenas aproximaciones públicas, no evaluaciones de campo. El número de creyentes se estima a partir de la población y los rangos de evangélicos; sirve para dimensionar una audiencia, no como recuento.",source:"Datos de pueblos: peoplegroups.org (IMB), people_groups.csv. Escala E y escala P: Ralph D. Winter, Congreso de Lausana, 1974."},e:{short1:"E-1 · mismo idioma",short2:"E-2 · cultura cercana",short3:"E-3 · cerca, otra cultura",title1:"E-1 · Hablan el mismo idioma",title2:"E-2 · Una cultura cercana",title3:"E-3 · Cerca, otra cultura",long1:"Creyentes que hablan el idioma de este grupo. Pueden compartir el evangelio sin cruzar una barrera lingüística, y un movimiento en este idioma puede movilizarlos.",long2:"Creyentes de un pueblo emparentado: el mismo clúster de pueblos, o la misma familia lingüística en el mismo bloque de afinidad. Un paso cultural más corto que empezar de cero.",long3:"Creyentes que viven cerca (a menos de 600 km o en el mismo país) con una cultura distinta. Comparten la región, no el idioma.",rlong1:"Grupos no alcanzados que hablan el idioma de este grupo. Sus creyentes pueden alcanzarlos sin cruzar una barrera lingüística.",rlong2:"Grupos no alcanzados de un pueblo emparentado: el mismo grupo de pueblos o la misma familia lingüística en el mismo bloque de afinidad.",rlong3:"Grupos no alcanzados cercanos (a menos de 600 km o en el mismo país) con una cultura distinta."},p:{title0:"No se encontraron vecinos alcanzados",title1:"Existen creyentes en su idioma",title2:"Los creyentes más cercanos son de una cultura cercana",title3:"Los creyentes más cercanos son de una cultura lejana",long0:"En estos datos ningún grupo alcanzado coincide con este pueblo por idioma, cultura o distancia.",long1:"En algún lugar, un grupo alcanzado habla el idioma de este pueblo. Movilizarlo es el camino más directo.",long2:"Ningún grupo alcanzado habla este idioma, pero pueblos emparentados tienen creyentes.",long3:"Cerca solo hay creyentes de otra cultura. Alcanzar a este pueblo requiere obreros transculturales."},res:{bible:"Biblia",film:"Película JESÚS",audio:"Audio",radio:"Radio"},mob:{legend:"Leyenda del mapa",legendUnreached:"Grupo no alcanzado",searchPlaceholder:"Busca un grupo no alcanzado, país o idioma",kind:"Qué grupos mostrar",listUnreached:"Grupos no alcanzados",listReached:"Grupos alcanzados",searchReached:"Busca un grupo alcanzado, país o idioma",introReached:"Elija un grupo alcanzado (los que tienen más creyentes primero) o haga clic en un punto verde del mapa para ver los grupos no alcanzados más cercanos a sus creyentes.",pFilter:"Filtrar por nivel P",pAll:"Todos",loading:"Cargando pueblos…",intro:"Elige un grupo no alcanzado (los más grandes primero) o haz clic en un punto rojo del mapa para ver a quién movilizar.",noMatch:"Sin resultados.",back:"Todos los grupos",people:"{n} personas",believersNear:"Unos {n} creyentes entre los vecinos de abajo.",resources:"Recursos en su idioma",export:"Exportar segmentos de audiencia (CSV)",openBridge:"Planificar un movimiento de movilización en {lang}",samePeople:"mismo pueblo",cardStats:"~{b} creyentes · a {km} km",noNeighbors:"No hay vecinos alcanzados en estos datos.",caveat:"Estimaciones a partir de datos de peoplegroups.org. Comprueba la realidad local antes de actuar.",loadError:"No se pudieron cargar los datos de pueblos: {message}",legendReached:"Grupo alcanzado",introBoth:"Elija un grupo no alcanzado (los más grandes primero) o haga clic en un punto del mapa. Un punto rojo muestra a los creyentes que se pueden movilizar para él; un punto verde muestra los grupos no alcanzados más cercanos a sus creyentes.",reachedTitle:"Alcanzado: 2 % o más de evangélicos",reachedLong:"Unos {n} creyentes. Abajo están los grupos no alcanzados que cuentan a este grupo entre sus vecinos alcanzados más cercanos.",reachCount:"{n} grupos no alcanzados · {p} personas",cardStatsU:"{p} personas · a {km} km",showNeighbors:"Ver sus vecinos",noUnreachedNeighbors:"Ningún grupo no alcanzado cuenta a este grupo entre sus vecinos alcanzados más cercanos.",showAll:"Ver los {n}",eFilter:"Ver vecinos por nivel E",sheetHide:"Ocultar la lista",sheetShow:"Mostrar la lista"},camp:{intro:"Idiomas puente: idiomas que hablan creyentes y pueblos no alcanzados. Un movimiento en ese idioma, dirigido a donde viven los creyentes, puede movilizarlos para alcanzar a los no alcanzados en su propio idioma.",searchPlaceholder:"Busca un idioma o país",minBelievers:"Al menos",exportAll:"Exportar lista (CSV)",unreachedPeople:"{n} no alcanzados",believers:"~{n} creyentes",believersIn:"Creyentes en: {list}",back:"Todos los idiomas",bigBelievers:"creyentes que movilizar ({g} grupos, {c} países)",bigUnreached:"no alcanzados a los que llegar ({g} grupos, {c} países)",export:"Exportar este movimiento (CSV)",whereToRun:"Dónde lanzarla: creyentes por país",believersInGroups:"~{n} en {g} grupos",whoTheyReach:"A quién pueden alcanzar"},letter:{button:"Escribir una carta",title:"Una carta a los creyentes de {group}",greeting:"Queridos amigos entre los creyentes de {group} en {country}:",intro:"Estos {n} pueblos no alcanzados los cuentan a ustedes entre sus creyentes más cercanos ({level}). Todavía viven pocos creyentes entre ellos.",item:"{name}, {country}: {pop} personas, que hablan {language}, a {km} km.",pray:"Oren por ellos: {url}",more:"…y {n} más. La lista completa está en la exportación CSV.",close:"¿Orarán por ellos y le pedirán a Dios cómo su iglesia podría bendecirlos? Dios ama a cada uno de estos pueblos.",sign:"En el nombre de Jesús,",copy:"Copiar la carta",download:"Descargar (.txt)"},packet:{button:"Paquete de oración",label:"{group}: sus vecinos no alcanzados ({level})",labelCapped:"{group}: los {n} más cercanos de sus {total} vecinos no alcanzados ({level})"}},"./locales/es/pinHint.json":{line1:"Toca un punto de color",line2:"alguien todavía necesita oración"},"./locales/es/wall.json":{title:"Muro de los pueblos",toPortrait:"📱 Cambiar a vertical",toLandscape:"🖼️ Cambiar a horizontal",currentLandscape:"Actual: horizontal (4 × 3 pies)",currentPortrait:"Actual: vertical (3 × 4 pies)",resetZoom:"Restablecer zoom",groupsLoaded:"Cargados: {n}",loading:"Cargando pueblos…",offlineTitle:"No se pudo acceder a los datos de oración en vivo.",offlineBody:"El muro lee sus pueblos de pray.doxa.life. Puede que no tengas conexión o que, en un servidor de desarrollo local, la API no permita la dirección de esta página.",tryAgain:"Reintentar",prayedCount:"Oraron: {n}",viewPrayers:"Ver oraciones",prayerTools:"Herramientas de oración",close:"Cerrar",unknown:"Desconocido",unknownGroup:"Pueblo desconocido",status:"Estado:",unengaged:"no alcanzado",prayingNow:"¿Estás orando ahora por este pueblo?",yesPraying:"Sí, estoy orando",thankYou:"¡Gracias por orar!",sharePrayer:"Comparte tu oración (opcional)",prayerPlaceholder:"Escribe tu oración aquí…",sendPrayer:"Enviar oración",peopleGroup:"Pueblo",chatsTitle:"Chats del pueblo",id:"ID:",location:"Ubicación:",na:"N/D",havePrayed:"Oraron: {n}",youPrayed:"✓ ¡Oraste!",prayForGroup:"🙏 Orar por este pueblo",prayersComments:"Oraciones y comentarios",noComments:"Aún no hay oraciones ni comentarios. ¡Sé el primero!",commentPlaceholder:"Comparte tu oración o tus pensamientos…",postComment:"Publicar comentario",noPeopleId:"Este pueblo no tiene PeopleID3",statusUnknown:"Estado desconocido",printPoster:"🖨️ Imprimir póster HD",printPreparing:"Preparando el póster: {n} de {total} fotos",printMissing:"Fotos que no se pudieron cargar: {n}. Se imprimen como recuadros grises.",blessBanner:"Bendigan a las naciones en el nombre de Jesús",modeLabel:"Modo del muro",modeBless:"Bendecir",modeSocial:"Social",shareSoon:"Compartir llegará más adelante.",drawLibError:"El muro no pudo cargar su biblioteca de dibujo:",posterSize:"Tamaño del póster",posterSubtitle:"DOXA (δόξα) significa gloria. Un movimiento mundial de oración está bendiciendo a estos {n} grupos de pueblos en el nombre de Jesús. Más información y únase en pray.doxa.life.",glueHere:"pegue aquí la hoja de arriba",themesLabel:"Temas de oración",oldTestament:"Antiguo Testamento",newTestament:"Nuevo Testamento",themeTreasure:"Tesoro",themeMountain:"Monte",themeSea:"Mar",posterClosing:"Jesucristo es la piedra angular, y nosotros somos piedras vivas. Estos pueblos son la recompensa de su sufrimiento. Asumamos nuestro llamado sacerdotal: bendigámoslos en su nombre y unámonos a la familia mundial en oración.",journeyCalled:"El llamado",journeyPromised:"La promesa",journeyRedeemed:"Redimidos",journeyCornerstone:"La piedra angular",journeyChildren:"Hijos de Abraham",journeyPriesthood:"Un real sacerdocio",journeySent:"Enviados a los perdidos",peopleGroupCount:"{n} pueblo | {n} de pueblos | {n} pueblos",listCount:"{n} lista | {n} de listas | {n} listas",stockCard:"Tarjeta",stockPostcard:"Postal",stockLandscape:"horizontal",hud:{kindPoster:"Cartel",kindList:"Lista",kindPacket:"Paquete de oración",fetchingPoster:"obteniendo el cartel",generatingPoster:"generando el cartel",openingPrint:"abriendo el cuadro de impresión",printOpened:"cuadro de impresión abierto",readyToPrint:"listo para imprimir",printNow:"Imprimir",saving:"guardando",fetchingRecords:"obteniendo registros",fetchingGroups:"obteniendo pueblos",layingOutRows:"maquetando {n} fila | maquetando {n} de filas | maquetando {n} filas",layingOutCards:"maquetando {n} tarjeta | maquetando {n} de tarjetas | maquetando {n} tarjetas",printingGroups:"imprimiendo {n} pueblo | imprimiendo {n} de pueblos | imprimiendo {n} pueblos",kindCardDeck:"Baraja de tarjetas",kindPrayerList:"Lista de oración",saved:"guardado",noRecords:"esa lista no tiene pueblos para imprimir",noPoster:"no hay un cartel disponible para esta lista",posterNotFound:"cartel no encontrado ({status})",posterBlank:"el cartel generado salió en blanco",noApi:"no hay un servicio de pueblos configurado",fetchFailed:"no se pudieron cargar los pueblos ({status})"},posterAlt:"{label} — cartel de oración",posterAltAction:"{label} — cartel de oración (haz clic para ver e imprimir)"},"./locales/fr/aria.json":{backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende",searchPeopleGroups:"Rechercher des peuples",resetAllFilters:"Réinitialiser tous les filtres et la recherche",selectAllRows:"Sélectionner toutes les lignes",deselectAllRows:"Désélectionner toutes les lignes",rowDetail:"Détail de la ligne",dismissHint:"Masquer l'astuce",resizeFiltersRail:"Redimensionner le volet des filtres",resizeFiltersRailHint:"Faites glisser ou utilisez les touches fléchées pour redimensionner le volet des filtres",resizeChartsRail:"Redimensionner le volet des graphiques",resizeChartsRailHint:"Faites glisser ou utilisez les touches fléchées pour redimensionner le volet des graphiques",resizeMapTableSplit:"Redimensionner le partage carte/tableau",resizeMapTableSplitHint:"Faites glisser ou utilisez les touches fléchées pour redimensionner le partage carte/tableau",resizeTable:"Redimensionner la hauteur du tableau",resizeTableHint:"Faites glisser ou utilisez les touches fléchées pour redimensionner le tableau",resizeDashboardHeight:"Redimensionner la hauteur du tableau de bord",resizeDashboardHeightHint:"Faites glisser ou utilisez les touches fléchées pour redimensionner la hauteur du tableau de bord",removeFilter:"Supprimer le filtre {name}",closeDetail:"Fermer le détail",filterBreadcrumb:"Fil d’Ariane des filtres",railViews:"Vues du volet",upgCountLegend:"Légende du nombre d’UPG",donutChart:"Graphique en anneau : {title}"},"./locales/fr/buttons.json":{prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne",packetVariantAria:"Niveau de détail du dossier de prière",packetFull:"Détail complet",packetLightweight:"Allégé",working:"Traitement…",postersPerRowAuto:"Auto"},"./locales/fr/grid.json":{search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre.",search_people_or_countries:"Rechercher des peuples ou des pays…",cards_per_row:"Cartes par ligne",cards_per_row_auto:"Automatique"},"./locales/fr/mapui.json":{map:"Carte",marker:"Marqueur de carte",closePopup:"Fermer la fenêtre",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",resetBearing:"Faites glisser pour faire pivoter la carte, cliquez pour revenir au nord",toggleAttribution:"Afficher/masquer l'attribution",mapFeedback:"Commentaires sur la carte",enterFullscreen:"Plein écran",exitFullscreen:"Quitter le plein écran",findMyLocation:"Trouver ma position",locationNotAvailable:"Position non disponible",enableGlobe:"Activer le globe",disableGlobe:"Désactiver le globe",ctrlScroll:"Utilisez Ctrl + molette pour zoomer sur la carte",cmdScroll:"Utilisez ⌘ + molette pour zoomer sur la carte",twoFingers:"Utilisez deux doigts pour déplacer la carte",mapboxHomepage:"Page d'accueil de Mapbox",maplibreLogo:"Logo MapLibre"},"./locales/fr/messages.json":{menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntroA:"Comment nourririez-vous une foule de cinq mille personnes ? Jésus les a fait asseoir par groupes de cinquante et de cent, et l’impossible est devenu partageable (Luc 9.14). Nous avons fait de même avec les 2 106 peuples non atteints : 27 listes d’environ cinquante à cent. Chaque liste s’imprime en dossier de prière et en affiche, pour que 27 disciples, Églises ou responsables locaux en portent chacun une — en priant pour eux ",upg100WallIntroEmph:"par le nom de leur peuple",upg100WallIntroB:".",loadingNamed:"Chargement de {name}…",couldNotLoadNamed:"Impossible de charger {name}.",engineMissing:"Le moteur de carte {engine} ne s’est pas chargé.",packetFailed:"Échec du livret : {reason}",selectionPacketFailed:"Échec du livret de la sélection : {reason}",posterOneTerritory:"L’affiche imprime un territoire à la fois — {count} sélectionnés.",selectionPosterFailed:"Échec de l’affiche de la sélection : {reason}",mapUnavailable:"Carte indisponible",copied:"Copié !",copyFailed:"Échec de la copie — appuyez sur Ctrl/Cmd-C",engineNotLoaded:"moteur cartographique non chargé",engineNotLoadedDetail:"Le moteur cartographique {engine} ne s’est pas chargé. La liste et la légende ne sont pas affectées.",viewLoadFailed:"Impossible de charger cette vue.",retry:"Réessayer",noMapboxToken:"Aucun jeton Mapbox",noMapboxTokenDetail:"Aucun jeton Mapbox n’est configuré. La liste et la légende ne sont pas affectées.",loadingBoundaries:"Chargement des limites…",fetchingUupgs:"Récupération de {n} UUPG…",mapStatusCounts:"Surfaces : {polys} · zones : {zones}/{total} · repères : {pins}",tapTerritoriesHint:"Touchez des territoires sur la carte ou des lignes de la légende pour les ajouter · touchez à nouveau pour les retirer",territoriesSelected:"Territoires : {count}",bandInRange:"✓ tranche 50–100",bandOutOfRange:"tranche 50–100",mapContextLost:"Cette carte a été déchargée pour libérer de la mémoire graphique.",nOfTotal:"{n} sur {total}",mapInitFailed:"Échec de l’initialisation de la carte — vérifiez le jeton et le conteneur",countryWallIntroA:"Une affiche par pays, prête à prier, à imprimer et à accrocher au mur — en priant pour eux ",countryWallIntroB:". Les régions et les pays sont classés selon le nombre de peuples non engagés qu’ils comptent, pour que le plus grand besoin vienne en premier.",countryWallSoon:"Bientôt : une liste de prière sera générée pour chaque pays, nommant chaque peuple non atteint qui s’y trouve.",countryWallHeading:"Affiches par pays — Listes de prière et affiches",largerScreenNotice:"Cette carte expérimentale est conçue pour les grands écrans. Elle s’ouvre ici, mais certaines parties peuvent mal s’afficher ou mal fonctionner sur un téléphone.",desktopOnlyNotice:"{label} ne fonctionne que sur ordinateur : ouvrez cette page sur un ordinateur pour l’utiliser.",noticeDismiss:"Fermer",countryPosterTooMany:"Trop de peuples pour tenir lisiblement sur une seule affiche — une solution est en préparation."},"./locales/fr/neighbor.json":{brand:"Mes voisins UPG",chooseView:"Choisir une vue",views:{cockpit:"Vue d’ensemble",sendMap:"Carte d’envoi",flowerMesh:"Maillage floral",langCluster:"Groupes linguistiques",flowers:"Fleurs",mobilize:"Mobiliser",campaigns:"Mouvements"},hints:{cockpit:"centre de filtrage croisé",sendMap:"arcs des atteints vers les non-atteints",flowerMesh:"floraison radiale",langCluster:"ensembles bornés par langue",flowers:"cœurs famille · langue · dialecte et pétales détaillés"},title:{overview:"Mes voisins UPG · Vue d’ensemble",send:"Mes voisins UPG · SEND",langClusters:"Mes voisins UPG · Groupes linguistiques",flowerMesh:"Mes voisins UPG · Maillage floral"},search:"Rechercher",searchCockpit:"Rechercher une cible / un envoyeur / une langue…",searchStrip:"Rechercher une cible / une langue / un envoyeur…",searchBrush:"Rechercher et sélectionner",remove:"retirer {label}",selectTarget:"Choisir le pays cible non atteint",loadingSend:"Chargement de la carte SEND…",send:{unreachedTarget:"Cible non atteinte —",clickOne:"cliquez sur une",toFocus:"pour la cibler",reachedSender:"Envoyeur atteint (SEND →)"},pctChristian:"{n} % de chrétiens",groups:"groupes : {n}",people:"personnes",unreached:"non atteint",reached:"atteint",unknown:"Inconnu",lc:{loading:"Chargement des peuples…",apiDown:"L’API doxa en direct est injoignable : {message}",clusters:"groupes linguistiques",pgs:"non atteints",provinces:"provinces IN/CN",withReach:"avec une correspondance atteinte",legendCluster:"Groupe linguistique non atteint (taille = nombre de peuples)",legendReached:"Voisin atteint (associé par la langue)",legendHelp:"anneau vert = le groupe a une correspondance atteinte · cliquez sur un groupe pour l’explorer",setCount:"Bounded set — peuples non atteints : {n}",more:"+{n} de plus",reachedSame:"Voisins atteints (même langue) : {n}",frontier:"Aucun peuple atteint ne partage cette langue dans ces données. Une frontière : priez pour des ouvriers (Luc 10.2).",openFlower:"Ouvrir la vue fleur ▸"},fm:{languageMesh:"maillage linguistique",reachedNeighbors:"voisins atteints",countries:"pays",upgsInCenter:"UPG au centre",meshLinks:"liens du maillage",growing:"La fleur pousse…",upgs:"UPG : {n}",people:"personnes : {n}",legendTitle:"La fleur",unreachedTarget:"Cible non atteinte (doxa-2000)",reachedDeeper:"Voisin atteint (plus foncé = plus de chrétiens)",sendPath:"Chemin SEND → vers les non-atteints",viaCluster:"via un groupe linguistique apparenté",mesh:"Maillage de collaboration de même langue",whorl:"cercle intérieur = même pays · pétales = pays voisins",loadError:"Impossible de charger les données des voisins atteints"},strip:{lens:"Lentille",lensAria:"Lentille linguistique",noLens:"— aucune lentille —",color:"Couleur",colorAria:"Colorer les envoyeurs atteints par",pctReached:"% atteint",religion:"religion",senderLanguage:"Langue de l’envoyeur",senderCountry:"Pays de l’envoyeur",clear:"effacer",noSenders:"aucun envoyeur",byLanguage:"Envoyeurs par langue",byCountry:"Envoyeurs par pays",quantile:"% atteint (quantiles)",histogram:"Histogramme du pourcentage atteint",religionFamily:"Famille religieuse",bridgeType:"Type de pont",donut:"Anneau par catégorie"},list:{hidden:"· masqués par les filtres : {n}",clear:"Effacer",copy:"Copier",csvDownloaded:"CSV téléchargé ({n})",copied:"Copié ({n})",copyFailed:"Échec de la copie : appuyez sur Ctrl/Cmd-C",sendersAvailable:"{n} envoyeurs disponibles",buildSendList:"Créer la liste d’envoi",noSenders:"Aucun envoyeur ne correspond aux filtres actuels",sendersHidden:"{n} envoyeurs masqués — effacez un filtre pour les voir",noReachedYet:"Cette cible n’a pas encore de voisins atteints dans les données enregistrées",pickTarget:"Choisissez une cible rouge",clustersNearby:"{c} groupes non atteints · {s} envoyeurs atteints à proximité",tapBubble:"Touchez une bulle rouge sur la carte pour créer sa liste d’envoi.",colPeopleGroup:"Peuple",colCountry:"Pays",colLanguage:"Langue",colPopulation:"Population",colReligion:"Religion",colPctChristian:"% chrétiens",colAdjacency:"Proximité",colCode:"Code",sortMobilization:"Mobilisation",sortFrontier:"Frontières d’abord",colName:"Nom"},fc:{clusterBy:"Regrouper par",flowers:"fleurs",unreached:"non atteints",legendTitle:"Groupes floraux",legendCore:"Groupe linguistique non atteint (cœur, taille = nombre de peuples)",legendPetal:"Voisin atteint (détaillé, coordonnées réelles)",legendHelp:"cliquez sur un cercle du haut pour regrouper · cliquez sur un cœur pour ouvrir ses pétales",clustering:"Regroupement de la moisson par langue…",signLanguage:"Langue des signes",mode:{family:"Famille",language:"Langue",dialect:"Dialecte"},size:{fewerBigger:"moins · plus grands",more:"plus",most:"le plus"}},mc:{greenEncoding:"Codage de la couleur verte",provinces:"provinces IN/CN",provincesTitle:"Afficher les limites des provinces IN/CN",resetFocus:"✕ annuler le ciblage",needsToken:"La carte a besoin d’un jeton Mapbox (tk dans profile-config)…",rendering:"Dessin du champ de la moisson…"},bloom:"Floraison",cockpit:{viewSwitch:"Vue carte ou fleur",loading:"Chargement du champ de la moisson…",unreachedTarget:"cible non atteinte",map:"Carte",flower:"Fleur",details:"Détails",senders:"envoyeurs →",clustersHidden:"grappes · {n} masqués",legendSend:"SEND (plein = même langue · tirets = grappe · pointillé = dans le pays)",legendSelection:"sélection · rayon = log de la population · Luc 10.2",navySend:"bleu marine = SEND",goldMesh:"or = réseau de même langue"},flower:{pickTarget:"Choisissez une cible rouge sur la carte —",bloomsHere:"ses voisins atteints fleurissent ici en fleur."},sm:{counts:"{u} PNA · {s} envoyeurs atteints",noSenders:"Aucun envoyeur atteint admissible avec un centroïde de pays connu pour cette cible."},about:{button:"Comment ça marche",title:"Mobiliser les proches voisins",close:"Fermer",why:"Les croyants les mieux placés pour atteindre un peuple non atteint sont généralement les plus proches de lui par la langue et la culture. Cet outil les trouve pour chaque groupe non atteint, à l'aide de l'échelle E et de l'échelle P de Ralph D. Winter, pour planifier qui mobiliser, dans quelle langue et où.",greenTitle:"Pour les Églises : partez d’un point vert",green:"Choisissez un groupe atteint (vert), dans la liste Groupes atteints ou par un point vert, pour voir les peuples non atteints que ses croyants sont le mieux placés pour atteindre, un niveau E à la fois, les plus proches d’abord. Ensuite, exportez la liste (CSV), écrivez une lettre à ses croyants ou imprimez un dossier de prière, pour cette Église ou ses partenaires missionnaires.",eTitle:"Échelle E : la distance qu'un témoin doit franchir",pTitle:"Échelle P : la distance entre un peuple et une Église",dataTitle:"Données et limites",data:"Atteint signifie au moins 2 % d'évangéliques (définition de l'IMB). La langue et la culture sont déduites du code de langue et de la taxonomie des peuples de l'IMB (grappe, bloc d'affinité, famille de langues) : de bons indicateurs publics, pas des évaluations de terrain. Le nombre de croyants est estimé à partir de la population et des tranches d'évangéliques ; il sert à dimensionner une audience, pas à compter.",source:"Données sur les peuples : peoplegroups.org (IMB), people_groups.csv. Échelles E et P : Ralph D. Winter, Congrès de Lausanne, 1974."},e:{short1:"E-1 · même langue",short2:"E-2 · culture proche",short3:"E-3 · proche, autre culture",title1:"E-1 · Ils parlent la même langue",title2:"E-2 · Une culture proche",title3:"E-3 · Proches, une autre culture",long1:"Des croyants qui parlent la langue de ce groupe. Ils peuvent partager l'Évangile sans barrière de langue, et un mouvement dans cette langue peut les mobiliser.",long2:"Des croyants d'un peuple apparenté : même grappe de peuples, ou même famille de langues dans le même bloc d'affinité. Un pas culturel plus court que de partir de zéro.",long3:"Des croyants vivant à proximité (à moins de 600 km ou dans le même pays) mais d'une autre culture. Ils partagent la région, pas la langue.",rlong1:"Groupes non atteints qui parlent la langue de ce groupe. Ses croyants peuvent les atteindre sans franchir de barrière linguistique.",rlong2:"Groupes non atteints d’un peuple apparenté : le même groupe de peuples, ou la même famille de langues dans le même bloc d’affinité.",rlong3:"Groupes non atteints proches (à moins de 600 km ou dans le même pays) dont la culture est différente."},p:{title0:"Aucun voisin atteint trouvé",title1:"Il existe des croyants dans sa langue",title2:"Les croyants les plus proches sont une culture proche",title3:"Les croyants les plus proches sont une culture lointaine",long0:"Dans ces données, aucun groupe atteint ne correspond à ce peuple par la langue, la culture ou la distance.",long1:"Quelque part, un groupe atteint parle la langue de ce peuple. Le mobiliser est la voie la plus directe.",long2:"Aucun groupe atteint ne parle cette langue, mais des peuples apparentés ont des croyants.",long3:"À proximité, il n'y a que des croyants d'une autre culture. Atteindre ce peuple demande des ouvriers interculturels."},res:{bible:"Bible",film:"Film JÉSUS",audio:"Audio",radio:"Radio"},mob:{legend:"Légende de la carte",legendUnreached:"Groupe non atteint",searchPlaceholder:"Rechercher un groupe non atteint, un pays ou une langue",kind:"Quels groupes afficher",listUnreached:"Groupes non atteints",listReached:"Groupes atteints",searchReached:"Rechercher un groupe atteint, un pays ou une langue",introReached:"Choisissez un groupe atteint (ceux qui comptent le plus de croyants d’abord) ou cliquez sur un point vert de la carte pour voir les groupes non atteints les plus proches de ses croyants.",pFilter:"Filtrer par niveau P",pAll:"Tous",loading:"Chargement des peuples…",intro:"Choisissez un groupe non atteint (les plus grands d’abord) ou cliquez sur un point rouge pour voir qui mobiliser.",noMatch:"Aucun résultat.",back:"Tous les groupes",people:"{n} personnes",believersNear:"Environ {n} croyants parmi les voisins ci-dessous.",resources:"Ressources dans sa langue",export:"Exporter les segments d'audience (CSV)",openBridge:"Planifier un mouvement de mobilisation en {lang}",samePeople:"même peuple",cardStats:"~{b} croyants · à {km} km",noNeighbors:"Aucun voisin atteint dans ces données.",caveat:"Estimations tirées des données de peoplegroups.org. Vérifiez les réalités locales avant d'agir.",loadError:"Impossible de charger les données des peuples : {message}",legendReached:"Groupe atteint",introBoth:"Choisissez un groupe non atteint (les plus grands d’abord) ou cliquez sur un point de la carte. Un point rouge montre les croyants à mobiliser pour lui ; un point vert montre les groupes non atteints les plus proches de ses croyants.",reachedTitle:"Atteint : 2 % ou plus d’évangéliques",reachedLong:"Environ {n} croyants. Ci-dessous, les groupes non atteints qui comptent ce groupe parmi leurs voisins atteints les plus proches.",reachCount:"{n} groupes non atteints · {p} personnes",cardStatsU:"{p} personnes · à {km} km",showNeighbors:"Voir ses voisins",noUnreachedNeighbors:"Aucun groupe non atteint ne compte ce groupe parmi ses voisins atteints les plus proches.",showAll:"Voir les {n}",eFilter:"Voir les voisins par niveau E",sheetHide:"Masquer la liste",sheetShow:"Afficher la liste"},camp:{intro:"Langues-ponts : des langues parlées par des croyants et par des peuples non atteints. Un mouvement dans cette langue, lancé là où vivent les croyants, peut les mobiliser pour atteindre les non-atteints dans leur propre langue.",searchPlaceholder:"Rechercher une langue ou un pays",minBelievers:"Au moins",exportAll:"Exporter la liste (CSV)",unreachedPeople:"{n} non atteints",believers:"~{n} croyants",believersIn:"Croyants en : {list}",back:"Toutes les langues",bigBelievers:"croyants à mobiliser ({g} groupes, {c} pays)",bigUnreached:"non-atteints à atteindre ({g} groupes, {c} pays)",export:"Exporter ce mouvement (CSV)",whereToRun:"Où la diffuser : croyants par pays",believersInGroups:"~{n} dans {g} groupes",whoTheyReach:"Qui ils peuvent atteindre"},letter:{button:"Écrire une lettre",title:"Une lettre aux croyants de {group}",greeting:"Chers amis parmi les croyants de {group} ({country}),",intro:"Ces {n} peuples non atteints vous comptent parmi leurs croyants les plus proches ({level}). Peu de croyants vivent encore parmi eux.",item:"{name}, {country} : {pop} personnes, de langue {language}, à {km} km.",pray:"Priez pour eux : {url}",more:"…et {n} autres. La liste complète se trouve dans l’export CSV.",close:"Prierez-vous pour eux, et demanderez-vous à Dieu comment votre Église pourrait les bénir ? Chacun de ces peuples est aimé de Dieu.",sign:"Au nom de Jésus,",copy:"Copier la lettre",download:"Télécharger (.txt)"},packet:{button:"Dossier de prière",label:"{group} : ses voisins non atteints ({level})",labelCapped:"{group} : les {n} plus proches de ses {total} voisins non atteints ({level})"}},"./locales/fr/pinHint.json":{line1:"Touchez un point coloré",line2:"quelqu’un a encore besoin de prière"},"./locales/fr/wall.json":{title:"Mur des peuples",toPortrait:"📱 Passer en portrait",toLandscape:"🖼️ Passer en paysage",currentLandscape:"Actuel : paysage (4 × 3 pieds)",currentPortrait:"Actuel : portrait (3 × 4 pieds)",resetZoom:"Réinitialiser le zoom",groupsLoaded:"Chargés : {n}",loading:"Chargement des peuples…",offlineTitle:"Les données de prière en direct sont inaccessibles.",offlineBody:"Le mur lit ses peuples sur pray.doxa.life. Vous êtes peut-être hors ligne ou, sur un serveur de développement local, l’API n’autorise pas l’adresse de cette page.",tryAgain:"Réessayer",prayedCount:"Ont prié : {n}",viewPrayers:"Voir les prières",prayerTools:"Outils de prière",close:"Fermer",unknown:"Inconnu",unknownGroup:"Peuple inconnu",status:"Statut :",unengaged:"non atteint",prayingNow:"Priez-vous en ce moment pour ce peuple ?",yesPraying:"Oui, je prie",thankYou:"Merci de prier !",sharePrayer:"Partagez votre prière (facultatif)",prayerPlaceholder:"Écrivez votre prière ici…",sendPrayer:"Envoyer la prière",peopleGroup:"Peuple",chatsTitle:"Discussions du peuple",id:"ID :",location:"Lieu :",na:"N/D",havePrayed:"Ont prié : {n}",youPrayed:"✓ Vous avez prié !",prayForGroup:"🙏 Prier pour ce peuple",prayersComments:"Prières et commentaires",noComments:"Aucune prière ni commentaire pour l’instant. Soyez le premier !",commentPlaceholder:"Partagez votre prière ou vos pensées…",postComment:"Publier le commentaire",noPeopleId:"Ce peuple n’a pas de PeopleID3",statusUnknown:"Statut inconnu",printPoster:"🖨️ Imprimer l’affiche HD",printPreparing:"Préparation de l’affiche : {n} photos sur {total}",printMissing:"Photos qui n’ont pas pu être chargées : {n}. Elles s’impriment en cases grises.",blessBanner:"Bénissez les nations au nom de Jésus",modeLabel:"Mode du mur",modeBless:"Bénir",modeSocial:"Social",shareSoon:"Le partage arrive bientôt.",drawLibError:"Le mur n’a pas pu charger sa bibliothèque de dessin :",posterSize:"Taille de l’affiche",posterSubtitle:"DOXA (δόξα) signifie gloire. Un mouvement mondial de prière bénit ces {n} groupes de peuples au nom de Jésus. Pour en savoir plus et nous rejoindre : pray.doxa.life.",glueHere:"collez ici la feuille du dessus",themesLabel:"Thèmes de prière",oldTestament:"Ancien Testament",newTestament:"Nouveau Testament",themeTreasure:"Trésor",themeMountain:"Montagne",themeSea:"Mer",posterClosing:"Jésus-Christ est la pierre angulaire, et nous sommes des pierres vivantes. Ces peuples sont la récompense de ses souffrances. Prenons notre appel sacerdotal : bénissons-les en son nom et rejoignons la famille mondiale dans la prière.",journeyCalled:"L’appel",journeyPromised:"La promesse",journeyRedeemed:"Rachetés",journeyCornerstone:"La pierre angulaire",journeyChildren:"Enfants d’Abraham",journeyPriesthood:"Un sacerdoce royal",journeySent:"Envoyés vers les perdus",peopleGroupCount:"{n} peuple | {n} de peuples | {n} peuples",listCount:"{n} liste | {n} de listes | {n} listes",stockCard:"Carte",stockPostcard:"Carte postale",stockLandscape:"paysage",hud:{kindPoster:"Affiche",kindList:"Liste",kindPacket:"Dossier de prière",fetchingPoster:"récupération de l’affiche",generatingPoster:"génération de l’affiche",openingPrint:"ouverture de la boîte d’impression",printOpened:"boîte d’impression ouverte",readyToPrint:"prêt à imprimer",printNow:"Imprimer",saving:"enregistrement",fetchingRecords:"récupération des données",fetchingGroups:"récupération des peuples",layingOutRows:"mise en page de {n} ligne | mise en page de {n} de lignes | mise en page de {n} lignes",layingOutCards:"mise en page de {n} carte | mise en page de {n} de cartes | mise en page de {n} cartes",printingGroups:"impression de {n} peuple | impression de {n} de peuples | impression de {n} peuples",kindCardDeck:"Jeu de cartes",kindPrayerList:"Liste de prière",saved:"enregistré",noRecords:"cette liste ne contient aucun peuple à imprimer",noPoster:"aucune affiche n’est disponible pour cette liste",posterNotFound:"affiche introuvable ({status})",posterBlank:"l’affiche générée est sortie vide",noApi:"aucun service de peuples n’est configuré",fetchFailed:"impossible de charger les peuples ({status})"},posterAlt:"{label} — affiche de prière",posterAltAction:"{label} — affiche de prière (cliquez pour prévisualiser et imprimer)"},"./locales/hi/aria.json":{backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ",searchPeopleGroups:"जनसमूह खोजें",resetAllFilters:"सभी फ़िल्टर और खोज रीसेट करें",selectAllRows:"सभी पंक्तियाँ चुनें",deselectAllRows:"सभी पंक्तियाँ अचयनित करें",rowDetail:"पंक्ति विवरण",dismissHint:"संकेत हटाएँ",resizeFiltersRail:"फ़िल्टर पट्टी का आकार बदलें",resizeFiltersRailHint:"फ़िल्टर पट्टी का आकार बदलने के लिए खींचें या तीर कुंजियों का उपयोग करें",resizeChartsRail:"चार्ट पट्टी का आकार बदलें",resizeChartsRailHint:"चार्ट पट्टी का आकार बदलने के लिए खींचें या तीर कुंजियों का उपयोग करें",resizeMapTableSplit:"मानचित्र/तालिका विभाजन का आकार बदलें",resizeMapTableSplitHint:"मानचित्र/तालिका विभाजन का आकार बदलने के लिए खींचें या तीर कुंजियों का उपयोग करें",resizeTable:"तालिका की ऊँचाई बदलें",resizeTableHint:"तालिका का आकार बदलने के लिए खींचें या तीर कुंजियों का उपयोग करें",resizeDashboardHeight:"डैशबोर्ड की ऊँचाई बदलें",resizeDashboardHeightHint:"डैशबोर्ड की ऊँचाई बदलने के लिए खींचें या तीर कुंजियों का उपयोग करें",removeFilter:"फ़िल्टर {name} हटाएँ",closeDetail:"विवरण बंद करें",filterBreadcrumb:"फ़िल्टर पथ",railViews:"पट्टी के दृश्य",upgCountLegend:"UPG गणना की कुंजी",donutChart:"डोनट चार्ट: {title}"},"./locales/hi/buttons.json":{prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर",packetVariantAria:"प्रार्थना पैकेट विवरण",packetFull:"पूर्ण विवरण",packetLightweight:"संक्षिप्त",working:"कार्य जारी…",postersPerRowAuto:"स्वतः"},"./locales/hi/grid.json":{search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।",search_people_or_countries:"जनसमूह या देश खोजें…",cards_per_row:"प्रति पंक्ति कार्ड",cards_per_row_auto:"स्वचालित"},"./locales/hi/mapui.json":{map:"मानचित्र",marker:"मानचित्र चिह्न",closePopup:"पॉपअप बंद करें",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",resetBearing:"मानचित्र घुमाने के लिए खींचें, उत्तर पर लौटने के लिए क्लिक करें",toggleAttribution:"श्रेय दिखाएँ/छिपाएँ",mapFeedback:"मानचित्र पर प्रतिक्रिया",enterFullscreen:"पूर्ण स्क्रीन",exitFullscreen:"पूर्ण स्क्रीन से बाहर निकलें",findMyLocation:"मेरा स्थान खोजें",locationNotAvailable:"स्थान उपलब्ध नहीं",enableGlobe:"ग्लोब चालू करें",disableGlobe:"ग्लोब बंद करें",ctrlScroll:"मानचित्र ज़ूम करने के लिए Ctrl + स्क्रॉल करें",cmdScroll:"मानचित्र ज़ूम करने के लिए ⌘ + स्क्रॉल करें",twoFingers:"मानचित्र हिलाने के लिए दो उँगलियों का उपयोग करें",mapboxHomepage:"Mapbox मुखपृष्ठ",maplibreLogo:"MapLibre लोगो"},"./locales/hi/messages.json":{menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना संग्रहण",upg100WallIntroA:"पाँच हज़ार की भीड़ को आप कैसे खिलाते? यीशु ने उन्हें पचास-पचास और सौ-सौ के समूहों में बिठाया, और असंभव बाँटने योग्य हो गया (लूका 9:14). हमने 2,106 अनपहुँचे जनसमूहों के साथ वही किया: लगभग पचास से सौ तक की 27 सूचियाँ. हर सूची प्रार्थना पैकेट और पोस्टर के रूप में छपती है, ताकि 27 शिष्य, कलीसियाएँ या स्थानीय अगुवे एक-एक ले सकें — उनके लिए प्रार्थना करते हुए ",upg100WallIntroEmph:"उनके जन के नाम से",upg100WallIntroB:".",loadingNamed:"{name} लोड हो रहा है…",couldNotLoadNamed:"{name} लोड नहीं हो सका।",engineMissing:"{engine} नक्शा इंजन लोड नहीं हुआ।",packetFailed:"पुस्तिका विफल: {reason}",selectionPacketFailed:"चयन की पुस्तिका विफल: {reason}",posterOneTerritory:"पोस्टर एक समय में एक क्षेत्र छापता है — {count} चयनित।",selectionPosterFailed:"चयन का पोस्टर विफल: {reason}",mapUnavailable:"मानचित्र अनुपलब्ध",copied:"कॉपी हो गया!",copyFailed:"कॉपी विफल — Ctrl/Cmd-C दबाएँ",engineNotLoaded:"मानचित्र इंजन लोड नहीं हुआ",engineNotLoadedDetail:"{engine} मानचित्र इंजन लोड नहीं हुआ। सूची और लेजेंड अप्रभावित हैं।",viewLoadFailed:"यह दृश्य लोड नहीं हो सका।",retry:"फिर से कोशिश करें",noMapboxToken:"कोई Mapbox टोकन नहीं",noMapboxTokenDetail:"कोई Mapbox टोकन कॉन्फ़िगर नहीं है। सूची और लेजेंड पर कोई असर नहीं है।",loadingBoundaries:"सीमाएँ लोड हो रही हैं…",fetchingUupgs:"{n} UUPG लाए जा रहे हैं…",mapStatusCounts:"क्षेत्र: {polys} · ज़ोन: {zones}/{total} · पिन: {pins}",tapTerritoriesHint:"जोड़ने के लिए मानचित्र पर क्षेत्रों या लेजेंड की पंक्तियों पर टैप करें · हटाने के लिए फिर से टैप करें",territoriesSelected:"क्षेत्र: {count}",bandInRange:"✓ 50–100 दायरा",bandOutOfRange:"50–100 दायरा",mapContextLost:"ग्राफ़िक्स मेमोरी खाली करने के लिए यह मानचित्र अनलोड कर दिया गया।",nOfTotal:"{total} में से {n}",mapInitFailed:"मानचित्र आरंभ नहीं हो सका — टोकन और कंटेनर जाँचें",countryWallIntroA:"हर देश के लिए एक पोस्टर — प्रार्थना करने, छापने और दीवार पर लगाने के लिए तैयार, और उनके लिए प्रार्थना करते हुए ",countryWallIntroB:". क्षेत्र और देश इस क्रम में हैं कि उनमें कितने अनपहुँचे जनसमूह हैं, ताकि सबसे बड़ी ज़रूरत पहले आए।",countryWallSoon:"जल्द ही: हर देश के लिए एक प्रार्थना सूची बनाई जाएगी, जिसमें उसके हर अनपहुँचे जनसमूह का नाम होगा।",countryWallHeading:"देश पोस्टर — प्रार्थना सूचियाँ और पोस्टर",largerScreenNotice:"यह प्रायोगिक नक्शा बड़ी स्क्रीन के लिए बना है। यह यहाँ खुलता है, पर फ़ोन पर इसके कुछ हिस्से ठीक से न दिखें या न चलें।",desktopOnlyNotice:"{label} केवल डेस्कटॉप पर चलता है — इसे इस्तेमाल करने के लिए यह पेज कंप्यूटर पर खोलें।",noticeDismiss:"बंद करें",countryPosterTooMany:"एक पोस्टर पर साफ़-साफ़ आने के लिए जनसमूह बहुत अधिक हैं — समाधान पर काम चल रहा है।"},"./locales/hi/neighbor.json":{brand:"मेरे UPG पड़ोसी",chooseView:"दृश्य चुनें",views:{cockpit:"सारांश",sendMap:"भेजने का नक्शा",flowerMesh:"फूल-जाल",langCluster:"भाषा समूह",flowers:"फूल",mobilize:"संगठित करें",campaigns:"आंदोलन"},hints:{cockpit:"क्रॉस-फ़िल्टर केंद्र",sendMap:"पहुँचे से अपहुँचे तक चाप",flowerMesh:"वृत्ताकार खिलना",langCluster:"भाषा से सीमित समुच्चय",flowers:"परिवार · भाषा · बोली के केंद्र और बारीक पंखुड़ियाँ"},title:{overview:"मेरे UPG पड़ोसी · सारांश",send:"मेरे UPG पड़ोसी · SEND",langClusters:"मेरे UPG पड़ोसी · भाषा समूह",flowerMesh:"मेरे UPG पड़ोसी · फूल-जाल"},search:"खोजें",searchCockpit:"लक्ष्य / भेजने वाला / भाषा खोजें…",searchStrip:"लक्ष्य / भाषा / भेजने वाला खोजें…",searchBrush:"खोजें और चुनें",remove:"{label} हटाएँ",selectTarget:"अपहुँचा लक्ष्य देश चुनें",loadingSend:"SEND नक्शा लोड हो रहा है…",send:{unreachedTarget:"अपहुँचा लक्ष्य —",clickOne:"किसी एक पर क्लिक करें",toFocus:"उस पर ध्यान केंद्रित करने के लिए",reachedSender:"पहुँचा भेजने वाला (SEND →)"},pctChristian:"ईसाई: {n}%",groups:"समूह: {n}",people:"लोग",unreached:"अपहुँचा",reached:"पहुँचा",unknown:"अज्ञात",lc:{loading:"जनसमूह लोड हो रहे हैं…",apiDown:"doxa का लाइव API उपलब्ध नहीं: {message}",clusters:"भाषा समूह",pgs:"अपहुँचे",provinces:"IN/CN प्रांत",withReach:"पहुँचे मेल वाले",legendCluster:"अपहुँचा भाषा समूह (आकार = समूहों की संख्या)",legendReached:"पहुँचा पड़ोसी (भाषा से मिलाया गया)",legendHelp:"हरा घेरा = समूह का पहुँचा मेल है · गहराई से देखने के लिए किसी समूह पर क्लिक करें",setCount:"Bounded set — अपहुँचे समूह: {n}",more:"+{n} और",reachedSame:"पहुँचे पड़ोसी (एक ही भाषा): {n}",frontier:"इस डेटा में कोई पहुँचा जनसमूह यह भाषा नहीं बोलता। यह एक सीमांत है: मज़दूरों के लिए प्रार्थना करें (लूका 10:2)।",openFlower:"फूल दृश्य खोलें ▸"},fm:{languageMesh:"भाषा-जाल",reachedNeighbors:"पहुँचे पड़ोसी",countries:"देश",upgsInCenter:"केंद्र में UPG",meshLinks:"जाल की कड़ियाँ",growing:"फूल बढ़ रहा है…",upgs:"UPG: {n}",people:"लोग: {n}",legendTitle:"फूल",unreachedTarget:"अपहुँचा लक्ष्य (doxa-2000)",reachedDeeper:"पहुँचा पड़ोसी (गहरा = अधिक ईसाई)",sendPath:"SEND मार्ग → अपहुँचों की ओर",viaCluster:"संबंधित भाषा समूह के द्वारा",mesh:"एक ही भाषा का सहयोग-जाल",whorl:"भीतरी घेरा = वही देश · पंखुड़ियाँ = आसपास के देश",loadError:"पहुँचे पड़ोसियों का डेटा लोड नहीं हो सका"},strip:{lens:"लेंस",lensAria:"भाषा लेंस",noLens:"— कोई लेंस नहीं —",color:"रंग",colorAria:"पहुँचे भेजने वालों को इस आधार पर रंगें",pctReached:"% पहुँचा",religion:"धर्म",senderLanguage:"भेजने वाले की भाषा",senderCountry:"भेजने वाले का देश",clear:"साफ़ करें",noSenders:"कोई भेजने वाला नहीं",byLanguage:"भाषा के अनुसार भेजने वाले",byCountry:"देश के अनुसार भेजने वाले",quantile:"% पहुँचा (क्वांटाइल)",histogram:"पहुँच प्रतिशत का हिस्टोग्राम",religionFamily:"धर्म परिवार",bridgeType:"पुल का प्रकार",donut:"श्रेणी के अनुसार रिंग"},list:{hidden:"· फ़िल्टर से छिपे: {n}",clear:"साफ़ करें",copy:"कॉपी करें",csvDownloaded:"CSV डाउनलोड हुई ({n})",copied:"कॉपी हुआ ({n})",copyFailed:"कॉपी नहीं हुआ: Ctrl/Cmd-C दबाएँ",sendersAvailable:"{n} भेजने वाले उपलब्ध",buildSendList:"भेजने की सूची बनाएँ",noSenders:"कोई भेजने वाला वर्तमान फ़िल्टर से मेल नहीं खाता",sendersHidden:"{n} भेजने वाले छिपे हैं — उन्हें देखने के लिए एक फ़िल्टर हटाएँ",noReachedYet:"इस लक्ष्य के सहेजे गए डेटा में अभी कोई पहुँचे हुए पड़ोसी नहीं हैं",pickTarget:"एक लाल लक्ष्य चुनें",clustersNearby:"{c} अपहुँचे समूह · पास में {s} पहुँचे हुए भेजने वाले",tapBubble:"उसकी भेजने की सूची बनाने के लिए नक्शे पर किसी लाल बुलबुले को टैप करें।",colPeopleGroup:"जनसमूह",colCountry:"देश",colLanguage:"भाषा",colPopulation:"जनसंख्या",colReligion:"धर्म",colPctChristian:"% ईसाई",colAdjacency:"निकटता",colCode:"कोड",sortMobilization:"संग्रहण",sortFrontier:"सीमांत पहले",colName:"नाम"},fc:{clusterBy:"समूह बनाएँ",flowers:"फूल",unreached:"अपहुँचे",legendTitle:"फूल-समूह",legendCore:"अपहुँचा भाषा समूह (केंद्र, आकार = समूहों की संख्या)",legendPetal:"पहुँचा पड़ोसी (बारीक, असली निर्देशांक)",legendHelp:"फिर से समूह बनाने के लिए ऊपर के घेरे पर क्लिक करें · पंखुड़ियाँ खोलने के लिए केंद्र पर क्लिक करें",clustering:"फ़सल को भाषा के अनुसार समूहित किया जा रहा है…",signLanguage:"सांकेतिक भाषा",mode:{family:"परिवार",language:"भाषा",dialect:"बोली"},size:{fewerBigger:"कम · बड़े",more:"अधिक",most:"सर्वाधिक"}},mc:{greenEncoding:"हरे रंग की कोडिंग",provinces:"IN/CN प्रांत",provincesTitle:"IN/CN प्रांतों की सीमाएँ दिखाएँ",resetFocus:"✕ ध्यान हटाएँ",needsToken:"नक्शे को Mapbox टोकन चाहिए (profile-config में tk)…",rendering:"फ़सल का खेत बनाया जा रहा है…"},bloom:"खिलना",cockpit:{viewSwitch:"नक्शा या फूल दृश्य",loading:"फ़सल का खेत लोड हो रहा है…",unreachedTarget:"अपहुँचा लक्ष्य",map:"मानचित्र",flower:"फूल",details:"विवरण",senders:"भेजने वाले →",clustersHidden:"क्लस्टर · {n} छिपे",legendSend:"SEND (ठोस = वही भाषा · डैश = क्लस्टर · बिंदु = देश के भीतर)",legendSelection:"चयन · त्रिज्या = जनसंख्या का लघुगणक · लूका 10:2",navySend:"गहरा नीला = SEND",goldMesh:"सुनहरा = एक-भाषा जाल"},flower:{pickTarget:"नक्शे पर एक लाल लक्ष्य चुनें —",bloomsHere:"उसके पहुँचे हुए पड़ोसी यहाँ फूल की तरह खिलते हैं।"},sm:{counts:"{u} UPG · {s} पहुँचे हुए भेजने वाले",noSenders:"इस लक्ष्य के लिए ज्ञात देश-केंद्र वाला कोई योग्य पहुँचा हुआ भेजने वाला नहीं है।"},about:{button:"यह कैसे काम करता है",title:"निकट पड़ोसियों को संगठित करना",close:"बंद करें",why:"किसी अपहुँच जनसमूह तक पहुँचने के लिए सबसे उपयुक्त विश्वासी आम तौर पर वे होते हैं जो भाषा और संस्कृति में उसके सबसे निकट हैं। यह उपकरण राल्फ डी. विंटर के E-स्केल और P-स्केल से हर अपहुँच समूह के लिए उन्हें ढूँढता है, ताकि आप योजना बना सकें कि किसे, किस भाषा में और कहाँ संगठित करना है।",greenTitle:"कलीसियाओं के लिए: किसी हरे बिंदु से शुरू करें",green:"किसी पहुँचे हुए (हरे) समूह को चुनें, पहुँचे हुए समूह सूची से या किसी हरे बिंदु से, और देखें कि उसके विश्वासी किन अपहुँचे लोगों तक सबसे अच्छी तरह पहुँच सकते हैं, एक बार में एक E-स्तर, सबसे निकट पहले। फिर सूची (CSV) निर्यात करें, उसके विश्वासियों को पत्र लिखें या प्रार्थना पैकेट छापें, उस कलीसिया या उसके मिशन साझेदारों के लिए।",eTitle:"E-स्केल: गवाह को कितनी दूरी पार करनी है",pTitle:"P-स्केल: किसी जनसमूह और कलीसिया के बीच की दूरी",dataTitle:"डेटा और सीमाएँ",data:"पहुँचा हुआ का अर्थ है कम से कम 2% इवैंजेलिकल (IMB की परिभाषा)। भाषा और संस्कृति का अनुमान भाषा कोड और IMB के जनसमूह वर्गीकरण (क्लस्टर, सम्बद्धता खंड, भाषा परिवार) से लगाया गया है: अच्छे सार्वजनिक संकेतक, क्षेत्रीय आकलन नहीं। विश्वासियों की संख्या जनसंख्या और इवैंजेलिकल श्रेणियों से अनुमानित है; इसे दर्शक-संख्या के अनुमान के लिए लें, गिनती के रूप में नहीं।",source:"जनसमूह डेटा: peoplegroups.org (IMB), people_groups.csv. E-स्केल और P-स्केल: राल्फ डी. विंटर, लॉज़ेन कांग्रेस, 1974."},e:{short1:"E-1 · वही भाषा",short2:"E-2 · निकट संस्कृति",short3:"E-3 · पास में, अन्य संस्कृति",title1:"E-1 · वे वही भाषा बोलते हैं",title2:"E-2 · एक निकट संस्कृति",title3:"E-3 · पास में, भिन्न संस्कृति",long1:"वे विश्वासी जो इस समूह की भाषा बोलते हैं। वे भाषा की बाधा पार किए बिना सुसमाचार बाँट सकते हैं, और इस भाषा में एक आंदोलन उन्हें संगठित कर सकता है।",long2:"संबंधित जनसमूह के विश्वासी: वही जनसमूह क्लस्टर, या उसी सम्बद्धता खंड में वही भाषा परिवार। शून्य से शुरू करने की तुलना में छोटा सांस्कृतिक कदम।",long3:"पास में रहने वाले विश्वासी (600 किमी के भीतर या उसी देश में) जिनकी संस्कृति भिन्न है। वे क्षेत्र साझा करते हैं, भाषा नहीं।",rlong1:"अपहुँचे समूह जो इस समूह की भाषा बोलते हैं। इसके विश्वासी भाषा की बाधा पार किए बिना उन तक पहुँच सकते हैं।",rlong2:"किसी संबंधित लोगों के अपहुँचे समूह: वही लोग-समूह क्लस्टर, या उसी आत्मीयता खंड में वही भाषा परिवार।",rlong3:"पास के अपहुँचे समूह (600 किमी के भीतर या उसी देश में) जिनकी संस्कृति अलग है।"},p:{title0:"कोई पहुँचा हुआ पड़ोसी नहीं मिला",title1:"इसकी अपनी भाषा में विश्वासी हैं",title2:"निकटतम विश्वासी एक निकट संस्कृति के हैं",title3:"निकटतम विश्वासी एक दूर की संस्कृति के हैं",long0:"इस डेटा में कोई पहुँचा हुआ समूह भाषा, संस्कृति या दूरी से इस जनसमूह से मेल नहीं खाता।",long1:"कहीं न कहीं कोई पहुँचा हुआ समूह इस जनसमूह की भाषा बोलता है। उन्हें संगठित करना सबसे सीधा रास्ता है।",long2:"कोई पहुँचा हुआ समूह यह भाषा नहीं बोलता, पर संबंधित जनसमूहों में विश्वासी हैं।",long3:"पास में केवल भिन्न संस्कृति के विश्वासी हैं। इस जनसमूह तक पहुँचने के लिए अंतर-सांस्कृतिक कार्यकर्ताओं की ज़रूरत है।"},res:{bible:"बाइबल",film:"यीशु फ़िल्म",audio:"ऑडियो",radio:"रेडियो"},mob:{legend:"मानचित्र सूचकांक",legendUnreached:"अपहुँच समूह",searchPlaceholder:"अपहुँच समूह, देश या भाषा खोजें",kind:"कौन-से समूह दिखाएँ",listUnreached:"अपहुँच समूह",listReached:"पहुँचे हुए समूह",searchReached:"पहुँचा हुआ समूह, देश या भाषा खोजें",introReached:"कोई पहुँचा हुआ समूह चुनें (सबसे अधिक विश्वासियों वाले पहले), या मानचित्र पर किसी हरे बिंदु पर क्लिक करें, और देखें कि उसके विश्वासियों के सबसे निकट कौन-से अपहुँच समूह हैं।",pFilter:"P-स्तर से छाँटें",pAll:"सभी",loading:"जनसमूह लोड हो रहे हैं…",intro:"देखें किसे संगठित करना है: कोई अपहुँच समूह चुनें (सबसे बड़े पहले) या मानचित्र पर किसी लाल बिंदु पर क्लिक करें।",noMatch:"कोई परिणाम नहीं।",back:"सभी समूह",people:"{n} लोग",believersNear:"नीचे दिए पड़ोसियों में लगभग {n} विश्वासी।",resources:"इसकी भाषा में संसाधन",export:"दर्शक खंड निर्यात करें (CSV)",openBridge:"{lang} में आंदोलन की योजना बनाएँ",samePeople:"वही जनसमूह",cardStats:"~{b} विश्वासी · {km} किमी दूर",noNeighbors:"इस डेटा में कोई पहुँचा हुआ पड़ोसी नहीं।",caveat:"peoplegroups.org के डेटा से अनुमान। कार्य करने से पहले स्थानीय वास्तविकता जाँचें।",loadError:"जनसमूह डेटा लोड नहीं हो सका: {message}",legendReached:"पहुँचा हुआ समूह",introBoth:"कोई अपहुँचा समूह चुनें (सबसे बड़े पहले), या मानचित्र पर किसी बिंदु पर क्लिक करें। लाल बिंदु उसके लिए जुटाए जाने वाले विश्वासी दिखाता है; हरा बिंदु वे अपहुँचे समूह दिखाता है जिनके उसके विश्वासी सबसे निकट हैं।",reachedTitle:"पहुँचा हुआ: 2% या अधिक इवैंजेलिकल",reachedLong:"लगभग {n} विश्वासी। नीचे वे अपहुँचे समूह हैं जो इस समूह को अपने सबसे निकट पहुँचे हुए पड़ोसियों में गिनते हैं।",reachCount:"{n} अपहुँचे समूह · {p} लोग",cardStatsU:"{p} लोग · {km} किमी दूर",showNeighbors:"इसके पड़ोसी दिखाएँ",noUnreachedNeighbors:"कोई अपहुँचा समूह इस समूह को अपने सबसे निकट पहुँचे हुए पड़ोसियों में नहीं गिनता।",showAll:"सभी {n} दिखाएँ",eFilter:"E-स्तर के अनुसार पड़ोसी दिखाएँ",sheetHide:"सूची छिपाएँ",sheetShow:"सूची दिखाएँ"},camp:{intro:"सेतु भाषाएँ: वे भाषाएँ जिन्हें विश्वासी और अपहुँच जनसमूह दोनों बोलते हैं। उस भाषा में एक आंदोलन, जहाँ विश्वासी रहते हैं वहाँ चलाकर, उन्हें अपहुँच लोगों तक उनकी अपनी भाषा में पहुँचने के लिए संगठित कर सकता है।",searchPlaceholder:"भाषा या देश खोजें",minBelievers:"कम से कम",exportAll:"सूची निर्यात करें (CSV)",unreachedPeople:"{n} अपहुँच",believers:"~{n} विश्वासी",believersIn:"विश्वासी यहाँ: {list}",back:"सभी भाषाएँ",bigBelievers:"संगठित करने योग्य विश्वासी ({g} समूह, {c} देश)",bigUnreached:"पहुँचने योग्य अपहुँच लोग ({g} समूह, {c} देश)",export:"यह आंदोलन निर्यात करें (CSV)",whereToRun:"इसे कहाँ चलाएँ: देश के अनुसार विश्वासी",believersInGroups:"~{n}, {g} समूहों में",whoTheyReach:"वे किन तक पहुँच सकते हैं"},letter:{button:"पत्र लिखें",title:"{group} विश्वासियों के नाम एक पत्र",greeting:"{country} में {group} विश्वासियों के बीच प्रिय मित्रो,",intro:"ये {n} अपहुँच लोग-समूह आपको अपने सबसे निकट के विश्वासियों में गिनते हैं ({level})। उनके बीच अभी बहुत कम विश्वासी रहते हैं।",item:"{name}, {country}: {pop} लोग, भाषा {language}, {km} किमी दूर।",pray:"उनके लिए प्रार्थना करें: {url}",more:"…और {n} अन्य। पूरी सूची CSV निर्यात में है।",close:"क्या आप उनके लिए प्रार्थना करेंगे, और परमेश्वर से पूछेंगे कि आपकी कलीसिया उन्हें कैसे आशीष दे सकती है? इनमें से हर लोग-समूह परमेश्वर का प्रिय है।",sign:"यीशु के नाम में,",copy:"पत्र कॉपी करें",download:"डाउनलोड करें (.txt)"},packet:{button:"प्रार्थना पैकेट",label:"{group}: उसके अपहुँच पड़ोसी ({level})",labelCapped:"{group}: उसके {total} अपहुँच पड़ोसियों में से सबसे निकट के {n} ({level})"}},"./locales/hi/pinHint.json":{line1:"किसी रंगीन बिंदु पर टैप करें",line2:"किसी को अभी भी प्रार्थना की आवश्यकता है"},"./locales/hi/wall.json":{title:"जनसमूहों की दीवार",toPortrait:"📱 खड़े रूप में बदलें",toLandscape:"🖼️ आड़े रूप में बदलें",currentLandscape:"वर्तमान: आड़ा (4 × 3 फ़ुट)",currentPortrait:"वर्तमान: खड़ा (3 × 4 फ़ुट)",resetZoom:"ज़ूम रीसेट करें",groupsLoaded:"लोड हुए: {n}",loading:"जनसमूह लोड हो रहे हैं…",offlineTitle:"लाइव प्रार्थना डेटा तक नहीं पहुँचा जा सका।",offlineBody:"दीवार अपने जनसमूह pray.doxa.life से पढ़ती है। हो सकता है आप ऑफ़लाइन हों, या स्थानीय डेवलपमेंट सर्वर पर API इस पेज के पते की अनुमति न दे।",tryAgain:"फिर से कोशिश करें",prayedCount:"प्रार्थना की: {n}",viewPrayers:"प्रार्थनाएँ देखें",prayerTools:"प्रार्थना उपकरण",close:"बंद करें",unknown:"अज्ञात",unknownGroup:"अज्ञात जनसमूह",status:"स्थिति:",unengaged:"अपहुँचा",prayingNow:"क्या आप अभी इस जनसमूह के लिए प्रार्थना कर रहे हैं?",yesPraying:"हाँ, मैं प्रार्थना कर रहा हूँ",thankYou:"प्रार्थना के लिए धन्यवाद!",sharePrayer:"अपनी प्रार्थना साझा करें (वैकल्पिक)",prayerPlaceholder:"अपनी प्रार्थना यहाँ लिखें…",sendPrayer:"प्रार्थना भेजें",peopleGroup:"जनसमूह",chatsTitle:"जनसमूह चर्चा",id:"ID:",location:"स्थान:",na:"उपलब्ध नहीं",havePrayed:"प्रार्थना की: {n}",youPrayed:"✓ आपने प्रार्थना की!",prayForGroup:"🙏 इस जनसमूह के लिए प्रार्थना करें",prayersComments:"प्रार्थनाएँ और टिप्पणियाँ",noComments:"अभी कोई प्रार्थना या टिप्पणी नहीं। पहले बनें!",commentPlaceholder:"अपनी प्रार्थना या विचार साझा करें…",postComment:"टिप्पणी पोस्ट करें",noPeopleId:"इस जनसमूह के पास PeopleID3 नहीं है",statusUnknown:"स्थिति अज्ञात",printPoster:"🖨️ HD पोस्टर छापें",printPreparing:"पोस्टर तैयार हो रहा है: {total} में से {n} फ़ोटो",printMissing:"जो फ़ोटो लोड नहीं हो सकीं: {n}। वे धूसर बॉक्स के रूप में छपेंगी।",blessBanner:"यीशु के नाम में राष्ट्रों को आशीष दो",modeLabel:"दीवार का मोड",modeBless:"आशीष",modeSocial:"सामाजिक",shareSoon:"साझा करने की सुविधा बाद में आएगी।",drawLibError:"दीवार अपनी ड्रॉइंग लाइब्रेरी लोड नहीं कर सकी:",posterSize:"पोस्टर का आकार",posterSubtitle:"DOXA (δόξα) का अर्थ है महिमा। एक वैश्विक प्रार्थना आंदोलन यीशु के नाम में इन {n} जन-समूहों को आशीष दे रहा है। अधिक जानें और जुड़ें: pray.doxa.life।",glueHere:"ऊपर वाली शीट यहाँ चिपकाएँ",themesLabel:"प्रार्थना के विषय",oldTestament:"पुराना नियम",newTestament:"नया नियम",themeTreasure:"ख़ज़ाना",themeMountain:"पहाड़",themeSea:"समुद्र",posterClosing:"यीशु मसीह कोने का पत्थर है, और हम जीवित पत्थर हैं। ये जन-समूह उसके दुःख का प्रतिफल हैं। आइए अपनी याजकीय बुलाहट उठाएँ: उसके नाम में उन्हें आशीष दें, और प्रार्थना में विश्व-परिवार से जुड़ें।",journeyCalled:"बुलाहट",journeyPromised:"प्रतिज्ञा",journeyRedeemed:"छुड़ाए गए",journeyCornerstone:"कोने का पत्थर",journeyChildren:"अब्राहम की संतान",journeyPriesthood:"राज-पदधारी याजक",journeySent:"खोए हुओं के पास भेजे गए",peopleGroupCount:"{n} जनसमूह | {n} जनसमूह",listCount:"{n} सूची | {n} सूचियाँ",stockCard:"कार्ड",stockPostcard:"पोस्टकार्ड",stockLandscape:"लैंडस्केप",hud:{kindPoster:"पोस्टर",kindList:"सूची",kindPacket:"प्रार्थना पैकेट",fetchingPoster:"पोस्टर लाया जा रहा है",generatingPoster:"पोस्टर बनाया जा रहा है",openingPrint:"प्रिंट विंडो खुल रही है",printOpened:"प्रिंट विंडो खुल गई",readyToPrint:"प्रिंट के लिए तैयार",printNow:"प्रिंट करें",saving:"सहेजा जा रहा है",fetchingRecords:"डेटा लाया जा रहा है",fetchingGroups:"जनसमूह लाए जा रहे हैं",layingOutRows:"{n} पंक्ति सजाई जा रही है | {n} पंक्तियाँ सजाई जा रही हैं",layingOutCards:"{n} कार्ड सजाया जा रहा है | {n} कार्ड सजाए जा रहे हैं",printingGroups:"{n} जनसमूह छापा जा रहा है | {n} जनसमूह छापे जा रहे हैं",kindCardDeck:"कार्ड सेट",kindPrayerList:"प्रार्थना सूची",saved:"सहेजा गया",noRecords:"इस सूची में छापने के लिए कोई जनसमूह नहीं है",noPoster:"इस सूची के लिए कोई पोस्टर उपलब्ध नहीं है",posterNotFound:"पोस्टर नहीं मिला ({status})",posterBlank:"बनाया गया पोस्टर खाली निकला",noApi:"कोई जनसमूह सेवा कॉन्फ़िगर नहीं है",fetchFailed:"जनसमूह लोड नहीं हो सके ({status})"},posterAlt:"{label} — प्रार्थना पोस्टर",posterAltAction:"{label} — प्रार्थना पोस्टर (देखने और छापने के लिए क्लिक करें)"},"./locales/it/aria.json":{backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda",searchPeopleGroups:"Cerca popoli",resetAllFilters:"Reimposta tutti i filtri e la ricerca",selectAllRows:"Seleziona tutte le righe",deselectAllRows:"Deseleziona tutte le righe",rowDetail:"Dettaglio riga",dismissHint:"Ignora il suggerimento",resizeFiltersRail:"Ridimensiona la barra dei filtri",resizeFiltersRailHint:"Trascina o usa i tasti freccia per ridimensionare la barra dei filtri",resizeChartsRail:"Ridimensiona la barra dei grafici",resizeChartsRailHint:"Trascina o usa i tasti freccia per ridimensionare la barra dei grafici",resizeMapTableSplit:"Ridimensiona la divisione mappa/tabella",resizeMapTableSplitHint:"Trascina o usa i tasti freccia per ridimensionare la divisione mappa/tabella",resizeTable:"Ridimensiona l'altezza della tabella",resizeTableHint:"Trascina o usa i tasti freccia per ridimensionare la tabella",resizeDashboardHeight:"Ridimensiona l'altezza della dashboard",resizeDashboardHeightHint:"Trascina o usa i tasti freccia per ridimensionare l'altezza della dashboard",removeFilter:"Rimuovi il filtro {name}",closeDetail:"Chiudi il dettaglio",filterBreadcrumb:"Percorso dei filtri",railViews:"Viste della barra",upgCountLegend:"Legenda del conteggio UPG",donutChart:"Grafico ad anello: {title}"},"./locales/it/buttons.json":{prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga",packetVariantAria:"Dettaglio del pacchetto di preghiera",packetFull:"Dettaglio completo",packetLightweight:"Leggero",working:"Elaborazione…",postersPerRowAuto:"Automatico"},"./locales/it/grid.json":{search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro.",search_people_or_countries:"Cerca popoli o paesi…",cards_per_row:"Schede per riga",cards_per_row_auto:"Automatico"},"./locales/it/mapui.json":{map:"Mappa",marker:"Indicatore sulla mappa",closePopup:"Chiudi popup",zoomIn:"Ingrandisci",zoomOut:"Riduci",resetBearing:"Trascina per ruotare la mappa, fai clic per tornare al nord",toggleAttribution:"Mostra/nascondi attribuzione",mapFeedback:"Feedback sulla mappa",enterFullscreen:"Schermo intero",exitFullscreen:"Esci da schermo intero",findMyLocation:"Trova la mia posizione",locationNotAvailable:"Posizione non disponibile",enableGlobe:"Attiva globo",disableGlobe:"Disattiva globo",ctrlScroll:"Usa Ctrl + scorrimento per ingrandire la mappa",cmdScroll:"Usa ⌘ + scorrimento per ingrandire la mappa",twoFingers:"Usa due dita per spostare la mappa",mapboxHomepage:"Home page di Mapbox",maplibreLogo:"Logo di MapLibre"},"./locales/it/messages.json":{menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG100 — Liste di preghiera e manifesti",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntroA:"Come sfameresti una folla di cinquemila? Gesù li fece sedere a gruppi di cinquanta e di cento, e l’impossibile divenne condivisibile (Luca 9:14). Abbiamo fatto lo stesso con i 2.106 popoli non raggiunti: 27 liste di circa cinquanta-cento. Ogni lista si stampa come pacchetto di preghiera e manifesto, così 27 discepoli, chiese o responsabili locali ne portano una ciascuno — pregando per loro ",upg100WallIntroEmph:"con il nome del loro popolo",upg100WallIntroB:".",loadingNamed:"Caricamento di {name}…",couldNotLoadNamed:"Impossibile caricare {name}.",engineMissing:"Il motore di mappa {engine} non è stato caricato.",packetFailed:"Libretto non riuscito: {reason}",selectionPacketFailed:"Libretto della selezione non riuscito: {reason}",posterOneTerritory:"Il manifesto stampa un territorio alla volta — {count} selezionati.",selectionPosterFailed:"Manifesto della selezione non riuscito: {reason}",mapUnavailable:"Mappa non disponibile",copied:"Copiato!",copyFailed:"Copia non riuscita — premi Ctrl/Cmd-C",engineNotLoaded:"motore di mappe non caricato",engineNotLoadedDetail:"Il motore di mappe {engine} non si è caricato. L’elenco e la legenda non sono interessati.",viewLoadFailed:"Impossibile caricare questa vista.",retry:"Riprova",noMapboxToken:"Nessun token Mapbox",noMapboxTokenDetail:"Nessun token Mapbox configurato. L’elenco e la legenda non sono interessati.",loadingBoundaries:"Caricamento dei confini…",fetchingUupgs:"Recupero di {n} UUPG…",mapStatusCounts:"Aree: {polys} · zone: {zones}/{total} · segnaposto: {pins}",tapTerritoriesHint:"Tocca i territori sulla mappa o le righe della legenda per aggiungerli · tocca di nuovo per rimuoverli",territoriesSelected:"Territori: {count}",bandInRange:"✓ fascia 50–100",bandOutOfRange:"fascia 50–100",mapContextLost:"Questa mappa è stata scaricata per liberare memoria grafica.",nOfTotal:"{n} su {total}",mapInitFailed:"Impossibile inizializzare la mappa — controlla il token e il contenitore",countryWallIntroA:"Un poster per paese, pronto da pregare, stampare e appendere al muro — pregando per loro ",countryWallIntroB:". Regioni e paesi sono ordinati in base a quanti popoli non raggiunti contengono, perché il bisogno più grande venga per primo.",countryWallSoon:"Prossimamente: per ogni paese verrà generata una lista di preghiera con il nome di ogni popolo non raggiunto che vi abita.",countryWallHeading:"Poster per paese — Liste di preghiera e manifesti",largerScreenNotice:"Questa mappa sperimentale è pensata per schermi grandi. Si apre qui, ma alcune parti potrebbero non entrare o non funzionare bene su un telefono.",desktopOnlyNotice:"{label} funziona solo su desktop: apri questa pagina da un computer per usarlo.",noticeDismiss:"Chiudi",countryPosterTooMany:"Troppi popoli per stare in modo leggibile su un solo manifesto: una soluzione è in arrivo."},"./locales/it/neighbor.json":{brand:"I miei vicini UPG",chooseView:"Scegli una vista",views:{cockpit:"Panoramica",sendMap:"Mappa di invio",flowerMesh:"Rete floreale",langCluster:"Gruppi linguistici",flowers:"Fiori",mobilize:"Mobilitare",campaigns:"Movimenti"},hints:{cockpit:"centro dei filtri incrociati",sendMap:"archi da raggiunti a non raggiunti",flowerMesh:"fioritura radiale",langCluster:"insiemi delimitati per lingua",flowers:"nuclei di famiglia · lingua · dialetto e petali dettagliati"},title:{overview:"I miei vicini UPG · Panoramica",send:"I miei vicini UPG · SEND",langClusters:"I miei vicini UPG · Gruppi linguistici",flowerMesh:"I miei vicini UPG · Rete floreale"},search:"Cerca",searchCockpit:"Cerca obiettivo / mittente / lingua…",searchStrip:"Cerca obiettivo / lingua / mittente…",searchBrush:"Cerca e seleziona",remove:"rimuovi {label}",selectTarget:"Scegli il paese obiettivo non raggiunto",loadingSend:"Caricamento della mappa SEND…",send:{unreachedTarget:"Obiettivo non raggiunto —",clickOne:"cliccane uno",toFocus:"per metterlo a fuoco",reachedSender:"Mittente raggiunto (SEND →)"},pctChristian:"{n}% cristiani",groups:"gruppi: {n}",people:"persone",unreached:"non raggiunto",reached:"raggiunto",unknown:"Sconosciuto",lc:{loading:"Caricamento dei popoli…",apiDown:"L’API doxa in tempo reale non risponde: {message}",clusters:"gruppi linguistici",pgs:"non raggiunti",provinces:"province IN/CN",withReach:"con corrispondenza raggiunta",legendCluster:"Gruppo linguistico non raggiunto (dimensione = numero di popoli)",legendReached:"Vicino raggiunto (abbinato per lingua)",legendHelp:"anello verde = il gruppo ha una corrispondenza raggiunta · clicca un gruppo per approfondire",setCount:"Bounded set — popoli non raggiunti: {n}",more:"+{n} altri",reachedSame:"Vicini raggiunti (stessa lingua): {n}",frontier:"Nessun popolo raggiunto condivide questa lingua in questi dati. Una frontiera: pregate per gli operai (Luca 10:2).",openFlower:"Apri la vista fiore ▸"},fm:{languageMesh:"rete linguistica",reachedNeighbors:"vicini raggiunti",countries:"paesi",upgsInCenter:"UPG al centro",meshLinks:"collegamenti della rete",growing:"Il fiore sta crescendo…",upgs:"UPG: {n}",people:"persone: {n}",legendTitle:"Il fiore",unreachedTarget:"Obiettivo non raggiunto (doxa-2000)",reachedDeeper:"Vicino raggiunto (più scuro = più cristiani)",sendPath:"Percorso SEND → verso i non raggiunti",viaCluster:"tramite un gruppo linguistico affine",mesh:"Rete di collaborazione nella stessa lingua",whorl:"cerchio interno = stesso paese · petali = paesi circostanti",loadError:"Impossibile caricare i dati dei vicini raggiunti"},strip:{lens:"Lente",lensAria:"Lente linguistica",noLens:"— nessuna lente —",color:"Colore",colorAria:"Colora i mittenti raggiunti per",pctReached:"% raggiunto",religion:"religione",senderLanguage:"Lingua del mittente",senderCountry:"Paese del mittente",clear:"azzera",noSenders:"nessun mittente",byLanguage:"Mittenti per lingua",byCountry:"Mittenti per paese",quantile:"% raggiunto (quantili)",histogram:"Istogramma della percentuale raggiunta",religionFamily:"Famiglia religiosa",bridgeType:"Tipo di ponte",donut:"Anello per categoria"},list:{hidden:"· nascosti dai filtri: {n}",clear:"Azzera",copy:"Copia",csvDownloaded:"CSV scaricato ({n})",copied:"Copiato ({n})",copyFailed:"Copia non riuscita: premi Ctrl/Cmd-C",sendersAvailable:"{n} mittenti disponibili",buildSendList:"Crea lista di invio",noSenders:"Nessun mittente corrisponde ai filtri attuali",sendersHidden:"{n} mittenti nascosti — togli un filtro per vederli",noReachedYet:"Questo obiettivo non ha ancora vicini raggiunti nei dati salvati",pickTarget:"Scegli un obiettivo rosso",clustersNearby:"{c} gruppi non raggiunti · {s} mittenti raggiunti vicini",tapBubble:"Tocca una bolla rossa sulla mappa per creare la sua lista di invio.",colPeopleGroup:"Popolo",colCountry:"Paese",colLanguage:"Lingua",colPopulation:"Popolazione",colReligion:"Religione",colPctChristian:"% cristiani",colAdjacency:"Adiacenza",colCode:"Codice",sortMobilization:"Mobilitazione",sortFrontier:"Prima le frontiere",colName:"Nome"},fc:{clusterBy:"Raggruppa per",flowers:"fiori",unreached:"non raggiunti",legendTitle:"Gruppi floreali",legendCore:"Gruppo linguistico non raggiunto (nucleo, dimensione = numero di popoli)",legendPetal:"Vicino raggiunto (dettagliato, coordinate reali)",legendHelp:"clicca un cerchio in alto per raggruppare · clicca un nucleo per aprire i petali",clustering:"Raggruppamento del raccolto per lingua…",signLanguage:"Lingua dei segni",mode:{family:"Famiglia",language:"Lingua",dialect:"Dialetto"},size:{fewerBigger:"meno · più grandi",more:"di più",most:"il massimo"}},mc:{greenEncoding:"Codifica del colore verde",provinces:"province IN/CN",provincesTitle:"Mostra i confini provinciali di IN/CN",resetFocus:"✕ togli il focus",needsToken:"La mappa richiede un token Mapbox (tk in profile-config)…",rendering:"Disegno del campo del raccolto…"},bloom:"Fioritura",cockpit:{viewSwitch:"Vista mappa o fiore",loading:"Caricamento del campo della mietitura…",unreachedTarget:"obiettivo non raggiunto",map:"Mappa",flower:"Fiore",details:"Dettagli",senders:"mittenti →",clustersHidden:"cluster · {n} nascosti",legendSend:"SEND (continua = stessa lingua · tratteggiata = cluster · punteggiata = nel paese)",legendSelection:"selezione · raggio = log della popolazione · Luca 10,2",navySend:"blu scuro = SEND",goldMesh:"oro = rete della stessa lingua"},flower:{pickTarget:"Scegli un obiettivo rosso sulla mappa —",bloomsHere:"i suoi vicini raggiunti fioriscono qui come un fiore."},sm:{counts:"{u} PNR · {s} mittenti raggiunti",noSenders:"Nessun mittente raggiunto idoneo con un baricentro nazionale noto per questo obiettivo."},about:{button:"Come funziona",title:"Mobilitare i vicini prossimi",close:"Chiudi",why:"I credenti più adatti a raggiungere un popolo non raggiunto sono di solito i più vicini a esso per lingua e cultura. Questo strumento li trova per ogni gruppo non raggiunto, con la scala E e la scala P di Ralph D. Winter, così puoi pianificare chi mobilitare, in quale lingua e dove.",greenTitle:"Per le chiese: parti da un punto verde",green:"Scegli un gruppo raggiunto (verde), dall’elenco Gruppi raggiunti o da un punto verde, per vedere i popoli non raggiunti che i suoi credenti sono nella posizione migliore per raggiungere, un livello E alla volta, i più vicini per primi. Poi esporta l’elenco (CSV), scrivi una lettera ai suoi credenti o stampa un pacchetto di preghiera, per quella chiesa o i suoi partner missionari.",eTitle:"Scala E: la distanza che un testimone deve attraversare",pTitle:"Scala P: la distanza tra un popolo e una chiesa",dataTitle:"Dati e limiti",data:"Raggiunto significa almeno il 2% di evangelici (definizione IMB). Lingua e cultura sono dedotte dal codice di lingua e dalla tassonomia dei popoli dell'IMB (cluster, blocco di affinità, famiglia linguistica): buone approssimazioni pubbliche, non valutazioni sul campo. Il numero di credenti è stimato da popolazione e fasce di evangelici; serve a dimensionare un pubblico, non come conteggio.",source:"Dati sui popoli: peoplegroups.org (IMB), people_groups.csv. Scala E e scala P: Ralph D. Winter, Congresso di Losanna, 1974."},e:{short1:"E-1 · stessa lingua",short2:"E-2 · cultura vicina",short3:"E-3 · vicino, altra cultura",title1:"E-1 · Parlano la stessa lingua",title2:"E-2 · Una cultura vicina",title3:"E-3 · Vicini, un’altra cultura",long1:"Credenti che parlano la lingua di questo gruppo. Possono condividere il Vangelo senza barriere linguistiche, e un movimento in questa lingua può mobilitarli.",long2:"Credenti di un popolo affine: lo stesso cluster di popoli, o la stessa famiglia linguistica nello stesso blocco di affinità. Un passo culturale più breve che partire da zero.",long3:"Credenti che vivono vicino (entro 600 km o nello stesso paese) ma di cultura diversa. Condividono la regione, non la lingua.",rlong1:"Gruppi non raggiunti che parlano la lingua di questo gruppo. I suoi credenti possono raggiungerli senza superare una barriera linguistica.",rlong2:"Gruppi non raggiunti di un popolo affine: lo stesso cluster di popoli, o la stessa famiglia linguistica nello stesso blocco di affinità.",rlong3:"Gruppi non raggiunti vicini (entro 600 km o nello stesso paese) con una cultura diversa."},p:{title0:"Nessun vicino raggiunto trovato",title1:"Esistono credenti nella sua lingua",title2:"I credenti più vicini sono di una cultura vicina",title3:"I credenti più vicini sono di una cultura lontana",long0:"In questi dati nessun gruppo raggiunto corrisponde a questo popolo per lingua, cultura o distanza.",long1:"Da qualche parte un gruppo raggiunto parla la lingua di questo popolo. Mobilitarlo è la via più diretta.",long2:"Nessun gruppo raggiunto parla questa lingua, ma popoli affini hanno credenti.",long3:"Vicino ci sono solo credenti di un'altra cultura. Raggiungere questo popolo richiede operai interculturali."},res:{bible:"Bibbia",film:"Film JESUS",audio:"Audio",radio:"Radio"},mob:{legend:"Legenda della mappa",legendUnreached:"Gruppo non raggiunto",searchPlaceholder:"Cerca un gruppo non raggiunto, paese o lingua",kind:"Quali gruppi mostrare",listUnreached:"Gruppi non raggiunti",listReached:"Gruppi raggiunti",searchReached:"Cerca un gruppo raggiunto, paese o lingua",introReached:"Scegli un gruppo raggiunto (prima quelli con più credenti) o clicca un punto verde sulla mappa per vedere i gruppi non raggiunti più vicini ai suoi credenti.",pFilter:"Filtra per livello P",pAll:"Tutti",loading:"Caricamento dei popoli…",intro:"Scegli un gruppo non raggiunto (prima i più grandi) o clicca un punto rosso sulla mappa per vedere chi mobilitare.",noMatch:"Nessun risultato.",back:"Tutti i gruppi",people:"{n} persone",believersNear:"Circa {n} credenti tra i vicini qui sotto.",resources:"Risorse nella sua lingua",export:"Esporta i segmenti di pubblico (CSV)",openBridge:"Pianifica un movimento di mobilitazione in {lang}",samePeople:"stesso popolo",cardStats:"~{b} credenti · a {km} km",noNeighbors:"Nessun vicino raggiunto in questi dati.",caveat:"Stime dai dati di peoplegroups.org. Verifica la realtà locale prima di agire.",loadError:"Impossibile caricare i dati dei popoli: {message}",legendReached:"Gruppo raggiunto",introBoth:"Scegli un gruppo non raggiunto (prima i più grandi) o clicca un punto sulla mappa. Un punto rosso mostra i credenti da mobilitare per esso; un punto verde mostra i gruppi non raggiunti più vicini ai suoi credenti.",reachedTitle:"Raggiunto: 2% o più di evangelici",reachedLong:"Circa {n} credenti. Qui sotto i gruppi non raggiunti che contano questo gruppo tra i loro vicini raggiunti più prossimi.",reachCount:"{n} gruppi non raggiunti · {p} persone",cardStatsU:"{p} persone · a {km} km",showNeighbors:"Mostra i suoi vicini",noUnreachedNeighbors:"Nessun gruppo non raggiunto conta questo gruppo tra i suoi vicini raggiunti più prossimi.",showAll:"Mostra tutti e {n}",eFilter:"Mostra i vicini per livello E",sheetHide:"Nascondi l’elenco",sheetShow:"Mostra l’elenco"},camp:{intro:"Lingue ponte: lingue parlate da credenti e da popoli non raggiunti. Un movimento in quella lingua, rivolto dove vivono i credenti, può mobilitarli a raggiungere i non raggiunti nella loro lingua.",searchPlaceholder:"Cerca una lingua o un paese",minBelievers:"Almeno",exportAll:"Esporta elenco (CSV)",unreachedPeople:"{n} non raggiunti",believers:"~{n} credenti",believersIn:"Credenti in: {list}",back:"Tutte le lingue",bigBelievers:"credenti da mobilitare ({g} gruppi, {c} paesi)",bigUnreached:"non raggiunti da raggiungere ({g} gruppi, {c} paesi)",export:"Esporta questo movimento (CSV)",whereToRun:"Dove lanciarla: credenti per paese",believersInGroups:"~{n} in {g} gruppi",whoTheyReach:"Chi possono raggiungere"},letter:{button:"Scrivi una lettera",title:"Una lettera ai credenti di {group}",greeting:"Cari amici tra i credenti di {group} ({country}),",intro:"Questi {n} popoli non raggiunti vi contano tra i credenti a loro più vicini ({level}). Tra loro vivono ancora pochi credenti.",item:"{name}, {country}: {pop} persone, di lingua {language}, a {km} km.",pray:"Pregate per loro: {url}",more:"…e altri {n}. L’elenco completo è nell’esportazione CSV.",close:"Pregherete per loro e chiederete a Dio come la vostra chiesa può benedirli? Ognuno di questi popoli è amato da Dio.",sign:"Nel nome di Gesù,",copy:"Copia la lettera",download:"Scarica (.txt)"},packet:{button:"Pacchetto di preghiera",label:"{group}: i suoi vicini non raggiunti ({level})",labelCapped:"{group}: i {n} più vicini dei suoi {total} vicini non raggiunti ({level})"}},"./locales/it/pinHint.json":{line1:"Tocca un punto colorato",line2:"qualcuno ha ancora bisogno di preghiera"},"./locales/it/wall.json":{title:"Muro dei popoli",toPortrait:"📱 Passa a verticale",toLandscape:"🖼️ Passa a orizzontale",currentLandscape:"Attuale: orizzontale (4 × 3 piedi)",currentPortrait:"Attuale: verticale (3 × 4 piedi)",resetZoom:"Reimposta zoom",groupsLoaded:"Caricati: {n}",loading:"Caricamento dei popoli…",offlineTitle:"Impossibile raggiungere i dati di preghiera in tempo reale.",offlineBody:"Il muro legge i suoi popoli da pray.doxa.life. Potresti essere offline oppure, su un server di sviluppo locale, l’API potrebbe non consentire l’indirizzo di questa pagina.",tryAgain:"Riprova",prayedCount:"Hanno pregato: {n}",viewPrayers:"Vedi preghiere",prayerTools:"Strumenti di preghiera",close:"Chiudi",unknown:"Sconosciuto",unknownGroup:"Popolo sconosciuto",status:"Stato:",unengaged:"non raggiunto",prayingNow:"Stai pregando ora per questo popolo?",yesPraying:"Sì, sto pregando",thankYou:"Grazie per la preghiera!",sharePrayer:"Condividi la tua preghiera (facoltativo)",prayerPlaceholder:"Scrivi qui la tua preghiera…",sendPrayer:"Invia preghiera",peopleGroup:"Popolo",chatsTitle:"Chat del popolo",id:"ID:",location:"Luogo:",na:"N/D",havePrayed:"Hanno pregato: {n}",youPrayed:"✓ Hai pregato!",prayForGroup:"🙏 Prega per questo popolo",prayersComments:"Preghiere e commenti",noComments:"Ancora nessuna preghiera o commento. Sii il primo!",commentPlaceholder:"Condividi la tua preghiera o i tuoi pensieri…",postComment:"Pubblica commento",noPeopleId:"Questo popolo non ha un PeopleID3",statusUnknown:"Stato sconosciuto",printPoster:"🖨️ Stampa poster HD",printPreparing:"Preparazione del poster: {n} di {total} foto",printMissing:"Foto che non è stato possibile caricare: {n}. Vengono stampate come riquadri grigi.",blessBanner:"Benedite le nazioni nel nome di Gesù",modeLabel:"Modalità del muro",modeBless:"Benedire",modeSocial:"Social",shareSoon:"La condivisione arriverà più avanti.",drawLibError:"Il muro non è riuscito a caricare la sua libreria di disegno:",posterSize:"Dimensione del poster",posterSubtitle:"DOXA (δόξα) significa gloria. Un movimento mondiale di preghiera sta benedicendo questi {n} gruppi etnici nel nome di Gesù. Scopri di più e unisciti su pray.doxa.life.",glueHere:"incolla qui il foglio sopra",themesLabel:"Temi di preghiera",oldTestament:"Antico Testamento",newTestament:"Nuovo Testamento",themeTreasure:"Tesoro",themeMountain:"Monte",themeSea:"Mare",posterClosing:"Gesù Cristo è la pietra angolare, e noi siamo pietre viventi. Questi popoli sono la ricompensa della sua sofferenza. Accogliamo la nostra chiamata sacerdotale: benediciamoli nel suo nome e uniamoci alla famiglia mondiale in preghiera.",journeyCalled:"La chiamata",journeyPromised:"La promessa",journeyRedeemed:"Redenti",journeyCornerstone:"La pietra angolare",journeyChildren:"Figli di Abraamo",journeyPriesthood:"Un sacerdozio regale",journeySent:"Mandati ai perduti",peopleGroupCount:"{n} popolo | {n} di popoli | {n} popoli",listCount:"{n} lista | {n} di liste | {n} liste",stockCard:"Carta",stockPostcard:"Cartolina",stockLandscape:"orizzontale",hud:{kindPoster:"Poster",kindList:"Lista",kindPacket:"Pacchetto di preghiera",fetchingPoster:"recupero del poster",generatingPoster:"generazione del poster",openingPrint:"apertura della finestra di stampa",printOpened:"finestra di stampa aperta",readyToPrint:"pronto per la stampa",printNow:"Stampa",saving:"salvataggio",fetchingRecords:"recupero dei dati",fetchingGroups:"recupero dei popoli",layingOutRows:"impaginazione di {n} riga | impaginazione di {n} di righe | impaginazione di {n} righe",layingOutCards:"impaginazione di {n} carta | impaginazione di {n} di carte | impaginazione di {n} carte",printingGroups:"stampa di {n} popolo | stampa di {n} di popoli | stampa di {n} popoli",kindCardDeck:"Mazzo di carte",kindPrayerList:"Lista di preghiera",saved:"salvato",noRecords:"quell’elenco non ha popoli da stampare",noPoster:"nessun manifesto disponibile per questo elenco",posterNotFound:"manifesto non trovato ({status})",posterBlank:"il manifesto generato è risultato vuoto",noApi:"nessun servizio dei popoli è configurato",fetchFailed:"impossibile caricare i popoli ({status})"},posterAlt:"{label} — poster di preghiera",posterAltAction:"{label} — poster di preghiera (fai clic per vedere e stampare)"},"./locales/pt/aria.json":{backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda",searchPeopleGroups:"Pesquisar povos",resetAllFilters:"Redefinir todos os filtros e a pesquisa",selectAllRows:"Selecionar todas as linhas",deselectAllRows:"Desmarcar todas as linhas",rowDetail:"Detalhe da linha",dismissHint:"Dispensar a dica",resizeFiltersRail:"Redimensionar o painel de filtros",resizeFiltersRailHint:"Arraste ou use as teclas de seta para redimensionar o painel de filtros",resizeChartsRail:"Redimensionar o painel de gráficos",resizeChartsRailHint:"Arraste ou use as teclas de seta para redimensionar o painel de gráficos",resizeMapTableSplit:"Redimensionar a divisão entre o mapa e a tabela",resizeMapTableSplitHint:"Arraste ou use as teclas de seta para redimensionar a divisão entre o mapa e a tabela",resizeTable:"Redimensionar a altura da tabela",resizeTableHint:"Arraste ou use as teclas de seta para redimensionar a tabela",resizeDashboardHeight:"Redimensionar a altura do painel",resizeDashboardHeightHint:"Arraste ou use as teclas de seta para redimensionar a altura do painel",removeFilter:"Remover o filtro {name}",closeDetail:"Fechar o detalhe",filterBreadcrumb:"Trilho de filtros",railViews:"Vistas do painel",upgCountLegend:"Legenda da contagem de UPG",donutChart:"Gráfico de rosca: {title}"},"./locales/pt/buttons.json":{prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha",packetVariantAria:"Detalhe do pacote de oração",packetFull:"Detalhe completo",packetLightweight:"Leve",working:"Processando…",postersPerRowAuto:"Automático"},"./locales/pt/grid.json":{search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro.",search_people_or_countries:"Pesquisar povos ou países…",cards_per_row:"Cartões por linha",cards_per_row_auto:"Automático"},"./locales/pt/mapui.json":{map:"Mapa",marker:"Marcador do mapa",closePopup:"Fechar janela",zoomIn:"Aumentar zoom",zoomOut:"Diminuir zoom",resetBearing:"Arraste para girar o mapa, clique para voltar ao norte",toggleAttribution:"Mostrar/ocultar atribuição",mapFeedback:"Comentários sobre o mapa",enterFullscreen:"Tela cheia",exitFullscreen:"Sair da tela cheia",findMyLocation:"Encontrar minha localização",locationNotAvailable:"Localização indisponível",enableGlobe:"Ativar globo",disableGlobe:"Desativar globo",ctrlScroll:"Use Ctrl + rolagem para ampliar o mapa",cmdScroll:"Use ⌘ + rolagem para ampliar o mapa",twoFingers:"Use dois dedos para mover o mapa",mapboxHomepage:"Página inicial do Mapbox",maplibreLogo:"Logótipo do MapLibre"},"./locales/pt/messages.json":{menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"Minha lista UPG100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntroA:"Como você alimentaria uma multidão de cinco mil? Jesus os sentou em grupos de cinquenta e de cem, e o impossível tornou-se compartilhável (Lucas 9.14). Fizemos o mesmo com os 2.106 povos não alcançados: 27 listas de cerca de cinquenta a cem. Cada lista imprime como pacote de oração e cartaz, para que 27 discípulos, igrejas ou líderes locais levem uma cada um — orando por eles ",upg100WallIntroEmph:"pelo nome do seu povo",upg100WallIntroB:".",loadingNamed:"Carregando {name}…",couldNotLoadNamed:"Não foi possível carregar {name}.",engineMissing:"O motor de mapa {engine} não foi carregado.",packetFailed:"Falha ao gerar o caderno: {reason}",selectionPacketFailed:"Falha ao gerar o caderno da seleção: {reason}",posterOneTerritory:"O cartaz imprime um território de cada vez — {count} selecionados.",selectionPosterFailed:"Falha ao gerar o cartaz da seleção: {reason}",mapUnavailable:"Mapa indisponível",copied:"Copiado!",copyFailed:"Falha ao copiar — pressione Ctrl/Cmd-C",engineNotLoaded:"motor de mapas não carregado",engineNotLoadedDetail:"O motor de mapas {engine} não carregou. A lista e a legenda não são afetadas.",viewLoadFailed:"Não foi possível carregar esta visualização.",retry:"Tentar novamente",noMapboxToken:"Nenhum token do Mapbox",noMapboxTokenDetail:"Nenhum token do Mapbox configurado. A lista e a legenda não são afetadas.",loadingBoundaries:"Carregando limites…",fetchingUupgs:"Buscando {n} UUPGs…",mapStatusCounts:"Áreas: {polys} · zonas: {zones}/{total} · marcadores: {pins}",tapTerritoriesHint:"Toque em territórios no mapa ou em linhas da legenda para adicionar · toque de novo para remover",territoriesSelected:"Territórios: {count}",bandInRange:"✓ faixa 50–100",bandOutOfRange:"faixa 50–100",mapContextLost:"Este mapa foi descarregado para libertar memória gráfica.",nOfTotal:"{n} de {total}",mapInitFailed:"Falha ao iniciar o mapa — verifique o token e o contêiner",countryWallIntroA:"Um cartaz por país, pronto para orar, imprimir e pendurar na parede — orando por eles ",countryWallIntroB:". As regiões e os países são ordenados pelo número de povos não engajados que abrigam, para que a maior necessidade venha primeiro.",countryWallSoon:"Em breve: será gerada uma lista de oração para cada país, com o nome de cada povo não alcançado nele.",countryWallHeading:"Cartazes por país — Listas de oração e cartazes",largerScreenNotice:"Este mapa experimental foi feito para telas maiores. Ele abre aqui, mas algumas partes podem não caber ou não funcionar bem no celular.",desktopOnlyNotice:"{label} só funciona no computador — abra esta página num computador para usá-lo.",noticeDismiss:"Fechar",countryPosterTooMany:"Povos demais para caber de forma legível em um só cartaz — uma solução está a caminho."},"./locales/pt/neighbor.json":{brand:"Meus vizinhos UPG",chooseView:"Escolha uma vista",views:{cockpit:"Visão geral",sendMap:"Mapa de envio",flowerMesh:"Malha floral",langCluster:"Grupos linguísticos",flowers:"Flores",mobilize:"Mobilizar",campaigns:"Movimentos"},hints:{cockpit:"centro de filtros cruzados",sendMap:"arcos de alcançado para não alcançado",flowerMesh:"floração radial",langCluster:"conjuntos delimitados por idioma",flowers:"núcleos de família · idioma · dialeto e pétalas detalhadas"},title:{overview:"Meus vizinhos UPG · Visão geral",send:"Meus vizinhos UPG · SEND",langClusters:"Meus vizinhos UPG · Grupos linguísticos",flowerMesh:"Meus vizinhos UPG · Malha floral"},search:"Pesquisar",searchCockpit:"Pesquisar destino / emissor / idioma…",searchStrip:"Pesquisar destino / idioma / emissor…",searchBrush:"Pesquisar e selecionar",remove:"remover {label}",selectTarget:"Escolha o país destino não alcançado",loadingSend:"A carregar mapa SEND…",send:{unreachedTarget:"Destino não alcançado —",clickOne:"clique num",toFocus:"para o focar",reachedSender:"Emissor alcançado (SEND →)"},pctChristian:"{n}% cristãos",groups:"grupos: {n}",people:"pessoas",unreached:"não alcançado",reached:"alcançado",unknown:"Desconhecido",lc:{loading:"A carregar povos…",apiDown:"A API em direto da doxa não responde: {message}",clusters:"grupos linguísticos",pgs:"não alcançados",provinces:"províncias IN/CN",withReach:"com correspondência alcançada",legendCluster:"Grupo linguístico não alcançado (tamanho = número de povos)",legendReached:"Vizinho alcançado (associado pelo idioma)",legendHelp:"anel verde = o grupo tem uma correspondência alcançada · clique num grupo para aprofundar",setCount:"Bounded set — povos não alcançados: {n}",more:"+{n} mais",reachedSame:"Vizinhos alcançados (mesmo idioma): {n}",frontier:"Nenhum povo alcançado partilha este idioma nestes dados. Uma fronteira: orem por trabalhadores (Lucas 10:2).",openFlower:"Abrir vista de flor ▸"},fm:{languageMesh:"malha de idiomas",reachedNeighbors:"vizinhos alcançados",countries:"países",upgsInCenter:"UPG no centro",meshLinks:"ligações da malha",growing:"A flor está a crescer…",upgs:"UPG: {n}",people:"pessoas: {n}",legendTitle:"A flor",unreachedTarget:"Destino não alcançado (doxa-2000)",reachedDeeper:"Vizinho alcançado (mais escuro = mais cristãos)",sendPath:"Caminho SEND → para os não alcançados",viaCluster:"por um grupo linguístico relacionado",mesh:"Malha de colaboração do mesmo idioma",whorl:"círculo interior = mesmo país · pétalas = países vizinhos",loadError:"Não foi possível carregar os dados dos vizinhos alcançados"},strip:{lens:"Lente",lensAria:"Lente de idioma",noLens:"— sem lente —",color:"Cor",colorAria:"Colorir emissores alcançados por",pctReached:"% alcançado",religion:"religião",senderLanguage:"Idioma do emissor",senderCountry:"País do emissor",clear:"limpar",noSenders:"sem emissores",byLanguage:"Emissores por idioma",byCountry:"Emissores por país",quantile:"% alcançado (quantis)",histogram:"Histograma da percentagem alcançada",religionFamily:"Família religiosa",bridgeType:"Tipo de ponte",donut:"Anel por categoria"},list:{hidden:"· ocultos pelos filtros: {n}",clear:"Limpar",copy:"Copiar",csvDownloaded:"CSV transferido ({n})",copied:"Copiado ({n})",copyFailed:"Falha ao copiar: prima Ctrl/Cmd-C",sendersAvailable:"{n} enviadores disponíveis",buildSendList:"Criar lista de envio",noSenders:"Nenhum enviador corresponde aos filtros atuais",sendersHidden:"{n} enviadores ocultos — limpe um filtro para vê-los",noReachedYet:"Este alvo ainda não tem vizinhos alcançados nos dados salvos",pickTarget:"Escolha um alvo vermelho",clustersNearby:"{c} grupos não alcançados · {s} enviadores alcançados por perto",tapBubble:"Toque em uma bolha vermelha no mapa para criar sua lista de envio.",colPeopleGroup:"Povo",colCountry:"País",colLanguage:"Idioma",colPopulation:"População",colReligion:"Religião",colPctChristian:"% cristãos",colAdjacency:"Adjacência",colCode:"Código",sortMobilization:"Mobilização",sortFrontier:"Fronteira primeiro",colName:"Nome"},fc:{clusterBy:"Agrupar por",flowers:"flores",unreached:"não alcançados",legendTitle:"Grupos florais",legendCore:"Grupo linguístico não alcançado (núcleo, tamanho = número de povos)",legendPetal:"Vizinho alcançado (detalhado, coordenadas reais)",legendHelp:"clique num círculo superior para reagrupar · clique num núcleo para abrir as pétalas",clustering:"A agrupar a colheita por idioma…",signLanguage:"Língua de sinais",mode:{family:"Família",language:"Idioma",dialect:"Dialeto"},size:{fewerBigger:"menos · maiores",more:"mais",most:"o máximo"}},mc:{greenEncoding:"Codificação da cor verde",provinces:"províncias IN/CN",provincesTitle:"Mostrar limites provinciais de IN/CN",resetFocus:"✕ tirar foco",needsToken:"O mapa precisa de um token Mapbox (tk em profile-config)…",rendering:"A desenhar o campo da colheita…"},bloom:"Floração",cockpit:{viewSwitch:"Visão de mapa ou de flor",loading:"Carregando o campo da colheita…",unreachedTarget:"alvo não alcançado",map:"Mapa",flower:"Flor",details:"Detalhes",senders:"enviadores →",clustersHidden:"agrupamentos · {n} ocultos",legendSend:"SEND (contínua = mesmo idioma · tracejada = agrupamento · pontilhada = no país)",legendSelection:"seleção · raio = log da população · Lucas 10:2",navySend:"azul-marinho = SEND",goldMesh:"dourado = rede do mesmo idioma"},flower:{pickTarget:"Escolha um alvo vermelho no mapa —",bloomsHere:"seus vizinhos alcançados florescem aqui como uma flor."},sm:{counts:"{u} PNA · {s} enviadores alcançados",noSenders:"Nenhum enviador alcançado qualificado com um centroide de país conhecido para este alvo."},about:{button:"Como funciona",title:"Mobilizar os vizinhos próximos",close:"Fechar",why:"Os crentes mais bem posicionados para alcançar um povo não alcançado costumam ser os mais próximos dele em língua e cultura. Esta ferramenta encontra-os para cada grupo não alcançado, com a escala E e a escala P de Ralph D. Winter, para que possa planear quem mobilizar, em que língua e onde.",greenTitle:"Para igrejas: comece por um ponto verde",green:"Escolha um grupo alcançado (verde), na lista Grupos alcançados ou num ponto verde, para ver os povos não alcançados que os seus crentes estão mais bem posicionados para alcançar, um nível E de cada vez, os mais próximos primeiro. Depois exporte a lista (CSV), escreva uma carta aos seus crentes ou imprima um pacote de oração, para essa igreja ou os seus parceiros missionários.",eTitle:"Escala E: a distância que uma testemunha tem de atravessar",pTitle:"Escala P: a distância entre um povo e uma igreja",dataTitle:"Dados e limites",data:"Alcançado significa pelo menos 2% de evangélicos (definição do IMB). A língua e a cultura são deduzidas do código de língua e da taxonomia de povos do IMB (agrupamento, bloco de afinidade, família linguística): boas aproximações públicas, não avaliações de campo. O número de crentes é estimado a partir da população e das faixas de evangélicos; serve para dimensionar uma audiência, não como contagem.",source:"Dados de povos: peoplegroups.org (IMB), people_groups.csv. Escala E e escala P: Ralph D. Winter, Congresso de Lausanne, 1974."},e:{short1:"E-1 · mesma língua",short2:"E-2 · cultura próxima",short3:"E-3 · perto, outra cultura",title1:"E-1 · Falam a mesma língua",title2:"E-2 · Uma cultura próxima",title3:"E-3 · Perto, outra cultura",long1:"Crentes que falam a língua deste grupo. Podem compartilhar o evangelho sem atravessar uma barreira linguística, e um movimento nesta língua pode mobilizá-los.",long2:"Crentes de um povo aparentado: o mesmo agrupamento de povos, ou a mesma família linguística no mesmo bloco de afinidade. Um passo cultural mais curto do que começar do zero.",long3:"Crentes que vivem perto (a menos de 600 km ou no mesmo país) mas de cultura diferente. Partilham a região, não a língua.",rlong1:"Grupos não alcançados que falam a língua deste grupo. Os seus crentes podem alcançá-los sem atravessar uma barreira linguística.",rlong2:"Grupos não alcançados de um povo aparentado: o mesmo agrupamento de povos, ou a mesma família linguística no mesmo bloco de afinidade.",rlong3:"Grupos não alcançados próximos (até 600 km ou no mesmo país) com uma cultura diferente."},p:{title0:"Nenhum vizinho alcançado encontrado",title1:"Existem crentes na sua língua",title2:"Os crentes mais próximos são de uma cultura próxima",title3:"Os crentes mais próximos são de uma cultura distante",long0:"Nestes dados nenhum grupo alcançado corresponde a este povo por língua, cultura ou distância.",long1:"Algures, um grupo alcançado fala a língua deste povo. Mobilizá-lo é o caminho mais direto.",long2:"Nenhum grupo alcançado fala esta língua, mas povos aparentados têm crentes.",long3:"Perto só há crentes de outra cultura. Alcançar este povo exige obreiros transculturais."},res:{bible:"Bíblia",film:"Filme JESUS",audio:"Áudio",radio:"Rádio"},mob:{legend:"Legenda do mapa",legendUnreached:"Grupo não alcançado",searchPlaceholder:"Pesquise um grupo não alcançado, país ou língua",kind:"Quais grupos mostrar",listUnreached:"Grupos não alcançados",listReached:"Grupos alcançados",searchReached:"Pesquise um grupo alcançado, país ou língua",introReached:"Escolha um grupo alcançado (os com mais crentes primeiro) ou clique num ponto verde do mapa para ver os grupos não alcançados mais próximos dos seus crentes.",pFilter:"Filtrar por nível P",pAll:"Todos",loading:"A carregar povos…",intro:"Escolha um grupo não alcançado (os maiores primeiro) ou clique num ponto vermelho no mapa para ver quem mobilizar.",noMatch:"Sem resultados.",back:"Todos os grupos",people:"{n} pessoas",believersNear:"Cerca de {n} crentes entre os vizinhos abaixo.",resources:"Recursos na sua língua",export:"Exportar segmentos de público (CSV)",openBridge:"Planejar um movimento de mobilização em {lang}",samePeople:"mesmo povo",cardStats:"~{b} crentes · a {km} km",noNeighbors:"Nenhum vizinho alcançado nestes dados.",caveat:"Estimativas a partir de dados de peoplegroups.org. Verifique a realidade local antes de agir.",loadError:"Não foi possível carregar os dados dos povos: {message}",legendReached:"Grupo alcançado",introBoth:"Escolha um grupo não alcançado (os maiores primeiro) ou clique num ponto do mapa. Um ponto vermelho mostra os crentes a mobilizar para ele; um ponto verde mostra os grupos não alcançados mais próximos dos seus crentes.",reachedTitle:"Alcançado: 2% ou mais de evangélicos",reachedLong:"Cerca de {n} crentes. Abaixo estão os grupos não alcançados que contam este grupo entre os seus vizinhos alcançados mais próximos.",reachCount:"{n} grupos não alcançados · {p} pessoas",cardStatsU:"{p} pessoas · a {km} km",showNeighbors:"Ver os seus vizinhos",noUnreachedNeighbors:"Nenhum grupo não alcançado conta este grupo entre os seus vizinhos alcançados mais próximos.",showAll:"Ver todos os {n}",eFilter:"Ver vizinhos por nível E",sheetHide:"Ocultar a lista",sheetShow:"Mostrar a lista"},camp:{intro:"Línguas-ponte: línguas faladas por crentes e por povos não alcançados. Um movimento nessa língua, dirigido onde vivem os crentes, pode mobilizá-los para alcançar os não alcançados na sua própria língua.",searchPlaceholder:"Pesquise uma língua ou país",minBelievers:"Pelo menos",exportAll:"Exportar lista (CSV)",unreachedPeople:"{n} não alcançados",believers:"~{n} crentes",believersIn:"Crentes em: {list}",back:"Todas as línguas",bigBelievers:"crentes a mobilizar ({g} grupos, {c} países)",bigUnreached:"não alcançados a alcançar ({g} grupos, {c} países)",export:"Exportar este movimento (CSV)",whereToRun:"Onde lançá-la: crentes por país",believersInGroups:"~{n} em {g} grupos",whoTheyReach:"Quem podem alcançar"},letter:{button:"Escrever uma carta",title:"Uma carta aos crentes de {group}",greeting:"Queridos amigos entre os crentes de {group} ({country}),",intro:"Estes {n} povos não alcançados contam vocês entre os seus crentes mais próximos ({level}). Ainda vivem poucos crentes entre eles.",item:"{name}, {country}: {pop} pessoas, que falam {language}, a {km} km.",pray:"Orem por eles: {url}",more:"…e mais {n}. A lista completa está na exportação CSV.",close:"Vocês vão orar por eles e pedir a Deus que mostre como a sua igreja pode abençoá-los? Cada um destes povos é amado por Deus.",sign:"Em nome de Jesus,",copy:"Copiar a carta",download:"Baixar (.txt)"},packet:{button:"Pacote de oração",label:"{group}: os seus vizinhos não alcançados ({level})",labelCapped:"{group}: os {n} mais próximos dos seus {total} vizinhos não alcançados ({level})"}},"./locales/pt/pinHint.json":{line1:"Toque num ponto colorido",line2:"alguém ainda precisa de oração"},"./locales/pt/wall.json":{title:"Mural dos povos",toPortrait:"📱 Mudar para retrato",toLandscape:"🖼️ Mudar para paisagem",currentLandscape:"Atual: paisagem (4 × 3 pés)",currentPortrait:"Atual: retrato (3 × 4 pés)",resetZoom:"Repor zoom",groupsLoaded:"Carregados: {n}",loading:"A carregar povos…",offlineTitle:"Não foi possível aceder aos dados de oração em direto.",offlineBody:"O mural lê os seus povos de pray.doxa.life. Pode estar offline ou, num servidor de desenvolvimento local, a API pode não permitir o endereço desta página.",tryAgain:"Tentar novamente",prayedCount:"Oraram: {n}",viewPrayers:"Ver orações",prayerTools:"Ferramentas de oração",close:"Fechar",unknown:"Desconhecido",unknownGroup:"Povo desconhecido",status:"Estado:",unengaged:"não alcançado",prayingNow:"Está a orar agora por este povo?",yesPraying:"Sim, estou a orar",thankYou:"Obrigado por orar!",sharePrayer:"Partilhe a sua oração (opcional)",prayerPlaceholder:"Escreva a sua oração aqui…",sendPrayer:"Enviar oração",peopleGroup:"Povo",chatsTitle:"Conversas do povo",id:"ID:",location:"Local:",na:"N/D",havePrayed:"Oraram: {n}",youPrayed:"✓ Orou!",prayForGroup:"🙏 Orar por este povo",prayersComments:"Orações e comentários",noComments:"Ainda não há orações nem comentários. Seja o primeiro!",commentPlaceholder:"Partilhe a sua oração ou pensamentos…",postComment:"Publicar comentário",noPeopleId:"Este povo não tem PeopleID3",statusUnknown:"Estado desconhecido",printPoster:"🖨️ Imprimir cartaz HD",printPreparing:"Preparando o cartaz: {n} de {total} fotos",printMissing:"Fotos que não puderam ser carregadas: {n}. Elas são impressas como quadros cinza.",blessBanner:"Abençoem as nações em nome de Jesus",modeLabel:"Modo do mural",modeBless:"Abençoar",modeSocial:"Social",shareSoon:"O compartilhamento chega mais tarde.",drawLibError:"O mural não conseguiu carregar a sua biblioteca de desenho:",posterSize:"Tamanho do cartaz",posterSubtitle:"DOXA (δόξα) significa glória. Um movimento mundial de oração está abençoando estes {n} grupos de povos em nome de Jesus. Saiba mais e participe em pray.doxa.life.",glueHere:"cole aqui a folha de cima",themesLabel:"Temas de oração",oldTestament:"Antigo Testamento",newTestament:"Novo Testamento",themeTreasure:"Tesouro",themeMountain:"Monte",themeSea:"Mar",posterClosing:"Jesus Cristo é a pedra angular, e nós somos pedras vivas. Estes povos são a recompensa do seu sofrimento. Assumamos o nosso chamado sacerdotal: abençoemo-los em seu nome e unamo-nos à família mundial em oração.",journeyCalled:"O chamado",journeyPromised:"A promessa",journeyRedeemed:"Redimidos",journeyCornerstone:"A pedra angular",journeyChildren:"Filhos de Abraão",journeyPriesthood:"Um sacerdócio real",journeySent:"Enviados aos perdidos",peopleGroupCount:"{n} povo | {n} de povos | {n} povos",listCount:"{n} lista | {n} de listas | {n} listas",stockCard:"Cartão",stockPostcard:"Cartão-postal",stockLandscape:"paisagem",hud:{kindPoster:"Cartaz",kindList:"Lista",kindPacket:"Pacote de oração",fetchingPoster:"obtendo o cartaz",generatingPoster:"gerando o cartaz",openingPrint:"abrindo a caixa de impressão",printOpened:"caixa de impressão aberta",readyToPrint:"pronto para imprimir",printNow:"Imprimir",saving:"salvando",fetchingRecords:"obtendo registros",fetchingGroups:"obtendo povos",layingOutRows:"diagramando {n} linha | diagramando {n} de linhas | diagramando {n} linhas",layingOutCards:"diagramando {n} cartão | diagramando {n} de cartões | diagramando {n} cartões",printingGroups:"imprimindo {n} povo | imprimindo {n} de povos | imprimindo {n} povos",kindCardDeck:"Baralho de cartões",kindPrayerList:"Lista de oração",saved:"salvo",noRecords:"essa lista não tem povos para imprimir",noPoster:"não há cartaz disponível para esta lista",posterNotFound:"cartaz não encontrado ({status})",posterBlank:"o cartaz gerado saiu em branco",noApi:"nenhum serviço de povos está configurado",fetchFailed:"não foi possível carregar os povos ({status})"},posterAlt:"{label} — cartaz de oração",posterAltAction:"{label} — cartaz de oração (clique para visualizar e imprimir)"},"./locales/ro/aria.json":{backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda",searchPeopleGroups:"Caută popoare",resetAllFilters:"Resetează toate filtrele și căutarea",selectAllRows:"Selectează toate rândurile",deselectAllRows:"Deselectează toate rândurile",rowDetail:"Detaliu rând",dismissHint:"Închide sugestia",resizeFiltersRail:"Redimensionează bara de filtre",resizeFiltersRailHint:"Trage sau folosește tastele săgeată pentru a redimensiona bara de filtre",resizeChartsRail:"Redimensionează bara de grafice",resizeChartsRailHint:"Trage sau folosește tastele săgeată pentru a redimensiona bara de grafice",resizeMapTableSplit:"Redimensionează împărțirea hartă/tabel",resizeMapTableSplitHint:"Trage sau folosește tastele săgeată pentru a redimensiona împărțirea hartă/tabel",resizeTable:"Redimensionează înălțimea tabelului",resizeTableHint:"Trage sau folosește tastele săgeată pentru a redimensiona tabelul",resizeDashboardHeight:"Redimensionează înălțimea tabloului de bord",resizeDashboardHeightHint:"Trage sau folosește tastele săgeată pentru a redimensiona înălțimea tabloului de bord",removeFilter:"Elimină filtrul {name}",closeDetail:"Închide detaliul",filterBreadcrumb:"Traseul filtrelor",railViews:"Vizualizările barei",upgCountLegend:"Legenda numărului de UPG",donutChart:"Diagramă inelară: {title}"},"./locales/ro/buttons.json":{prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând",packetVariantAria:"Nivelul de detaliu al pachetului de rugăciune",packetFull:"Detaliu complet",packetLightweight:"Redus",working:"Se procesează…",postersPerRowAuto:"Automat"},"./locales/ro/grid.json":{search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului.",search_people_or_countries:"Caută popoare sau țări…",cards_per_row:"Carduri pe rând",cards_per_row_auto:"Automat"},"./locales/ro/mapui.json":{map:"Hartă",marker:"Marcaj pe hartă",closePopup:"Închide fereastra",zoomIn:"Mărește",zoomOut:"Micșorează",resetBearing:"Trage pentru a roti harta, apasă pentru a reveni la nord",toggleAttribution:"Afișează/ascunde atribuirea",mapFeedback:"Feedback despre hartă",enterFullscreen:"Ecran complet",exitFullscreen:"Ieși din ecran complet",findMyLocation:"Găsește-mi locația",locationNotAvailable:"Locație indisponibilă",enableGlobe:"Activează globul",disableGlobe:"Dezactivează globul",ctrlScroll:"Folosește Ctrl + derulare pentru a mări harta",cmdScroll:"Folosește ⌘ + derulare pentru a mări harta",twoFingers:"Folosește două degete pentru a muta harta",mapboxHomepage:"Pagina principală Mapbox",maplibreLogo:"Sigla MapLibre"},"./locales/ro/messages.json":{menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntroA:"Cum ai hrăni o mulțime de cinci mii? Isus i-a așezat în grupuri de cincizeci și de o sută, iar imposibilul a devenit împărțibil (Luca 9:14). Am făcut la fel cu cele 2.106 popoare neatinse: 27 de liste de aproximativ cincizeci până la o sută. Fiecare listă se tipărește ca pachet de rugăciune și afiș, ca 27 de ucenici, biserici sau lideri locali să poarte fiecare câte una — rugându-se pentru ei ",upg100WallIntroEmph:"pe numele poporului lor",upg100WallIntroB:".",loadingNamed:"Se încarcă {name}…",couldNotLoadNamed:"Nu s-a putut încărca {name}.",engineMissing:"Motorul de hartă {engine} nu s-a încărcat.",packetFailed:"Broșura a eșuat: {reason}",selectionPacketFailed:"Broșura selecției a eșuat: {reason}",posterOneTerritory:"Afișul tipărește un teritoriu pe rând — {count} selectate.",selectionPosterFailed:"Afișul selecției a eșuat: {reason}",mapUnavailable:"Harta indisponibilă",copied:"Copiat!",copyFailed:"Copierea a eșuat — apasă Ctrl/Cmd-C",engineNotLoaded:"motorul de hărți nu s-a încărcat",engineNotLoadedDetail:"Motorul de hărți {engine} nu s-a încărcat. Lista și legenda nu sunt afectate.",viewLoadFailed:"Această vizualizare nu s-a putut încărca.",retry:"Reîncearcă",noMapboxToken:"Niciun token Mapbox",noMapboxTokenDetail:"Nu este configurat niciun token Mapbox. Lista și legenda nu sunt afectate.",loadingBoundaries:"Se încarcă granițele…",fetchingUupgs:"Se preiau {n} UUPG…",mapStatusCounts:"Suprafețe: {polys} · zone: {zones}/{total} · repere: {pins}",tapTerritoriesHint:"Atingeți teritorii pe hartă sau rânduri din legendă pentru a le adăuga · atingeți din nou pentru a le elimina",territoriesSelected:"Teritorii: {count}",bandInRange:"✓ interval 50–100",bandOutOfRange:"interval 50–100",mapContextLost:"Această hartă a fost descărcată pentru a elibera memoria grafică.",nOfTotal:"{n} din {total}",mapInitFailed:"Harta nu a putut fi inițializată — verificați tokenul și containerul",countryWallIntroA:"Câte un afiș pentru fiecare țară, gata de rugăciune, de tipărit și de pus pe perete — rugându-ne pentru ei ",countryWallIntroB:". Regiunile și țările sunt ordonate după câte popoare neatinse cuprind, pentru ca nevoia cea mai mare să fie prima.",countryWallSoon:"În curând: pentru fiecare țară va fi generată o listă de rugăciune care numește fiecare popor neatins din ea.",countryWallHeading:"Afișe pe țări — Liste de rugăciune și afișe",largerScreenNotice:"Această hartă experimentală este făcută pentru ecrane mari. Se deschide aici, dar unele părți s-ar putea să nu încapă sau să nu funcționeze bine pe telefon.",desktopOnlyNotice:"{label} funcționează doar pe desktop — deschideți pagina pe un computer pentru a-l folosi.",noticeDismiss:"Închide",countryPosterTooMany:"Prea multe popoare pentru a încăpea lizibil pe un singur afiș — lucrăm la o soluție."},"./locales/ro/neighbor.json":{brand:"Vecinii mei UPG",chooseView:"Alegeți o vedere",views:{cockpit:"Prezentare",sendMap:"Harta de trimitere",flowerMesh:"Rețea florală",langCluster:"Grupuri lingvistice",flowers:"Flori",mobilize:"Mobilizare",campaigns:"Mișcări"},hints:{cockpit:"centru de filtrare încrucișată",sendMap:"arce de la atinși la neatinși",flowerMesh:"înflorire radială",langCluster:"mulțimi delimitate după limbă",flowers:"nuclee familie · limbă · dialect și petale detaliate"},title:{overview:"Vecinii mei UPG · Prezentare",send:"Vecinii mei UPG · SEND",langClusters:"Vecinii mei UPG · Grupuri lingvistice",flowerMesh:"Vecinii mei UPG · Rețea florală"},search:"Căutare",searchCockpit:"Căutați țintă / expeditor / limbă…",searchStrip:"Căutați țintă / limbă / expeditor…",searchBrush:"Căutare și selecție",remove:"eliminați {label}",selectTarget:"Alegeți țara țintă neatinsă",loadingSend:"Se încarcă harta SEND…",send:{unreachedTarget:"Țintă neatinsă —",clickOne:"dați clic pe una",toFocus:"pentru a o evidenția",reachedSender:"Expeditor atins (SEND →)"},pctChristian:"{n}% creștini",groups:"grupuri: {n}",people:"oameni",unreached:"neatins",reached:"atins",unknown:"Necunoscut",lc:{loading:"Se încarcă popoarele…",apiDown:"API-ul doxa în timp real nu răspunde: {message}",clusters:"grupuri lingvistice",pgs:"neatinse",provinces:"provincii IN/CN",withReach:"cu corespondență atinsă",legendCluster:"Grup lingvistic neatins (mărime = numărul de popoare)",legendReached:"Vecin atins (potrivit după limbă)",legendHelp:"inel verde = grupul are o corespondență atinsă · dați clic pe un grup pentru detalii",setCount:"Bounded set — popoare neatinse: {n}",more:"+{n} în plus",reachedSame:"Vecini atinși (aceeași limbă): {n}",frontier:"Niciun popor atins nu vorbește această limbă în aceste date. O frontieră: rugați-vă pentru lucrători (Luca 10:2).",openFlower:"Deschideți vederea floare ▸"},fm:{languageMesh:"rețea lingvistică",reachedNeighbors:"vecini atinși",countries:"țări",upgsInCenter:"UPG în centru",meshLinks:"legături ale rețelei",growing:"Floarea crește…",upgs:"UPG: {n}",people:"oameni: {n}",legendTitle:"Floarea",unreachedTarget:"Țintă neatinsă (doxa-2000)",reachedDeeper:"Vecin atins (mai închis = mai mulți creștini)",sendPath:"Calea SEND → spre cei neatinși",viaCluster:"printr-un grup lingvistic înrudit",mesh:"Rețea de colaborare în aceeași limbă",whorl:"cercul interior = aceeași țară · petalele = țările din jur",loadError:"Datele vecinilor atinși nu au putut fi încărcate"},strip:{lens:"Lentilă",lensAria:"Lentilă lingvistică",noLens:"— fără lentilă —",color:"Culoare",colorAria:"Colorați expeditorii atinși după",pctReached:"% atins",religion:"religie",senderLanguage:"Limba expeditorului",senderCountry:"Țara expeditorului",clear:"ștergeți",noSenders:"niciun expeditor",byLanguage:"Expeditori după limbă",byCountry:"Expeditori după țară",quantile:"% atins (cuantile)",histogram:"Histograma procentului atins",religionFamily:"Familie religioasă",bridgeType:"Tip de punte",donut:"Inel pe categorii"},list:{hidden:"· ascunși de filtre: {n}",clear:"Ștergeți",copy:"Copiați",csvDownloaded:"CSV descărcat ({n})",copied:"Copiat ({n})",copyFailed:"Copierea a eșuat: apăsați Ctrl/Cmd-C",sendersAvailable:"{n} trimițători disponibili",buildSendList:"Creează lista de trimitere",noSenders:"Niciun trimițător nu corespunde filtrelor actuale",sendersHidden:"{n} trimițători ascunși — șterge un filtru ca să-i vezi",noReachedYet:"Această țintă nu are încă vecini atinși în datele salvate",pickTarget:"Alege o țintă roșie",clustersNearby:"{c} grupuri neatinse · {s} trimițători atinși în apropiere",tapBubble:"Atinge o bulă roșie de pe hartă pentru a-i crea lista de trimitere.",colPeopleGroup:"Popor",colCountry:"Țară",colLanguage:"Limbă",colPopulation:"Populație",colReligion:"Religie",colPctChristian:"% creștini",colAdjacency:"Vecinătate",colCode:"Cod",sortMobilization:"Mobilizare",sortFrontier:"Frontiera întâi",colName:"Nume"},fc:{clusterBy:"Grupați după",flowers:"flori",unreached:"neatinse",legendTitle:"Grupuri florale",legendCore:"Grup lingvistic neatins (nucleu, mărime = numărul de popoare)",legendPetal:"Vecin atins (detaliat, coordonate reale)",legendHelp:"clic pe un cerc de sus pentru regrupare · clic pe un nucleu pentru a-i deschide petalele",clustering:"Se grupează recolta după limbă…",signLanguage:"Limbajul semnelor",mode:{family:"Familie",language:"Limbă",dialect:"Dialect"},size:{fewerBigger:"mai puține · mai mari",more:"mai multe",most:"cele mai multe"}},mc:{greenEncoding:"Codificarea culorii verzi",provinces:"provincii IN/CN",provincesTitle:"Afișați granițele provinciilor IN/CN",resetFocus:"✕ anulați evidențierea",needsToken:"Harta are nevoie de un token Mapbox (tk în profile-config)…",rendering:"Se desenează câmpul recoltei…"},bloom:"Înflorire",cockpit:{viewSwitch:"Vedere hartă sau floare",loading:"Se încarcă câmpul secerișului…",unreachedTarget:"țintă neatinsă",map:"Hartă",flower:"Floare",details:"Detalii",senders:"trimițători →",clustersHidden:"grupuri · {n} ascunse",legendSend:"SEND (continuă = aceeași limbă · întreruptă = grup · punctată = în țară)",legendSelection:"selecție · rază = log al populației · Luca 10:2",navySend:"bleumarin = SEND",goldMesh:"auriu = rețea de aceeași limbă"},flower:{pickTarget:"Alege o țintă roșie pe hartă —",bloomsHere:"vecinii ei atinși înfloresc aici ca o floare."},sm:{counts:"{u} UPG · {s} trimițători atinși",noSenders:"Niciun trimițător atins eligibil cu un centroid de țară cunoscut pentru această țintă."},about:{button:"Cum funcționează",title:"Mobilizarea vecinilor apropiați",close:"Închide",why:"Credincioșii cei mai potriviți să ajungă la un popor neatins sunt de obicei cei mai apropiați de el prin limbă și cultură. Acest instrument îi găsește pentru fiecare grup neatins, folosind scala E și scala P ale lui Ralph D. Winter, ca să puteți planifica pe cine să mobilizați, în ce limbă și unde.",greenTitle:"Pentru biserici: porniți de la un punct verde",green:"Alegeți un grup atins (verde), din lista Grupuri atinse sau printr-un punct verde, pentru a vedea popoarele neatinse pe care credincioșii lui sunt cel mai bine plasați să le atingă, câte un nivel E, cele mai apropiate întâi. Apoi exportați lista (CSV), scrieți o scrisoare credincioșilor lui sau tipăriți un pachet de rugăciune, pentru acea biserică sau partenerii ei misionari.",eTitle:"Scala E: distanța pe care trebuie să o traverseze un martor",pTitle:"Scala P: distanța dintre un popor și o biserică",dataTitle:"Date și limite",data:"Atins înseamnă cel puțin 2% evanghelici (definiția IMB). Limba și cultura sunt deduse din codul limbii și din taxonomia popoarelor IMB (grup, bloc de afinitate, familie de limbi): aproximări publice bune, nu evaluări de teren. Numărul credincioșilor este estimat din populație și intervalele de evanghelici; folosiți-l pentru a dimensiona o audiență, nu ca numărătoare.",source:"Date despre popoare: peoplegroups.org (IMB), people_groups.csv. Scala E și scala P: Ralph D. Winter, Congresul de la Lausanne, 1974."},e:{short1:"E-1 · aceeași limbă",short2:"E-2 · cultură apropiată",short3:"E-3 · aproape, altă cultură",title1:"E-1 · Vorbesc aceeași limbă",title2:"E-2 · O cultură apropiată",title3:"E-3 · Aproape, o altă cultură",long1:"Credincioși care vorbesc limba acestui grup. Pot împărtăși Evanghelia fără o barieră de limbă, iar o mișcare în această limbă îi poate mobiliza.",long2:"Credincioși dintr-un popor înrudit: același grup de popoare sau aceeași familie de limbi în același bloc de afinitate. Un pas cultural mai scurt decât a începe de la zero.",long3:"Credincioși care locuiesc aproape (sub 600 km sau în aceeași țară), dar de altă cultură. Împart regiunea, nu limba.",rlong1:"Grupuri neatinse care vorbesc limba acestui grup. Credincioșii lui le pot atinge fără a trece o barieră de limbă.",rlong2:"Grupuri neatinse dintr-un popor înrudit: același grup de popoare sau aceeași familie de limbi în același bloc de afinitate.",rlong3:"Grupuri neatinse din apropiere (până la 600 km sau în aceeași țară) cu o cultură diferită."},p:{title0:"Niciun vecin atins găsit",title1:"Există credincioși în limba sa",title2:"Cei mai apropiați credincioși sunt dintr-o cultură apropiată",title3:"Cei mai apropiați credincioși sunt dintr-o cultură îndepărtată",long0:"În aceste date niciun grup atins nu se potrivește cu acest popor ca limbă, cultură sau distanță.",long1:"Undeva, un grup atins vorbește limba acestui popor. Mobilizarea lui este calea cea mai directă.",long2:"Niciun grup atins nu vorbește această limbă, dar popoarele înrudite au credincioși.",long3:"În apropiere sunt doar credincioși de altă cultură. Pentru a ajunge la acest popor e nevoie de lucrători interculturali."},res:{bible:"Biblie",film:"Filmul ISUS",audio:"Audio",radio:"Radio"},mob:{legend:"Legenda hărții",legendUnreached:"Grup neatins",searchPlaceholder:"Căutați un grup neatins, o țară sau o limbă",kind:"Ce grupuri să se afișeze",listUnreached:"Grupuri neatinse",listReached:"Grupuri atinse",searchReached:"Căutați un grup atins, o țară sau o limbă",introReached:"Alegeți un grup atins (cele cu cei mai mulți credincioși întâi) sau faceți clic pe un punct verde de pe hartă pentru a vedea grupurile neatinse cele mai apropiate de credincioșii lui.",pFilter:"Filtrați după nivelul P",pAll:"Toate",loading:"Se încarcă popoarele…",intro:"Alegeți un grup neatins (cele mai mari primele) sau dați clic pe un punct roșu de pe hartă pentru a vedea pe cine să mobilizați.",noMatch:"Niciun rezultat.",back:"Toate grupurile",people:"{n} oameni",believersNear:"Aproximativ {n} credincioși printre vecinii de mai jos.",resources:"Resurse în limba sa",export:"Exportați segmentele de public (CSV)",openBridge:"Planificați o mișcare de mobilizare în {lang}",samePeople:"același popor",cardStats:"~{b} credincioși · la {km} km",noNeighbors:"Niciun vecin atins în aceste date.",caveat:"Estimări din datele peoplegroups.org. Verificați realitatea locală înainte de a acționa.",loadError:"Datele despre popoare nu au putut fi încărcate: {message}",legendReached:"Grup atins",introBoth:"Alegeți un grup neatins (cele mai mari întâi) sau faceți clic pe un punct de pe hartă. Un punct roșu arată credincioșii de mobilizat pentru el; un punct verde arată grupurile neatinse cele mai apropiate de credincioșii lui.",reachedTitle:"Atins: 2% sau mai mulți evanghelici",reachedLong:"Circa {n} credincioși. Mai jos sunt grupurile neatinse care numără acest grup printre cei mai apropiați vecini atinși.",reachCount:"{n} grupuri neatinse · {p} persoane",cardStatsU:"{p} persoane · la {km} km",showNeighbors:"Arată vecinii săi",noUnreachedNeighbors:"Niciun grup neatins nu numără acest grup printre cei mai apropiați vecini atinși.",showAll:"Arată toate cele {n}",eFilter:"Arată vecinii după nivelul E",sheetHide:"Ascundeți lista",sheetShow:"Afișați lista"},camp:{intro:"Limbi-punte: limbi vorbite atât de credincioși, cât și de popoare neatinse. O mișcare în acea limbă, pornită acolo unde trăiesc credincioșii, îi poate mobiliza să ajungă la cei neatinși în propria limbă.",searchPlaceholder:"Căutați o limbă sau o țară",minBelievers:"Cel puțin",exportAll:"Exportați lista (CSV)",unreachedPeople:"{n} neatinși",believers:"~{n} credincioși",believersIn:"Credincioși în: {list}",back:"Toate limbile",bigBelievers:"credincioși de mobilizat ({g} grupuri, {c} țări)",bigUnreached:"neatinși de atins ({g} grupuri, {c} țări)",export:"Exportați această mișcare (CSV)",whereToRun:"Unde s-o derulați: credincioși pe țări",believersInGroups:"~{n} în {g} grupuri",whoTheyReach:"Pe cine pot atinge"},letter:{button:"Scrieți o scrisoare",title:"O scrisoare către credincioșii din {group}",greeting:"Dragi prieteni dintre credincioșii din {group} ({country}),",intro:"Aceste {n} popoare neatinse vă numără printre cei mai apropiați credincioși ai lor ({level}). Printre ei trăiesc încă puțini credincioși.",item:"{name}, {country}: populație {pop}, limba {language}, la {km} km.",pray:"Rugați-vă pentru ei: {url}",more:"…și încă {n}. Lista completă este în exportul CSV.",close:"Vă veți ruga pentru ei și Îl veți întreba pe Dumnezeu cum i-ar putea binecuvânta biserica voastră? Fiecare dintre aceste popoare este iubit de Dumnezeu.",sign:"În Numele lui Isus,",copy:"Copiați scrisoarea",download:"Descărcați (.txt)"},packet:{button:"Pachet de rugăciune",label:"{group}: vecinii săi neatinși ({level})",labelCapped:"{group}: cei mai apropiați {n} dintre cei {total} vecini neatinși ai săi ({level})"}},"./locales/ro/pinHint.json":{line1:"Atinge un punct colorat",line2:"cineva are încă nevoie de rugăciune"},"./locales/ro/wall.json":{title:"Zidul popoarelor",toPortrait:"📱 Treci la portret",toLandscape:"🖼️ Treci la peisaj",currentLandscape:"Actual: peisaj (4 × 3 picioare)",currentPortrait:"Actual: portret (3 × 4 picioare)",resetZoom:"Resetează zoomul",groupsLoaded:"Încărcate: {n}",loading:"Se încarcă popoarele…",offlineTitle:"Datele de rugăciune în timp real nu pot fi accesate.",offlineBody:"Zidul își citește popoarele de pe pray.doxa.life. Poate sunteți offline sau, pe un server de dezvoltare local, API-ul nu permite adresa acestei pagini.",tryAgain:"Încearcă din nou",prayedCount:"Au rugat: {n}",viewPrayers:"Vezi rugăciunile",prayerTools:"Instrumente de rugăciune",close:"Închide",unknown:"Necunoscut",unknownGroup:"Popor necunoscut",status:"Stare:",unengaged:"neatins",prayingNow:"Vă rugați acum pentru acest popor?",yesPraying:"Da, mă rog",thankYou:"Mulțumim că vă rugați!",sharePrayer:"Împărtășiți rugăciunea (opțional)",prayerPlaceholder:"Scrieți rugăciunea aici…",sendPrayer:"Trimite rugăciunea",peopleGroup:"Popor",chatsTitle:"Conversațiile poporului",id:"ID:",location:"Locație:",na:"N/A",havePrayed:"Au rugat: {n}",youPrayed:"✓ V-ați rugat!",prayForGroup:"🙏 Roagă-te pentru acest popor",prayersComments:"Rugăciuni și comentarii",noComments:"Încă nu există rugăciuni sau comentarii. Fiți primul!",commentPlaceholder:"Împărtășiți rugăciunea sau gândurile…",postComment:"Publică comentariul",noPeopleId:"Acest popor nu are PeopleID3",statusUnknown:"Stare necunoscută",printPoster:"🖨️ Tipărește afișul HD",printPreparing:"Se pregătește afișul: {n} din {total} fotografii",printMissing:"Fotografii care nu s-au putut încărca: {n}. Se tipăresc ca pătrate gri.",blessBanner:"Binecuvântați națiunile în Numele lui Isus",modeLabel:"Modul zidului",modeBless:"Binecuvântare",modeSocial:"Social",shareSoon:"Partajarea vine mai târziu.",drawLibError:"Zidul nu și-a putut încărca biblioteca de desen:",posterSize:"Dimensiunea afișului",posterSubtitle:"DOXA (δόξα) înseamnă slavă. O mișcare globală de rugăciune binecuvântează aceste {n} grupuri de popoare în Numele lui Isus. Aflați mai multe și alăturați-vă pe pray.doxa.life.",glueHere:"lipiți aici foaia de deasupra",themesLabel:"Teme de rugăciune",oldTestament:"Vechiul Testament",newTestament:"Noul Testament",themeTreasure:"Comoară",themeMountain:"Munte",themeSea:"Mare",posterClosing:"Isus Hristos este piatra din capul unghiului, iar noi suntem pietre vii. Aceste popoare sunt răsplata suferinței Lui. Să ne asumăm chemarea preoțească: să le binecuvântăm în Numele Lui și să ne alăturăm familiei globale în rugăciune.",journeyCalled:"Chemarea",journeyPromised:"Promisiunea",journeyRedeemed:"Răscumpărați",journeyCornerstone:"Piatra din capul unghiului",journeyChildren:"Copiii lui Avraam",journeyPriesthood:"O preoție împărătească",journeySent:"Trimiși la cei pierduți",peopleGroupCount:"{n} popor | {n} popoare | {n} de popoare",listCount:"{n} listă | {n} liste | {n} de liste",stockCard:"Card",stockPostcard:"Carte poștală",stockLandscape:"orizontal",hud:{kindPoster:"Afiș",kindList:"Listă",kindPacket:"Pachet de rugăciune",fetchingPoster:"se preia afișul",generatingPoster:"se generează afișul",openingPrint:"se deschide fereastra de tipărire",printOpened:"fereastra de tipărire s-a deschis",readyToPrint:"gata de tipărit",printNow:"Tipărește",saving:"se salvează",fetchingRecords:"se preiau datele",fetchingGroups:"se preiau popoarele",layingOutRows:"se așază {n} rând | se așază {n} rânduri | se așază {n} de rânduri",layingOutCards:"se așază {n} carte | se așază {n} cărți | se așază {n} de cărți",printingGroups:"se tipărește {n} popor | se tipăresc {n} popoare | se tipăresc {n} de popoare",kindCardDeck:"Pachet de cartonașe",kindPrayerList:"Listă de rugăciune",saved:"salvat",noRecords:"lista nu conține popoare de tipărit",noPoster:"nu există un afiș disponibil pentru această listă",posterNotFound:"afișul nu a fost găsit ({status})",posterBlank:"afișul generat a ieșit gol",noApi:"niciun serviciu de popoare nu este configurat",fetchFailed:"popoarele nu au putut fi încărcate ({status})"},posterAlt:"{label} — afiș de rugăciune",posterAltAction:"{label} — afiș de rugăciune (clic pentru previzualizare și tipărire)"},"./locales/ru/aria.json":{backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду",searchPeopleGroups:"Поиск народов",resetAllFilters:"Сбросить все фильтры и поиск",selectAllRows:"Выбрать все строки",deselectAllRows:"Снять выделение со всех строк",rowDetail:"Подробности строки",dismissHint:"Скрыть подсказку",resizeFiltersRail:"Изменить размер панели фильтров",resizeFiltersRailHint:"Перетащите или используйте клавиши со стрелками, чтобы изменить размер панели фильтров",resizeChartsRail:"Изменить размер панели диаграмм",resizeChartsRailHint:"Перетащите или используйте клавиши со стрелками, чтобы изменить размер панели диаграмм",resizeMapTableSplit:"Изменить соотношение карты и таблицы",resizeMapTableSplitHint:"Перетащите или используйте клавиши со стрелками, чтобы изменить соотношение карты и таблицы",resizeTable:"Изменить высоту таблицы",resizeTableHint:"Перетащите или используйте клавиши со стрелками, чтобы изменить размер таблицы",resizeDashboardHeight:"Изменить высоту панели",resizeDashboardHeightHint:"Перетащите или используйте клавиши со стрелками, чтобы изменить высоту панели",removeFilter:"Удалить фильтр {name}",closeDetail:"Закрыть подробности",filterBreadcrumb:"Цепочка фильтров",railViews:"Виды панели",upgCountLegend:"Легенда количества UPG",donutChart:"Кольцевая диаграмма: {title}"},"./locales/ru/buttons.json":{prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду",packetVariantAria:"Детализация молитвенного пакета",packetFull:"Полная версия",packetLightweight:"Краткая версия",working:"Выполняется…",postersPerRowAuto:"Авто"},"./locales/ru/grid.json":{search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра.",search_people_or_countries:"Поиск народов или стран…",cards_per_row:"Карточек в ряду",cards_per_row_auto:"Авто"},"./locales/ru/mapui.json":{map:"Карта",marker:"Метка на карте",closePopup:"Закрыть окно",zoomIn:"Приблизить",zoomOut:"Отдалить",resetBearing:"Перетащите, чтобы повернуть карту; нажмите, чтобы вернуть север",toggleAttribution:"Показать/скрыть источники",mapFeedback:"Отзыв о карте",enterFullscreen:"Во весь экран",exitFullscreen:"Выйти из полноэкранного режима",findMyLocation:"Найти моё местоположение",locationNotAvailable:"Местоположение недоступно",enableGlobe:"Включить глобус",disableGlobe:"Выключить глобус",ctrlScroll:"Используйте Ctrl + прокрутку для масштабирования карты",cmdScroll:"Используйте ⌘ + прокрутку для масштабирования карты",twoFingers:"Используйте два пальца, чтобы перемещать карту",mapboxHomepage:"Главная страница Mapbox",maplibreLogo:"Логотип MapLibre"},"./locales/ru/messages.json":{menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntroA:"Как накормить толпу в пять тысяч человек? Иисус рассадил их группами по пятьдесят и по сто, и невозможное стало посильным (Лк. 9:14). Мы поступили так же с 2 106 неохваченными народами: 27 списков примерно по пятьдесят-сто. Каждый список печатается как молитвенный пакет и плакат, чтобы 27 учеников, церквей или местных служителей взяли по одному — молясь о них ",upg100WallIntroEmph:"по имени их народа",upg100WallIntroB:".",loadingNamed:"Загрузка {name}…",couldNotLoadNamed:"Не удалось загрузить {name}.",engineMissing:"Картографический движок {engine} не загрузился.",packetFailed:"Не удалось создать буклет: {reason}",selectionPacketFailed:"Не удалось создать буклет выбора: {reason}",posterOneTerritory:"Плакат печатает по одной территории — выбрано {count}.",selectionPosterFailed:"Не удалось создать плакат выбора: {reason}",mapUnavailable:"Карта недоступна",copied:"Скопировано!",copyFailed:"Не удалось скопировать — нажмите Ctrl/Cmd-C",engineNotLoaded:"движок карты не загружен",engineNotLoadedDetail:"Движок карты {engine} не загрузился. Список и легенда не затронуты.",viewLoadFailed:"Не удалось загрузить этот раздел.",retry:"Повторить",noMapboxToken:"Нет токена Mapbox",noMapboxTokenDetail:"Токен Mapbox не настроен. Список и легенда не затронуты.",loadingBoundaries:"Загрузка границ…",fetchingUupgs:"Загрузка UUPG: {n}…",mapStatusCounts:"Области: {polys} · зоны: {zones}/{total} · метки: {pins}",tapTerritoriesHint:"Нажимайте на территории на карте или строки легенды, чтобы добавить · нажмите ещё раз, чтобы убрать",territoriesSelected:"Территории: {count}",bandInRange:"✓ диапазон 50–100",bandOutOfRange:"диапазон 50–100",mapContextLost:"Эта карта выгружена, чтобы освободить графическую память.",nOfTotal:"{n} из {total}",mapInitFailed:"Не удалось инициализировать карту — проверьте токен и контейнер",countryWallIntroA:"Один плакат на страну — чтобы молиться, распечатать и повесить на стену, молясь за них ",countryWallIntroB:". Регионы и страны упорядочены по числу неохваченных народов, чтобы самая большая нужда стояла первой.",countryWallSoon:"Скоро: для каждой страны будет создан молитвенный список с названием каждого неохваченного народа в ней.",countryWallHeading:"Плакаты по странам — молитвенные списки и плакаты",largerScreenNotice:"Эта экспериментальная карта рассчитана на большие экраны. Она откроется, но на телефоне часть элементов может не поместиться или работать плохо.",desktopOnlyNotice:"{label} работает только на компьютере — откройте эту страницу на компьютере.",noticeDismiss:"Закрыть",countryPosterTooMany:"Слишком много народов, чтобы разборчиво уместить их на одном плакате, — решение готовится."},"./locales/ru/neighbor.json":{brand:"Мои соседи UPG",chooseView:"Выберите вид",views:{cockpit:"Обзор",sendMap:"Карта отправки",flowerMesh:"Цветочная сеть",langCluster:"Языковые кластеры",flowers:"Цветы",mobilize:"Мобилизация",campaigns:"Движения"},hints:{cockpit:"центр перекрёстной фильтрации",sendMap:"дуги от охваченных к неохваченным",flowerMesh:"радиальное цветение",langCluster:"ограниченные языковые множества",flowers:"ядра семья · язык · диалект и детальные лепестки"},title:{overview:"Мои соседи UPG · Обзор",send:"Мои соседи UPG · SEND",langClusters:"Мои соседи UPG · Языковые кластеры",flowerMesh:"Мои соседи UPG · Цветочная сеть"},search:"Поиск",searchCockpit:"Искать цель / отправителя / язык…",searchStrip:"Искать цель / язык / отправителя…",searchBrush:"Поиск и выбор",remove:"убрать {label}",selectTarget:"Выберите неохваченную страну-цель",loadingSend:"Загрузка карты SEND…",send:{unreachedTarget:"Неохваченная цель —",clickOne:"нажмите на одну",toFocus:"чтобы выделить её",reachedSender:"Охваченный отправитель (SEND →)"},pctChristian:"христиан: {n}%",groups:"групп: {n}",people:"человек",unreached:"неохвачен",reached:"охвачен",unknown:"Неизвестно",lc:{loading:"Загрузка народов…",apiDown:"Живой API doxa недоступен: {message}",clusters:"языковых кластеров",pgs:"неохваченных",provinces:"провинций IN/CN",withReach:"с охваченным соответствием",legendCluster:"Неохваченный языковой кластер (размер = число групп)",legendReached:"Охваченный сосед (сопоставлен по языку)",legendHelp:"зелёное кольцо = у кластера есть охваченное соответствие · нажмите на кластер, чтобы углубиться",setCount:"Bounded set — неохваченных групп: {n}",more:"ещё {n}",reachedSame:"Охваченные соседи (тот же язык): {n}",frontier:"Ни один охваченный народ не говорит на этом языке в этих данных. Это рубеж: молитесь о делателях (Лк 10:2).",openFlower:"Открыть вид цветка ▸"},fm:{languageMesh:"языковая сеть",reachedNeighbors:"охваченных соседей",countries:"стран",upgsInCenter:"UPG в центре",meshLinks:"связей сети",growing:"Цветок растёт…",upgs:"UPG: {n}",people:"человек: {n}",legendTitle:"Цветок",unreachedTarget:"Неохваченная цель (doxa-2000)",reachedDeeper:"Охваченный сосед (темнее = больше христиан)",sendPath:"Путь SEND → к неохваченным",viaCluster:"через родственный языковой кластер",mesh:"Сеть сотрудничества на одном языке",whorl:"внутренний круг = та же страна · лепестки = соседние страны",loadError:"Не удалось загрузить данные об охваченных соседях"},strip:{lens:"Линза",lensAria:"Языковая линза",noLens:"— без линзы —",color:"Цвет",colorAria:"Окрашивать охваченных отправителей по",pctReached:"% охвата",religion:"религия",senderLanguage:"Язык отправителя",senderCountry:"Страна отправителя",clear:"сбросить",noSenders:"нет отправителей",byLanguage:"Отправители по языку",byCountry:"Отправители по стране",quantile:"% охвата (квантили)",histogram:"Гистограмма доли охвата",religionFamily:"Религиозная семья",bridgeType:"Тип моста",donut:"Кольцо по категориям"},list:{hidden:"· скрыто фильтрами: {n}",clear:"Сбросить",copy:"Копировать",csvDownloaded:"CSV загружен ({n})",copied:"Скопировано ({n})",copyFailed:"Не удалось скопировать: нажмите Ctrl/Cmd-C",sendersAvailable:"Доступно отправителей: {n}",buildSendList:"Составить список отправки",noSenders:"Нет отправителей, соответствующих текущим фильтрам",sendersHidden:"Скрыто отправителей: {n} — снимите фильтр, чтобы их увидеть",noReachedYet:"У этой цели пока нет достигнутых соседей в сохранённых данных",pickTarget:"Выберите красную цель",clustersNearby:"{c} недостигнутых кластеров · {s} достигнутых отправителей рядом",tapBubble:"Нажмите на красный пузырь на карте, чтобы составить его список отправки.",colPeopleGroup:"Народ",colCountry:"Страна",colLanguage:"Язык",colPopulation:"Численность",colReligion:"Религия",colPctChristian:"% христиан",colAdjacency:"Соседство",colCode:"Код",sortMobilization:"Мобилизация",sortFrontier:"Сначала рубежи",colName:"Название"},fc:{clusterBy:"Группировать по",flowers:"цветов",unreached:"неохваченных",legendTitle:"Цветочные кластеры",legendCore:"Неохваченный языковой кластер (ядро, размер = число групп)",legendPetal:"Охваченный сосед (детально, реальные координаты)",legendHelp:"нажмите верхний круг, чтобы перегруппировать · нажмите ядро, чтобы раскрыть лепестки",clustering:"Группировка жатвы по языку…",signLanguage:"Жестовый язык",mode:{family:"Семья",language:"Язык",dialect:"Диалект"},size:{fewerBigger:"меньше · крупнее",more:"больше",most:"больше всего"}},mc:{greenEncoding:"Кодирование зелёного цвета",provinces:"провинции IN/CN",provincesTitle:"Показать границы провинций IN/CN",resetFocus:"✕ сбросить выделение",needsToken:"Карте нужен токен Mapbox (tk в profile-config)…",rendering:"Рисуется поле жатвы…"},bloom:"Цветение",cockpit:{viewSwitch:"Вид карты или цветка",loading:"Загрузка поля жатвы…",unreachedTarget:"недостигнутая цель",map:"Карта",flower:"Цветок",details:"Подробности",senders:"отправителей →",clustersHidden:"кластеров · скрыто: {n}",legendSend:"SEND (сплошная = тот же язык · пунктир = кластер · точки = внутри страны)",legendSelection:"выбор · радиус = логарифм населения · Луки 10:2",navySend:"тёмно-синий = SEND",goldMesh:"золотой = сеть одного языка"},flower:{pickTarget:"Выберите красную цель на карте —",bloomsHere:"её достигнутые соседи расцветут здесь цветком."},sm:{counts:"{u} НН · {s} достигнутых отправителей",noSenders:"Нет подходящих достигнутых отправителей с известным центром страны для этой цели."},about:{button:"Как это работает",title:"Мобилизация близких соседей",close:"Закрыть",why:"Лучше всего достучаться до непросвещённого народа обычно могут верующие, самые близкие к нему по языку и культуре. Этот инструмент находит их для каждой непросвещённой группы по шкалам E и P Ральфа Д. Уинтера, чтобы вы могли спланировать, кого мобилизовать, на каком языке и где.",greenTitle:"Для церквей: начните с зелёной точки",green:"Выберите достигнутую (зелёную) группу — в списке «Достигнутые группы» или по зелёной точке, — чтобы увидеть недостигнутые народы, которых её верующим легче всего достичь, по одному уровню E, сначала ближайшие. Затем экспортируйте список (CSV), напишите письмо её верующим или распечатайте молитвенный пакет для этой церкви или её миссионерских партнёров.",eTitle:"Шкала E: какое расстояние должен преодолеть свидетель",pTitle:"Шкала P: расстояние между народом и церковью",dataTitle:"Данные и ограничения",data:"Просвещённым считается народ, где не менее 2% евангельских христиан (определение IMB). Язык и культура определяются по коду языка и таксономии народов IMB (кластер, блок родства, языковая семья): хорошие общедоступные приближения, а не полевые оценки. Число верующих оценено по численности населения и диапазонам доли евангельских христиан; используйте его для оценки аудитории, а не как точный подсчёт.",source:"Данные о народах: peoplegroups.org (IMB), people_groups.csv. Шкалы E и P: Ральф Д. Уинтер, Лозаннский конгресс, 1974."},e:{short1:"E-1 · тот же язык",short2:"E-2 · близкая культура",short3:"E-3 · рядом, другая культура",title1:"E-1 · Они говорят на том же языке",title2:"E-2 · Близкая культура",title3:"E-3 · Рядом, другая культура",long1:"Верующие, говорящие на языке этой группы. Они могут делиться Евангелием без языкового барьера, а движение на этом языке может вдохновить их.",long2:"Верующие из родственного народа: тот же кластер народов или та же языковая семья в том же блоке родства. Культурный шаг короче, чем начинать с нуля.",long3:"Верующие, живущие рядом (в пределах 600 км или в той же стране), но другой культуры. Их объединяет регион, а не язык.",rlong1:"Недостигнутые группы, говорящие на языке этой группы. Её верующие могут достичь их без языкового барьера.",rlong2:"Недостигнутые группы родственного народа: тот же кластер народов или та же языковая семья в том же блоке родства.",rlong3:"Недостигнутые группы поблизости (в пределах 600 км или в той же стране) с другой культурой."},p:{title0:"Просвещённые соседи не найдены",title1:"Есть верующие на его языке",title2:"Ближайшие верующие из близкой культуры",title3:"Ближайшие верующие из далёкой культуры",long0:"В этих данных ни одна просвещённая группа не совпадает с этим народом по языку, культуре или расстоянию.",long1:"Где-то просвещённая группа говорит на языке этого народа. Мобилизовать её — самый прямой путь.",long2:"Ни одна просвещённая группа не говорит на этом языке, но у родственных народов есть верующие.",long3:"Рядом только верующие другой культуры. Чтобы достичь этот народ, нужны межкультурные служители."},res:{bible:"Библия",film:"Фильм «Иисус»",audio:"Аудио",radio:"Радио"},mob:{legend:"Легенда карты",legendUnreached:"Непросвещённая группа",searchPlaceholder:"Поиск непросвещённой группы, страны или языка",kind:"Какие группы показывать",listUnreached:"Недостигнутые группы",listReached:"Достигнутые группы",searchReached:"Поиск достигнутой группы, страны или языка",introReached:"Выберите достигнутую группу (сначала с наибольшим числом верующих) или нажмите на зелёную точку на карте, чтобы увидеть недостигнутые группы, ближайшие к её верующим.",pFilter:"Фильтр по уровню P",pAll:"Все",loading:"Загрузка народов…",intro:"Выберите непросвещённую группу (сначала крупные) или нажмите на красную точку на карте, чтобы увидеть, кого мобилизовать.",noMatch:"Ничего не найдено.",back:"Все группы",people:"{n} чел.",believersNear:"Около {n} верующих среди соседей ниже.",resources:"Материалы на его языке",export:"Экспорт сегментов аудитории (CSV)",openBridge:"Спланировать движение на языке {lang}",samePeople:"тот же народ",cardStats:"~{b} верующих · {km} км",noNeighbors:"В этих данных нет просвещённых соседей.",caveat:"Оценки по данным peoplegroups.org. Проверьте местные реалии, прежде чем действовать.",loadError:"Не удалось загрузить данные о народах: {message}",legendReached:"Достигнутая группа",introBoth:"Выберите недостигнутую группу (сначала крупнейшие) или нажмите на точку на карте. Красная точка показывает верующих, которых можно мобилизовать для неё; зелёная — недостигнутые группы, ближайшие к её верующим.",reachedTitle:"Достигнута: 2% и более евангельских христиан",reachedLong:"Около {n} верующих. Ниже — недостигнутые группы, для которых эта группа входит в число ближайших достигнутых соседей.",reachCount:"Недостигнутых групп: {n} · {p} человек",cardStatsU:"{p} человек · {km} км",showNeighbors:"Показать её соседей",noUnreachedNeighbors:"Ни одна недостигнутая группа не числит эту группу среди ближайших достигнутых соседей.",showAll:"Показать все ({n})",eFilter:"Показать соседей по уровню E",sheetHide:"Скрыть список",sheetShow:"Показать список"},camp:{intro:"Языки-мосты: языки, на которых говорят и верующие, и непросвещённые народы. Одно движение на этом языке там, где живут верующие, может вдохновить их достичь непросвещённых на их родном языке.",searchPlaceholder:"Поиск языка или страны",minBelievers:"Не менее",exportAll:"Экспорт списка (CSV)",unreachedPeople:"{n} непросвещённых",believers:"~{n} верующих",believersIn:"Верующие в: {list}",back:"Все языки",bigBelievers:"верующих для мобилизации ({g} групп, {c} стран)",bigUnreached:"непросвещённых, которых можно достичь ({g} групп, {c} стран)",export:"Экспорт этого движения (CSV)",whereToRun:"Где её проводить: верующие по странам",believersInGroups:"~{n} в {g} группах",whoTheyReach:"Кого они могут достичь"},letter:{button:"Написать письмо",title:"Письмо верующим народа {group}",greeting:"Дорогие друзья, верующие народа {group} ({country}),",intro:"Эти {n} недостигнутых народов считают вас одними из ближайших к ним верующих ({level}). Среди них пока живёт мало верующих.",item:"{name}, {country}: население {pop}, язык {language}, {km} км.",pray:"Молитесь о них: {url}",more:"…и ещё {n}. Полный список — в экспорте CSV.",close:"Будете ли вы молиться о них и спросите ли Бога, как ваша церковь может их благословить? Каждый из этих народов любим Богом.",sign:"Во имя Иисуса,",copy:"Скопировать письмо",download:"Скачать (.txt)"},packet:{button:"Молитвенный пакет",label:"{group}: недостигнутые соседи ({level})",labelCapped:"{group}: {n} ближайших из {total} недостигнутых соседей ({level})"}},"./locales/ru/pinHint.json":{line1:"Нажмите на цветную точку",line2:"кому-то всё ещё нужна молитва"},"./locales/ru/wall.json":{title:"Стена народов",toPortrait:"📱 Портретный вид",toLandscape:"🖼️ Альбомный вид",currentLandscape:"Сейчас: альбомный (4 × 3 фута)",currentPortrait:"Сейчас: портретный (3 × 4 фута)",resetZoom:"Сбросить масштаб",groupsLoaded:"Загружено: {n}",loading:"Загрузка народов…",offlineTitle:"Не удалось получить данные о молитвах.",offlineBody:"Стена берёт народы с pray.doxa.life. Возможно, нет подключения, или на локальном сервере разработки API не разрешает адрес этой страницы.",tryAgain:"Повторить",prayedCount:"Помолились: {n}",viewPrayers:"Смотреть молитвы",prayerTools:"Молитвенные инструменты",close:"Закрыть",unknown:"Неизвестно",unknownGroup:"Неизвестный народ",status:"Статус:",unengaged:"неохваченный",prayingNow:"Вы сейчас молитесь за этот народ?",yesPraying:"Да, молюсь",thankYou:"Спасибо за молитву!",sharePrayer:"Поделитесь молитвой (необязательно)",prayerPlaceholder:"Напишите молитву здесь…",sendPrayer:"Отправить молитву",peopleGroup:"Народ",chatsTitle:"Беседы о народе",id:"ID:",location:"Место:",na:"нет данных",havePrayed:"Помолились: {n}",youPrayed:"✓ Вы помолились!",prayForGroup:"🙏 Помолиться за этот народ",prayersComments:"Молитвы и комментарии",noComments:"Пока нет молитв и комментариев. Будьте первым!",commentPlaceholder:"Поделитесь молитвой или мыслями…",postComment:"Опубликовать",noPeopleId:"У этого народа нет PeopleID3",statusUnknown:"Статус неизвестен",printPoster:"🖨️ Печать плаката HD",printPreparing:"Подготовка плаката: {n} из {total} фото",printMissing:"Не удалось загрузить фото: {n}. Они будут напечатаны серыми прямоугольниками.",blessBanner:"Благословляйте народы во имя Иисуса",modeLabel:"Режим стены",modeBless:"Благословение",modeSocial:"Соцсеть",shareSoon:"Возможность поделиться появится позже.",drawLibError:"Стене не удалось загрузить библиотеку рисования:",posterSize:"Размер плаката",posterSubtitle:"DOXA (δόξα) означает «слава». Всемирное молитвенное движение благословляет эти {n} народов во имя Иисуса. Узнайте больше и присоединяйтесь: pray.doxa.life.",glueHere:"приклейте сюда верхний лист",themesLabel:"Молитвенные темы",oldTestament:"Ветхий Завет",newTestament:"Новый Завет",themeTreasure:"Сокровище",themeMountain:"Гора",themeSea:"Море",posterClosing:"Иисус Христос — краеугольный камень, а мы — живые камни. Эти народы — награда за Его страдания. Примем наше священническое призвание: благословляйте их во имя Его и присоединяйтесь к всемирной молитвенной семье.",journeyCalled:"Призвание",journeyPromised:"Обетование",journeyRedeemed:"Искуплены",journeyCornerstone:"Краеугольный камень",journeyChildren:"Дети Авраама",journeyPriesthood:"Царственное священство",journeySent:"Посланы к погибшим",peopleGroupCount:"{n} народ | {n} народа | {n} народов | {n} народа",listCount:"{n} список | {n} списка | {n} списков | {n} списка",stockCard:"Карточка",stockPostcard:"Открытка",stockLandscape:"альбомная",hud:{kindPoster:"Плакат",kindList:"Список",kindPacket:"Молитвенный пакет",fetchingPoster:"загрузка плаката",generatingPoster:"создание плаката",openingPrint:"открытие окна печати",printOpened:"окно печати открыто",readyToPrint:"готово к печати",printNow:"Печать",saving:"сохранение",fetchingRecords:"загрузка данных",fetchingGroups:"загрузка народов",layingOutRows:"раскладка {n} строки | раскладка {n} строк | раскладка {n} строк | раскладка {n} строки",layingOutCards:"раскладка {n} карточки | раскладка {n} карточек | раскладка {n} карточек | раскладка {n} карточки",printingGroups:"печать {n} народа | печать {n} народов | печать {n} народов | печать {n} народа",kindCardDeck:"Набор карточек",kindPrayerList:"Молитвенный список",saved:"сохранено",noRecords:"в этом списке нет народов для печати",noPoster:"для этого списка нет плаката",posterNotFound:"плакат не найден ({status})",posterBlank:"созданный плакат получился пустым",noApi:"сервис народов не настроен",fetchFailed:"не удалось загрузить народы ({status})"},posterAlt:"{label} — молитвенный плакат",posterAltAction:"{label} — молитвенный плакат (нажмите, чтобы просмотреть и распечатать)"},"./locales/zh/aria.json":{backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例",searchPeopleGroups:"搜索民族",resetAllFilters:"重置所有筛选和搜索",selectAllRows:"选择所有行",deselectAllRows:"取消选择所有行",rowDetail:"行详情",dismissHint:"关闭提示",resizeFiltersRail:"调整筛选器栏大小",resizeFiltersRailHint:"拖动或使用方向键调整筛选器栏大小",resizeChartsRail:"调整图表栏大小",resizeChartsRailHint:"拖动或使用方向键调整图表栏大小",resizeMapTableSplit:"调整地图与表格的分隔",resizeMapTableSplitHint:"拖动或使用方向键调整地图与表格的分隔",resizeTable:"调整表格高度",resizeTableHint:"拖动或使用方向键调整表格大小",resizeDashboardHeight:"调整仪表板高度",resizeDashboardHeightHint:"拖动或使用方向键调整仪表板高度",removeFilter:"移除筛选条件 {name}",closeDetail:"关闭详情",filterBreadcrumb:"筛选路径",railViews:"栏视图",upgCountLegend:"UPG 数量图例",donutChart:"环形图:{title}"},"./locales/zh/buttons.json":{prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"祷告名单",cardDeck:"祷告卡组",printOptions:"打印选项",showOnMap:"在地图上显示",close:"关闭",showOnMapAria:"在地图上显示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把这张地图嵌入你的网站","列出你城市里的网站","教他们也嵌入这张地图","教他们去教别人嵌入","为耶稣让地图遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数",packetVariantAria:"祷告手册详细程度",packetFull:"完整版",packetLightweight:"精简版",working:"处理中…",postersPerRowAuto:"自动"},"./locales/zh/grid.json":{search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。",search_people_or_countries:"搜索民族或国家…",cards_per_row:"每行卡片数",cards_per_row_auto:"自动"},"./locales/zh/mapui.json":{map:"地图",marker:"地图标记",closePopup:"关闭弹窗",zoomIn:"放大",zoomOut:"缩小",resetBearing:"拖动以旋转地图,点击以恢复正北",toggleAttribution:"显示/隐藏数据来源",mapFeedback:"地图反馈",enterFullscreen:"全屏",exitFullscreen:"退出全屏",findMyLocation:"查找我的位置",locationNotAvailable:"无法获取位置",enableGlobe:"启用地球仪",disableGlobe:"停用地球仪",ctrlScroll:"使用 Ctrl + 滚轮缩放地图",cmdScroll:"使用 ⌘ + 滚轮缩放地图",twoFingers:"使用两根手指移动地图",mapboxHomepage:"Mapbox 主页",maplibreLogo:"MapLibre 标志"},"./locales/zh/messages.json":{menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG100 名单 — 祷告名单与海报",upg100WallTag:"祷告动员",upg100WallIntroA:"你会怎样喂饱五千人的群众?耶稣让他们一排五十、一排一百地坐下,不可能的事就变得可以分担了(路加福音 9:14)。我们对 2,106 个未得之民做了同样的事:27 份名单,每份约五十到一百。每份名单都能印成祷告手册和海报,让 27 位门徒、教会或当地领袖各领一份 — 为他们祷告 ",upg100WallIntroEmph:"称呼他们族群的名字",upg100WallIntroB:"。",loadingNamed:"正在加载{name}…",couldNotLoadNamed:"无法加载{name}。",engineMissing:"{engine} 地图引擎未能加载。",packetFailed:"祷告册生成失败:{reason}",selectionPacketFailed:"所选内容的祷告册生成失败:{reason}",posterOneTerritory:"海报一次只能打印一个区域——已选 {count} 个。",selectionPosterFailed:"所选内容的海报生成失败:{reason}",mapUnavailable:"地图不可用",copied:"已复制!",copyFailed:"复制失败——请按 Ctrl/Cmd-C",engineNotLoaded:"地图引擎未加载",engineNotLoadedDetail:"{engine} 地图引擎未能加载。列表和图例不受影响。",viewLoadFailed:"此视图无法加载。",retry:"重试",noMapboxToken:"没有 Mapbox 令牌",noMapboxTokenDetail:"未配置 Mapbox 令牌。列表和图例不受影响。",loadingBoundaries:"正在加载边界…",fetchingUupgs:"正在获取 {n} 个 UUPG…",mapStatusCounts:"区域:{polys} · 分区:{zones}/{total} · 标记:{pins}",tapTerritoriesHint:"点按地图上的区域或图例行即可添加 · 再次点按即可移除",territoriesSelected:"区域:{count}",bandInRange:"✓ 50–100 区间",bandOutOfRange:"50–100 区间",mapContextLost:"已卸载此地图以释放显存。",nOfTotal:"{total} 个中的 {n} 个",mapInitFailed:"地图初始化失败——请检查令牌和容器",countryWallIntroA:"每个国家一张海报,可用来祷告、打印、贴在墙上——为他们祷告,",countryWallIntroB:"。各区域和国家按其中未得之民族群的数量排序,让最大的需要排在最前。",countryWallSoon:"即将推出:将为每个国家生成一份祷告名单,列出其中每一个未得之民族群的名字。",countryWallHeading:"国家海报 — 祷告名单与海报",largerScreenNotice:"这张实验性地图为大屏幕设计。它可以在这里打开,但部分内容在手机上可能显示不全或无法正常使用。",desktopOnlyNotice:"{label} 仅支持桌面端——请在电脑上打开此页面使用。",noticeDismiss:"关闭",countryPosterTooMany:"族群数量过多,无法清晰地放在一张海报上——我们正在制定解决方案。"},"./locales/zh/neighbor.json":{brand:"我的 UPG 邻居",chooseView:"选择视图",views:{cockpit:"概览",sendMap:"差派地图",flowerMesh:"花网",langCluster:"语言群",flowers:"花朵",mobilize:"动员",campaigns:"宣教动员"},hints:{cockpit:"交叉筛选中心",sendMap:"从已得之民到未得之民的弧线",flowerMesh:"放射状绽放",langCluster:"按语言划定的集合",flowers:"语系 · 语言 · 方言为核心,细分花瓣"},title:{overview:"我的 UPG 邻居 · 概览",send:"我的 UPG 邻居 · SEND",langClusters:"我的 UPG 邻居 · 语言群",flowerMesh:"我的 UPG 邻居 · 花网"},search:"搜索",searchCockpit:"搜索目标 / 差派方 / 语言…",searchStrip:"搜索目标 / 语言 / 差派方…",searchBrush:"搜索并选择",remove:"移除 {label}",selectTarget:"选择未得之民目标国家",loadingSend:"正在加载 SEND 地图…",send:{unreachedTarget:"未得之民目标 —",clickOne:"点击其中一个",toFocus:"进行聚焦",reachedSender:"已得之民差派方(SEND →)"},pctChristian:"基督徒 {n}%",groups:"族群:{n}",people:"人口",unreached:"未得",reached:"已得",unknown:"未知",lc:{loading:"正在加载族群…",apiDown:"doxa 实时接口无法访问:{message}",clusters:"语言群",pgs:"未得",provinces:"IN/CN 省份",withReach:"有已得匹配",legendCluster:"未得语言群(大小 = 族群数)",legendReached:"已得邻居(按语言匹配)",legendHelp:"绿环 = 该语言群有已得匹配 · 点击语言群深入查看",setCount:"Bounded set — 未得族群:{n}",more:"另有 {n} 个",reachedSame:"已得邻居(同一语言):{n}",frontier:"在此数据中没有已得族群使用这种语言。这是前沿:请为工人祷告(路加福音 10:2)。",openFlower:"打开花朵视图 ▸"},fm:{languageMesh:"语言网",reachedNeighbors:"已得邻居",countries:"国家",upgsInCenter:"中心的 UPG",meshLinks:"网络连线",growing:"花朵正在生长…",upgs:"UPG:{n}",people:"人口:{n}",legendTitle:"花朵",unreachedTarget:"未得之民目标(doxa-2000)",reachedDeeper:"已得邻居(越深 = 基督徒越多)",sendPath:"SEND 路径 → 通往未得之民",viaCluster:"经由相关语言群",mesh:"同语言协作网",whorl:"内圈 = 同一国家 · 花瓣 = 周边国家",loadError:"无法加载已得邻居数据"},strip:{lens:"透镜",lensAria:"语言透镜",noLens:"— 无透镜 —",color:"颜色",colorAria:"已得差派方的着色依据",pctReached:"已得比例 %",religion:"宗教",senderLanguage:"差派方语言",senderCountry:"差派方国家",clear:"清除",noSenders:"没有差派方",byLanguage:"按语言统计差派方",byCountry:"按国家统计差派方",quantile:"已得比例 %(分位数)",histogram:"已得比例直方图",religionFamily:"宗教类别",bridgeType:"桥梁类型",donut:"按类别的环形图"},list:{hidden:"· 被筛选隐藏:{n}",clear:"清除",copy:"复制",csvDownloaded:"已下载 CSV({n})",copied:"已复制({n})",copyFailed:"复制失败:请按 Ctrl/Cmd-C",sendersAvailable:"可用差派方 {n} 个",buildSendList:"建立差派名单",noSenders:"没有符合当前筛选条件的差派方",sendersHidden:"已隐藏 {n} 个差派方 — 清除一个筛选即可查看",noReachedYet:"在已保存的数据中,此目标尚无已得之邻舍",pickTarget:"选择一个红色目标",clustersNearby:"{c} 个未得群组 · 附近 {s} 个已得差派方",tapBubble:"点击地图上的红色气泡以建立其差派名单。",colPeopleGroup:"族群",colCountry:"国家",colLanguage:"语言",colPopulation:"人口",colReligion:"宗教",colPctChristian:"基督徒 %",colAdjacency:"邻近关系",colCode:"代码",sortMobilization:"动员",sortFrontier:"前沿优先",colName:"名称"},fc:{clusterBy:"分组依据",flowers:"花朵",unreached:"未得",legendTitle:"花朵集群",legendCore:"未得语言群(核心,大小 = 族群数)",legendPetal:"已得邻居(细分,真实坐标)",legendHelp:"点击上方圆圈重新分组 · 点击核心展开花瓣",clustering:"正在按语言整理庄稼…",signLanguage:"手语",mode:{family:"语系",language:"语言",dialect:"方言"},size:{fewerBigger:"更少 · 更大",more:"更多",most:"最多"}},mc:{greenEncoding:"绿色编码",provinces:"IN/CN 省份",provincesTitle:"显示 IN/CN 省级边界",resetFocus:"✕ 取消聚焦",needsToken:"地图需要 Mapbox 令牌(profile-config 中的 tk)…",rendering:"正在绘制庄稼田…"},bloom:"绽放",cockpit:{viewSwitch:"地图或花朵视图",loading:"正在加载庄稼之田…",unreachedTarget:"未得目标",map:"地图",flower:"花朵",details:"详情",senders:"派遣方 →",clustersHidden:"个民族群 · 隐藏 {n} 个",legendSend:"SEND(实线 = 同语言 · 虚线 = 民族群 · 点线 = 国内)",legendSelection:"选中 · 半径 = 人口对数 · 路加福音 10:2",navySend:"深蓝 = SEND",goldMesh:"金色 = 同语言网络"},flower:{pickTarget:"在地图上选择一个红色目标 —",bloomsHere:"其已得之邻舍将在此如花绽放。"},sm:{counts:"{u} 个未得之民 · {s} 个已得差派方",noSenders:"此目标没有具有已知国家中心点的合格已得差派方。"},about:{button:"使用说明",title:"动员近邻",close:"关闭",why:"最适合接触未得之民的信徒,通常是在语言和文化上与他们最接近的人。本工具依据拉尔夫·温特(Ralph D. Winter)的 E 等级和 P 等级,为每个未得之民群体找出这些信徒,帮助你规划动员谁、用哪种语言、在哪里。",greenTitle:"给教会:从绿点开始",green:"选择一个已得之民群体(绿点):在“已得之民群体”列表中或点击绿点,查看其信徒最有条件接触的未得之民,每次一个 E 级别,由近到远。然后导出列表(CSV)、给其信徒写信或打印祷告手册,供该教会或其宣教伙伴使用。",eTitle:"E 等级:见证者需跨越的距离",pTitle:"P 等级:一个民族与教会之间的距离",dataTitle:"数据与局限",data:'"已得之民"指福音派信徒至少占 2%(IMB 的定义)。语言和文化依据语言代码和 IMB 民族分类(族群、亲缘区块、语系)判断:是很好的公开近似指标,而非实地评估。信徒人数由人口和福音派比例区间估算,用于估计受众规模,不是精确统计。',source:"民族数据:peoplegroups.org(IMB),people_groups.csv。E 等级与 P 等级:拉尔夫·温特,洛桑大会,1974 年。"},e:{short1:"E-1 · 同一语言",short2:"E-2 · 相近文化",short3:"E-3 · 邻近,不同文化",title1:"E-1 · 说同一种语言",title2:"E-2 · 相近的文化",title3:"E-3 · 邻近但文化不同",long1:"说这个群体语言的信徒。他们无需跨越语言障碍就能传福音,用这种语言开展的宣教动员可以激励他们。",long2:"来自相关民族的信徒:同一民族群,或同一亲缘区块中的同一语系。比从零开始的文化跨度更短。",long3:"住在附近(600 公里以内或同一国家)但文化不同的信徒。他们共享地区,而非语言。",rlong1:"说这个群体语言的未得之民群体。它的信徒无需跨越语言障碍就能接触他们。",rlong2:"来自相关民族的未得之民群体:同一民族集群,或同一亲缘区块中的同一语系。",rlong3:"附近(600 公里以内或同一国家)文化不同的未得之民群体。"},p:{title0:"未找到已得之民近邻",title1:"有说其本族语言的信徒",title2:"最近的信徒来自相近文化",title3:"最近的信徒来自遥远文化",long0:"在此数据中,没有已得之民群体在语言、文化或距离上与该民族相符。",long1:"某处有已得之民群体说这个民族的语言。动员他们是最直接的途径。",long2:"没有已得之民群体说这种语言,但相关民族中有信徒。",long3:"附近只有不同文化的信徒。接触这个民族需要跨文化工人。"},res:{bible:"圣经",film:"《耶稣传》电影",audio:"音频",radio:"广播"},mob:{legend:"地图图例",legendUnreached:"未得之民群体",searchPlaceholder:"搜索未得之民群体、国家或语言",kind:"显示哪些群体",listUnreached:"未得之民群体",listReached:"已得之民群体",searchReached:"搜索已得之民群体、国家或语言",introReached:"选择一个已得之民群体(信徒多的在前),或点击地图上的绿点,查看离其信徒最近的未得之民群体。",pFilter:"按 P 等级筛选",pAll:"全部",loading:"正在加载民族…",intro:"选择一个未得之民群体(按规模排序),或点击地图上的红点,查看可以动员谁。",noMatch:"没有匹配项。",back:"所有群体",people:"{n} 人",believersNear:"下列近邻中约有 {n} 名信徒。",resources:"其语言的资源",export:"导出受众细分(CSV)",openBridge:"策划一场 {lang} 宣教动员",samePeople:"同一民族",cardStats:"约 {b} 名信徒 · 相距 {km} 公里",noNeighbors:"此数据中没有已得之民近邻。",caveat:"根据 peoplegroups.org 数据估算。行动前请核实当地实际情况。",loadError:"无法加载民族数据:{message}",legendReached:"已得之民群体",introBoth:"选择一个未得之民群体(人数多的在前),或点击地图上的点。红点显示可为它动员的信徒;绿点显示离它的信徒最近的未得之民群体。",reachedTitle:"已得:福音派占 2% 或以上",reachedLong:"约 {n} 名信徒。下面是把这个群体列为最近已得邻居之一的未得之民群体。",reachCount:"{n} 个未得之民群体 · {p} 人",cardStatsU:"{p} 人 · 距离 {km} 公里",showNeighbors:"查看它的邻居",noUnreachedNeighbors:"没有任何未得之民群体把这个群体列为最近的已得邻居。",showAll:"显示全部 {n} 个",eFilter:"按 E 等级显示邻居",sheetHide:"隐藏列表",sheetShow:"显示列表"},camp:{intro:"桥梁语言:信徒和未得之民都使用的语言。在信徒居住地用这种语言开展一场宣教动员,就能激励他们用对方的母语接触未得之民。",searchPlaceholder:"搜索语言或国家",minBelievers:"至少",exportAll:"导出列表(CSV)",unreachedPeople:"{n} 未得之民",believers:"约 {n} 名信徒",believersIn:"信徒所在:{list}",back:"所有语言",bigBelievers:"名可动员的信徒({g} 个群体,{c} 个国家)",bigUnreached:"名待接触的未得之民({g} 个群体,{c} 个国家)",export:"导出此宣教动员(CSV)",whereToRun:"在哪里开展:各国信徒",believersInGroups:"约 {n},分布于 {g} 个群体",whoTheyReach:"他们可以接触的人群"},letter:{button:"写一封信",title:"致{group}信徒的一封信",greeting:"{country}的{group}信徒中亲爱的朋友们:",intro:"以下{n}个未得之民群体把你们算作离他们最近的信徒之一({level})。他们中间至今只有很少的信徒。",item:"{name},{country}:{pop}人,说{language},距离{km}公里。",pray:"为他们祷告:{url}",more:"……还有{n}个。完整名单见 CSV 导出。",close:"你们愿意为他们祷告,并求问神你们的教会可以怎样祝福他们吗?这些群体中的每一个都蒙神所爱。",sign:"奉耶稣的名,",copy:"复制这封信",download:"下载(.txt)"},packet:{button:"祷告手册",label:"{group}:其未得之民邻舍({level})",labelCapped:"{group}:其{total}个未得之民邻舍中最近的{n}个({level})"}},"./locales/zh/pinHint.json":{line1:"点按一个彩色圆点",line2:"仍有人需要祷告"},"./locales/zh/wall.json":{title:"族群祷告墙",toPortrait:"📱 切换为纵向",toLandscape:"🖼️ 切换为横向",currentLandscape:"当前:横向(4 × 3 英尺)",currentPortrait:"当前:纵向(3 × 4 英尺)",resetZoom:"重置缩放",groupsLoaded:"已加载:{n}",loading:"正在加载族群…",offlineTitle:"无法获取实时祷告数据。",offlineBody:"祷告墙从 pray.doxa.life 读取族群。你可能已离线,或在本地开发服务器上 API 不允许此页面的地址。",tryAgain:"重试",prayedCount:"已祷告:{n}",viewPrayers:"查看祷告",prayerTools:"祷告工具",close:"关闭",unknown:"未知",unknownGroup:"未知族群",status:"状态:",unengaged:"未得之民",prayingNow:"你现在正在为这个族群祷告吗?",yesPraying:"是的,我在祷告",thankYou:"感谢你的祷告!",sharePrayer:"分享你的祷告(可选)",prayerPlaceholder:"在此输入你的祷告…",sendPrayer:"发送祷告",peopleGroup:"族群",chatsTitle:"族群交流",id:"ID:",location:"位置:",na:"无",havePrayed:"已祷告:{n}",youPrayed:"✓ 你已祷告!",prayForGroup:"🙏 为这个族群祷告",prayersComments:"祷告与评论",noComments:"还没有祷告或评论,来做第一个吧!",commentPlaceholder:"分享你的祷告或想法…",postComment:"发表评论",noPeopleId:"该族群没有 PeopleID3",statusUnknown:"状态未知",printPoster:"🖨️ 打印高清海报",printPreparing:"正在准备海报:已加载 {n} / {total} 张照片",printMissing:"无法加载的照片:{n} 张,将打印为灰色方框。",blessBanner:"奉耶稣的名祝福万国",modeLabel:"祷告墙模式",modeBless:"祝福",modeSocial:"社交",shareSoon:"分享功能稍后推出。",drawLibError:"祷告墙无法加载其绘图库:",posterSize:"海报尺寸",posterSubtitle:"DOXA(δόξα)意为“荣耀”。一场全球祷告运动正奉耶稣的名祝福这 {n} 个族群。了解更多并加入:pray.doxa.life。",glueHere:"在此处粘贴上方的纸张",themesLabel:"祷告主题",oldTestament:"旧约",newTestament:"新约",themeTreasure:"宝藏",themeMountain:"山",themeSea:"海",posterClosing:"耶稣基督是房角石,我们是活石。这些族群是他受苦所换来的赏赐。让我们担起君尊祭司的呼召:奉他的名祝福他们,并在祷告中加入全球大家庭。",journeyCalled:"蒙召",journeyPromised:"应许",journeyRedeemed:"蒙救赎",journeyCornerstone:"房角石",journeyChildren:"亚伯拉罕的子孙",journeyPriesthood:"有君尊的祭司",journeySent:"奉差遣寻找失丧的人",peopleGroupCount:"{n} 个族群",listCount:"{n} 份名单",stockCard:"卡片",stockPostcard:"明信片",stockLandscape:"横向",hud:{kindPoster:"海报",kindList:"名单",kindPacket:"祷告手册",fetchingPoster:"正在获取海报",generatingPoster:"正在生成海报",openingPrint:"正在打开打印窗口",printOpened:"打印窗口已打开",readyToPrint:"可以打印了",printNow:"打印",saving:"正在保存",fetchingRecords:"正在获取数据",fetchingGroups:"正在获取族群",layingOutRows:"正在排版 {n} 行",layingOutCards:"正在排版 {n} 张卡片",printingGroups:"正在打印 {n} 个族群",kindCardDeck:"祷告卡组",kindPrayerList:"祷告名单",saved:"已保存",noRecords:"该名单中没有可打印的族群",noPoster:"此名单没有可用的海报",posterNotFound:"未找到海报({status})",posterBlank:"生成的海报为空白",noApi:"未配置族群服务",fetchFailed:"无法加载族群({status})"},posterAlt:"{label} — 祷告海报",posterAltAction:"{label} — 祷告海报(点击预览并打印)"}}),Ut={};for(const[e,t]of Object.entries(_f)){const n=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!n)continue;const[,o,a]=n;Ut[o]??(Ut[o]={}),Ut[o][a]=t}const Ju=(()=>{try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.split(/[?#]/)[0].replace(/[^/]+$/,""):""}catch{return""}})(),Xu=typeof __DX_LOCALE_SRI__<"u"?__DX_LOCALE_SRI__:{},Rr=new Map;let li=null;const wf=1500;function ci(e,t){var a,r;const n=String(t||"").split("-")[0].toLowerCase();if(!n||n==="en"||!Ca.includes(n))return Promise.resolve(n==="en");if(Ut[n])return(r=(a=e==null?void 0:e.global)==null?void 0:a.setLocaleMessage)==null||r.call(a,n,Ut[n]),Promise.resolve(!0);if(Rr.has(n))return Rr.get(n).then(s=>{var i,l;return s&&Ut[n]&&((l=(i=e==null?void 0:e.global)==null?void 0:i.setLocaleMessage)==null||l.call(i,n,Ut[n])),s});if(!Xu[n])return Promise.resolve(!!Ut[n]);const o=(async()=>{var s,i;try{if(!Ju)return!1;const l=new URL(`locales/${n}.json`,Ju).href,c=await fetch(l,{integrity:Xu[n]});if(!c.ok)return!1;const u=await c.json();return!u||typeof u!="object"?!1:(Ut[n]=u,(i=(s=e==null?void 0:e.global)==null?void 0:s.setLocaleMessage)==null||i.call(s,n,u),!0)}catch{return!1}})();return Rr.set(n,o),o}Ut.en;const Ca=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],Ir=new Set(["ar"]);function Qu(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function Ta(){var o;const e=Qu();if(Ca.includes(e))return e;const n=(((o=document==null?void 0:document.documentElement)==null?void 0:o.lang)||"").split("-")[0].toLowerCase();return Ca.includes(n)?n:"en"}try{li=ci(null,Ta())}catch{li=null}function kf(e=Ta()){const t=String(e||"").split("-")[0].toLowerCase();if(!Ir.has(t)||Ut[t])return Promise.resolve(!0);const n=Rr.get(t)||li||Promise.resolve(!1);return Promise.race([n.then(o=>!!o).catch(()=>!1),new Promise(o=>setTimeout(()=>o(!1),wf))])}function Sf(){const e=Ta();try{typeof window<"u"&&window.MAP_OWNS_PAGE===!0&&e&&(document!=null&&document.documentElement)&&(document.documentElement.lang=e,Ir.has(e)&&(document.documentElement.dir="rtl"))}catch{}const t=Va(!0),n=t.run(()=>uf({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Ut,missingWarn:!1,fallbackWarn:!1,pluralRules:Pf}));e!=="en"&&!Ut[e]&&ci(n,e).catch(()=>{}),t.run(()=>_t(n.global.locale,a=>td(a),{immediate:!0}));const o=n.install.bind(n);return n.install=(a,...r)=>{const s=o(a,...r);a.provide("appI18n",n);const i=a.provide.bind(a);return a.provide=(l,c)=>l==="appI18n"&&c===n?a:i(l,c),s},n}const ed="__DOXA_PAGE_LOCALE";function td(e){const t=String(e||"").split("-")[0].toLowerCase();if(Ca.includes(t))try{typeof window<"u"&&(window[ed]=t)}catch{}}const xf=["zero","one","two","few","many","other"];function nd(e,t,n){let o;try{o=new Intl.PluralRules(n)}catch{return e===1?0:1}const a=o.select(e),r=o.resolvedOptions().pluralCategories,s=xf.filter(l=>r.includes(l));let i=s.indexOf(a);if(i<0&&(i=s.indexOf("other")),i>=t){const l=s.indexOf("other");i=l>=0&&l<t?l:t-1}return Math.max(0,Math.min(i,t-1))}const Pf=Object.fromEntries(["ar","de","es","fr","hi","it","pt","ro","ru","zh"].map(e=>[e,(t,n)=>nd(t,n,e)]));function Or(){try{return typeof window<"u"&&window[ed]||""}catch{return""}}function no(e,t){const n=a=>{let r=Ut[a];for(const s of String(e).split(".")){if(!r||typeof r!="object")return;r=r[s]}return typeof r=="string"?r:void 0},o=t||Or()||Ta();return n(o)??n("en")}const ui=new Map;function Cf(e,{type:t="conjunction",style:n="long",locale:o}={}){const a=Array.from(e||[],l=>String(l)),r=()=>{try{return Ta()}catch{return""}},s=o||Or()||r()||"en",i=`${s}|${t}|${n}`;try{return ui.has(i)||ui.set(i,new Intl.ListFormat(s,{type:t,style:n})),ui.get(i).format(a)}catch{return a.join(", ")}}function od(e,t){return t?String(e).replace(/\{(\w+)\}/g,(n,o)=>t[o]!=null?String(t[o]):n):String(e)}function ad(e,t,n=Or()){const o=String(e).split(/\s*\|\s*/);if(o.length<2||typeof t!="number")return String(e);const a=String(n||"en").split("-")[0].toLowerCase();if(a!=="en")return o[nd(t,o.length,a)];const r=Math.abs(t),s=o.length===2?r?r>1?1:0:1:r?Math.min(r,2):0;return o[Math.min(s,o.length-1)]}function zr(e,t){const n=String(t);return e&&!n.startsWith(`${e}.`)?`${e}.${n}`:n}function di(e,t={}){const n=typeof t.fallback=="function"?(o,a,r)=>od(ad(t.fallback(zr(e,o),a)??o,r),a):(o,a,r)=>od(ad(no(zr(e,o))??o,r),a);try{const o=Pa();return(a,r,s)=>{const i=zr(e,a),l=typeof s=="number"?o.t(i,r||{},s):o.t(i,r||{});return l===i?n(a,r,s):l}}catch{return n}}function Tf(e,t={}){const n=di(e,t);try{const o=Pa();return{t:n,te:a=>o.te(zr(e,a)),locale:o.locale}}catch{return{t:n,te:()=>!1,locale:t.locale??"en"}}}const Lf="background:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);",Mf="background:#2b2f2c;color:#e8e9e6;border:1px solid #4a4f4b;",Af=Kn({name:"LazyLoadFailed",props:{onRetry:{type:Function,required:!0},dark:Boolean},setup(e){const t=di("messages"),n=Le(!1),o=()=>{n.value||(n.value=!0,e.onRetry())};return()=>_o("div",{class:"dx-lazy-failed",role:"alert",style:"padding:12px;font-size:13px;line-height:1.4;border-radius:8px;"+(e.dark?Mf:Lf)},[_o("span",t("viewLoadFailed"))," ",_o("button",{type:"button",disabled:n.value,style:"font:inherit;cursor:pointer;",onClick:o},t("retry"))])}});function Ef(e,t){return Sg({loader:e,errorComponent:Kn({inheritAttrs:!1,props:{isDark:Boolean},setup:n=>()=>_o(Af,{onRetry:t,dark:n.isDark})}),onError(n,o,a,r){r<=3?setTimeout(o,r*500):a()}})}function Nf(e){const t=er(null),n=()=>{t.value=Ef(e,n)};return n(),Kn({name:"RetryableAsync",inheritAttrs:!1,setup(o,{attrs:a,slots:r}){return()=>_o(t.value,a,r)}})}function Dr(e,t){const n=_n(),o=t||(n&&n.type&&n.type.__hmrId?"hmr-"+n.type.__hmrId:Rf(e));fo(()=>{var l;if(!n)return;const a=(l=n.proxy)==null?void 0:l.$el;if(!a)return;const r=a.getRootNode();if(!(r instanceof ShadowRoot))return;if(!r.querySelector('style[data-shadow-styles="reduced-motion"]')){const c=document.createElement("style");c.setAttribute("data-shadow-styles","reduced-motion"),c.textContent=Ff,r.appendChild(c)}const s=r.querySelector(`style[data-shadow-styles="${o}"]`);if(s){s.textContent!==e&&(s.textContent=e);return}const i=document.createElement("style");i.setAttribute("data-shadow-styles",o),i.textContent=e,r.appendChild(i)})}const Ff=`@media (prefers-reduced-motion: reduce) {
|
||
*, *::before, *::after {
|
||
animation-duration: 0.01ms !important;
|
||
animation-iteration-count: 1 !important;
|
||
transition-duration: 0.01ms !important;
|
||
scroll-behavior: auto !important;
|
||
}
|
||
}`;function Rf(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return"s"+Math.abs(t).toString(36)}function If(e=typeof document<"u"?document:null,t=typeof window<"u"?window:null,n=null){try{const o=e&&(e.scrollingElement||e.documentElement);if(o&&t&&o.scrollHeight>t.innerHeight+1)return!0;let a=n;for(let r=0;a&&r<80;r++){if(a.nodeType===1&&t&&typeof t.getComputedStyle=="function"){const i=t.getComputedStyle(a).overflowY;if((i==="auto"||i==="scroll"||i==="overlay")&&a.scrollHeight>a.clientHeight+1)return!0}const s=typeof a.getRootNode=="function"?a.getRootNode():null;a=a.parentElement||s&&s!==a&&s.host||null}return!1}catch{return!1}}function Of({viewportH:e,scrolls:t,sheetTop:n=1/0,creditTop:o=1/0}){return Math.min(t?1/0:e,n,o)}const zf={class:"pin-hint-pill"},Df={class:"pin-hint-text"},Gf=["aria-label"],Hf={__name:"PinHint",setup(e){const t=(J,M)=>no(J)||M,n={"messages.pinHint.tapDot":"Tap a dot to see who still needs prayer","pinHint.line1":"Tap a coloured dot","pinHint.line2":"someone still needs prayer"},{t:o,te:a}=Tf("",{fallback:J=>n[J]}),r=vt("uiStore",null),s=vt("profileConfig",null),i=Se(()=>(r==null?void 0:r.theme)==="dark"),l=Se(()=>{var q;const J=(q=s==null?void 0:s.value)==null?void 0:q.pinHintLabel;if(J)return[J];const M=m=>{try{return a(m)?o(m):n[m]}catch{return n[m]}};return[M("pinHint.line1"),M("pinHint.line2")]}),c=Le(!1),u=Le(!0);let d=null;const h=Le(!0);let S=[];const F=["inert","hidden","aria-hidden"];function y(J){const M=[];let q=J;for(;q;)q.nodeType===1&&M.push(q),q=q.parentNode||q.host||null;return M}function L(J){return y(J).some(M=>M.hasAttribute("inert")||M.hasAttribute("hidden")||M.getAttribute("aria-hidden")==="true")}function N(J){const M=()=>{const q=!L(J);q!==h.value&&(h.value=q,q&&Zt(W))};if(M(),!(typeof MutationObserver>"u"))for(const q of y(J))try{const m=new MutationObserver(M);m.observe(q,{attributes:!0,attributeFilter:F}),S.push(m)}catch{}}const $=Le(null);let w=null,k=null,b=null,v=null,E=null,C=null,A=[],K=null,le=null;function te(){c.value=!1}r&&_t(()=>r.selectedPeopleGroup,J=>{J&&te()});function G(J,M){var m;let q=J==null?void 0:J.parentElement;for(let j=0;q&&j<12;j++,q=q.parentElement){if(q===M||(m=q.classList)!=null&&m.contains("profile-loader"))return null;let me="";try{me=getComputedStyle(q).position}catch{}if(me&&me!=="static"){const pe=q.getBoundingClientRect();if(pe.height>=120&&pe.width>=160)return q}}return null}function ce(J){var q;const M=(q=v==null?void 0:v.querySelector)==null?void 0:q.call(v,".legend-mobile-sheet");if(!M)return 1/0;if(E&&C!==M){try{E.disconnect()}catch{}E=null}if(!E&&typeof ResizeObserver<"u")try{E=new ResizeObserver(()=>W()),E.observe(M),C=M}catch{E=null}try{const m=M.getBoundingClientRect();return!(m.height>16)||!(m.width>16)||J.right<=m.left||m.right<=J.left?1/0:m.top}catch{return 1/0}}function H(J){var M,q,m,j;try{const me=(M=v==null?void 0:v.querySelector)==null?void 0:M.call(v,".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .maplibregl-ctrl-bottom-right .maplibregl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .maplibregl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(!me)return 1/0;const pe=me.getBoundingClientRect();if(!(pe.height>0)||!(pe.width>0))return 1/0;const ve=(j=(m=(q=$.value)==null?void 0:q.parentElement)==null?void 0:m.getBoundingClientRect)==null?void 0:j.call(m);return ve&&pe.top<ve.top+ve.height/2||J.right<=pe.left||pe.right<=J.left?1/0:pe.top}catch{return 1/0}}function W(){const J=$.value;if(J){if(!u.value||!h.value){J.style.removeProperty("--pin-hint-lift");return}try{J.style.removeProperty("--pin-hint-lift");const M=J.getBoundingClientRect();if(!M.height)return;const q=J.parentElement&&J.parentElement.getBoundingClientRect?J.parentElement.getBoundingClientRect():null,m=!!q&&(q.top>=window.innerHeight||q.bottom<=0),j=Of({viewportH:window.innerHeight,scrolls:m||If(document,window,J),sheetTop:ce(M),creditTop:H(M)}),me=Math.round(M.bottom-j);me>0&&J.style.setProperty("--pin-hint-lift",me+8+"px")}catch{}}}function ie(J){const M=$.value;if(!M||!(J!=null&&J.querySelector))return;let q=0;try{const j=J.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .maplibregl-ctrl-bottom-right .maplibregl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .maplibregl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(j){const me=j.getBoundingClientRect(),pe=M.parentElement,ve=pe?pe.getBoundingClientRect():null;if(q=!ve||me.top>=ve.top+ve.height/2?ve?Math.max(me.height||0,ve.bottom-me.top):me.height||0:0,le!==j&&typeof ResizeObserver<"u"){if(b)try{b.disconnect()}catch{}le=j,b=new ResizeObserver(()=>ie(J)),b.observe(j)}}}catch{}const m=Math.min(Math.max(Math.ceil(q)||20,20),120);M.style.setProperty("--pin-hint-attrib-clear",m+"px"),W()}return fo(()=>{var m,j,me;const J=_n(),M=(me=(j=(m=J==null?void 0:J.proxy)==null?void 0:m.$el)==null?void 0:j.getRootNode)==null?void 0:me.call(j);if(!M||typeof M.querySelector!="function")return;v=M,M.addEventListener("dxmaps:pin-selected",te);let q=0;w=setInterval(()=>{q++;const pe=M.querySelector("canvas.maplibregl-canvas, canvas.mapboxgl-canvas");pe?(clearInterval(w),w=null,c.value=!0,Zt(()=>{const ve=G(pe,M),Ne=$.value;if(ve&&Ne&&Ne.parentElement!==ve)try{ve.appendChild(Ne),k=ve}catch{}if(ve&&N(ve),ve&&typeof IntersectionObserver<"u")try{d=new IntersectionObserver(Ce=>{const qe=Ce[Ce.length-1],Te=!!qe&&qe.isIntersecting&&qe.intersectionRatio>=.2;Te!==u.value&&(u.value=Te,Te&&Zt(W))},{threshold:[0,.2,.5]}),d.observe(ve)}catch{}ie(M),W(),A.push(setTimeout(W,1200),setTimeout(W,3e3),setTimeout(W,6e3));try{const Ce=$.value&&$.value.offsetParent||null;if(Ce&&typeof ResizeObserver<"u"){if(K)try{K.disconnect()}catch{}K=new ResizeObserver(()=>W()),K.observe(Ce)}}catch{}})):q>40&&(clearInterval(w),w=null)},300)}),bo(()=>{var J;if(w&&clearInterval(w),d){try{d.disconnect()}catch{}d=null}for(const M of S)try{M.disconnect()}catch{}if(S=[],b){try{b.disconnect()}catch{}b=null}if(le=null,K){try{K.disconnect()}catch{}K=null}if(E){try{E.disconnect()}catch{}E=null}C=null;for(const M of A)clearTimeout(M);if(A=[],v&&v.removeEventListener("dxmaps:pin-selected",te),v=null,k&&((J=$.value)==null?void 0:J.parentElement)===k)try{k.removeChild($.value)}catch{}k=null}),Dr(`
|
||
@media print { .pin-hint { display: none !important; } }
|
||
.pin-hint { position: absolute; inset-inline-start: var(--map-fab-beside, 12px); inset-inline-end: 12px;
|
||
bottom: calc(max(var(--pin-hint-attrib-clear, 20px) + 12px, 8px) + var(--pin-hint-lift, 0px));
|
||
display: flex; justify-content: center;
|
||
z-index: 12; pointer-events: none; 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; touch-action: none; display: inline-flex; align-items: center; gap: 8px; text-align: center;
|
||
min-height: 40px; max-width: 100%; box-sizing: border-box; padding: 3px 12px 3px 10px; border-radius: 20px;
|
||
background: rgba(23, 29, 38, .92); color: #fff; font-size: 12px; line-height: 1.25; 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-text { display: flex; flex-direction: column; align-items: center; min-width: 0; }
|
||
.pin-hint-line { display: block; }
|
||
.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; }
|
||
.pin-hint-x{position:relative;}.pin-hint-x::after{content:'';position:absolute;left:50%;top:50%;width:24px;height:24px;transform:translate(-50%,-50%);}
|
||
@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(-3px) } }
|
||
@keyframes pinhint-in { from { opacity: 0; transform: translateY(10px) } to { opacity: 1; transform: translateY(0) } }
|
||
@media (prefers-reduced-motion: reduce) {
|
||
.pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; }
|
||
}
|
||
`,"pin-hint"),(J,M)=>c.value?la((fe(),we("div",{key:0,ref_key:"hintEl",ref:$,class:st(["pin-hint",{dark:i.value}]),role:"status"},[B("span",zf,[M[0]||(M[0]=B("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),B("span",Df,[(fe(!0),we(Xe,null,ln(l.value,(q,m)=>(fe(),we("span",{key:m,class:"pin-hint-line"},Y(q),1))),128))]),B("button",{class:"pin-hint-x",type:"button","aria-label":t("aria.dismissHint","Dismiss hint"),onClick:te},"×",8,Gf)])],2)),[[Ch,u.value&&h.value]]):ut("",!0)}},jf=".lsn-bar[data-v-9a589f6f]{display:flex;align-items:flex-start;gap:8px;flex:none;margin:0;padding-block:8px;padding-inline:12px 8px;background:#fff8e1;border-block-end:1px solid #f0d68a;color:#4a3b00;font:400 13px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-bar__text[data-v-9a589f6f]{flex:1 1 auto;margin:0}.lsn-bar__x[data-v-9a589f6f]{flex:none;min-width:24px;min-height:24px;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;font:600 18px/1 system-ui,sans-serif;cursor:pointer}.lsn-bar__x[data-v-9a589f6f]:focus-visible{outline:2px solid #1a73e8;outline-offset:2px}.lsn-block[data-v-9a589f6f]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;min-height:200px;padding:24px;background:#f7f7f5;color:#333;text-align:center;font:400 15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.lsn-block__text[data-v-9a589f6f]{max-width:28em;margin:0}",rd=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n},Bf={key:0,class:"lsn-block",role:"status"},Uf={class:"lsn-block__text"},Wf={key:0},Vf={key:1,class:"lsn-bar",role:"note"},qf={class:"lsn-bar__text"},Kf=["aria-label","title"],sd=rd({__name:"LargerScreenNotice",props:{mode:{type:String,required:!0},label:{type:String,default:""},locale:{type:String,default:""}},emits:["dismiss"],setup(e){const t=e,n=(s,i)=>no(s,t.locale||void 0)||i,o=Se(()=>n("messages.largerScreenNotice","This experimental map is built for larger screens. It opens here, but parts of it may not fit or work well on a phone.")),a=Se(()=>n("messages.noticeDismiss","Dismiss")),r=Se(()=>n("messages.desktopOnlyNotice","{label} only supports desktop — open this page on a desktop to use it.").split("{label}"));return(s,i)=>e.mode==="desktop-only"?(fe(),we("div",Bf,[B("p",Uf,[Je(Y(r.value[0]),1),r.value.length>1?(fe(),we("bdi",Wf,Y(e.label),1)):ut("",!0),Je(Y(r.value[1]||""),1)])])):(fe(),we("div",Vf,[B("p",qf,Y(o.value),1),B("button",{type:"button",class:"lsn-bar__x","aria-label":a.value,title:a.value,onClick:i[0]||(i[0]=l=>s.$emit("dismiss"))},"×",8,Kf)]))}},[["styles",[jf]],["__scopeId","data-v-9a589f6f"]]),Yf="(max-width: 639.98px)";function Zf(e){for(let t=e;t;t=t.parentNode||t.host)if(t.nodeType===1&&t.hasAttribute("data-doxa-gallery"))return!0;return!1}function Jf(e){var l;const t=Se(()=>{var u;const c=(u=e.value)==null?void 0:u.mobile;return c==="desktop-only"||c==="larger-screens"?c:null});let n=null;try{n=Vh()}catch{n=null}const o=n?Zf(n):!1,a=Le(!1);if(typeof window<"u"&&typeof window.matchMedia=="function"){const c=window.matchMedia(Yf);a.value=c.matches;const u=d=>{a.value=d.matches};(l=c.addEventListener)==null||l.call(c,"change",u),bo(()=>{var d;return(d=c.removeEventListener)==null?void 0:d.call(c,"change",u)})}const r=Se(()=>{var c;return`dx-maps:larger-screens-dismissed:${((c=e.value)==null?void 0:c.profile)||""}`}),s=Le(!1);_t(r,c=>{try{s.value=sessionStorage.getItem(c)==="1"}catch{s.value=!1}},{immediate:!0});function i(){s.value=!0;try{sessionStorage.setItem(r.value,"1")}catch{}}return{flag:t,blocked:Se(()=>t.value==="desktop-only"&&a.value&&!o),advise:Se(()=>t.value==="larger-screens"&&a.value&&!o&&!s.value),dismiss:i,label:Se(()=>{var c,u;return String(((c=e.value)==null?void 0:c.mobileLabel)||((u=e.value)==null?void 0:u.profile)||"")})}}const Xf=e=>{const t=[],n=o=>{for(const a of o.querySelectorAll?o.querySelectorAll("*"):[])(a.scrollTop||a.scrollLeft)&&t.push(a),a.shadowRoot&&n(a.shadowRoot)};return n(e),t};function Qf(e,t,{style:n=a=>getComputedStyle(a),scrolled:o=()=>Xf(e)}={}){let a=!1,r=null;const s=()=>e.hasAttribute("data-host-sized"),i=()=>parseFloat(n(e).minHeight)||0,l=()=>t.getBoundingClientRect().height;function c(F){e.style.minHeight=F?"0px":"",F?e.setAttribute("data-host-sized",""):e.removeAttribute("data-host-sized")}function u(){e.style.minHeight="0px";const F=l();e.style.minHeight="100000px";const y=l(),L=F>0&&Math.abs(y-F)<1;c(L);const N=L?0:i();a=!L&&N>0&&y+1<N}function d(){u(),r=l()}function h(){const F=o().map(y=>[y,y.scrollTop,y.scrollLeft]);u();for(const[y,L,N]of F)y.scrollTop!==L&&(y.scrollTop=L),y.scrollLeft!==N&&(y.scrollLeft=N)}function S(){const F=n(t).display;if(F==="inline"||F==="contents")return;const y=l();if(s())(r===null||Math.abs(y-r)>=1)&&h();else{const L=i();a?y+1>=L&&(a=!1):L>0&&y+1<L&&h()}r=l()}return{probeOnce:d,follow:S}}let eb=0;const tb=Ds("ui",{state:()=>({_storeInstanceId:++eb,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(n=>n.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const n=this.isDarkTheme;document.documentElement.setAttribute("data-theme",n?"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){const t=e&&!this.selectedPeopleGroup;this.selectedPeopleGroup=e,e?(t&&(this._legendStateBeforeDetail=this.legendState),this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this._legendStateBeforeDetail&&(this.legendState=this._legendStateBeforeDetail),this._legendStateBeforeDetail=null,this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:n="info",duration:o=this.toastDuration,action:a=null,persistent:r=!1}=e,s={id:this.nextToastId++,message:t,type:n,duration:o,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&o>0&&setTimeout(()=>{this.removeToast(s.id)},o),s.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(n=>n.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(n=>{for(const o of n)this.updateWindowSize(o.contentRect.width,o.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",n=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",n.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",n=>{this.reducedMotion=n.matches,document.documentElement.setAttribute("data-reduced-motion",n.matches)}))}}}),nb=Ds("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusteringMode:"off",clusterPinOpacity:.6,clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,n={}){let o=1.5;n.zoom!==void 0?o=n.zoom:t&&typeof t.getZoom=="function"&&(o=t.getZoom());let a=[0,0];if(n.center)a=n.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(a=[r.lng,r.lat])}this.maps[e]={instance:t,config:n,isReady:!1,zoom:o,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const n=this.maps[e];n&&Object.assign(n,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),ob=Ds("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const n=await t();this.sources[e]=aa({features:n,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(n){console.error(`[dataStore] Failed to load source "${e}":`,n),this.loadingStates[e]={isLoading:!1,error:n}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=aa({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var n;return((n=e.sources[t])==null?void 0:n.features)??null},isLoading:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.isLoading)??!1},getError:e=>t=>{var n;return((n=e.loadingStates[t])==null?void 0:n.error)??null}}}),ab={activeSource:"pray-tools"},rb=".profile-loader[data-locale-pending][data-v-2a1bc53c] .stl-tabs,.profile-loader[data-locale-pending][data-v-2a1bc53c] .stl-title,.profile-loader[data-locale-pending][data-v-2a1bc53c] .stl-rows,.profile-loader[data-locale-pending][data-v-2a1bc53c] .legend-title,.profile-loader[data-locale-pending][data-v-2a1bc53c] .legend-content,.profile-loader[data-locale-pending][data-v-2a1bc53c] .legend-reopen-label,.profile-loader[data-locale-pending][data-v-2a1bc53c] .lt-btn-text,.profile-loader[data-locale-pending][data-v-2a1bc53c] .rd-topbar,.profile-loader[data-locale-pending][data-v-2a1bc53c] .rd-exportbar{visibility:hidden}.profile-loader[data-v-2a1bc53c]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100svh);position:relative}.profile-loader.has-screen-notice[data-v-2a1bc53c]{display:flex;flex-direction:column}.profile-loader.has-screen-notice[data-v-2a1bc53c]>:not(.lsn-bar){flex:1 1 auto;min-height:0;position:relative!important;inset:auto!important}.profile-error[data-v-2a1bc53c]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}@supports not (height: 100svh){.profile-loader[data-v-2a1bc53c]{min-height:var(--profile-min-h, 100vh)}}",sb=["dir","data-locale-pending"],ib={key:0,class:"profile-error"},lb={key:1,class:"profile-error"},cb=rd({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var ce;const n=e,o=vt("profileConfig",null),a=Se(()=>{var W;if(!n.profileConfig)return null;let H;try{H=JSON.parse(n.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",n.profileConfig),null}if(H&&H.assetsBase===void 0){const ie=(W=o==null?void 0:o.value)==null?void 0:W.assetsBase;typeof ie=="string"&&ie&&(H.assetsBase=ie)}return H}),r=vt("profileModules",null);if(!r)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const s=(()=>{const H=Object.keys(r||{});if(H.length!==1)return null;const W=H[0].match(/^\.\/(.+)\.vue$/);return W?W[1]:null})(),i=Se(()=>{var H;return((H=a.value)==null?void 0:H.profile)||s||null}),l=d0(),c=Se(()=>{var W;const H=(W=a.value)==null?void 0:W.tk;return typeof H=="string"&&H?H:l.value||""});_t(()=>{var H;return(H=a.value)==null?void 0:H.tk},H=>{typeof H=="string"&&H&&js(H)},{immediate:!0}),_t(()=>{var H;return(H=a.value)==null?void 0:H.tokenUrl},H=>{var W;H&&!((W=a.value)!=null&&W.tk)&&!l.value&&p0(H)},{immediate:!0});const u=Se(()=>{var H;return((H=a.value)==null?void 0:H.dataSource)||ab.activeSource}),d=Se(()=>{var H;return((H=a.value)==null?void 0:H.colorSet)||"default"}),h=Se(()=>!1),S=Se(()=>{var H;return((H=a.value)==null?void 0:H.pinHint)!==!1}),F=Se(()=>{var W,ie;const H=(((W=a.value)==null?void 0:W.locale)||((ie=a.value)==null?void 0:ie.lang)||Qu()||"").split("-")[0].toLowerCase();return Ca.includes(H)?H:""}),y=vt("appI18n",null);kl(()=>{F.value&&(y&&(y.global.locale.value=F.value),td(F.value),ci(y,F.value).catch(()=>{}))});const L=Se(()=>{var H,W;return F.value||((W=(H=y==null?void 0:y.global)==null?void 0:H.locale)==null?void 0:W.value)||"en"}),N=Se(()=>Ir.has(L.value)?"rtl":"ltr"),{blocked:$,advise:w,dismiss:k,label:b}=Jf(a),v=Le(!1);kl(H=>{const W=L.value;if(!Ir.has(W)){v.value=!1;return}let ie=!0;H(()=>{ie=!1}),v.value=!0,kf(W).finally(()=>{ie&&(v.value=!1)})});const E=Se(()=>{var H;return((H=a.value)==null?void 0:H.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),C=Se(()=>{if(!i.value)return null;const H=`./${i.value}.vue`;return r[H]?Nf(r[H]):(console.error(`[ProfileLoader] Profile not found: "${i.value}". Available:`,Object.keys(r)),null)});sn("mapboxToken",c),sn("dataSource",u),sn("colorSet",d),sn("profileConfig",a),sn("instanceId",E),sn("lang",L);const A=tb(),K=nb(),le=ob();try{const H=typeof localStorage<"u"?localStorage.getItem("theme"):null;H&&((ce=A.setTheme)==null||ce.call(A,H))}catch{}sn("uiStore",A),sn("mapStore",K),sn("dataStore",le);const te=Le(null);let G=null;return fo(()=>{const H=te.value,W=H&&H.getRootNode?H.getRootNode().host:null;if(!H||!W)return;const ie=Qf(H,W);ie.probeOnce(),typeof ResizeObserver<"u"&&(G=new ResizeObserver(()=>ie.follow()),G.observe(W))}),bo(()=>{G&&(G.disconnect(),G=null)}),(H,W)=>(fe(),we("div",{ref_key:"loaderEl",ref:te,class:st(["profile-loader",{"has-screen-notice":Oe(w)}]),dir:N.value,"data-locale-pending":v.value?"":null},[a.value?C.value?Oe($)?(fe(),Yn(sd,{key:2,mode:"desktop-only",label:Oe(b),locale:L.value},null,8,["label","locale"])):(fe(),we(Xe,{key:3},[Oe(w)?(fe(),Yn(sd,{key:0,mode:"larger-screens",locale:L.value,onDismiss:Oe(k)},null,8,["locale","onDismiss"])):ut("",!0),(fe(),Yn(El(C.value)))],64)):(fe(),we("div",lb,[B("p",null,[W[1]||(W[1]=Je("⚠️ Profile ",-1)),B("strong",null,'"'+Y(i.value)+'"',1),W[2]||(W[2]=Je(" not found.",-1))])])):(fe(),we("div",ib,[...W[0]||(W[0]=[B("p",null,[Je("⚠️ "),B("strong",null,"doxa-map"),Je(": missing or invalid "),B("code",null,"profile-config"),Je(" prop.")],-1),B("p",null,[Je("Example: "),B("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),C.value&&h.value?(fe(),Yn(El(Oe(null)),{key:4})):ut("",!0),C.value&&S.value?(fe(),Yn(Hf,{key:5})):ut("",!0)],10,sb))}},[["styles",[rb]],["__scopeId","data-v-2a1bc53c"]]);function id(e,t,n){var a;const o=(a=e==null?void 0:e._context)==null?void 0:a.provides;if(o&&t in o){o[t]=n;return}e.provide(t,n)}function ub(e,t){var a;const n=(a=e==null?void 0:e._context)==null?void 0:a.provides,o=n?Object.getPrototypeOf(n):null;o&&Object.setPrototypeOf(n,null);try{return t()}finally{o&&Object.setPrototypeOf(n,o)}}function db({profileModules:e={},configureApp:t=null}={}){return Uh(cb,{configureApp(n){const o=n0();ub(n,()=>n.use(o));const a=Sf();n.use(a),id(n,"appI18n",a),id(n,"profileModules",e),t&&t(n,{pinia:o,i18n:a})}})}const pb=db({profileModules:Object.assign({"./upg-neighbor.vue":()=>Kt(()=>Promise.resolve().then(()=>py),void 0)})});typeof customElements<"u"&&!customElements.get("upg-neighbor")&&customElements.define("upg-neighbor",pb);const gb="rgba(120, 128, 134, 0.28)",ld="36px",cd=()=>{};function hb(e,t={}){const{enabled:n=!0}=t;if(!n||!e)return cd;const o=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!o.length)return cd;const a=$=>$.classList.contains("map-scroll-edge--left");for(const $ of o)$.style.background=`linear-gradient(${a($)?"to right":"to left"}, ${gb} ${ld}, transparent ${ld})`,$.style.opacity="0",$.style.transition="opacity 0.16s ease",$.style.userSelect="none",$.style.webkitUserSelect="none";const r=$=>{$.style.opacity="1"},s=$=>{$.style.opacity="0"},i=()=>o.find($=>!a($))||null,l=new Set;let c=!1,u=null;const d=()=>{for(const $ of o)l.has($)||s($)},h=()=>{const $=i();$&&(r($),u&&clearTimeout(u),u=setTimeout(d,250))},S=()=>h(),F=$=>{if(!($.touches&&$.touches.length===1))return;const w=$.target;w&&w.classList&&w.classList.contains("map-scroll-edge")||h()},y=()=>{u&&clearTimeout(u),d()};e.addEventListener("wheel",S,{passive:!0}),e.addEventListener("touchmove",F,{passive:!0}),e.addEventListener("touchend",y,{passive:!0}),e.addEventListener("touchcancel",y,{passive:!0});const L=()=>{c||h()};typeof window<"u"&&window.addEventListener("scroll",L,{passive:!0});const N=[];for(const $ of o){const w=()=>{l.add($),r($)},k=()=>{l.delete($),s($)},b=()=>{c=!0,r($)},v=()=>{c=!1,s($)};$.addEventListener("mouseenter",w),$.addEventListener("mouseleave",k),$.addEventListener("touchstart",b,{passive:!0}),$.addEventListener("touchend",v,{passive:!0}),N.push(()=>{$.removeEventListener("mouseenter",w),$.removeEventListener("mouseleave",k),$.removeEventListener("touchstart",b),$.removeEventListener("touchend",v)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",S),e.removeEventListener("touchmove",F),e.removeEventListener("touchend",y),e.removeEventListener("touchcancel",y),typeof window<"u"&&window.removeEventListener("scroll",L);for(const w of N)w();for(const w of o)s(w)}}const mb=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 fb(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const n=mb[e];return n?t==="maplibre"?{style:n.maplibre,lightPreset:void 0,paint:n.paint}:{style:n.mapbox,lightPreset:n.lightPreset,paint:n.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function bb(e,t){if(!e||!Array.isArray(t))return[];const n=[];for(const o of t)if(!(!o||!o.layer||!o.prop))try{if(!e.getLayer(o.layer))continue;e.setPaintProperty(o.layer,o.prop,o.value),n.push(o.layer+"."+o.prop)}catch{}return n}const $b=["mapbox","maplibre"],yb="auto";function ud(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function vb(e,{token:t}={}){const n=ud(e);return dd(n)||"maplibre"}function dd(e){const t=ud(e),n=t==null?void 0:t.provider,o=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,r=String(n||o||a||yb).toLowerCase().trim();return $b.includes(r)?r:""}function pd(e,t){if(!e||!t||typeof e.setProjection!="function")return!1;const n=typeof window<"u"?window.maplibregl:null,o=!!(n&&n.Map&&e instanceof n.Map);try{return e.setProjection(o?{type:t}:t),!0}catch{return!1}}const La={mapboxGlJs:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",integrity:"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ"},mapboxGlCss:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css",integrity:"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV"},maplibreGlJs:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js",integrity:"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp"},maplibreGlCss:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css",integrity:"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK"},mapboxGeocoderJs:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js",integrity:"sha384-Lx9WK8XhZk57czwxt6B6nyaDHB5Ayrcrsu4Fw4bCp/Ot/QLOsUZ0xYqLOpOOSXZw"},mapboxGeocoderCss:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css",integrity:"sha384-1KNhwJNCQTr0DCi/5/OnQcFytgycxTahxNZaqKbAtqmY8bUhu26qxXqvDGXXwplS"},maplibreGeocoderJs:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.min.js",integrity:"sha384-RGV5vfoJd7alk8HE+71IyVfu19ciH1FKA15+AuXs6OeBM2npXrmTPFqG23yMiHXi"},maplibreGeocoderCss:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.css",integrity:"sha384-UkDpPApjTpHJHpcJiSNAmbobh30W0/dmt0DoKm4V8CWYRYvQ/Jhd/ijFz0tFdVnH"},d3:{url:"https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js",integrity:"sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i"}};function pi(e,t){const n=Object.values(La).find(o=>o.url===t);return n&&(e.integrity=n.integrity,e.crossOrigin="anonymous"),e}const gd={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 _b(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function wb(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let n=!1;for(const o of t)if(!(!o||!o.setRTLTextPlugin))try{if(_b(o)){if(o.getRTLTextPluginStatus&&o.getRTLTextPluginStatus()!=="unavailable")continue;const a=o.setRTLTextPlugin(gd.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else o.setRTLTextPlugin(gd.mapbox,null,!0);n=!0}catch{}return n}const kb=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,hd=new WeakMap;function Sb(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function md(e,t){if(!e||!t)return 0;const n=String(t).split("-")[0].toLowerCase();try{if(!Sb(e))return typeof e.setLanguage=="function"&&e.setLanguage(n),0;const o=e.getStyle&&e.getStyle();if(!o||!Array.isArray(o.layers))return 0;let a=hd.get(e);a||(a=new Map,hd.set(e,a));let r=0;for(const s of o.layers){if(s.type!=="symbol"||!s.layout||s.layout["text-field"]==null)continue;const i=s.layout["text-field"],l=JSON.stringify(i);if(l.startsWith('["coalesce",["get","name:')){if(!a.has(s.id))continue}else{if(!kb.test(l))continue;a.set(s.id,i)}const c=["coalesce",["get","name:"+n],["get","name_"+n],["get","name:latin"],["get","name_en"],["get","name"]];e.setLayoutProperty(s.id,"text-field",c),r++}return r}catch{return 0}}const Uo={mapbox:{global:"mapboxgl",js:La.mapboxGlJs.url,css:La.mapboxGlCss.url},maplibre:{global:"maplibregl",js:La.maplibreGlJs.url,css:La.maplibreGlCss.url}},xb={"Map.Title":"map","Marker.Title":"marker","Popup.Close":"closePopup","NavigationControl.ZoomIn":"zoomIn","NavigationControl.ZoomOut":"zoomOut","NavigationControl.ResetBearing":"resetBearing","AttributionControl.ToggleAttribution":"toggleAttribution","AttributionControl.MapFeedback":"mapFeedback","FullscreenControl.Enter":"enterFullscreen","FullscreenControl.Exit":"exitFullscreen","GeolocateControl.FindMyLocation":"findMyLocation","GeolocateControl.LocationNotAvailable":"locationNotAvailable","GlobeControl.Enable":"enableGlobe","GlobeControl.Disable":"disableGlobe","CooperativeGesturesHandler.WindowsHelpText":"ctrlScroll","CooperativeGesturesHandler.MacHelpText":"cmdScroll","CooperativeGesturesHandler.MobileHelpText":"twoFingers","ScrollZoomBlocker.CtrlMessage":"ctrlScroll","ScrollZoomBlocker.CmdMessage":"cmdScroll","TouchPanBlocker.Message":"twoFingers"};function fd(e,t){const n={};for(const[a,r]of Object.entries(xb)){const s=no(`mapui.${r}`,e);s&&(n[a]=s)}const o=no(t==="maplibre"?"mapui.maplibreLogo":"mapui.mapboxHomepage",e);return o&&(n["LogoControl.Title"]=o),n}function bd(e){if(typeof window>"u")return;const t=window,n=()=>{try{const o=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");o&&(o.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",n),n();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const Pb=Uo.mapbox.css,Cb="https://tiles.openfreemap.org/styles/liberty",Tb="https://tiles.openfreemap.org/styles/fiord";function gi(e){var n;const t=((n=Uo[e])==null?void 0:n.global)||Uo.mapbox.global;return typeof window<"u"?window[t]:void 0}async function $d(e){const t=Uo[e]||Uo.mapbox;if(gi(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const o=document.createElement("link");o.rel="stylesheet",o.href=t.css,pi(o,t.css),document.head.appendChild(o)}const n=document.querySelector(`script[src="${t.js}"]`);if(n){if(gi(e))return;await new Promise(o=>{n.addEventListener("load",o,{once:!0}),n.addEventListener("error",o,{once:!0})});return}await new Promise((o,a)=>{const r=document.createElement("script");r.src=t.js,pi(r,t.js),r.async=!1,r.addEventListener("load",o,{once:!0}),r.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(r)})}async function Lb(e,t){if(!e)return;const n=e.getRootNode();if(!(n instanceof ShadowRoot))return;const o=s=>new Promise(i=>setTimeout(i,s)),a=n.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(s=>{a.addEventListener("load",s,{once:!0}),a.addEventListener("error",s,{once:!0})}),o(2e3)]);return}const r=document.createElement("link");r.rel="stylesheet",r.href=t,pi(r,t),await Promise.race([new Promise(s=>{r.addEventListener("load",s,{once:!0}),r.addEventListener("error",s,{once:!0}),n.prepend(r)}),o(2e3)])}function Mb(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?Tb:Cb}const Ab=85.0511,hi=-2,Eb=0,Nb=-60;function yd(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function Fb(e,t,n,o){if(!e||e<=0||!t||t<=0)return Eb;const a=Math.log2(e/512),r=yd(o)-yd(Ab),s=Math.log2(t/(512*r)),i=Math.max(a,s);return Math.max(hi,Math.min(i,(n??18)-1))}function vd({containerRef:e,accessToken:t,style:n,config:o=void 0,provider:a=void 0,center:r=[20,10],zoom:s=2,bounds:i=void 0,fitBoundsOptions:l=void 0,minZoom:c=void 0,skipWorldFloor:u=!1,maxZoom:d=18,pitch:h=0,bearing:S=0,renderWorldCopies:F=!0,showEdgeBorders:y=!0,southCutoff:L=Nb,maxBounds:N=void 0}){const $=er(null),w=Le(!1);let k=null,b=null,v=null,E=null;try{E=vt("profileConfig",null)}catch{}const C=!a&&!dd(E);a=a||vb(E,{token:t});let A=a==="maplibre";typeof document<"u"&&$d(a).catch(()=>{});let K=null;try{K=vt("lang",null)}catch{}const le=()=>{const ce=K&&typeof K=="object"&&"value"in K?K.value:K;if(typeof ce=="string"&&ce)return ce;const H=E&&typeof E=="object"&&"value"in E?E.value:E;if(H&&(H.locale||H.lang))return String(H.locale||H.lang);try{const W=new URLSearchParams(location.search);return W.get("lang")||W.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function te(){var qe;if(C&&!A&&!t&&typeof window<"u"&&window.__doxaMapTokenPending){if(await window.__doxaMapTokenPending,!e.value)return;typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN||(a="maplibre",A=!0)}const ce=fb(n,a),H=ce.style||n;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const W=()=>!e.value;if(await $d(a),W())return;const ie=gi(a);if(!ie){console.error(`[useMapInstance] ${A?"maplibregl":"mapboxgl"} is not available. Add the ${A?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(wb(ie),!A){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,W()))return;if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){typeof window<"u"&&!window.__doxaNoTokenWarned&&(window.__doxaNoTokenWarned=!0,console.warn('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.'));return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await Lb(e.value,A?Uo.maplibre.css:Pb),W()||(await new Promise(Te=>requestAnimationFrame(Te)),W()))return;const J=e.value,M=J.clientWidth,q=J.clientHeight;if(M===0||q===0){console.error(`[useMapInstance] Container has ZERO dimensions (${M}×${q}). Map will be invisible. Check that parent elements have CSS sizing.`);let Te=J.parentElement,Me=0;for(;Te&&Me<5;)Te=Te.parentElement,Me++}const m=t;A||(ie.accessToken=m);const j=()=>typeof window<"u"&&window.innerWidth>=1024,me=(Te,Me)=>{if(u)return typeof c=="number"?c:hi;if(!j())return hi;const lt=Fb(Te,Me,d,L);return typeof c=="number"?Math.max(c,lt):lt},pe=me(J.clientWidth,J.clientHeight),ve=ce.lightPreset||(()=>{var Te;try{const Me=typeof o=="function"?o():o;return(Te=Me==null?void 0:Me.basemap)==null?void 0:Te.lightPreset}catch{return}})();if(A){$.value=new ie.Map({container:e.value,style:Mb(H,ve),locale:fd(le(),"maplibre"),center:r,zoom:s,minZoom:pe,maxZoom:d,pitch:h,bearing:S,dragRotate:!1,renderWorldCopies:F,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...N?{maxBounds:N}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),bd($.value);try{e.value.__doxaMap=$.value}catch{}}else{const Te=typeof o=="function"?o():o;$.value=new ie.Map({accessToken:m,container:e.value,style:H,locale:fd(le(),"mapbox"),...Te?{config:Te}:{},center:r,zoom:s,minZoom:pe,maxZoom:d,pitch:h,bearing:S,dragRotate:!1,touchPitch:!1,renderWorldCopies:F,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...N?{maxBounds:N}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),bd($.value);try{e.value.__doxaMap=$.value}catch{}}try{let Te=!1;$.value.on("error",Me=>{var T,x;const lt=((T=Me==null?void 0:Me.error)==null?void 0:T.status)??(Me==null?void 0:Me.status),_=String(((x=Me==null?void 0:Me.error)==null?void 0:x.url)||(Me==null?void 0:Me.sourceId)||"");lt!==401&<!==403||Te||(Te=!0,console.error(`[doxa-maps] Mapbox returned ${lt} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(_?` First failing request: ${_.slice(0,120)}`:"")))})}catch{}try{$.value.touchZoomRotate.disableRotation()}catch{}v=hb(((qe=e.value)==null?void 0:qe.parentElement)||null,{enabled:y});let Ne=pe,Ce=null;k=()=>{const Te=$.value;if(!Te)return;const Me=me(J.clientWidth,J.clientHeight);Me!==Ne&&(Ne=Me,Te.setMinZoom(Me)),Te.getZoom()<Me?(Ce&&clearTimeout(Ce),Ce=setTimeout(()=>{Ce=null;const lt=$.value;if(!lt)return;const _=me(J.clientWidth,J.clientHeight);if(lt.getZoom()<_)try{lt.jumpTo({zoom:_})}catch{lt.setZoom(_)}},150)):Ce&&(clearTimeout(Ce),Ce=null)},b=()=>{Ce&&(clearTimeout(Ce),Ce=null)},$.value.on("resize",k),typeof window<"u"&&(window.addEventListener("resize",k),window.addEventListener("orientationchange",k)),$.value.on("style.load",()=>{if($.value&&md($.value,le()),ce.paint&&$.value){const Te=bb($.value,ce.paint);console.info("[useMapInstance] style paint applied ("+a+"):",Te.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var Te;(Te=$.value)==null||Te.resize(),$.value&&$.value.setMinZoom(me(J.clientWidth,J.clientHeight)),w.value=!0})})}function G(){if($.value){if(k&&($.value.off("resize",k),typeof window<"u"&&(window.removeEventListener("resize",k),window.removeEventListener("orientationchange",k)),k=null),b){try{b()}catch{}b=null}v&&(v(),v=null);try{const H=typeof window<"u"?window:null;H&&H.__doxaLogoOwner===$.value&&(H.__doxaLogoOwner=null)}catch{}const ce=$.value;$.value.remove();try{e&&e.value&&e.value.__doxaMap===ce&&(e.value.__doxaMap=null)}catch{}$.value=null,w.value=!1}}if(K&&typeof K=="object"&&"value"in K)try{_t(K,()=>{$.value&&w.value&&md($.value,le())})}catch{}return{map:$,isMapReady:w,initializeMap:te,destroy:G}}function _d(e,t){e&&(typeof e.isStyleLoaded=="function"&&e.isStyleLoaded()?t():e.once("style.load",t))}function wd(){return di("neighbor")}const kd={imb:{file:"data/people-groups/people_groups.csv",publisher:"IMB / peoplegroups.org",captured:"2026-07-16"},doxa:{file:"data/people-groups/doxa-groups-snapshot.json",source:"https://pray.doxa.life/api/people-groups/list",fetched:"2026-09-25"}},Sd=[{id:"all",groups:12379,population:8288563969},{id:"unreached",groups:7341,population:4893057899},{id:"frontier",groups:4754,population:2813855464},{id:"doxa",groups:2107,population:209079159,frontier:1745,unreached:2082,matched:2091,unmatched:16}],Gr={sources:kd,steps:Sd},Rb=Object.freeze(Object.defineProperty({__proto__:null,default:Gr,sources:kd,steps:Sd},Symbol.toStringTag,{value:"Module"})),Ib=Qr&&Qr.tagName.toUpperCase()==="SCRIPT"&&Qr.src||new URL("upg-neighbor.js",document.baseURI).href,Ma=e=>String(e||"").trim().replace(/\/+$/,"");function Ob(){try{const t=String(Ib||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function zb(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const o=Ma(t);if(/^https?:\/\//i.test(o)||o.startsWith("/"))return o}const n=Ma((e==null?void 0:e.treeBase)||"")||Ma(Ob()||"");if(n)try{const o=typeof document<"u"?document.baseURI:void 0;return Ma(new URL(n+"/assets",o).href)}catch{return Ma(n+"/assets")}return"./assets"}const dn={1:"#0f7a3d",2:"#34a853",3:"#9aa7b4"},Sn="#e11d48",Wo="#16a34a",Hr="#f59e0b",dt="#002e6e";let Aa=null;function xd(e){if(Aa)return Aa;const t=(e==null?void 0:e.value)||e||{},n=t.nearDataUrl||`${zb(t)}/tables/near-neighbors.json`;return Aa=fetch(n).then(o=>{if(!o.ok)throw new Error(`HTTP ${o.status}`);return o.json()}).then(Db).catch(o=>{throw Aa=null,o}),Aa}function Db(e){const{cols:t,dict:n,rows:o,links:a,bridges:r,meta:s}=e,i=o.map((y,L)=>{const N={i:L};return t.forEach(($,w)=>{N[$]=n[$]?n[$][y[w]]:y[w]}),N.reached=!!N.reached,N}),l=y=>(a[y.i]||[]).map(([L,N,$,w])=>({g:i[L],e:N,km:$,same:!!w})),c=y=>{const L=a[y.i];return L&&L.length?Math.min(...L.map(N=>N[1])):0},u=i.filter(y=>!y.reached),d=new Map;for(const[y,L]of Object.entries(a))for(const[N,$,w,k]of L)d.has(N)||d.set(N,[]),d.get(N).push({g:i[+y],e:$,km:w,same:!!k});for(const y of d.values())y.sort((L,N)=>L.e-N.e||L.km-N.km);const h=y=>d.get(y.i)||[],S=i.filter(y=>y.reached);for(const y of u)y.p=c(y),y.ringNeighbor=y.ringNb>=0?i[y.ringNb]:null;const F=r.map(y=>{var $,w;const L=y.reached.map(k=>i[k]),N=y.unreached.map(k=>i[k]);return{lang:y.lang,langName:(($=L[0])==null?void 0:$.langName)||((w=N[0])==null?void 0:w.langName)||y.lang,believers:y.believers,unreachedPop:y.unreachedPop,res:{bible:!!y.res[0],film:!!y.res[1],audio:!!y.res[2],radio:!!y.res[3]},reached:L,unreached:N,reachedCountries:[...new Set(L.map(k=>k.country))].sort(),unreachedCountries:[...new Set(N.map(k=>k.country))].sort()}});return{meta:s,groups:i,unreached:u,reached:S,neighborsOf:l,unreachedNeighborsOf:h,bridges:F}}const oo=e=>String(e||"").normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase();function zt(e){return e=Number(e)||0,e>=1e9?(e/1e9).toFixed(1)+"B":e>=1e6?(e/1e6).toFixed(e>=1e7?0:1)+"M":e>=1e3?(e/1e3).toFixed(e>=1e4?0:1)+"K":String(Math.round(e))}function mi(e,t,n){const o=a=>{const r=String(a??"");return/[",\n]/.test(r)?'"'+r.replace(/"/g,'""')+'"':r};Pd(e,[t,...n].map(a=>a.map(o).join(",")).join(`
|
||
`)+`
|
||
`,"text/csv")}function Pd(e,t,n="text/plain"){const o=URL.createObjectURL(new Blob(["\uFEFF"+t],{type:n+";charset=utf-8"})),a=document.createElement("a");a.href=o,a.download=e,a.style.display="none",document.body.appendChild(a),a.click(),a.remove(),setTimeout(()=>URL.revokeObjectURL(o),1e3)}const fi=30,Gb=e=>e&&e.slug?`https://pray.doxa.life/${encodeURIComponent(e.slug)}?source=doxalife`:"";function Hb({group:e,neighbors:t,level:n,t:o,fmt:a=String}){const r=t.length,s=[o("neighbor.letter.greeting",{group:e.name,country:e.country}),"",o("neighbor.letter.intro",{n:r.toLocaleString("en-US"),level:n}),""];for(const i of t.slice(0,fi)){const l=i.g;s.push("• "+o("neighbor.letter.item",{name:l.name,country:l.country,pop:a(l.pop),language:l.langName,km:i.km.toLocaleString("en-US")}));const c=Gb(l);c&&s.push(" "+o("neighbor.letter.pray",{url:c}))}return r>fi&&s.push("",o("neighbor.letter.more",{n:(r-fi).toLocaleString("en-US")})),s.push("",o("neighbor.letter.close"),"",o("neighbor.letter.sign"),""),s.join(`
|
||
`)}const jb={key:0,class:"mb-maperr",role:"status"},Bb=["aria-label"],Ub=["aria-expanded"],Wb={class:"mb-head"},Vb=["aria-label"],qb=["aria-pressed"],Kb=["aria-pressed"],Yb=["placeholder","aria-label"],Zb=["aria-label"],Jb=["title","onClick"],Xb={class:"mb-body"},Qb={key:0,class:"mb-note",role:"alert"},e$={key:1,class:"mb-note"},t$={key:0,class:"mb-note",style:{"padding-bottom":"6px"}},n$=["onClick"],o$={class:"mb-row-main"},a$={class:"mb-row-name"},r$={key:0,class:"mb-row-sub",style:{display:"block"}},s$={key:1,class:"mb-row-sub",style:{display:"block"}},i$={key:1,class:"mb-note"},l$={key:1,class:"mb-body"},c$={class:"mb-brief"},u$={class:"mb-title"},d$={class:"mb-sub"},p$={style:{"margin-top":"4px"}},g$=["aria-label"],h$=["aria-pressed","disabled","title","onClick"],m$={style:{"margin-top":"4px"}},f$=["aria-label"],b$={class:"mb-actions"},$$=["disabled","aria-busy"],y$=["data-nb"],v$=["onClick"],_$={key:0,class:"mb-same"},w$={key:1,class:"muted"},k$={key:2,class:"muted"},S$=["onClick"],x$=["onClick"],P$={key:3,class:"mb-note"},C$={class:"mb-note",style:{padding:"12px 0 0"}},T$=["aria-label"],L$=["aria-label"],M$={class:"row"},A$={class:"status",role:"status"},bi=30,$i=60,Cd="nb-u",Td="nb-r",yi="nb-n",Ld="nb-l",Md="nb-s",E$={__name:"mobilize",setup(e){const t=wd(),n={1:"neighbor.e.short1",2:"neighbor.e.short2",3:"neighbor.e.short3"},o={1:"neighbor.e.title1",2:"neighbor.e.title2",3:"neighbor.e.title3"},a={1:"neighbor.e.long1",2:"neighbor.e.long2",3:"neighbor.e.long3"},r={1:"neighbor.e.rlong1",2:"neighbor.e.rlong2",3:"neighbor.e.rlong3"},s={0:"neighbor.p.title0",1:"neighbor.p.title1",2:"neighbor.p.title2",3:"neighbor.p.title3"},i={0:"neighbor.p.long0",1:"neighbor.p.long1",2:"neighbor.p.long2",3:"neighbor.p.long3"},l=vt("profileConfig",Le({})),c=vt("mapboxToken",Le("")),u=vt("nbState"),d=Se(()=>(l==null?void 0:l.value)||{}),h=Le(null),S=Le(null),F=Le(""),y=Le(""),L=Le(""),N=Le(0),$=Se({get:()=>u.list||"unreached",set:f=>{u.list=f}}),{map:w,initializeMap:k,destroy:b}=vd({containerRef:h,accessToken:(c==null?void 0:c.value)||d.value.tk||"",style:d.value.style??"mapbox://styles/mapbox/light-v11",center:d.value.center??[45,20],zoom:d.value.zoom??1.6,minZoom:1,maxZoom:11}),v=Se(()=>{var f;return((f=S.value)==null?void 0:f.groups.find(Z=>Z.pgid===u.pgid))||null}),E=Se(()=>{var f;return!!((f=v.value)!=null&&f.reached)}),C=Se(()=>{const f=v.value;return f?f.reached?S.value.unreachedNeighborsOf(f):S.value.neighborsOf(f):[]}),A=Se(()=>{const f={1:0,2:0,3:0};for(const Z of C.value)f[Z.e]!=null&&f[Z.e]++;return f}),K=Le(null);_t(()=>u.pgid,()=>{K.value=null});const le=Se({get:()=>K.value&&A.value[K.value]?K.value:[1,2,3].find(f=>A.value[f])||1,set:f=>{K.value=f}}),te=Se(()=>E.value?C.value.filter(f=>f.e===le.value).sort((f,Z)=>f.km-Z.km):C.value),G=Se(()=>[1,2,3].map(f=>({e:f,list:te.value.filter(Z=>Z.e===f)})).filter(f=>f.list.length)),ce=Se(()=>te.value.reduce((f,Z)=>f+Z.g.believers,0)),H=Se(()=>te.value.reduce((f,Z)=>f+Z.g.pop,0));function W(f){f&&(u.sheetDown=!1,u.pgid=f.pgid,L.value="")}const ie=Le(null),J=Le(null);function M(f,Z){J.value=Z?{x:f.point.x,y:f.point.y,text:Z}:null}const q=Se(()=>{var ae;const f=J.value;if(!f)return{};const Z=((ae=h.value)==null?void 0:ae.clientWidth)||0;return f.x>Z/2?{right:Z-f.x+12+"px",top:f.y+12+"px"}:{left:f.x+12+"px",top:f.y+12+"px"}}),m=Le(new Set);_t(()=>u.pgid,()=>{ie.value=null,m.value=new Set});function j(f){m.value=new Set([...m.value,f])}function me(f,Z=!0){ie.value=f.g.pgid,pe();const ae=w.value;if(Z&&ae)try{ae.stop(),ae.easeTo({center:[f.g.lng,f.g.lat],zoom:Math.max(ae.getZoom(),5),padding:Fa(),duration:700})}catch{}const he=G.value.find(ze=>ze.e===f.e);he&&!m.value.has(f.e)&&he.list.indexOf(f)>=bi&&j(f.e),Zt(()=>{var He,It,at,xn,Pn;const ze=(xn=(at=(It=(He=h.value)==null?void 0:He.getRootNode)==null?void 0:It.call(He))==null?void 0:at.querySelector)==null?void 0:xn.call(at,`[data-nb="${f.g.pgid}"]`);(Pn=ze==null?void 0:ze.scrollIntoView)==null||Pn.call(ze,{block:"nearest",behavior:"smooth"})})}function pe(){var Z;const f=w.value;(Z=f==null?void 0:f.getLayer)!=null&&Z.call(f,"nb-a")&&f.setFilter("nb-a",["==",["get","id"],ie.value||""])}function ve(){u.pgid=null}const Ne=Se(()=>S.value?S.value.unreached.filter(f=>!N.value||f.p===N.value):[]),Ce=Se(()=>{var f;return $.value==="reached"?((f=S.value)==null?void 0:f.reached)||[]:Ne.value}),qe=Se(()=>{const f=oo(L.value.trim()),Z=f?Ce.value.filter(he=>oo(he.name).includes(f)||oo(he.country).includes(f)||oo(he.langName).includes(f)):Ce.value,ae=$.value==="reached"?"believers":"pop";return[...Z].sort((he,ze)=>(ze[ae]||0)-(he[ae]||0)).slice(0,40)}),Te=Se(()=>{var Z;const f={1:0,2:0,3:0};for(const ae of((Z=S.value)==null?void 0:Z.unreached)||[])f[ae.p]!=null&&f[ae.p]++;return f});function Me(){const f=v.value;if(!f)return;const Z=["unreached_group","unreached_country","unreached_language","unreached_population","p_level","e_level","same_people","neighbor_group","neighbor_country","bridge_language","bridge_language_code","est_believers","distance_km","lat","lng","bible","jesus_film","audio","radio","pgid"],ae=te.value.map(he=>{const ze=f.reached?he.g:f,He=f.reached?f:he.g;return[ze.name,ze.country,ze.langName,ze.pop,"P-"+ze.p,"E-"+he.e,he.same?"yes":"",He.name,He.country,He.langName,He.lang,He.believers,he.km,He.lat,He.lng,He.bible?"yes":"no",He.film?"yes":"no",He.audio?"yes":"no",He.radio?"yes":"no",He.pgid]});mi(f.reached?`unreached-neighbors-${f.pgid}-E${le.value}.csv`:`near-neighbors-${f.pgid}.csv`,Z,ae)}const lt=Le(!1),_=Le(""),T=Le(null),x=Le(null),U=Le("");let Q=null;function X(){const f=v.value;!f||!f.reached||(_.value=Hb({group:f,neighbors:te.value,level:t(n[le.value]),t,fmt:zt}),U.value="",lt.value=!0,Zt(()=>{var Z,ae;return(ae=(Z=T.value)==null?void 0:Z.querySelector("textarea"))==null?void 0:ae.focus()}))}function de(){lt.value=!1,Zt(()=>{var f,Z;return(Z=(f=x.value)==null?void 0:f.focus)==null?void 0:Z.call(f)})}function ue(f){const Z={};Q=Z,U.value=f,setTimeout(()=>{Q===Z&&(U.value="")},2e3)}async function p(){var f,Z;try{await navigator.clipboard.writeText(_.value),ue(no("messages.copied"))}catch{(Z=(f=T.value)==null?void 0:f.querySelector("textarea"))==null||Z.select()}}function g(){const f=v.value;f&&Pd(`letter-${f.pgid}-E${le.value}.txt`,_.value)}function z(f){var ze;if(f.key==="Escape"){f.preventDefault(),f.stopPropagation(),de();return}if(f.key!=="Tab")return;const Z=[...((ze=T.value)==null?void 0:ze.querySelectorAll("textarea,button"))||[]];if(!Z.length)return;const ae=T.value.getRootNode(),he=ae.activeElement;f.shiftKey&&he===Z[0]?(f.preventDefault(),Z[Z.length-1].focus()):!f.shiftKey&&he===Z[Z.length-1]&&(f.preventDefault(),Z[0].focus())}_t(()=>u.pgid,()=>{lt.value=!1});const O=Le(!1),ge=f=>f.slug||f.pgid;async function se(f){const Z=typeof window<"u"&&window.MAP_APP_API_URL||void 0||"",ae=new Set(f.map(he=>he.slug).filter(Boolean));if(!Z||!ae.size)return new Map;try{const he=await fetch(`${Z}/api/people-groups/list?fields=slug,image_url`);if(!he.ok)return new Map;const ze=await he.json(),He=Array.isArray(ze)?ze:ze.data||ze.people_groups||ze.posts||[],It=at=>at&&typeof at=="object"?at.value||at.url||"":at||"";return new Map(He.filter(at=>ae.has(at.slug)&&It(at.image_url)).map(at=>[at.slug,It(at.image_url)]))}catch{return new Map}}const I=(f,Z)=>({slug:ge(f),name:f.name,population:f.pop,religion:f.religion,country_code:f.iso3,country_code_label:f.country,primary_language_label:f.langName,imb_gsec:Number.isInteger(f.imb_gsec)?f.imb_gsec:null,image_url:Z.get(f.slug)||""});async function V(){const f=v.value;if(!(!f||!f.reached||O.value||!te.value.length)){O.value=!0;try{const Z=te.value,ae=Z.slice(0,$i).map(Dt=>Dt.g),he=t(n[le.value]),ze=Z.length>$i?t("neighbor.packet.labelCapped",{group:f.name,n:$i,total:Z.length.toLocaleString("en-US"),level:he}):t("neighbor.packet.label",{group:f.name,level:he}),He={id:`neighbours-${f.pgid}-E${le.value}`,label:ze,selector:{type:"pg_slugs",values:ae.map(ge)}},[{usePosterPrints:It},at]=await Promise.all([Kt(()=>Promise.resolve().then(()=>Ey),void 0),se(ae)]),xn=ae.map(Dt=>I(Dt,at)),Pn=((Gr==null?void 0:Gr.steps)||[]).filter(Dt=>Dt.id==="all"||Dt.id==="unreached");await It({records:()=>xn,lang:()=>String(Or()||"en").split("-")[0],label:Dt=>(Dt==null?void 0:Dt.label)||"",downloadPrefix:"doxa-upg-neighbor"}).printPacket(He,{funnel:Pn.length?{steps:Pn}:{steps:[]},variant:"lightweight"})}catch(Z){console.warn("[upg-neighbor] packet failed:",(Z==null?void 0:Z.message)||Z)}finally{O.value=!1}}}function ke(){v.value&&(u.lang=v.value.lang,u.view="campaigns")}const Fe=Se(()=>{var f;return!!v.value&&!!((f=S.value)!=null&&f.bridges.some(Z=>Z.lang===v.value.lang))}),Be=f=>({type:"FeatureCollection",features:f}),pt=(f,Z)=>({type:"Feature",geometry:{type:"Point",coordinates:[f.lng,f.lat]},properties:Z});function ht(){return Be(Ne.value.map(f=>pt(f,{id:f.pgid,pop:f.pop})))}function pn(){var f;return Be((((f=S.value)==null?void 0:f.reached)||[]).map(Z=>pt(Z,{id:Z.pgid,b:Z.believers})))}function To(){const f=v.value;if(!f)return{n:Be([]),l:Be([]),s:Be([])};const Z=[],ae=[];for(const he of te.value)Z.push(pt(he.g,{id:he.g.pgid,e:he.e,name:he.g.name,color:f.reached?Sn:dn[he.e],ring:dn[he.e]})),ae.push({type:"Feature",geometry:{type:"LineString",coordinates:[[he.g.lng,he.g.lat],[f.lng,f.lat]]},properties:{e:he.e,color:dn[he.e]}});return{n:Be(Z),l:Be(ae),s:Be([pt(f,{name:f.name,color:f.reached?Wo:Sn})])}}function mt(f,Z,ae){const he=f.getSource(Z);he?he.setData(ae):f.addSource(Z,{type:"geojson",data:ae})}function Wt(f){mt(f,Cd,ht()),mt(f,Td,pn());const Z=To();mt(f,Ld,Z.l),mt(f,yi,Z.n),mt(f,Md,Z.s),f.getLayer("nb-u")||f.addLayer({id:"nb-u",type:"circle",source:Cd,paint:{"circle-color":Sn,"circle-radius":["interpolate",["linear"],["ln",["max",["get","pop"],1]],6,1.6,12,3.2,16,6.5,19,10],"circle-opacity":.55,"circle-stroke-width":.4,"circle-stroke-color":"#fff"}}),f.getLayer("nb-r")||f.addLayer({id:"nb-r",type:"circle",source:Td,paint:{"circle-color":Wo,"circle-radius":["interpolate",["linear"],["ln",["max",["get","b"],1]],4,1.8,10,3.4,14,6,17,9],"circle-opacity":.6,"circle-stroke-width":.4,"circle-stroke-color":"#fff"}}),f.getLayer("nb-l")||f.addLayer({id:"nb-l",type:"line",source:Ld,layout:{"line-cap":"round"},paint:{"line-color":["get","color"],"line-width":["match",["get","e"],1,2.2,2,1.6,1.1],"line-opacity":.75}}),f.getLayer("nb-n")||f.addLayer({id:"nb-n",type:"circle",source:yi,paint:{"circle-color":["get","color"],"circle-radius":["match",["get","e"],1,7,2,6,5],"circle-stroke-width":2,"circle-stroke-color":["coalesce",["get","ring"],"#fff"]}}),f.getLayer("nb-a")||f.addLayer({id:"nb-a",type:"circle",source:yi,filter:["==",["get","id"],""],paint:{"circle-color":"rgba(0,0,0,0)","circle-radius":11,"circle-stroke-width":3,"circle-stroke-color":Hr}}),f.getLayer("nb-s")||f.addLayer({id:"nb-s",type:"circle",source:Md,paint:{"circle-color":["coalesce",["get","color"],Sn],"circle-radius":10,"circle-stroke-width":3,"circle-stroke-color":Hr}}),ao(f),pe()}function ao(f){f.getLayer("nb-u")&&f.setPaintProperty("nb-u","circle-opacity",v.value?.18:.55),f.getLayer("nb-r")&&f.setPaintProperty("nb-r","circle-opacity",v.value?.18:.6)}let Hn=!1;function ro(){var Z;const f=w.value;if(f){if(!((Z=f.isStyleLoaded)!=null&&Z.call(f))){Hn||(Hn=!0,f.once("idle",()=>{Hn=!1,ro()}));return}Wt(f)}}function jn(){const f=w.value,Z=v.value;if(!f||!Z)return;const ae=[[Z.lng,Z.lat],...te.value.map(He=>[He.g.lng,He.g.lat])],he=ae.map(He=>He[0]),ze=ae.map(He=>He[1]);try{f.stop(),ae.length<2?f.easeTo({center:[Z.lng,Z.lat],zoom:4,duration:800}):f.fitBounds([[Math.min(...he),Math.min(...ze)],[Math.max(...he),Math.max(...ze)]],{padding:Fa(),maxZoom:6,duration:900})}catch{}}function Fa(){const f=h.value,Z=(f==null?void 0:f.clientWidth)||0,ae=(f==null?void 0:f.clientHeight)||0,he=!!f&&getComputedStyle(f).direction==="rtl";return Z>760?{top:60,bottom:60,left:he?60:400,right:he?400:60}:{top:40,bottom:(u.sheetDown?56:Math.round(ae*.55))+20,left:30,right:30}}function so(){u.sheetDown=!u.sheetDown,Zt(()=>jn())}return _t(()=>[u.pgid,N.value,S.value,le.value],()=>{ro(),jn()}),fo(async()=>{xd(l).then(Z=>{S.value=Z,ro(),jn()}).catch(Z=>{F.value=t("neighbor.mob.loadError",{message:String(Z.message||Z)})}),await k();const f=w.value;if(!f){y.value=no("messages.mapUnavailable");return}_d(f,()=>{pd(f,"mercator"),ro(),jn(),f.on("click",he=>{var xn,Pn;const ze=["nb-n","nb-r","nb-u"].filter(Cn=>f.getLayer(Cn)),He=ze.length?f.queryRenderedFeatures(he.point,{layers:ze})[0]:null,It=(xn=He==null?void 0:He.properties)==null?void 0:xn.id;if(!It)return;if(He.layer.id==="nb-n"){const Cn=te.value.find(Dt=>Dt.g.pgid===It);Cn&&(u.sheetDown=!1,me(Cn,!1));return}const at=(Pn=S.value)==null?void 0:Pn.groups.find(Cn=>Cn.pgid===It);at&&W(at)});const Z=he=>{var ze;return(ze=S.value)==null?void 0:ze.groups.find(He=>He.pgid===he)},ae=he=>he&&`${he.name} · ${he.country} · ${he.langName}`;f.on("movestart",()=>{J.value=null});for(const he of["nb-u","nb-r","nb-n"])f.on("mouseenter",he,()=>{f.getCanvas().style.cursor="pointer"}),f.on("mousemove",he,ze=>{var He,It,at;return M(ze,ae(Z((at=(It=(He=ze.features)==null?void 0:He[0])==null?void 0:It.properties)==null?void 0:at.id)))}),f.on("mouseleave",he,()=>{f.getCanvas().style.cursor="",J.value=null})}),f.on("style.load",ro)}),bo(()=>b()),Dr(`
|
||
.mb-root { position:absolute; inset:0; display:flex; background:#f6f7f9; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:#1f2937; }
|
||
.mb-map { position:absolute; inset:0; }
|
||
.mb-panel { position:absolute; top:10px; inset-inline-start:10px; bottom:10px; width:380px; z-index:20; display:flex; flex-direction:column;
|
||
background:#fff; border:1px solid #d9dee6; border-radius:12px; box-shadow:0 6px 20px rgba(0,20,60,.12); overflow:hidden; }
|
||
.mb-head { padding:12px 14px 10px; border-bottom:1px solid #eef0f4; }
|
||
.mb-search { width:100%; box-sizing:border-box; border:1px solid #c9d1dd; border-radius:8px; padding:9px 11px; font:14px/1.2 inherit; }
|
||
.mb-search:focus { outline:2px solid ${dt}; outline-offset:1px; }
|
||
.mb-pchips { display:flex; gap:6px; margin-top:8px; flex-wrap:wrap; }
|
||
.mb-chip { border:1px solid #c9d1dd; background:#fff; color:#374151; border-radius:999px; padding:4px 10px; font:600 12px/1 inherit; cursor:pointer; }
|
||
.mb-chip.on { background:${dt}; border-color:${dt}; color:#fff; }
|
||
.mb-kind { display:flex; gap:6px; margin-bottom:8px; flex-wrap:wrap; }
|
||
.mb-kind .mb-chip { display:inline-flex; align-items:center; gap:6px; padding:6px 11px; }
|
||
.mb-body { flex:1 1 0; overflow-y:auto; }
|
||
.mb-row { display:flex; align-items:center; gap:10px; width:100%; text-align:start; border:0; border-bottom:1px solid #f1f3f6; background:#fff; padding:9px 14px; cursor:pointer; font:inherit; color:inherit; }
|
||
.mb-row:hover, .mb-row:focus-visible { background:#f5f8ff; }
|
||
.mb-row-main { flex:1 1 auto; min-width:0; }
|
||
.mb-row-name { font:600 13px/1.25 inherit; }
|
||
.mb-row-sub { font:12px/1.3 inherit; color:#6b7280; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
||
.mb-pbadge { flex:0 0 auto; font:700 11px/1 ui-monospace,monospace; border-radius:6px; padding:4px 6px; color:#fff; }
|
||
.mb-brief { padding:12px 14px 16px; }
|
||
.mb-back { border:0; background:none; color:${dt}; font:600 12px/1 inherit; cursor:pointer; padding:0 0 8px; }
|
||
/* Arrows point the way the page reads (a plain "←" does not mirror in Arabic). */
|
||
.mb-back::before { content:'← '; } [dir="rtl"] .mb-back::before { content:'→ '; }
|
||
.mb-go::after { content:' →'; } [dir="rtl"] .mb-go::after { content:' ←'; }
|
||
.mb-title { font:700 17px/1.2 inherit; margin:0; }
|
||
.mb-sub { color:#4b5563; font-size:13px; margin:4px 0 10px; }
|
||
.mb-p { border-radius:10px; padding:10px 12px; margin-bottom:10px; color:#0b2e1a; font-size:13px; line-height:1.4; }
|
||
.mb-p strong { display:block; font-size:14px; margin-bottom:2px; }
|
||
.mb-res { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; }
|
||
.mb-res span { font:600 11px/1 inherit; border-radius:999px; padding:4px 8px; border:1px solid #d1d5db; color:#6b7280; }
|
||
.mb-res span.yes { border-color:#9fd3b0; color:#0b5e33; background:#eaf7ef; }
|
||
.mb-actions { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
|
||
.mb-modal { position:absolute; inset:0; z-index:40; background:rgba(0,20,50,.45); display:flex; align-items:center; justify-content:center; padding:16px; }
|
||
.mb-letter { background:#fff; border-radius:12px; width:min(680px,100%); max-height:100%; display:flex; flex-direction:column; gap:10px; padding:16px 18px; box-shadow:0 12px 32px rgba(0,20,60,.25); }
|
||
.mb-letter h2 { margin:0; font:700 16px/1.25 inherit; }
|
||
.mb-letter textarea { flex:1 1 auto; min-height:260px; width:100%; box-sizing:border-box; border:1px solid #c9d1dd; border-radius:8px; padding:10px 12px; font:13px/1.55 inherit; color:inherit; resize:vertical; }
|
||
.mb-letter textarea:focus { outline:2px solid ${dt}; outline-offset:1px; }
|
||
.mb-letter .row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
|
||
.mb-letter .status { font-size:12px; color:#0b5e33; margin-inline-start:auto; }
|
||
.mb-btn { border:1px solid ${dt}; background:${dt}; color:#fff; border-radius:8px; padding:8px 11px; font:600 12px/1 inherit; cursor:pointer; }
|
||
.mb-btn.ghost { background:#fff; color:${dt}; }
|
||
.mb-level { margin-top:12px; }
|
||
.mb-level h3 { display:flex; align-items:center; gap:8px; font:700 13px/1.2 inherit; margin:0 0 4px; }
|
||
.mb-level p { margin:0 0 6px; color:#6b7280; font-size:12px; line-height:1.35; }
|
||
.mb-dot { width:11px; height:11px; border-radius:50%; flex:0 0 auto; }
|
||
.mb-card { border:1px solid #e5e7eb; border-radius:8px; padding:8px 10px; margin-bottom:6px; font-size:12px; line-height:1.35; }
|
||
.mb-card { cursor:pointer; }
|
||
.mb-card:hover, .mb-card:focus-visible { border-color:#9fb3d9; }
|
||
.mb-card.on { border-color:${Hr}; box-shadow:0 0 0 2px ${Hr}55; }
|
||
.mb-card b { font-size:13px; }
|
||
.mb-card .muted { color:#6b7280; }
|
||
.mb-card-main { display:block; width:100%; text-align:start; border:0; background:none; padding:0; font:inherit; color:inherit; cursor:pointer; }
|
||
.mb-card-main:focus-visible { outline:2px solid ${dt}; outline-offset:2px; border-radius:4px; }
|
||
.mb-pivot { margin-top:6px; min-height:28px; border:1px solid ${dt}; background:#fff; color:${dt}; border-radius:6px; padding:4px 10px; font:600 12px/1 inherit; cursor:pointer; }
|
||
.mb-pivot:hover, .mb-pivot:focus-visible { background:${dt}; color:#fff; }
|
||
.mb-same { font:700 10px/1 inherit; color:#7a3e00; background:#fdeedd; border-radius:999px; padding:3px 6px; margin-inline-start:4px; }
|
||
.mb-note { padding:14px; color:#6b7280; font-size:13px; line-height:1.45; }
|
||
.mb-maperr { position:absolute; inset-inline-end:12px; top:12px; z-index:15; background:#fff; border:1px solid #d9dee6; border-radius:8px; padding:8px 12px; font-size:13px; color:#6b7280; }
|
||
.mb-hover { position:absolute; z-index:25; pointer-events:none; background:rgba(0,27,68,.92); color:#fff; font-size:12px; line-height:1.3; padding:5px 8px; border-radius:6px; max-width:min(260px, 45%); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
||
.mb-handle { display:none; align-items:center; justify-content:center; gap:8px; width:100%; min-height:40px; border:0; border-bottom:1px solid #eef0f4;
|
||
background:#fff; color:${dt}; font:600 12px/1 inherit; cursor:pointer; flex:0 0 auto; }
|
||
.mb-handle::before { content:''; width:36px; height:4px; border-radius:2px; background:#c9d1dd; }
|
||
.mb-handle:focus-visible { outline:2px solid ${dt}; outline-offset:-2px; }
|
||
.mb-legend { position:absolute; inset-inline-end:12px; bottom:28px; z-index:15; background:rgba(255,255,255,.95); border:1px solid #d9dee6; border-radius:10px; padding:8px 10px; font-size:12px; }
|
||
.mb-legend div { display:flex; align-items:center; gap:7px; padding:2px 0; }
|
||
@media (max-width:760px) {
|
||
.mb-panel { top:auto; inset-inline:6px; bottom:6px; width:auto; height:55%; }
|
||
.mb-panel.down { height:56px; }
|
||
.mb-panel.down > :not(.mb-handle) { display:none; }
|
||
.mb-handle { display:flex; }
|
||
.mb-legend { top:8px; bottom:auto; inset-inline-end:8px; }
|
||
/* The map's own bottom controls (the attribution) sit ABOVE the sheet, never under it:
|
||
55% of the height when the sheet is up, a 56 px bar when it is down, both 6 px off the bottom. */
|
||
.mb-root .maplibregl-ctrl-bottom-left, .mb-root .maplibregl-ctrl-bottom-right,
|
||
.mb-root .mapboxgl-ctrl-bottom-left, .mb-root .mapboxgl-ctrl-bottom-right { bottom:calc(55% + 6px); }
|
||
.mb-root.sheet-down .maplibregl-ctrl-bottom-left, .mb-root.sheet-down .maplibregl-ctrl-bottom-right,
|
||
.mb-root.sheet-down .mapboxgl-ctrl-bottom-left, .mb-root.sheet-down .mapboxgl-ctrl-bottom-right { bottom:62px; }
|
||
}
|
||
`,"upgn-mobilize"),(f,Z)=>(fe(),we("div",{class:st(["mb-root",{"sheet-down":Oe(u).sheetDown}])},[B("div",{ref_key:"mapContainer",ref:h,class:"mb-map"},null,512),y.value?(fe(),we("div",jb,Y(y.value),1)):ut("",!0),J.value?(fe(),we("div",{key:1,class:"mb-hover",style:Nt(q.value)},Y(J.value.text),5)):ut("",!0),B("div",{class:"mb-legend","aria-label":f.$t("neighbor.mob.legend")},[B("div",null,[B("span",{class:"mb-dot",style:Nt({background:Oe(Sn)})},null,4),Je(Y(f.$t("neighbor.mob.legendUnreached")),1)]),B("div",null,[B("span",{class:"mb-dot",style:Nt({background:Oe(Wo)})},null,4),Je(Y(f.$t("neighbor.mob.legendReached")),1)]),(fe(),we(Xe,null,ln([1,2,3],ae=>B("div",{key:ae},[B("span",{class:"mb-dot",style:Nt({background:Oe(dn)[ae]})},null,4),Je(Y(f.$t(n[ae])),1)])),64))],8,Bb),B("aside",{class:st(["mb-panel",{down:Oe(u).sheetDown}])},[B("button",{type:"button",class:"mb-handle","aria-expanded":Oe(u).sheetDown?"false":"true",onClick:so},Y(Oe(u).sheetDown?f.$t("neighbor.mob.sheetShow"):f.$t("neighbor.mob.sheetHide")),9,Ub),v.value?(fe(),we("div",l$,[B("div",c$,[B("button",{class:"mb-back",onClick:ve},Y(f.$t("neighbor.mob.back")),1),B("h2",u$,Y(v.value.name),1),B("div",d$,Y(v.value.country)+" · "+Y(v.value.langName)+" · "+Y(f.$t("neighbor.mob.people",{n:Oe(zt)(v.value.pop)}))+" · "+Y(v.value.religion),1),E.value?(fe(),we("div",{key:0,class:"mb-p",style:Nt({background:Oe(Wo)+"22"})},[B("strong",null,Y(f.$t("neighbor.mob.reachedTitle")),1),Je(" "+Y(f.$t("neighbor.mob.reachedLong",{n:Oe(zt)(v.value.believers)}))+" ",1),B("div",p$,Y(f.$t("neighbor.mob.reachCount",{n:te.value.length.toLocaleString("en-US"),p:Oe(zt)(H.value)})),1)],4)):ut("",!0),E.value?(fe(),we("div",{key:1,class:"mb-pchips",role:"group","aria-label":f.$t("neighbor.mob.eFilter")},[(fe(),we(Xe,null,ln([1,2,3],ae=>B("button",{key:ae,type:"button",class:st(["mb-chip",{on:le.value===ae}]),"aria-pressed":le.value===ae?"true":"false",disabled:!A.value[ae],title:f.$t(r[ae]),onClick:he=>le.value=ae},Y(f.$t(n[ae]))+" · "+Y(A.value[ae].toLocaleString("en-US")),11,h$)),64))],8,g$)):(fe(),we("div",{key:2,class:"mb-p",style:Nt({background:(Oe(dn)[v.value.p]||"#9aa7b4")+"22"})},[B("strong",null,[v.value.p?(fe(),we(Xe,{key:0},[Je("P-"+Y(v.value.p)+" · ",1)],64)):ut("",!0),Je(Y(f.$t(s[v.value.p])),1)]),Je(" "+Y(f.$t(i[v.value.p]))+" ",1),B("div",m$,Y(f.$t("neighbor.mob.believersNear",{n:Oe(zt)(ce.value)})),1)],4)),B("div",{class:"mb-res","aria-label":f.$t("neighbor.mob.resources")},[B("span",{class:st({yes:v.value.bible})},Y(f.$t("neighbor.res.bible")),3),B("span",{class:st({yes:v.value.film})},Y(f.$t("neighbor.res.film")),3),B("span",{class:st({yes:v.value.audio})},Y(f.$t("neighbor.res.audio")),3),B("span",{class:st({yes:v.value.radio})},Y(f.$t("neighbor.res.radio")),3)],8,f$),B("div",b$,[E.value&&te.value.length?(fe(),we("button",{key:0,ref_key:"letterBtn",ref:x,class:"mb-btn",onClick:X},Y(f.$t("neighbor.letter.button")),513)):ut("",!0),E.value&&te.value.length?(fe(),we("button",{key:1,type:"button",class:"mb-btn ghost",disabled:O.value,"aria-busy":O.value?"true":"false",onClick:V},Y(f.$t("neighbor.packet.button")),9,$$)):ut("",!0),B("button",{class:st(["mb-btn",{ghost:E.value&&te.value.length}]),onClick:Me},Y(f.$t("neighbor.mob.export")),3),Fe.value?(fe(),we("button",{key:2,class:"mb-btn ghost",onClick:ke},Y(f.$t("neighbor.mob.openBridge",{lang:v.value.langName})),1)):ut("",!0)]),(fe(!0),we(Xe,null,ln(G.value,ae=>(fe(),we("section",{key:ae.e,class:"mb-level"},[B("h3",null,[B("span",{class:"mb-dot",style:Nt({background:Oe(dn)[ae.e]})},null,4),Je(Y(f.$t(o[ae.e])),1)]),B("p",null,Y(f.$t(E.value?r[ae.e]:a[ae.e])),1),(fe(!0),we(Xe,null,ln(m.value.has(ae.e)?ae.list:ae.list.slice(0,bi),he=>(fe(),we("div",{key:he.g.pgid,class:st(["mb-card",{on:ie.value===he.g.pgid}]),"data-nb":he.g.pgid},[B("button",{type:"button",class:"mb-card-main",onClick:ze=>me(he)},[B("b",null,Y(he.g.name),1),he.same?(fe(),we("span",_$,Y(f.$t("neighbor.mob.samePeople")),1)):ut("",!0),Z[5]||(Z[5]=B("br",null,null,-1)),Je(" "+Y(he.g.country)+" · "+Y(he.g.langName),1),Z[6]||(Z[6]=B("br",null,null,-1)),E.value?(fe(),we("span",w$,"P-"+Y(he.g.p||"–")+" · "+Y(f.$t("neighbor.mob.cardStatsU",{p:Oe(zt)(he.g.pop),km:he.km.toLocaleString("en-US")})),1)):(fe(),we("span",k$,Y(f.$t("neighbor.mob.cardStats",{b:Oe(zt)(he.g.believers),km:he.km.toLocaleString("en-US")})),1))],8,v$),ie.value===he.g.pgid?(fe(),we("button",{key:0,type:"button",class:"mb-pivot mb-go",onClick:ze=>W(he.g)},Y(f.$t("neighbor.mob.showNeighbors")),9,S$)):ut("",!0)],10,y$))),128)),!m.value.has(ae.e)&&ae.list.length>bi?(fe(),we("button",{key:0,type:"button",class:"mb-pivot",onClick:he=>j(ae.e)},Y(f.$t("neighbor.mob.showAll",{n:ae.list.length.toLocaleString("en-US")})),9,x$)):ut("",!0)]))),128)),G.value.length?ut("",!0):(fe(),we("div",P$,Y(f.$t(E.value?"neighbor.mob.noUnreachedNeighbors":"neighbor.mob.noNeighbors")),1)),B("p",C$,Y(f.$t("neighbor.mob.caveat")),1)])])):(fe(),we(Xe,{key:0},[B("div",Wb,[B("div",{class:"mb-kind",role:"group","aria-label":f.$t("neighbor.mob.kind")},[B("button",{type:"button",class:st(["mb-chip",{on:$.value==="unreached"}]),"aria-pressed":$.value==="unreached"?"true":"false",onClick:Z[0]||(Z[0]=ae=>$.value="unreached")},[B("span",{class:"mb-dot",style:Nt({background:Oe(Sn)})},null,4),Je(Y(f.$t("neighbor.mob.listUnreached")),1)],10,qb),B("button",{type:"button",class:st(["mb-chip",{on:$.value==="reached"}]),"aria-pressed":$.value==="reached"?"true":"false",onClick:Z[1]||(Z[1]=ae=>$.value="reached")},[B("span",{class:"mb-dot",style:Nt({background:Oe(Wo)})},null,4),Je(Y(f.$t("neighbor.mob.listReached")),1)],10,Kb)],8,Vb),la(B("input",{"onUpdate:modelValue":Z[2]||(Z[2]=ae=>L.value=ae),class:"mb-search",type:"search",placeholder:$.value==="reached"?f.$t("neighbor.mob.searchReached"):f.$t("neighbor.mob.searchPlaceholder"),"aria-label":$.value==="reached"?f.$t("neighbor.mob.searchReached"):f.$t("neighbor.mob.searchPlaceholder")},null,8,Yb),[[Rs,L.value]]),$.value==="unreached"?(fe(),we("div",{key:0,class:"mb-pchips",role:"group","aria-label":f.$t("neighbor.mob.pFilter")},[B("button",{class:st(["mb-chip",{on:N.value===0}]),onClick:Z[3]||(Z[3]=ae=>N.value=0)},Y(f.$t("neighbor.mob.pAll")),3),(fe(),we(Xe,null,ln([1,2,3],ae=>B("button",{key:ae,class:st(["mb-chip",{on:N.value===ae}]),title:f.$t(i[ae]),onClick:he=>N.value=ae},"P-"+Y(ae)+" · "+Y((Te.value[ae]||0).toLocaleString("en-US")),11,Jb)),64))],8,Zb)):ut("",!0)]),B("div",Xb,[F.value?(fe(),we("div",Qb,Y(F.value),1)):S.value?(fe(),we(Xe,{key:2},[L.value?ut("",!0):(fe(),we("div",t$,Y($.value==="reached"?f.$t("neighbor.mob.introReached"):f.$t("neighbor.mob.introBoth")),1)),(fe(!0),we(Xe,null,ln(qe.value,ae=>(fe(),we("button",{key:ae.pgid,class:"mb-row",onClick:he=>W(ae)},[ae.reached?(fe(),we("span",{key:0,class:"mb-pbadge",style:Nt({background:Oe(Wo)}),"aria-hidden":"true"},"✓",4)):(fe(),we("span",{key:1,class:"mb-pbadge",style:Nt({background:Oe(dn)[ae.p]||"#9aa7b4"})},"P-"+Y(ae.p||"–"),5)),B("span",o$,[B("span",a$,Y(ae.name),1),ae.reached?(fe(),we("span",r$,Y(ae.country)+" · "+Y(ae.langName)+" · "+Y(f.$t("neighbor.camp.believers",{n:Oe(zt)(ae.believers)})),1)):(fe(),we("span",s$,Y(ae.country)+" · "+Y(ae.langName)+" · "+Y(Oe(zt)(ae.pop)),1))])],8,n$))),128)),qe.value.length?ut("",!0):(fe(),we("div",i$,Y(f.$t("neighbor.mob.noMatch")),1))],64)):(fe(),we("div",e$,Y(f.$t("neighbor.mob.loading")),1))])],64))],2),lt.value&&v.value?(fe(),we("div",{key:2,class:"mb-modal",onClick:Cc(de,["self"])},[B("div",{ref_key:"letterBox",ref:T,class:"mb-letter",role:"dialog","aria-modal":"true","aria-label":f.$t("neighbor.letter.title",{group:v.value.name}),onKeydown:z},[B("h2",null,Y(f.$t("neighbor.letter.title",{group:v.value.name})),1),la(B("textarea",{"onUpdate:modelValue":Z[4]||(Z[4]=ae=>_.value=ae),dir:"auto","aria-label":f.$t("neighbor.letter.title",{group:v.value.name})},null,8,L$),[[Rs,_.value]]),B("div",M$,[B("button",{type:"button",class:"mb-btn",onClick:p},Y(f.$t("neighbor.letter.copy")),1),B("button",{type:"button",class:"mb-btn ghost",onClick:g},Y(f.$t("neighbor.letter.download")),1),B("button",{type:"button",class:"mb-btn ghost",onClick:de},Y(f.$t("neighbor.about.close")),1),B("span",A$,Y(U.value),1)])],40,T$)])):ut("",!0)],2))}},N$={key:0,class:"cp-maperr",role:"status"},F$=["aria-expanded"],R$={class:"cp-head"},I$=["placeholder","aria-label"],O$={class:"cp-tools"},z$=["disabled"],D$={class:"cp-body"},G$={key:0,class:"cp-note",role:"alert"},H$={key:1,class:"cp-note"},j$=["onClick"],B$={class:"cp-bar"},U$={class:"u"},W$={class:"r"},V$={class:"cp-where"},q$={key:0,class:"cp-note"},K$={key:1,class:"cp-body"},Y$={class:"cp-brief"},Z$={class:"cp-title"},J$={class:"cp-big"},X$=["aria-label"],Q$=["onClick"],ey={class:"cp-note",style:{padding:"12px 0 0"}},Ad="cp-r",Ed="cp-u",Nd="cp-b",ty={__name:"campaigns",setup(e){const t=wd(),n=vt("profileConfig",Le({})),o=vt("mapboxToken",Le("")),a=vt("nbState"),r=Se(()=>(n==null?void 0:n.value)||{}),s=Le(null),i=Le(null),l=Le(""),c=Le(""),u=Le(""),d=Le(1e3),{map:h,initializeMap:S,destroy:F}=vd({containerRef:s,accessToken:(o==null?void 0:o.value)||r.value.tk||"",style:r.value.style??"mapbox://styles/mapbox/light-v11",center:r.value.center??[45,20],zoom:r.value.zoom??1.6,minZoom:1,maxZoom:11}),y=Se(()=>{if(!i.value)return[];const M=oo(u.value.trim());return i.value.bridges.filter(q=>q.believers>=d.value&&(!M||oo(q.langName).includes(M)||q.reachedCountries.some(m=>oo(m).includes(M))||q.unreachedCountries.some(m=>oo(m).includes(M))))}),L=Se(()=>{var M;return((M=i.value)==null?void 0:M.bridges.find(q=>q.lang===a.lang))||null});function N(M){a.sheetDown=!1,a.lang=M.lang}function $(){a.lang=null}function w(M){a.sheetDown=!1,a.pgid=M.pgid,a.view="mobilize"}const k=Se(()=>{const M=L.value;if(!M)return[];const q=new Map;for(const m of M.reached){const j=q.get(m.country)||{country:m.country,believers:0,groups:0};j.believers+=m.believers,j.groups++,q.set(m.country,j)}return[...q.values()].sort((m,j)=>j.believers-m.believers)}),b=Se(()=>L.value?[...L.value.unreached].sort((M,q)=>q.pop-M.pop):[]);function v(){const M=L.value;if(!M)return;const q=["bridge_language","language_code","role","group","country","population","est_believers","lat","lng","pgid"],m=[...M.reached.map(j=>[M.langName,M.lang,"mobilize (reached)",j.name,j.country,j.pop,j.believers,j.lat,j.lng,j.pgid]),...M.unreached.map(j=>[M.langName,M.lang,"reach (unreached)",j.name,j.country,j.pop,"",j.lat,j.lng,j.pgid])];mi(`bridge-language-${M.lang}.csv`,q,m)}function E(){const M=["bridge_language","language_code","unreached_population","unreached_groups","est_believers","reached_groups","believers_in_countries","unreached_in_countries","bible","jesus_film","audio","radio"],q=y.value.map(m=>[m.langName,m.lang,m.unreachedPop,m.unreached.length,m.believers,m.reached.length,m.reachedCountries.join("; "),m.unreachedCountries.join("; "),m.res.bible?"yes":"no",m.res.film?"yes":"no",m.res.audio?"yes":"no",m.res.radio?"yes":"no"]);mi("bridge-languages.csv",M,q)}const C=M=>M.unreached.reduce((q,m)=>!q||m.pop>q.pop?m:q,null);function A(){return L.value?K([]):K(y.value.map(M=>{const q=C(M);return q&&{type:"Feature",geometry:{type:"Point",coordinates:[q.lng,q.lat]},properties:{lang:M.lang,pop:M.unreachedPop}}}).filter(Boolean))}const K=M=>({type:"FeatureCollection",features:M}),le=Le(null),te=Se(()=>{var m;const M=le.value;if(!M)return{};const q=((m=s.value)==null?void 0:m.clientWidth)||0;return M.x>q/2?{right:q-M.x+12+"px",top:M.y+12+"px"}:{left:M.x+12+"px",top:M.y+12+"px"}}),G=M=>({type:"Feature",geometry:{type:"Point",coordinates:[M.lng,M.lat]},properties:{id:M.pgid,pop:M.pop,b:M.believers}});function ce(M,q,m){const j=M.getSource(q);j?j.setData(m):M.addSource(q,{type:"geojson",data:m})}let H=!1;function W(){var m;const M=h.value;if(!M)return;if(!((m=M.isStyleLoaded)!=null&&m.call(M))){H||(H=!0,M.once("idle",()=>{H=!1,W()}));return}const q=L.value;ce(M,Nd,A()),ce(M,Ed,K(q?q.unreached.map(G):[])),ce(M,Ad,K(q?q.reached.map(G):[])),M.getLayer("cp-b")||M.addLayer({id:"cp-b",type:"circle",source:Nd,paint:{"circle-color":Sn,"circle-opacity":.45,"circle-stroke-width":1.5,"circle-stroke-color":dn[1],"circle-radius":["interpolate",["linear"],["ln",["max",["get","pop"],1]],8,3,12,6,16,12,19,18]}}),M.getLayer("cp-u")||M.addLayer({id:"cp-u",type:"circle",source:Ed,paint:{"circle-color":Sn,"circle-opacity":.7,"circle-stroke-width":.6,"circle-stroke-color":"#fff","circle-radius":["interpolate",["linear"],["ln",["max",["get","pop"],1]],6,2,12,4,16,8,19,12]}}),M.getLayer("cp-r")||M.addLayer({id:"cp-r",type:"circle",source:Ad,paint:{"circle-color":dn[1],"circle-opacity":.9,"circle-stroke-width":1.2,"circle-stroke-color":"#fff","circle-radius":["interpolate",["linear"],["ln",["max",["get","b"],1]],2,3,8,5,12,8,15,12]}})}function ie(){var qe,Te;const M=h.value,q=L.value;if(!M||!q)return;const m=[...q.reached,...q.unreached],j=m.map(Me=>Me.lng),me=m.map(Me=>Me.lat),pe=((qe=s.value)==null?void 0:qe.clientWidth)||0,ve=((Te=s.value)==null?void 0:Te.clientHeight)||0,Ne=!!s.value&&getComputedStyle(s.value).direction==="rtl",Ce=pe>760?{top:60,bottom:60,left:Ne?60:440,right:Ne?440:60}:{top:40,bottom:(a.sheetDown?56:Math.round(ve*.55))+20,left:30,right:30};try{M.stop(),M.fitBounds([[Math.min(...j),Math.min(...me)],[Math.max(...j),Math.max(...me)]],{padding:Ce,maxZoom:5.5,duration:900})}catch{}}_t(()=>[a.lang,i.value],()=>{W(),ie()}),_t(y,()=>W());function J(){a.sheetDown=!a.sheetDown,Zt(()=>ie())}return fo(async()=>{xd(n).then(q=>{i.value=q,W(),ie()}).catch(q=>{l.value=t("neighbor.mob.loadError",{message:String(q.message||q)})}),await S();const M=h.value;if(!M){c.value=no("messages.mapUnavailable");return}_d(M,()=>{pd(M,"mercator"),W(),ie(),M.on("click","cp-u",m=>{var pe,ve,Ne,Ce;const j=(Ne=(ve=(pe=m.features)==null?void 0:pe[0])==null?void 0:ve.properties)==null?void 0:Ne.id,me=(Ce=L.value)==null?void 0:Ce.unreached.find(qe=>qe.pgid===j);me&&w(me)}),M.on("click","cp-r",m=>{var pe,ve,Ne,Ce;const j=(Ne=(ve=(pe=m.features)==null?void 0:pe[0])==null?void 0:ve.properties)==null?void 0:Ne.id,me=(Ce=L.value)==null?void 0:Ce.reached.find(qe=>qe.pgid===j);me&&w(me)}),M.on("click","cp-b",m=>{var me;const j=(me=i.value)==null?void 0:me.bridges.find(pe=>{var ve,Ne,Ce;return pe.lang===((Ce=(Ne=(ve=m.features)==null?void 0:ve[0])==null?void 0:Ne.properties)==null?void 0:Ce.lang)});j&&N(j)}),M.on("movestart",()=>{le.value=null});for(const m of["cp-u","cp-r","cp-b"])M.on("mouseenter",m,()=>{M.getCanvas().style.cursor="pointer"}),M.on("mouseleave",m,()=>{M.getCanvas().style.cursor=""});M.on("mousemove","cp-b",m=>{var me;const j=(me=i.value)==null?void 0:me.bridges.find(pe=>{var ve,Ne,Ce;return pe.lang===((Ce=(Ne=(ve=m.features)==null?void 0:ve[0])==null?void 0:Ne.properties)==null?void 0:Ce.lang)});le.value=j?{x:m.point.x,y:m.point.y,text:`${j.langName} · ${t("neighbor.camp.unreachedPeople",{n:zt(j.unreachedPop)})}`}:null}),M.on("mouseleave","cp-b",()=>{le.value=null});const q=m=>L.value&&[...L.value.reached,...L.value.unreached].find(j=>j.pgid===m);for(const m of["cp-u","cp-r"])M.on("mousemove",m,j=>{var pe,ve,Ne;const me=q((Ne=(ve=(pe=j.features)==null?void 0:pe[0])==null?void 0:ve.properties)==null?void 0:Ne.id);le.value=me?{x:j.point.x,y:j.point.y,text:`${me.name} · ${me.country}`}:null}),M.on("mouseleave",m,()=>{le.value=null})}),M.on("style.load",W)}),bo(()=>F()),Dr(`
|
||
.cp-root { position:absolute; inset:0; background:#f6f7f9; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:#1f2937; }
|
||
.cp-map { position:absolute; inset:0; }
|
||
.cp-panel { position:absolute; top:10px; inset-inline-start:10px; bottom:10px; width:420px; z-index:20; display:flex; flex-direction:column;
|
||
background:#fff; border:1px solid #d9dee6; border-radius:12px; box-shadow:0 6px 20px rgba(0,20,60,.12); overflow:hidden; }
|
||
.cp-head { padding:12px 14px 10px; border-bottom:1px solid #eef0f4; }
|
||
.cp-head p { margin:0 0 8px; font-size:12.5px; line-height:1.4; color:#4b5563; }
|
||
.cp-search { width:100%; box-sizing:border-box; border:1px solid #c9d1dd; border-radius:8px; padding:9px 11px; font:14px/1.2 inherit; }
|
||
.cp-tools { display:flex; align-items:center; gap:8px; margin-top:8px; font-size:12px; color:#4b5563; flex-wrap:wrap; }
|
||
.cp-tools select { border:1px solid #c9d1dd; border-radius:6px; padding:4px 6px; font:12px inherit; }
|
||
.cp-btn { border:1px solid ${dt}; background:${dt}; color:#fff; border-radius:8px; padding:7px 10px; font:600 12px/1 inherit; cursor:pointer; }
|
||
.cp-btn.ghost { background:#fff; color:${dt}; }
|
||
.cp-body { flex:1 1 0; overflow-y:auto; }
|
||
.cp-row { display:block; width:100%; text-align:start; border:0; border-bottom:1px solid #f1f3f6; background:#fff; padding:10px 14px; cursor:pointer; font:inherit; color:inherit; }
|
||
.cp-row:hover, .cp-row:focus-visible { background:#f5f8ff; }
|
||
.cp-row b { font-size:14px; }
|
||
.cp-bar { display:flex; gap:10px; margin-top:4px; font-size:12px; color:#4b5563; flex-wrap:wrap; }
|
||
.cp-bar .u { color:${Sn}; font-weight:600; }
|
||
.cp-bar .r { color:${dn[1]}; font-weight:600; }
|
||
.cp-where { font-size:11.5px; color:#6b7280; margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
||
.cp-brief { padding:12px 14px 16px; }
|
||
.cp-back { border:0; background:none; color:${dt}; font:600 12px/1 inherit; cursor:pointer; padding:0 0 8px; }
|
||
.cp-back::before { content:'← '; } [dir="rtl"] .cp-back::before { content:'→ '; }
|
||
.cp-title { font:700 18px/1.2 inherit; margin:0 0 4px; }
|
||
.cp-big { display:flex; gap:10px; margin:10px 0; }
|
||
.cp-big div { flex:1; border-radius:10px; padding:10px; font-size:12px; line-height:1.3; }
|
||
.cp-big strong { display:block; font-size:18px; }
|
||
.cp-res { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; }
|
||
.cp-res span { font:600 11px/1 inherit; border-radius:999px; padding:4px 8px; border:1px solid #d1d5db; color:#6b7280; }
|
||
.cp-res span.yes { border-color:#9fd3b0; color:#0b5e33; background:#eaf7ef; }
|
||
.cp-brief h3 { font:700 13px/1.2 inherit; margin:14px 0 6px; }
|
||
.cp-line { display:flex; justify-content:space-between; gap:8px; font-size:12.5px; padding:5px 0; border-bottom:1px solid #f1f3f6; }
|
||
.cp-line button { border:0; background:none; padding:0; font:inherit; color:${dt}; cursor:pointer; text-align:start; }
|
||
.cp-note { padding:14px; color:#6b7280; font-size:13px; line-height:1.45; }
|
||
.cp-hover { position:absolute; z-index:25; pointer-events:none; background:rgba(0,27,68,.92); color:#fff; font-size:12px; line-height:1.3; padding:5px 8px; border-radius:6px; max-width:min(260px, 45%); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
||
.cp-maperr { position:absolute; inset-inline-end:12px; top:12px; z-index:15; background:#fff; border:1px solid #d9dee6; border-radius:8px; padding:8px 12px; font-size:13px; color:#6b7280; }
|
||
.cp-handle { display:none; align-items:center; justify-content:center; gap:8px; width:100%; min-height:40px; border:0; border-bottom:1px solid #eef0f4;
|
||
background:#fff; color:${dt}; font:600 12px/1 inherit; cursor:pointer; flex:0 0 auto; }
|
||
.cp-handle::before { content:''; width:36px; height:4px; border-radius:2px; background:#c9d1dd; }
|
||
.cp-handle:focus-visible { outline:2px solid ${dt}; outline-offset:-2px; }
|
||
@media (max-width:760px) { .cp-panel { top:auto; inset-inline:6px; bottom:6px; width:auto; height:55%; }
|
||
.cp-panel.down { height:56px; } .cp-panel.down > :not(.cp-handle) { display:none; } .cp-handle { display:flex; }
|
||
/* The map's own bottom controls (the attribution) sit ABOVE the sheet, never under it:
|
||
55% of the height when the sheet is up, a 56 px bar when it is down, both 6 px off the bottom. */
|
||
.cp-root .maplibregl-ctrl-bottom-left, .cp-root .maplibregl-ctrl-bottom-right,
|
||
.cp-root .mapboxgl-ctrl-bottom-left, .cp-root .mapboxgl-ctrl-bottom-right { bottom:calc(55% + 6px); }
|
||
.cp-root.sheet-down .maplibregl-ctrl-bottom-left, .cp-root.sheet-down .maplibregl-ctrl-bottom-right,
|
||
.cp-root.sheet-down .mapboxgl-ctrl-bottom-left, .cp-root.sheet-down .mapboxgl-ctrl-bottom-right { bottom:62px; }
|
||
}
|
||
`,"upgn-campaigns"),(M,q)=>(fe(),we("div",{class:st(["cp-root",{"sheet-down":Oe(a).sheetDown}])},[B("div",{ref_key:"mapContainer",ref:s,class:"cp-map"},null,512),c.value?(fe(),we("div",N$,Y(c.value),1)):ut("",!0),le.value?(fe(),we("div",{key:1,class:"cp-hover",style:Nt(te.value)},Y(le.value.text),5)):ut("",!0),B("aside",{class:st(["cp-panel",{down:Oe(a).sheetDown}])},[B("button",{type:"button",class:"cp-handle","aria-expanded":Oe(a).sheetDown?"false":"true",onClick:J},Y(Oe(a).sheetDown?M.$t("neighbor.mob.sheetShow"):M.$t("neighbor.mob.sheetHide")),9,F$),L.value?(fe(),we("div",K$,[B("div",Y$,[B("button",{class:"cp-back",onClick:$},Y(M.$t("neighbor.camp.back")),1),B("h2",Z$,Y(L.value.langName),1),B("div",J$,[B("div",{style:Nt({background:Oe(dn)[1]+"1f"})},[B("strong",null,Y(Oe(zt)(L.value.believers)),1),Je(Y(M.$t("neighbor.camp.bigBelievers",{g:L.value.reached.length,c:L.value.reachedCountries.length})),1)],4),B("div",{style:Nt({background:Oe(Sn)+"1a"})},[B("strong",null,Y(Oe(zt)(L.value.unreachedPop)),1),Je(Y(M.$t("neighbor.camp.bigUnreached",{g:L.value.unreached.length,c:L.value.unreachedCountries.length})),1)],4)]),B("div",{class:"cp-res","aria-label":M.$t("neighbor.mob.resources")},[B("span",{class:st({yes:L.value.res.bible})},Y(M.$t("neighbor.res.bible")),3),B("span",{class:st({yes:L.value.res.film})},Y(M.$t("neighbor.res.film")),3),B("span",{class:st({yes:L.value.res.audio})},Y(M.$t("neighbor.res.audio")),3),B("span",{class:st({yes:L.value.res.radio})},Y(M.$t("neighbor.res.radio")),3)],8,X$),B("button",{class:"cp-btn",onClick:v},Y(M.$t("neighbor.camp.export")),1),B("h3",null,Y(M.$t("neighbor.camp.whereToRun")),1),(fe(!0),we(Xe,null,ln(k.value,m=>(fe(),we("div",{key:m.country,class:"cp-line"},[B("span",null,Y(m.country),1),B("span",null,Y(M.$t("neighbor.camp.believersInGroups",{n:Oe(zt)(m.believers),g:m.groups})),1)]))),128)),B("h3",null,Y(M.$t("neighbor.camp.whoTheyReach")),1),(fe(!0),we(Xe,null,ln(b.value,m=>(fe(),we("div",{key:m.pgid,class:"cp-line"},[B("button",{onClick:j=>w(m)},Y(m.name)+" · "+Y(m.country),9,Q$),B("span",null,Y(Oe(zt)(m.pop)),1)]))),128)),B("p",ey,Y(M.$t("neighbor.mob.caveat")),1)])])):(fe(),we(Xe,{key:0},[B("div",R$,[B("p",null,Y(M.$t("neighbor.camp.intro")),1),la(B("input",{"onUpdate:modelValue":q[0]||(q[0]=m=>u.value=m),class:"cp-search",type:"search",placeholder:M.$t("neighbor.camp.searchPlaceholder"),"aria-label":M.$t("neighbor.camp.searchPlaceholder")},null,8,I$),[[Rs,u.value]]),B("div",O$,[B("label",null,[Je(Y(M.$t("neighbor.camp.minBelievers"))+" ",1),la(B("select",{"onUpdate:modelValue":q[1]||(q[1]=m=>d.value=m)},[...q[2]||(q[2]=[B("option",{value:1},"1+",-1),B("option",{value:1e3},"1K+",-1),B("option",{value:1e4},"10K+",-1),B("option",{value:1e5},"100K+",-1)])],512),[[Kh,d.value,void 0,{number:!0}]])]),B("button",{class:"cp-btn ghost",disabled:!y.value.length,onClick:E},Y(M.$t("neighbor.camp.exportAll")),9,z$)])]),B("div",D$,[l.value?(fe(),we("div",G$,Y(l.value),1)):i.value?(fe(),we(Xe,{key:2},[(fe(!0),we(Xe,null,ln(y.value,m=>(fe(),we("button",{key:m.lang,class:"cp-row",onClick:j=>N(m)},[B("b",null,Y(m.langName),1),B("div",B$,[B("span",U$,Y(M.$t("neighbor.camp.unreachedPeople",{n:Oe(zt)(m.unreachedPop)})),1),B("span",W$,Y(M.$t("neighbor.camp.believers",{n:Oe(zt)(m.believers)})),1)]),B("div",V$,Y(M.$t("neighbor.camp.believersIn",{list:Oe(Cf)(m.reachedCountries)})),1)],8,j$))),128)),y.value.length?ut("",!0):(fe(),we("div",q$,Y(M.$t("neighbor.mob.noMatch")),1))],64)):(fe(),we("div",H$,Y(M.$t("neighbor.mob.loading")),1))])],64))],2)],2))}},ny={class:"dun-root"},oy={class:"dun-bar"},ay={class:"dun-brand"},ry=["aria-label"],sy=["aria-selected","onClick"],iy={class:"dun-stage"},ly=["aria-label"],cy={class:"dun-card"},uy=["aria-label"],dy={class:"src"},py=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"upg-neighbor",setup(e){const t=vt("profileConfig",null),n=Se(()=>(t==null?void 0:t.value)||{}),o=["mobilize","campaigns"],a={"send-map":"mobilize",cockpit:"mobilize","upg-neighbors":"mobilize","bloom-cockpit":"mobilize","flower-mesh":"mobilize","lang-cluster":"campaigns",flowers:"campaigns"},r=n.value.view||n.value.legacyElement,s=o.includes(r)?r:a[r]||(n.value.lang?"campaigns":"mobilize"),i=oa({view:s,pgid:n.value.pgid||null,lang:n.value.lang||null,about:!1,list:"unreached",sheetDown:!1});sn("nbState",i);const l=Le(null),c=Le(null);_t(()=>i.about,d=>Zt(()=>{var h,S;return(S=(h=d?c.value:l.value)==null?void 0:h.focus)==null?void 0:S.call(h)}));function u(d){var h,S;d.key==="Escape"?(d.preventDefault(),d.stopPropagation(),i.about=!1):d.key==="Tab"&&(d.preventDefault(),(S=(h=c.value)==null?void 0:h.focus)==null||S.call(h))}return Dr(`
|
||
.dun-root { position:absolute; inset:0; display:flex; flex-direction:column; overflow:hidden; background:#fff; isolation:isolate;
|
||
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
|
||
.dun-bar { flex:0 0 auto; display:flex; align-items:center; gap:10px; padding:8px 12px; background:${dt}; z-index:50; flex-wrap:wrap; }
|
||
.dun-brand { font:700 13px/1 inherit; color:#fff; white-space:nowrap; margin-inline-end:4px; }
|
||
.dun-seg { display:inline-flex; background:rgba(255,255,255,.08); border-radius:999px; padding:3px; gap:2px; }
|
||
.dun-seg button { border:0; background:transparent; color:#c7d3ea; cursor:pointer; font:600 13px/1 inherit; padding:7px 14px; border-radius:999px; }
|
||
.dun-seg button.on { background:#fff; color:${dt}; }
|
||
.dun-seg button:focus-visible, .dun-about:focus-visible { outline:2px solid #fff; outline-offset:2px; }
|
||
.dun-about { margin-inline-start:auto; border:1px solid rgba(255,255,255,.35); background:transparent; color:#fff; border-radius:999px; padding:6px 12px; font:600 12px/1 inherit; cursor:pointer; }
|
||
.dun-stage { flex:1 1 0; position:relative; min-height:0; }
|
||
.dun-modal { position:absolute; inset:0; z-index:60; background:rgba(0,20,50,.45); display:flex; align-items:center; justify-content:center; padding:16px; }
|
||
.dun-card { background:#fff; border-radius:12px; max-width:620px; max-height:100%; overflow-y:auto; padding:18px 20px; font-size:14px; line-height:1.5; color:#1f2937; }
|
||
.dun-card h2 { margin:0 0 8px; font-size:18px; }
|
||
.dun-card h3 { margin:14px 0 4px; font-size:14px; }
|
||
.dun-card p { margin:0 0 8px; }
|
||
.dun-card .src { font-size:12px; color:#6b7280; }
|
||
.dun-close { float:inline-end; border:0; background:none; font-size:20px; line-height:1; cursor:pointer; color:#6b7280; }
|
||
@media (max-width:640px){ .dun-brand{ display:none; } .dun-seg button { padding:7px 10px; } }
|
||
`,"upg-neighbor"),(d,h)=>(fe(),we("div",ny,[B("div",oy,[B("span",ay,Y(d.$t("neighbor.brand")),1),B("div",{class:"dun-seg",role:"tablist","aria-label":d.$t("neighbor.chooseView")},[(fe(),we(Xe,null,ln(o,S=>B("button",{key:S,role:"tab","aria-selected":i.view===S,class:st({on:i.view===S}),onClick:F=>i.view=S},Y(d.$t(S==="mobilize"?"neighbor.views.mobilize":"neighbor.views.campaigns")),11,sy)),64))],8,ry),B("button",{ref_key:"aboutBtn",ref:l,class:"dun-about",onClick:h[0]||(h[0]=S=>i.about=!0)},Y(d.$t("neighbor.about.button")),513)]),B("div",iy,[i.view==="mobilize"?(fe(),Yn(E$,{key:0})):(fe(),Yn(ty,{key:1})),i.about?(fe(),we("div",{key:2,class:"dun-modal",role:"dialog","aria-modal":"true","aria-label":d.$t("neighbor.about.title"),onClick:h[2]||(h[2]=Cc(S=>i.about=!1,["self"])),onKeydown:u},[B("div",cy,[B("button",{ref_key:"aboutClose",ref:c,class:"dun-close","aria-label":d.$t("neighbor.about.close"),onClick:h[1]||(h[1]=S=>i.about=!1)},"×",8,uy),B("h2",null,Y(d.$t("neighbor.about.title")),1),B("p",null,Y(d.$t("neighbor.about.why")),1),B("h3",null,Y(d.$t("neighbor.about.greenTitle")),1),B("p",null,Y(d.$t("neighbor.about.green")),1),B("h3",null,Y(d.$t("neighbor.about.eTitle")),1),B("p",null,[h[3]||(h[3]=B("b",null,"E-1",-1)),Je(" · "+Y(d.$t("neighbor.e.long1")),1),h[4]||(h[4]=B("br",null,null,-1)),h[5]||(h[5]=B("b",null,"E-2",-1)),Je(" · "+Y(d.$t("neighbor.e.long2")),1),h[6]||(h[6]=B("br",null,null,-1)),h[7]||(h[7]=B("b",null,"E-3",-1)),Je(" · "+Y(d.$t("neighbor.e.long3")),1)]),B("h3",null,Y(d.$t("neighbor.about.pTitle")),1),B("p",null,[h[8]||(h[8]=B("b",null,"P-1",-1)),Je(" · "+Y(d.$t("neighbor.p.long1")),1),h[9]||(h[9]=B("br",null,null,-1)),h[10]||(h[10]=B("b",null,"P-2",-1)),Je(" · "+Y(d.$t("neighbor.p.long2")),1),h[11]||(h[11]=B("br",null,null,-1)),h[12]||(h[12]=B("b",null,"P-3",-1)),Je(" · "+Y(d.$t("neighbor.p.long3")),1)]),B("h3",null,Y(d.$t("neighbor.about.dataTitle")),1),B("p",null,Y(d.$t("neighbor.about.data")),1),B("p",dy,Y(d.$t("neighbor.about.source")),1)])],40,ly)):ut("",!0)])]))}}},Symbol.toStringTag,{value:"Module"}));function gy(e,{autoprint:t=!1}={}){const n=document.createElement("iframe");n.setAttribute("aria-hidden","true"),n.style.cssText="position:fixed;right:0;bottom:0;width:1px;height:1px;opacity:0;border:0",document.body.appendChild(n);const o=n.contentDocument;if(!o)return n.remove(),null;o.open(),o.write(e),t&&o.write('<script>window.addEventListener("load",function(){setTimeout(function(){window.focus();window.print()},150)})<\/script>'),o.close();let a=null;const r=()=>{clearTimeout(a),n.parentNode&&n.remove()};a=setTimeout(r,_i);try{const s=n.contentWindow;s.addEventListener("afterprint",()=>setTimeout(r,0)),s.addEventListener("load",()=>setTimeout(r,Rd),{once:!0})}catch{setTimeout(r,Rd)}return n.contentWindow}async function hy(e,{onNeedsTap:t=null,imageWaitMs:n=2e4,labels:o=null,onRelease:a=null}={}){if(!my())return gy(e,{autoprint:!0})?"frame":"blocked";const r=by(e,{onRelease:a});if(!r)return"blocked";await r.imagesLoaded(n);const s=typeof navigator<"u"?navigator.userActivation:null;if(s&&s.isActive===!1){const i=()=>{r.live()&&(r.printing(),window.print())};return typeof t=="function"?t(i,r.drop):fy(i,r.drop,o||{}),"needs-tap"}return r.printing(),window.print(),"page"}function my(){if(typeof navigator>"u")return!1;const e=navigator.userAgent||"";return/Android|iPhone|iPad|iPod/i.test(e)||/Macintosh/.test(e)&&(navigator.maxTouchPoints||0)>1}const Fd="dxm-print-tap";function fy(e,t,n={}){if(typeof document>"u"||!document.body){e();return}const o=document.getElementById(Fd);o&&o.remove();const a=document.createElement("div");a.id=Fd,a.setAttribute("role","dialog"),a.setAttribute("aria-live","polite"),a.style.cssText="position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:2147483647;display:flex;gap:8px;align-items:center;padding:8px;border-radius:14px;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.25);font:16px/1.2 system-ui,sans-serif";const r=document.createElement("button");r.type="button",r.textContent=n.print||"Print",r.style.cssText="min-height:44px;min-width:96px;padding:0 18px;border:0;border-radius:10px;background:#3b463d;color:#fff;font:inherit;font-weight:600";const s=document.createElement("button");s.type="button",s.textContent="×",s.setAttribute("aria-label",n.close||"Close"),s.style.cssText="min-height:44px;min-width:44px;border:0;border-radius:10px;background:#eef0ec;color:#3b463d;font:inherit;font-size:22px",r.addEventListener("click",()=>{a.remove(),e()}),s.addEventListener("click",()=>{a.remove(),t()}),a.append(r,s),document.body.appendChild(a)}const vi="dxm-print-root";let Vo=null;function by(e,{onRelease:t=null}={}){if(typeof document>"u"||!document.body||typeof DOMParser>"u")return null;Vo&&Vo.drop();for(const b of document.querySelectorAll("#"+vi+", style[data-dxm-print]"))b.remove();const n=new DOMParser().parseFromString(String(e),"text/html"),o="#"+vi,a=[...n.querySelectorAll("style")].map(b=>b.textContent).join(`
|
||
`),r=document.createElement("style");r.setAttribute("data-dxm-print",""),r.textContent=`@media screen{${o}{display:none!important}}@media print{html,body{margin:0;padding:0;background:#fff}html:root,html:root body{overflow:visible!important;max-height:none!important}html:root body>*:not(${o}){display:none!important}${o}{display:block!important}}@media print{${a}}`;const s=document.createElement("div");s.id=vi;for(const b of["lang","dir"]){const v=n.documentElement.getAttribute(b);v&&s.setAttribute(b,v)}for(const b of[...n.body.childNodes])s.appendChild(document.importNode(b,!0));for(const b of s.querySelectorAll("img"))b.loading="eager";document.head.appendChild(r),document.body.appendChild(s);let i=null,l=null,c=!1,u=!1,d=!1,h=!1;const S=()=>{d||(d=!0,clearTimeout(i),i=setTimeout(k,$y))},F=()=>{u=!0,d&&(d=!1,clearTimeout(i),i=setTimeout(k,_i))},y=()=>{document.visibilityState==="hidden"?F():u&&S()},L=()=>{F()},N=()=>{u&&S()},$=()=>{h||S()},w={live:()=>Vo===w,drop:k,printing:()=>{c||(c=!0,h=!0,l=setTimeout(()=>{h=!1},yy),document.addEventListener("visibilitychange",y),window.addEventListener("blur",L),window.addEventListener("focus",N),window.addEventListener("pointerdown",$,!0))},imagesLoaded:b=>{const v=[...s.querySelectorAll("img")].filter(C=>!C.complete);if(!v.length)return Promise.resolve();const E=v.map(C=>new Promise(A=>{C.addEventListener("load",A,{once:!0}),C.addEventListener("error",A,{once:!0})}));return Promise.race([Promise.all(E),new Promise(C=>setTimeout(C,b))])}};function k(){if(clearTimeout(i),clearTimeout(l),document.removeEventListener("visibilitychange",y),window.removeEventListener("blur",L),window.removeEventListener("focus",N),window.removeEventListener("pointerdown",$,!0),s.remove(),r.remove(),Vo===w&&(Vo=null),t){const b=t;t=null;try{b()}catch{}}}return i=setTimeout(k,_i),Vo=w,w}const Rd=6e4,_i=6e5,$y=6e4,yy=2e3,vy='class="stage"';async function _y(e){const t=new Uint8Array(await e.slice(0,12).arrayBuffer()),n=(o,a)=>String.fromCharCode(...t.slice(o,a));return n(0,4)==="RIFF"&&n(8,12)==="WEBP"||t[0]===137&&n(1,4)==="PNG"||t[0]===255&&t[1]===216&&t[2]===255}async function wy(e,t=fetch){let n;try{n=await t(e)}catch{return null}if(!n||!n.ok)return null;const o=(n.headers.get("content-type")||"").toLowerCase();if(o.startsWith("text/"))return null;const a=await n.blob();return o.startsWith("image/")||await _y(a)?a:null}async function ky(e,t=fetch){const n=await t(e);if(!n.ok)return{html:null,status:n.status};const o=await n.text();return o.includes(vy)?{html:o,status:n.status}:{html:null,status:404}}const Sy=(e,t)=>String(e).replace(/\{(\w+)\}/g,(n,o)=>t&&t[o]!=null?String(t[o]):n);function jr(e,t,n={}){const o=new Error(Sy(t,n));return o.i18nKey=e,o.i18nParams=n,o}function xy(e,t){if(e&&e.i18nKey&&typeof t=="function"){const n=t(e.i18nKey,e.i18nParams||{});if(typeof n=="string"&&n&&n!==e.i18nKey)return n}return String(e&&e.message||e)}const Py={map_page_kicker:"UNENGAGED PEOPLE GROUPS",map_page_sub:"A prayer list of {count} unreached people groups",map_unavailable:"The map for this prayer list is not included in this printing.",map_page_series:"One of {k} UPG100 prayer lists",zone_affinity_A017:"Deaf people groups",list_header:"{from}–{to} of {count} · pray for them by name",people_suffix:"people",no_photo:"no photo available",deck_title:"Prayer Cards",card_country:"Country",card_population:"People",card_language:"Language",card_religion:"Religion",card_cta:"Pray for them",points_title:"12 Prayer Points",points_intro:"One hour with God, five minutes each. Pray these twelve for the people groups in this packet.",points_attrib:"Prayer rhythms inspired by Metacamp · metacamp.org",wheel_title:"Prayer Wheel",wheel_intro:"Spend an hour with God? It is easier than you think. Break it into 5-minute blocks and focus on one of these during each segment.",wheel_minutes:"minutes",wheel_start:"Start here",wheel_attrib:"Prayer Wheel · Metacamp Module 1 · metacamp.org",privacy_note:"Marker positions are approximate · people-group locations are generalised at the source for privacy",rhythms:{praise:"PRAISE",wait:"WAIT",confess:"CONFESS",read:"READ THE WORD",ask:"ASK",intercede:"INTERCESSION",pray_word:"PRAY THE WORD",thank:"THANK",sing:"SING",meditate:"MEDITATE",listen:"LISTEN",praise_end:"PRAISE"},points:[{n:1,rhythm:"praise",sub:"Two-Cross Gospel",text:"Praise Jesus for taking up a cross for you and being humbled. Crown Him as your King, and pray for these nations (people groups) that they will do the same. Devote yourself to Jesus to take up your own cross and follow Him, even through suffering, and death. Praise Him for He is worthy of these nations (people groups) taking up their own cross, willing to follow Jesus no matter what the cost. May the Lamb receive the reward of His suffering, starting with me.",refs:["Matthew 27:27","Matthew 16:24–25"]},{n:2,rhythm:"wait",sub:"Holy Spirit & deliverance",text:"Spend time waiting on the Holy Spirit to fill you and empower you to pray as a bold prayer warrior for them. Focus in on God's presence, and wait on the Lord!",refs:["Acts 1:8","John 14:26"]},{n:3,rhythm:"confess",sub:"",text:"Be open and honest with God about your fears, lies, and unbelief surrounding unreached people groups (Example lie: It is too big an ask for God to reach all of these unreached people groups in our lifetime). Receive His love, truth, and voice surrounding unreached people groups and your role in helping Him reach these people groups. Ask God to revive your love and faith for the people groups on your prayer list.",refs:["John 3:16","1 John 1:9"]},{n:4,rhythm:"read",sub:"the heavenly Father's love",text:"That they would be SAVED and KNOW their heavenly Father loves them — He wants to save them, and through them He wants to bring salvation to their family, friends, neighbors, coworkers, classmates, everyone they know personally.",refs:["Mark 5:18–20","Acts 16:31"],print_passage:!0},{n:5,rhythm:"ask",sub:"baptisms",text:"New baptisms among the indigenous people groups, and every baptized disciple is trained to baptize others — multiplying baptisms.",refs:["Acts 16","Acts 10"]},{n:6,rhythm:"intercede",sub:"laborers & shepherds",text:"For laborers sent to deeply love a people they have never met; and indigenous good shepherds raised up from within the people groups.",refs:["Luke 10:2","John 10:11–15"]},{n:7,rhythm:"pray_word",sub:"Persons & Houses of Peace",text:"That laborers and indigenous disciples find the receptive person and the house of peace, deeply love them, disciple them well, baptize them, and train them to reach their friends and family with their newfound love for Jesus.",refs:["Luke 10:5–7","Matthew 10:5–14"]},{n:8,rhythm:"thank",sub:"rest",text:"Thank God for the rest He has given you; that they enter that rest in Christ, and that their spiritual family is a safe place.",refs:["Mark 4:26–29","Hebrews 4:9–11"]},{n:9,rhythm:"sing",sub:"",text:"Imagine you are with Jesus worshipping Him, and you are surrounded by all the people groups on your prayer list worshipping Him too. Spend some time to praise Jesus.",refs:["Acts 16:25–26","Revelation 7:9–10"]},{n:10,rhythm:"meditate",sub:"communion",text:"Focus on Jesus. Take communion if possible. Imagine being together with Jesus at a table with one person from each people group on your list. What is it going to take for this to become a reality?",refs:["Matthew 26:26–30","1 Corinthians 11:23–26"]},{n:11,rhythm:"listen",sub:"accountability",text:"Take some time and ask God this question, in listening prayer: what is it going to take for them to have people in their lives who will help them read the Word, pray, commit to community, and respond to suffering well? Spend five minutes listening to God for inspiration — He can give you solutions that help solve this.",refs:["1 Peter 5:6–11","Hebrews 10:24–25"]},{n:12,rhythm:"praise_end",sub:"blessing · great · greater · greatest",text:"Short reading: It is a blessing from God for people in these people groups to be saved through Jesus and have eternal life (John 17:3). It is a great blessing from God for indigenous disciples to lead their friends, family, coworkers, classmates, neighbors, and people they don't know, to Jesus through their witness (John 17:20). It is a greater blessing from God when indigenous leaders in these people groups start new churches that are unified in Jesus (John 17:21). It is one of the greatest blessings from God, when indigenous leaders train other indigenous leaders to start more churches unified in Christ. They begin to worship Jesus and spread throughout neighboring unreached people groups bringing the life of Jesus to the ends of the earth. Spend time singing praise to God. He is worthy of worshippers in all these people groups!",refs:["John 17:3,11–23","Ephesians 3:20–21"]}],point4_passage:"As he was entering into the boat, he who had been possessed by demons begged him that he might be with him. He didn’t allow him, but said to him, “Go to your house, to your friends, and tell them what great things the Lord has done for you and how he had mercy on you.” He went his way, and began to proclaim in Decapolis how Jesus had done great things for him, and everyone marveled.",point4_passage_credit:"Mark 5:18–20 · World English Bible (public domain)",point4_passage_bold:"He didn’t allow him, but said to him, “Go to your house, to your friends, and tell them what great things the Lord has done for you and how he had mercy on you.”",point4_heart_title:"THE HEAVENLY FATHER'S HEART",point4_heart_lede:"They need to know that their heavenly Father loves them, He wants to save them, and through them He wants their unreached people group neighbors to be saved.",point4_heart_leadin:"More scriptures about the heavenly Father's heart (pick one scripture to read)",point4_heart:[{who:"Noah",ref:"Genesis 6:11–7:1"},{who:"Lot",ref:"Genesis 19:12–23"},{who:"Rahab",ref:"Joshua 2:17–20"},{who:"The Gerasene",ref:"Mark 5:12–20"},{who:"Cornelius",ref:"Acts 10:23–25"},{who:"Lydia",ref:"Acts 16:14–15"},{who:"The jailer",ref:"Acts 16:31"}],funnel_kicker:"UPG100",funnel_title:"How this list was found",funnel_intro:"Every people group on earth, narrowed to the ones with no church and no worker.",funnel_all:"people groups in the world",funnel_unreached:"are unreached — under 2% evangelical",funnel_frontier:"are frontier — 0.1% or less, and almost no one is going",funnel_doxa:"are on this prayer network’s list",funnel_doxa_note:"{frontier} of them are frontier",funnel_this:"are in THIS packet",funnel_packets:"UPG100 prayer packets divide the {total} among them",funnel_share:"This packet is 1 of {k} lists · {pct}% of the {total}",funnel_foot:"Counts from {imb_pub}, captured {imb_date}. {unassigned} of the {total} are not yet in any list.",funnel_people:"people",funnel_foot_source:"Counts from {imb_pub}, captured {imb_date}.",funnel_share_pct:"This packet is {pct}% of the {total}",funnel_list_doxa:"Project 2000: this prayer network’s people groups",funnel_list_unreached:"Project 7000: unreached people groups",funnel_list_frontier:"Project 4700: frontier people groups","funnel_list_frontier-500k":"Project 700: frontier people groups of 500,000 or more",funnel_list_unengaged:"Unengaged unreached people groups",zone_join:"{a} + {b}",zone_join_more:"{a} + {n} more",life_kicker:"Perspective",life_title:"A human life, in weeks",life_lede:"One hundred years. Fifty-two weeks each. Five thousand two hundred boxes — and that is the whole of it. Every week you will ever pray is one of these.",life_foot:"100 years x 52 weeks = 5,200 weeks.",life_weeks:"weeks",christian_kicker:"The same 5,200 boxes",christian_title:"Who among them knows Christ",christian_lede:"Each box is an equal share of the people in this list. The shaded boxes are the share who follow Jesus (evangelical); the rest are still waiting.",christian_reached:"Followers of Jesus",christian_lost:"Not yet following Jesus",christian_people:"people",christian_coverage:"computed over {matched} of the {total} groups in this list",christian_foot:'Population-weighted from peoplegroups.org EvangelicalLevel, taking each published band at its midpoint and 0 for "No Known Evangelicals"',pray_blessed:"Did I bless them?",pray_know:"What do you want me to know?",pray_do:"What do you want me to do?",funnel_eq_title:"How each number is reached",funnel_tip:"This packet is 1 of {n} UPG100 lists",desc_where_both:"The {people} live in {country} and speak {language}.",desc_where_country:"The {people} live in {country}.",desc_where_language:"The {people} speak {language}.",desc_gsec_0:"There are no known evangelical Christians among them, no church, and no gospel resource in their language.",desc_gsec_1:"Fewer than 2% are evangelical, and no one has been planting churches among them in the last two years.",desc_gsec_2:"Fewer than 2% are evangelical, though church planting has begun in some communities.",desc_gsec_3:"Fewer than 2% are evangelical, and scattered church planting has begun among them.",desc_gsec_4:"Between 2% and 5% are evangelical.",desc_gsec_5:"Between 5% and 10% are evangelical.",desc_gsec_6:"More than 10% are evangelical.",sets_kicker:"Who is near, and who is not",sets_title:"Two ways to see the same people",sets_lede:"The circle asks whether a people has been reached. The rings ask how far they sit from someone who could reach them.",sets_bounded_title:"Reached, and not",sets_centered_title:"Distance from a neighbour",sets_bounded_tally:"{inside} inside · {outside} outside · {unknown} unknown",sets_no_data:"{n} without data",sets_centered_tally:"{placed} placed · {centre} at the centre · {unplaced} unplaced",ring_band_dialect:"Same dialect",ring_band_language:"Same language",ring_band_family:"Same language family",ring_band_geography:"Nearby only",ring_culture_same:"same people",ring_culture_near:"near culture",ring_culture_different:"different culture",ring_join:"{band}, {culture}",life_jesus:"The life of Jesus, about 33 years",life_full:"A full life of 100 years",sets_head_bounded:"Bounded set",sets_head_centered:"Centered set",sets_rings_head:"The rings, from the centre outward",light_intro:"Pray for each people group by name. Every row has three columns: add a tally mark in a column each time you do what it asks.",light_col_group:"People group",books:{Matthew:"Matthew",Acts:"Acts",John:"John","1 John":"1 John",Mark:"Mark",Luke:"Luke",Hebrews:"Hebrews",Colossians:"Colossians","1 Corinthians":"1 Corinthians","1 Peter":"1 Peter",Genesis:"Genesis",Joshua:"Joshua",Numbers:"Numbers",Psalm:"Psalm",Haggai:"Haggai",Isaiah:"Isaiah",Habakkuk:"Habakkuk",Ephesians:"Ephesians",Revelation:"Revelation"},christian_per_cell:"Each box ≈ {n} people",howto_title:"How to pray with this list",howto_bless:"Bless them by name. You can pray the blessing God gave Aaron to speak over his people:",howto_bless_more:"More blessings to pray:",howto_know:"Ask Jesus what he wants you to know about this people group.",howto_do:"Ask Jesus what he wants you to do for this people group.",howto_wheel:"At the end of this packet, a prayer wheel guides you through an hour of prayer for these people groups.",pace_title:"Your prayer pace",pace_lead:"Pace matters. Choose how often you will pray for every people group on this list by name.",pace_daily:"Daily",pace_weekly:"Weekly",pace_fortnight:"Every two weeks",pace_monthly:"Monthly",pace_quarter:"Every three months",pace_strongest:"Strongest",pace_healthiest:"Healthiest",pace_healthy:"Healthy",pace_normal:"Normal",pace_slower:"Slower",pace_all:"all {n}, every day",pace_day:"about {n} a day",pace_week:"about {n} a week",pace_month:"about {n} a month",pace_note:"Praying for every group daily is for gifted intercessors who give about three hours a day to prayer. For most of us, weekly is a healthy, steady pace.",blessing_text:"“The LORD bless you, and keep you. The LORD make his face to shine on you, and be gracious to you. The LORD lift up his face towards you, and give you peace.”",blessing_credit:"Numbers 6:24–26 · World English Bible, British Edition (public domain) · ebible.org",howto_bless_col:"Bless them by name, with the blessing above or another from Scripture.",example_title:"Example",example_note:"One mark each time you pray; the fifth mark crosses the four before it.",themes_title:"Prayer themes",themes_intro:"Weave these themes into your five-minute blocks on the prayer wheel. They add range and fresh ideas.",themes:["Bless the nations","Perfect unity","Protection from evil","Hearing God’s voice","True identity in Christ","Deep relational health","The priesthood of believers"],scenes_title:"Prayer scenes",scenes:["Treasure","Mountain","Sea"],scene_refs:[["Haggai 2:7","Matthew 13:44"],["Isaiah 2:2","Matthew 21:21"],["Habakkuk 2:14","Matthew 8:26"]],sets_rings_lede:"Each dot is a people group in this list. Its ring shows how much language and culture it shares with the nearest believers who could reach it: the nearer the cross, the more they share. Ring 1 speaks the same dialect and is the same people; ring 9 shares only a language family, not the culture; past the last ring, believers live nearby but share no language. Read from 9 at the bottom up to 1 at the cross."},Cy="sha384-YAzPNeMU+DF26OIEJrzo+Rr5f3lvoCjhae292a4tvGQZo5fggUQroiBVJCgBDtTF";async function Ty(e){const t=globalThis.crypto&&globalThis.crypto.subtle;if(!t)throw new Error("pinned files can only be checked on a secure page (https, or http://localhost); this page is not one");const n=new Uint8Array(await t.digest("SHA-384",new TextEncoder().encode(e)));let o="";for(const a of n)o+=String.fromCharCode(a);return`sha384-${btoa(o)}`}async function Ly(e,t){let n=null;for(const o of["force-cache","reload"])try{const a=await fetch(e,{cache:o});if(!a.ok){n=new Error(`not served (${a.status})`);continue}const r=await a.text(),s=await Ty(r);if(s===t)return r;n=Object.assign(new Error(`failed its integrity check (expected ${t}, got ${s})`),{integrity:!0})}catch(a){n=a}throw n}const My=((ap=globalThis.document)==null?void 0:ap.baseURI)||void 0,wi=Object.freeze({en:Py}),Br=new Map;function Id(e){if(!e)return Promise.resolve(wi);let t;try{t=new URL(`${e}/lib/packet-strings.json`,My).href}catch{return Promise.resolve(wi)}if(!Br.has(t)){const n=(async()=>JSON.parse(await Ly(t,Cy)))().catch(o=>(console.warn(`[packetStrings] ${t}: ${(o==null?void 0:o.message)||o} — printing in English`),Br.delete(t),wi));Br.set(t,n)}return Br.get(t)}const qo=e=>String(e??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),Od=(e,t,n)=>Promise.resolve().then(e).catch(o=>{try{console.warn(`[posterPrints] the ${n} sheet for ${t} could not be generated, so the stored sheet prints instead: ${(o==null?void 0:o.message)||o}`)}catch{}return""});function Ay(e={}){const t=e.state||Le(null),n=()=>t.value!==null,o=e.label||(b=>(b==null?void 0:b.label)||(b==null?void 0:b.id)||""),a=e.lang||(()=>"en"),r=e.stock||(()=>"poker"),s=(b,v,E=null,C=void 0)=>{const A=()=>String(v).replace(/\{(\w+)\}/g,(le,te)=>E&&E[te]!=null?String(E[te]):le);if(typeof e.t!="function")return A();const K=e.t(b,E||{},C);return K&&K!==b?K:A()},i=(b,v,E,C,A)=>{t.value={label:o(b),kind:v,phase:E,message:C,pct:A}},l=(b,v)=>{i(b,v,"done",s("wall.hud.printOpened","print dialog opened"),100),setTimeout(()=>{t.value=null},900)},c=(b,v,E)=>{i(b,v,"error",xy(E,(C,A)=>s(C,C,A)).slice(0,140),0)};function u(){const b=t.value;t.value=null;try{b&&typeof b.cancel=="function"&&b.cancel()}catch{}}async function d(b,v,E){await hy(b,{onNeedsTap:e.tapToPrint?(A,K)=>{t.value={label:o(v),kind:E,phase:"ready",message:s("wall.hud.readyToPrint","ready to print"),pct:100,action:()=>{t.value=null,A()},cancel:K}}:null,labels:{print:s("wall.hud.printNow","Print"),close:s("buttons.close","Close")}})!=="needs-tap"&&l(v,E)}async function h(b){if(typeof e.records!="function")throw new Error("this wall supplies no records provider");const v=await e.records(b);if(!v||!v.length)throw jr("wall.hud.noRecords","that list has no people groups to print");return v}async function S(b){if(n())return;const v=s("wall.hud.kindPoster","Poster"),E=e.assetsBase?e.assetsBase():null,C=(b==null?void 0:b.id)??b;i(b,v,"fetch",s("wall.hud.fetchingPoster","fetching the poster"),25);try{if(e.sheet){i(b,v,"render",s("wall.hud.generatingPoster","generating the poster"),35);const W=await Od(()=>e.sheet(b,"letter"),C,"letter");if(W){i(b,v,"save",s("wall.hud.openingPrint","opening the print dialog"),80),await d(W,b,v);return}}const K=(e.posterUrl?e.posterUrl(b):null)||(E?`${E}/posters/${C}.webp`:null),le=K?await wy(K):null;if(le){await F(le,b,v);return}if(!E)throw jr("wall.hud.noPoster","no poster is available for this list");i(b,v,"render",s("wall.hud.generatingPoster","generating the poster"),45);const te=await ky(`${E}/posters/${C}.html`);if(!te.html)throw jr("wall.hud.posterNotFound","poster not found ({status})",{status:te.status});const{rasterPoster:G,looksRendered:ce}=await Kt(async()=>{const{rasterPoster:W,looksRendered:ie}=await Promise.resolve().then(()=>Oy);return{rasterPoster:W,looksRendered:ie}},void 0),H=await G(te.html,{scale:2});if(!await ce(H))throw jr("wall.hud.posterBlank","the generated poster came out blank");await F(H,b,v)}catch(A){c(b,v,A)}}async function F(b,v,E){i(v,E,"save",s("wall.hud.openingPrint","opening the print dialog"),80);const C=URL.createObjectURL(b),A=`${e.downloadPrefix||"doxa"} — ${o(v)}`;await d('<!DOCTYPE html><html><head><meta charset="utf-8"><title>'+qo(A)+`</title><style>@page{size:letter portrait;margin:12mm}html,body{margin:0;height:100%;background:#fff}body{display:flex;align-items:center;justify-content:center}img{max-width:100%;max-height:100vh;object-fit:contain;display:block}@media print{body{height:auto}img{width:auto;max-width:100%;max-height:100%;object-fit:contain}}</style></head><body><img src="${C}" alt="${qo(o(v))}"></body></html>`,v,E)}async function y(b,{columns:v,title:E}={}){if(n())return;const C=s("wall.hud.kindList","List");i(b,C,"fetch",s("wall.hud.fetchingRecords","fetching records"),30);try{const A=await h(b),K=v||[{key:"name",head:"Name",cls:"c-name"},{key:"country_code_label",head:"Country"},{key:"population",head:"People",cls:"c-num",num:!0},{key:"religion_label",head:"Religion"}],le=K.map(ce=>`<th>${qo(ce.head)}</th>`).join("")+'<th class="c-pray">✓</th>',te=A.map(ce=>"<tr>"+K.map(H=>{const W=ce[H.key]??ce[`${H.key}_label`]??"—",ie=H.num&&Number.isFinite(Number(W))?Number(W).toLocaleString(a()):W;return`<td${H.cls?` class="${H.cls}"`:""}>${qo(ie)}</td>`}).join("")+'<td class="c-pray">□</td></tr>').join("");i(b,C,"render",s("wall.hud.layingOutRows","laying out {n} rows",{n:A.length},A.length),70);const G=E||`${o(b)} — ${A.length}`;await d(`<!DOCTYPE html><html><head><meta charset="utf-8"><title>${qo(G)}</title><style>@page{size:letter portrait;margin:14mm 12mm}html,body{margin:0;background:#fff;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.hd{margin-bottom:14px}.hd h1{margin:0 0 3px;font-size:18px}.hd p{margin:0;font-size:11px;color:#5b6672}table{width:100%;border-collapse:collapse;font-size:11px}thead th{text-align:left;border-bottom:2px solid #0f1419;padding:5px 6px;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em}tbody td{padding:5px 6px;border-bottom:1px solid #e3e6ea}.c-name{font-weight:600}.c-num{font-variant-numeric:tabular-nums}.c-pray{width:26px;text-align:center;font-size:13px}tbody tr{break-inside:avoid}</style></head><body><div class="hd"><h1>${qo(G)}</h1><p>${A.length} entries · pray for them by name</p></div><table><thead><tr>${le}</tr></thead><tbody>${te}</tbody></table></body></html>`,b,C)}catch(A){c(b,C,A)}}async function L(b){if(n())return;const v=s("wall.hud.kindCardDeck","Card Deck");i(b,v,"fetch",s("wall.hud.fetchingRecords","fetching records"),30);try{const E=await h(b),[{createCardRenderer:C},A]=await Promise.all([Kt(()=>Promise.resolve().then(()=>jy),void 0),e.strings?e.strings():Id(e.assetsBase?e.assetsBase():null)]);i(b,v,"render",s("wall.hud.layingOutCards","laying out {n} cards",{n:E.length},E.length),70);const K=C({strings:A,lang:a(),stock:r()});await d(K.buildDeck(b,E),b,v)}catch(E){c(b,v,E)}}function N(b,v,E=null){return v.liftMap(b,{labelFor:E})}async function $(){if(!e.iso3Names)return null;try{const[b,{makeCountryLabelFor:v},E]=await Promise.all([Promise.resolve().then(()=>e.iso3Names()),Kt(()=>Promise.resolve().then(()=>Uy),void 0),Kt(()=>Promise.resolve().then(()=>Vd),void 0).then(C=>C.countryName||C.default)]);return v({iso3Name:b,countryName:E,lang:a()})}catch{return null}}async function w(b,v,E){for(const C of E.mapSheetFiles(v))try{const A=await fetch(`${b}/posters/${C}`,{cache:"force-cache"});if(!A.ok)continue;const K=await A.text();if(E.liftMap(K))return K}catch{}return""}async function k(b,{mapSvg:v="",funnel:E=null,variant:C="full"}={}){if(n())return;const A=s("wall.hud.kindPacket","Prayer Packet");i(b,A,"fetch",s("wall.hud.fetchingGroups","fetching people groups"),30);try{const K=await h(b),[{createPacketRenderer:le},{buildPacketSets:te},{evangelicalShareFor:G},ce,H,W,ie]=await Promise.all([Kt(()=>Promise.resolve().then(()=>c1),void 0),Kt(()=>Promise.resolve().then(()=>d1),void 0),Kt(()=>Promise.resolve().then(()=>g1),void 0),e.strings?e.strings():Id(e.assetsBase?e.assetsBase():null),e.christian?e.christian():Promise.resolve(null),e.christian?Promise.resolve(null):Kt(()=>Promise.resolve().then(()=>h1),void 0).then(pe=>pe.default||pe).catch(()=>null),e.sets?Promise.resolve().then(()=>e.sets()).catch(()=>null):Promise.resolve(null)]),J=H||G(K,W),M=await Promise.all([Kt(()=>Promise.resolve().then(()=>_1),void 0).then(pe=>pe.describeGroup).catch(()=>null),Kt(()=>Promise.resolve().then(()=>Vd),void 0).then(pe=>pe.countryName||pe.default).catch(()=>null)]).then(([pe,ve])=>pe?Ne=>pe(Ne,a(),{strings:ce,countryName:ve||void 0}):null),q=le({strings:ce,lang:a(),describe:M}),m=new Map(K.filter(pe=>pe.image_url).map(pe=>[pe.slug,pe.image_url]));i(b,A,"render",s("wall.hud.printingGroups","printing {n} people groups",{n:K.length},K.length),70),E||(E=await Kt(()=>Promise.resolve().then(()=>Rb),void 0).then(pe=>{const ve=pe.default||pe;return ve&&Array.isArray(ve.steps)&&ve.steps.length?{steps:ve.steps}:null}).catch(()=>null));const j=b&&"mapId"in b?b.mapId:b==null?void 0:b.id;if(!v&&e.sheet&&j){const pe=j===(b==null?void 0:b.id)?b:{...b,id:j},ve=await Od(()=>e.sheet(pe,"packet"),j,"packet");ve&&(v=q.liftMap(ve,{labelFor:await $()}))}if(!v&&e.mapImage){const pe=await Promise.resolve().then(()=>e.mapImage(b)).catch(()=>null);v=pe?q.mapFromImage(pe):""}if(!v&&e.assetsBase&&j){const[pe,ve]=await Promise.all([w(e.assetsBase(),j,q),$()]);v=N(pe,q,ve)}const me=ie?te(K,ie):null;await d(q.buildPacket(b,K,m,v,E,J,C,me),b,A)}catch(K){c(b,A,K)}}return{exportState:t,dismiss:u,printPoster:S,printList:y,printCardDeck:L,printPacket:k}}const Ey=Object.freeze(Object.defineProperty({__proto__:null,usePosterPrints:Ay},Symbol.toStringTag,{value:"Module"}));function zd(e){const t=(e.match(/<svg[\s\S]*?<\/svg>/)||[])[0];if(!t)throw new Error("poster HTML contains no <svg>");const o=((e.match(/<style>([\s\S]*?)<\/style>/)||[])[1]||"").replace(/<\/style>/gi,"");return t.replace(/<svg([^>]*)>/,`<svg$1><style>${o}</style>`)}const Ny=/<image\b[^>]*?\bhref="(?!data:)[^"]*"[^>]*?\/>/g;function Fy(e){return/<image\b[^>]*?\bhref="(?!data:)/.test(e||"")}function Dd(e){return e.replace(Ny,"")}async function Ry(e,{scale:t=2,type:n="image/webp",quality:o=.85}={}){const a=Dd(zd(e)),r=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(a)}`,s=new Image;s.src=r,await s.decode();const i=Math.round(s.naturalWidth*t),l=Math.round(s.naturalHeight*t),c=document.createElement("canvas");c.width=i,c.height=l;const u=c.getContext("2d");u.fillStyle="#ffffff",u.fillRect(0,0,i,l),u.drawImage(s,0,0,i,l);const d=await new Promise(h=>c.toBlob(h,n,o));if(!d)throw new Error("canvas.toBlob returned nothing");return d}async function Iy(e){const t=await createImageBitmap(e),n=document.createElement("canvas");n.width=40,n.height=40;const o=n.getContext("2d");o.drawImage(t,t.width*.4,t.height*.45,40,40,0,0,40,40);const a=o.getImageData(0,0,40,40).data;let r=0;for(let s=0;s<a.length;s+=4)r+=(a[s]+a[s+1]+a[s+2])/3;return r/(a.length/4)>40}const Oy=Object.freeze(Object.defineProperty({__proto__:null,hasExternalImages:Fy,inlineSvg:zd,looksRendered:Iy,rasterPoster:Ry,stripExternalImages:Dd},Symbol.toStringTag,{value:"Module"})),Ea=new Uint8Array(512),ki=new Uint8Array(256);(()=>{let e=1;for(let t=0;t<255;t++)Ea[t]=e,ki[e]=t,e<<=1,e&256&&(e^=285);for(let t=255;t<512;t++)Ea[t]=Ea[t-255]})();const Gd=(e,t)=>e===0||t===0?0:Ea[ki[e]+ki[t]];function zy(e,t){let n=[1];for(let a=0;a<t;a++){const r=new Array(n.length+1).fill(0);for(let s=0;s<n.length;s++)r[s]^=n[s],r[s+1]^=Gd(n[s],Ea[a]);n=r}const o=new Uint8Array(t);for(const a of e){const r=a^o[0];o.copyWithin(0,1),o[t-1]=0;for(let s=0;s<t;s++)o[s]^=Gd(n[s+1],r)}return o}const Ur=[[1,26,10,1],[2,44,16,1],[3,70,26,1],[4,100,18,2],[5,134,24,2],[6,172,16,4]],Hd={1:[],2:[6,18],3:[6,22],4:[6,26],5:[6,30],6:[6,34]};function Dy(e){const t=new TextEncoder().encode(e);let n=null;for(const G of Ur){const[,ce,H,W]=G,ie=ce-H*W;if(t.length+2+1<=ie){n=G;break}}if(!n)throw new Error(`qr: ${t.length} bytes exceeds this encoder's range (max ~${Ur.at(-1)[1]-Ur.at(-1)[2]*Ur.at(-1)[3]-3} bytes). It is scoped to short URLs on purpose.`);const[o,a,r,s]=n,i=a-r*s,l=[],c=(G,ce)=>{for(let H=ce-1;H>=0;H--)l.push(G>>H&1)};c(4,4),c(t.length,8);for(const G of t)c(G,8);for(let G=0;G<4&&l.length<i*8;G++)l.push(0);for(;l.length%8;)l.push(0);const u=[];for(let G=0;G<l.length;G+=8)u.push(l.slice(G,G+8).reduce((ce,H)=>ce<<1|H,0));const d=[236,17];for(let G=0;u.length<i;G++)u.push(d[G%2]);const h=Math.floor(i/s),S=[],F=[];for(let G=0;G<s;G++){const ce=u.slice(G*h,(G+1)*h);S.push(ce),F.push(zy(ce,r))}const y=[];for(let G=0;G<h;G++)for(const ce of S)y.push(ce[G]);for(let G=0;G<r;G++)for(const ce of F)y.push(ce[G]);const L=o*4+17,N=new Int8Array(L*L).fill(-1),$=(G,ce)=>G*L+ce,w=(G,ce,H)=>{G>=0&&ce>=0&&G<L&&ce<L&&(N[$(G,ce)]=H)},k=(G,ce)=>{for(let H=-1;H<=7;H++)for(let W=-1;W<=7;W++){const ie=H===0||H===6||W===0||W===6,J=H>=2&&H<=4&&W>=2&&W<=4;w(G+H,ce+W,H>=0&&H<=6&&W>=0&&W<=6&&(ie||J)?1:0)}};k(0,0),k(0,L-7),k(L-7,0);for(let G=8;G<L-8;G++){const ce=G%2===0?1:0;N[$(6,G)]===-1&&w(6,G,ce),N[$(G,6)]===-1&&w(G,6,ce)}for(const G of Hd[o]||[])for(const ce of Hd[o]||[])if(N[$(G,ce)]===-1)for(let H=-2;H<=2;H++)for(let W=-2;W<=2;W++)w(G+H,ce+W,Math.abs(H)===2||Math.abs(W)===2||H===0&&W===0?1:0);w(L-8,8,1);const b=[];for(let G=0;G<=8;G++)G!==6&&b.push([8,G],[G,8]);for(let G=0;G<8;G++)b.push([8,L-1-G],[L-1-G,8]);for(const[G,ce]of b)N[$(G,ce)]===-1&&(N[$(G,ce)]=-2);let v=0,E=!0;for(let G=L-1;G>0;G-=2){G===6&&G--;for(let ce=0;ce<L;ce++){const H=E?L-1-ce:ce;for(const W of[G,G-1]){if(N[$(H,W)]!==-1)continue;const ie=v<y.length*8?y[v>>3]>>7-(v&7)&1:0;v++,N[$(H,W)]=ie^((H+W)%2===0?1:0)}}E=!E}let C=0,A=C;for(let G=0;G<10;G++)A=A<<1^(A>>9&1)*1335;const K=(C<<10|A)^21522,le=G=>K>>G&1;for(let G=0;G<=5;G++)w(8,G,le(G)),w(L-1-G,8,le(G));w(8,7,le(6)),w(8,8,le(7)),w(7,8,le(8));for(let G=9;G<=14;G++)w(8,L-15+G,le(G)),w(14-G,8,le(G));w(L-8,8,1);const te=new Uint8Array(L*L);for(let G=0;G<N.length;G++)te[G]=N[G]===1?1:0;return{size:L,modules:te}}function Gy(e,{size:t=120,margin:n=2,dark:o="#14110d"}={}){const{size:a,modules:r}=Dy(e),s=a+n*2;let i="";for(let l=0;l<a;l++)for(let c=0;c<a;c++)r[l*a+c]&&(i+=`M${c+n} ${l+n}h1v1h-1z`);return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${s} ${s}" width="${t}" height="${t}" shape-rendering="crispEdges" role="img" aria-label="QR code"><rect width="${s}" height="${s}" fill="#fff"/><path d="${i}" fill="${o}"/></svg>`}const Si={poker:{w:2.5,h:3.5,label:"Card 2.5 × 3.5 in",noun:"card"},pokerLandscape:{w:3.5,h:2.5,label:"Card 3.5 × 2.5 in (landscape)",noun:"card",side:!0},postcard:{w:4,h:6,label:"Postcard 4 × 6 in",noun:"postcard"},postcardLandscape:{w:6,h:4,label:"Postcard 6 × 4 in (landscape)",noun:"postcard",side:!0},a6:{w:4.13,h:5.83,label:"A6 105 × 148 mm"}},Wr=96;function Hy({strings:e,lang:t="en",stock:n="poker",siteBase:o="https://pray.doxa.life"}={}){const a=e.en,r=e[t]||{},s=C=>r[C]!==void 0?r[C]:a[C],i=C=>String(C??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),l=(C,A)=>{const K=C[`${A}_label`];if(K)return String(K);const le=C[A];return le&&typeof le=="object"?String(le.label??le.value??""):le==null?"":String(le)},c=C=>Number.isFinite(Number(C))?Number(C).toLocaleString(t):"—",u=Si[n]||Si.poker,d=Math.round(u.w*Wr),h=Math.round(u.h*Wr),S=u.side===!0,F=180,y=Math.round(200/F*Wr),L=Math.round(250/F*Wr),N=Math.round(d*.42),$=Math.max(Math.round(h*.46),L+24),w=C=>t==="en"?`${o}/${C}`:`${o}/${t}/${C}`;function k(){return`
|
||
/* THE PAGE IS THE CARD. Explicit inches — a named size silently falls back to
|
||
letter in Chromium, which is exactly the bug this renderer exists to fix. */
|
||
@page{size:${u.w}in ${u.h}in;margin:0}
|
||
html,body{margin:0;padding:0;background:#6f6f6f;
|
||
-webkit-print-color-adjust:exact;print-color-adjust:exact}
|
||
.card{position:relative;width:${d}px;height:${h}px;overflow:hidden;
|
||
background:#f7f4ec;color:#1b1a17;
|
||
font-family:Georgia,'Palatino Linotype',serif;
|
||
page-break-after:always;break-after:page}
|
||
.card:last-child{page-break-after:auto;break-after:auto}
|
||
|
||
/* THE PHOTO. A framed portrait at its own 4:5 shape, sized from its pixels (PHOTO_PPI above), on a
|
||
warm band: across the top on a portrait card with the name beside it, down the left on a landscape
|
||
card with the name below it. A face is what makes this a prayer card rather than a data tile, and
|
||
a face printed from too few pixels is blurred, which is no way to show someone. */
|
||
.band{position:absolute;left:0;top:0;
|
||
width:${S?N:d}px;height:${S?h:$}px;
|
||
background:linear-gradient(160deg,#e6dfcd,#cfc6ad)}
|
||
.ph,.ph-none{position:absolute;display:block;box-sizing:border-box;
|
||
left:${S?Math.round((N-y)/2):12}px;
|
||
top:${S?12:Math.round(($-L)/2)}px;
|
||
width:${y}px;height:${L}px;border:3px solid #fff;border-radius:2px;
|
||
box-shadow:0 1px 4px rgba(0,0,0,.25)}
|
||
.ph{object-fit:cover;background:#ddd6c6}
|
||
.ph-none{background:#efe9da;display:flex;
|
||
align-items:center;justify-content:center;text-align:center;padding:6px;
|
||
font:italic 10px Georgia,serif;color:#8c8170}
|
||
|
||
.nm{position:absolute;display:flex;align-items:center;
|
||
${S?`left:10px;width:${N-20}px;top:${12+L+6}px;bottom:10px;align-items:flex-start;justify-content:center;text-align:center;`:`left:${12+y+10}px;right:8px;top:0;height:${$}px;`}
|
||
font:700 ${S?14:17}px Georgia,serif;color:#1b1a17;line-height:1.1;overflow:hidden;
|
||
overflow-wrap:anywhere}
|
||
/* Steps by the LONGEST WORD as well as the length: the name sits in a narrow box beside the photo,
|
||
and one unbreakable word (the dataset has 16-letter ones, e.g. Pagativeshagallu) would overflow it
|
||
sideways. overflow-wrap:anywhere is the last resort, so a name is never cut off without a sign. */
|
||
.nm.long{font-size:${S?11.5:14}px}
|
||
.nm.xlong{font-size:${S?10.5:11}px}
|
||
/* A HYPHEN ONLY WHERE A WORD CANNOT FIT. hyphens:auto on every name would let the browser split ANY
|
||
word at a line end ("Northern Conchu-/cos"), and a people group's name split mid-word is worse than
|
||
the problem it solves. So it applies only to names holding a 14+ letter word (12 of 2,107), and the
|
||
limit keeps short words whole: the only multi-word ones are "Deaf <X>", and Deaf is never split. */
|
||
.nm.hy{-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:10 4 4}
|
||
|
||
.body{position:absolute;right:14px;overflow:hidden;
|
||
left:${S?N+12:14}px;
|
||
top:${S?12:$+8}px;
|
||
bottom:${Math.round(S?h*.3:h*.2)}px}
|
||
.row{display:flex;gap:6px;font:400 9.5px Georgia,serif;line-height:1.5;margin-bottom:1px}
|
||
.k{color:#8c8170;min-width:52px;flex:0 0 auto}
|
||
.v{color:#3b3a34;font-weight:600}
|
||
.rel{margin-top:5px;font:italic 8.5px Georgia,serif;color:#6d665a;line-height:1.35}
|
||
|
||
/* FOOTER: the QR is the card's whole reason to survive the day it is handed
|
||
over — it carries the reader to the live profile in their own language. */
|
||
.ft{position:absolute;right:14px;bottom:10px;
|
||
left:${S?N+12:14}px;
|
||
display:flex;align-items:flex-end;gap:8px}
|
||
.qr{flex:0 0 auto;line-height:0}
|
||
.ftx{flex:1 1 auto;min-width:0}
|
||
.cta{font:600 8px Georgia,serif;color:#7a3b2e;letter-spacing:.04em;
|
||
text-transform:uppercase}
|
||
.url{font:400 7px Georgia,serif;color:#a89f8c;word-break:break-all;margin-top:1px}
|
||
.brand{position:absolute;right:14px;bottom:10px;
|
||
font:400 7px Georgia,serif;color:#b9ae99;text-align:right}`}function b(C){const A=Math.max(0,...String(C).split(/[\s,()/-]+/).map(K=>K.length));return A>=14?" xlong hy":C.length>28?" xlong":A>=11||C.length>16?" long":""}function v(C){const A=String(C.name||C.slug||""),K=C.image_url?`<img class="ph" src="${i(C.image_url)}" alt="">`:`<div class="ph-none">${i(s("no_photo"))}</div>`,le=C.religion&&typeof C.religion=="object"&&C.religion.description||C.religion_description||"",te=le?`<div class="rel">${i(String(le).slice(0,170))}</div>`:"",G=w(C.slug),ce=[[s("card_country"),l(C,"country_code")],[s("card_population"),`${c(C.population)} ${s("people_suffix")}`],[s("card_language"),l(C,"primary_language")],[s("card_religion"),l(C,"religion")]].filter(([,H])=>H&&String(H).trim()&&String(H)!=="—").map(([H,W])=>`<div class="row"><div class="k">${i(H)}</div><div class="v">${i(W)}</div></div>`).join("");return`<div class="card"><div class="band"></div>${K}<div class="nm${b(A)}">${i(A)}</div><div class="body">${ce}${te}</div><div class="ft"><div class="qr">${Gy(G,{size:54,margin:1})}</div><div class="ftx"><div class="cta">${i(s("card_cta"))}</div><div class="url">${i(G.replace(/^https?:\/\//,""))}</div></div></div></div>`}function E(C,A){const K=A.map(v).join("");return`<!DOCTYPE html><html lang="${i(t)}"><head><meta charset="utf-8">
|
||
<title>${i(C.label||C.id)} — ${i(s("deck_title"))}</title>
|
||
<style>${k()}</style></head><body>${K}</body></html>`}return{buildDeck:E,card:v,css:k,profileUrl:w,W:d,H:h,stock:u}}const jy=Object.freeze(Object.defineProperty({__proto__:null,STOCK:Si,createCardRenderer:Hy},Symbol.toStringTag,{value:"Module"}));function By({iso3Name:e,countryName:t,lang:n}={}){const o=String(n||"en").split("-")[0].toLowerCase();if(o==="en"||!e||typeof t!="function")return null;const a=s=>String(s).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),r=new Map;for(const[s,i]of Object.entries(e))r.set(a(String(i).toUpperCase()),s);return s=>{const i=r.get(String(s));if(!i)return null;const l=t(i,o);return!l||l===i?null:a(l.toLocaleUpperCase(o))}}const Uy=Object.freeze(Object.defineProperty({__proto__:null,makeCountryLabelFor:By},Symbol.toStringTag,{value:"Module"})),Wy={map:{AFG:"AF",ALB:"AL",DZA:"DZ",ASM:"AS",AND:"AD",AGO:"AO",AIA:"AI",ATG:"AG",ARG:"AR",ARM:"AM",ABW:"AW",AUS:"AU",AUT:"AT",AZE:"AZ",BHR:"BH",BGD:"BD",BRB:"BB",BLR:"BY",BEL:"BE",BLZ:"BZ",BEN:"BJ",BMU:"BM",BTN:"BT",BOL:"BO",BES:"BQ",BIH:"BA",BWA:"BW",BRA:"BR",BRN:"BN",BGR:"BG",BFA:"BF",BDI:"BI",CPV:"CV",KHM:"KH",CMR:"CM",CAN:"CA",CYM:"KY",CAF:"CF",TCD:"TD",CHL:"CL",CHN:"CN",CXR:"CX",CCK:"CC",COL:"CO",COM:"KM",COK:"CK",CRI:"CR",CIV:"CI",HRV:"HR",CUB:"CU",CUW:"CW",CYP:"CY",DNK:"DK",DJI:"DJ",DMA:"DM",DOM:"DO",ECU:"EC",EGY:"EG",SLV:"SV",GNQ:"GQ",ERI:"ER",EST:"EE",SWZ:"SZ",ETH:"ET",FLK:"FK",FRO:"FO",FJI:"FJ",FIN:"FI",FRA:"FR",GUF:"GF",PYF:"PF",GAB:"GA",GEO:"GE",DEU:"DE",GHA:"GH",GIB:"GI",GRC:"GR",GRL:"GL",GRD:"GD",GLP:"GP",GUM:"GU",GTM:"GT",GGY:"GG",GIN:"GN",GNB:"GW",GUY:"GY",HTI:"HT",HND:"HN",HKG:"HK",HUN:"HU",ISL:"IS",IND:"IN",IDN:"ID",IRN:"IR",IRQ:"IQ",IRL:"IE",IMN:"IM",ISR:"IL",ITA:"IT",JAM:"JM",JPN:"JP",JEY:"JE",JOR:"JO",KAZ:"KZ",KEN:"KE",KIR:"KI",KOS:"XK",KWT:"KW",KGZ:"KG",LAO:"LA",LVA:"LV",LBN:"LB",LSO:"LS",LBR:"LR",LBY:"LY",LIE:"LI",LTU:"LT",LUX:"LU",MAC:"MO",MDG:"MG",MWI:"MW",MYS:"MY",MLI:"ML",MLT:"MT",MTQ:"MQ",MRT:"MR",MUS:"MU",MYT:"YT",MEX:"MX",MDA:"MD",MCO:"MC",MNG:"MN",MNE:"ME",MSR:"MS",MAR:"MA",MOZ:"MZ",MMR:"MM",NAM:"NA",NRU:"NR",NPL:"NP",NCL:"NC",NZL:"NZ",NIC:"NI",NER:"NE",NGA:"NG",NIU:"NU",NFK:"NF",PRK:"KP",MKD:"MK",NOR:"NO",OMN:"OM",PAK:"PK",PLW:"PW",PSE:"PS",PAN:"PA",PNG:"PG",PRY:"PY",PER:"PE",POL:"PL",PRT:"PT",PRI:"PR",QAT:"QA",REU:"RE",ROU:"RO",RWA:"RW",BLM:"BL",SHN:"SH",KNA:"KN",LCA:"LC",MAF:"MF",SPM:"PM",VCT:"VC",WSM:"WS",SMR:"SM",STP:"ST",SAU:"SA",SEN:"SN",SRB:"RS",SYC:"SC",SLE:"SL",SGP:"SG",SXM:"SX",SVK:"SK",SVN:"SI",SOM:"SO",ZAF:"ZA",KOR:"KR",SSD:"SS",ESP:"ES",LKA:"LK",SDN:"SD",SUR:"SR",SJM:"SJ",SWE:"SE",CHE:"CH",SYR:"SY",TWN:"TW",TJK:"TJ",TZA:"TZ",THA:"TH",BHS:"BS",VGB:"VG",CZE:"CZ",COD:"CD",FSM:"FM",GMB:"GM",MDV:"MV",MHL:"MH",NLD:"NL",MNP:"MP",PHL:"PH",PCN:"PN",COG:"CG",RUS:"RU",SLB:"SB",TCA:"TC",ARE:"AE",GBR:"GB",USA:"US",VIR:"VI",TLS:"TL",TGO:"TG",TKL:"TK",TON:"TO",TTO:"TT",TUN:"TN",TUR:"TR",TKM:"TM",TUV:"TV",UGA:"UG",UKR:"UA",URY:"UY",UZB:"UZ",VUT:"VU",VAT:"VA",VEN:"VE",VNM:"VN",WLF:"WF",ESH:"EH",YEM:"YE",ZMB:"ZM",ZWE:"ZW"}},jd=[{value:"AFG",label:"Afghanistan"},{value:"ALB",label:"Albania"},{value:"DZA",label:"Algeria"},{value:"ASM",label:"American Samoa"},{value:"AND",label:"Andorra"},{value:"AGO",label:"Angola"},{value:"AIA",label:"Anguilla"},{value:"ATG",label:"Antigua and Barbuda"},{value:"ARG",label:"Argentina"},{value:"ARM",label:"Armenia"},{value:"ABW",label:"Aruba"},{value:"AUS",label:"Australia"},{value:"AUT",label:"Austria"},{value:"AZE",label:"Azerbaijan"},{value:"BHR",label:"Bahrain"},{value:"BGD",label:"Bangladesh"},{value:"BRB",label:"Barbados"},{value:"BLR",label:"Belarus"},{value:"BEL",label:"Belgium"},{value:"BLZ",label:"Belize"},{value:"BEN",label:"Benin"},{value:"BMU",label:"Bermuda"},{value:"BTN",label:"Bhutan"},{value:"BOL",label:"Bolivia"},{value:"BES",label:"Bonaire, Sint Eustatius, and Saba"},{value:"BIH",label:"Bosnia and Herzegovina"},{value:"BWA",label:"Botswana"},{value:"BRA",label:"Brazil"},{value:"BRN",label:"Brunei"},{value:"BGR",label:"Bulgaria"},{value:"BFA",label:"Burkina Faso"},{value:"BDI",label:"Burundi"},{value:"CPV",label:"Cabo Verde"},{value:"KHM",label:"Cambodia"},{value:"CMR",label:"Cameroon"},{value:"CAN",label:"Canada"},{value:"CYM",label:"Cayman Islands"},{value:"CAF",label:"Central African Republic"},{value:"TCD",label:"Chad"},{value:"CHL",label:"Chile"},{value:"CHN",label:"China"},{value:"CXR",label:"Christmas Island"},{value:"CCK",label:"Cocos (Keeling) Islands"},{value:"COL",label:"Colombia"},{value:"COM",label:"Comoros"},{value:"COK",label:"Cook Islands"},{value:"CRI",label:"Costa Rica"},{value:"CIV",label:"Côte d’Ivoire"},{value:"HRV",label:"Croatia"},{value:"CUB",label:"Cuba"},{value:"CUW",label:"Curaçao"},{value:"CYP",label:"Cyprus"},{value:"DNK",label:"Denmark"},{value:"DJI",label:"Djibouti"},{value:"DMA",label:"Dominica"},{value:"DOM",label:"Dominican Republic"},{value:"ECU",label:"Ecuador"},{value:"EGY",label:"Egypt"},{value:"SLV",label:"El Salvador"},{value:"GNQ",label:"Equatorial Guinea"},{value:"ERI",label:"Eritrea"},{value:"EST",label:"Estonia"},{value:"SWZ",label:"Eswatini"},{value:"ETH",label:"Ethiopia"},{value:"FLK",label:"Falkland Islands (Islas Malvinas)"},{value:"FRO",label:"Faroe Islands"},{value:"FJI",label:"Fiji"},{value:"FIN",label:"Finland"},{value:"FRA",label:"France"},{value:"GUF",label:"French Guiana"},{value:"PYF",label:"French Polynesia"},{value:"GAB",label:"Gabon"},{value:"GEO",label:"Georgia"},{value:"DEU",label:"Germany"},{value:"GHA",label:"Ghana"},{value:"GIB",label:"Gibraltar"},{value:"GRC",label:"Greece"},{value:"GRL",label:"Greenland"},{value:"GRD",label:"Grenada"},{value:"GLP",label:"Guadeloupe"},{value:"GUM",label:"Guam"},{value:"GTM",label:"Guatemala"},{value:"GGY",label:"Guernsey"},{value:"GIN",label:"Guinea"},{value:"GNB",label:"Guinea-Bissau"},{value:"GUY",label:"Guyana"},{value:"HTI",label:"Haiti"},{value:"HND",label:"Honduras"},{value:"HKG",label:"Hong Kong"},{value:"HUN",label:"Hungary"},{value:"ISL",label:"Iceland"},{value:"IND",label:"India"},{value:"IDN",label:"Indonesia"},{value:"IRN",label:"Iran"},{value:"IRQ",label:"Iraq"},{value:"IRL",label:"Ireland"},{value:"IMN",label:"Isle of Man"},{value:"ISR",label:"Israel"},{value:"ITA",label:"Italy"},{value:"JAM",label:"Jamaica"},{value:"JPN",label:"Japan"},{value:"JEY",label:"Jersey"},{value:"JOR",label:"Jordan"},{value:"KAZ",label:"Kazakhstan"},{value:"KEN",label:"Kenya"},{value:"KIR",label:"Kiribati"},{value:"KOS",label:"Kosovo"},{value:"KWT",label:"Kuwait"},{value:"KGZ",label:"Kyrgyzstan"},{value:"LAO",label:"Laos"},{value:"LVA",label:"Latvia"},{value:"LBN",label:"Lebanon"},{value:"LSO",label:"Lesotho"},{value:"LBR",label:"Liberia"},{value:"LBY",label:"Libya"},{value:"LIE",label:"Liechtenstein"},{value:"LTU",label:"Lithuania"},{value:"LUX",label:"Luxembourg"},{value:"MAC",label:"Macao"},{value:"MDG",label:"Madagascar"},{value:"MWI",label:"Malawi"},{value:"MYS",label:"Malaysia"},{value:"MLI",label:"Mali"},{value:"MLT",label:"Malta"},{value:"MTQ",label:"Martinique"},{value:"MRT",label:"Mauritania"},{value:"MUS",label:"Mauritius"},{value:"MYT",label:"Mayotte"},{value:"MEX",label:"Mexico"},{value:"MDA",label:"Moldova"},{value:"MCO",label:"Monaco"},{value:"MNG",label:"Mongolia"},{value:"MNE",label:"Montenegro"},{value:"MSR",label:"Montserrat"},{value:"MAR",label:"Morocco"},{value:"MOZ",label:"Mozambique"},{value:"MMR",label:"Myanmar"},{value:"NAM",label:"Namibia"},{value:"NRU",label:"Nauru"},{value:"NPL",label:"Nepal"},{value:"NCL",label:"New Caledonia"},{value:"NZL",label:"New Zealand"},{value:"NIC",label:"Nicaragua"},{value:"NER",label:"Niger"},{value:"NGA",label:"Nigeria"},{value:"NIU",label:"Niue"},{value:"NFK",label:"Norfolk Island"},{value:"PRK",label:"North Korea"},{value:"MKD",label:"North Macedonia"},{value:"NOR",label:"Norway"},{value:"OMN",label:"Oman"},{value:"PAK",label:"Pakistan"},{value:"PLW",label:"Palau"},{value:"PSE",label:"Palestine"},{value:"PAN",label:"Panama"},{value:"PNG",label:"Papua New Guinea"},{value:"PRY",label:"Paraguay"},{value:"PER",label:"Peru"},{value:"POL",label:"Poland"},{value:"PRT",label:"Portugal"},{value:"PRI",label:"Puerto Rico"},{value:"QAT",label:"Qatar"},{value:"REU",label:"Reunion"},{value:"ROU",label:"Romania"},{value:"RWA",label:"Rwanda"},{value:"BLM",label:"Saint Barthelemy"},{value:"SHN",label:"Saint Helena, Ascension, and Tristan da Cunha"},{value:"KNA",label:"Saint Kitts and Nevis"},{value:"LCA",label:"Saint Lucia"},{value:"MAF",label:"Saint Martin"},{value:"SPM",label:"Saint Pierre and Miquelon"},{value:"VCT",label:"Saint Vincent and the Grenadines"},{value:"WSM",label:"Samoa"},{value:"SMR",label:"San Marino"},{value:"STP",label:"Sao Tome and Principe"},{value:"SAU",label:"Saudi Arabia"},{value:"SEN",label:"Senegal"},{value:"SRB",label:"Serbia"},{value:"SYC",label:"Seychelles"},{value:"SLE",label:"Sierra Leone"},{value:"SGP",label:"Singapore"},{value:"SXM",label:"Sint Maarten"},{value:"SVK",label:"Slovakia"},{value:"SVN",label:"Slovenia"},{value:"SOM",label:"Somalia"},{value:"ZAF",label:"South Africa"},{value:"KOR",label:"South Korea"},{value:"SSD",label:"South Sudan"},{value:"ESP",label:"Spain"},{value:"LKA",label:"Sri Lanka"},{value:"SDN",label:"Sudan"},{value:"SUR",label:"Suriname"},{value:"SJM",label:"Svalbard"},{value:"SWE",label:"Sweden"},{value:"CHE",label:"Switzerland"},{value:"SYR",label:"Syria"},{value:"TWN",label:"Taiwan"},{value:"TJK",label:"Tajikistan"},{value:"TZA",label:"Tanzania"},{value:"THA",label:"Thailand"},{value:"BHS",label:"The Bahamas"},{value:"VGB",label:"the British Virgin Islands"},{value:"CZE",label:"the Czech Republic"},{value:"COD",label:"the Democratic Republic of the Congo"},{value:"FSM",label:"the Federated States of Micronesia"},{value:"GMB",label:"The Gambia"},{value:"MDV",label:"the Maldives"},{value:"MHL",label:"the Marshall Islands"},{value:"NLD",label:"the Netherlands"},{value:"MNP",label:"the Northern Mariana Islands"},{value:"PHL",label:"the Philippines"},{value:"PCN",label:"the Pitcairn Islands"},{value:"COG",label:"the Republic of the Congo"},{value:"RUS",label:"the Russian Federation"},{value:"SLB",label:"the Solomon Islands"},{value:"TCA",label:"the Turks and Caicos Islands"},{value:"ARE",label:"the United Arab Emirates"},{value:"GBR",label:"the United Kingdom"},{value:"USA",label:"the United States"},{value:"VIR",label:"the Virgin Islands"},{value:"TLS",label:"Timor-Leste"},{value:"TGO",label:"Togo"},{value:"TKL",label:"Tokelau"},{value:"TON",label:"Tonga"},{value:"TTO",label:"Trinidad and Tobago"},{value:"TUN",label:"Tunisia"},{value:"TUR",label:"Turkiye"},{value:"TKM",label:"Turkmenistan"},{value:"TUV",label:"Tuvalu"},{value:"UGA",label:"Uganda"},{value:"UKR",label:"Ukraine"},{value:"URY",label:"Uruguay"},{value:"UZB",label:"Uzbekistan"},{value:"VUT",label:"Vanuatu"},{value:"VAT",label:"Vatican City"},{value:"VEN",label:"Venezuela"},{value:"VNM",label:"Vietnam"},{value:"WLF",label:"Wallis and Futuna"},{value:"ESH",label:"Western Sahara"},{value:"YEM",label:"Yemen"},{value:"ZMB",label:"Zambia"},{value:"ZWE",label:"Zimbabwe"}],Bd=Wy.map,Ud=new Map(jd.map(e=>[e.value,e.label])),Vy=new Map(jd.map(e=>[String(e.label).trim().toLowerCase(),e.value]));function qy(e){return e?Bd[String(e).toUpperCase()]:void 0}function Ky(e){if(e)return Vy.get(String(e).trim().toLowerCase())}function Yy(e){return e?Ud.get(String(e).toUpperCase()):void 0}const xi=new Map;function Zy(e){const t=e||"en";if(xi.has(t))return xi.get(t);let n=null;try{n=new Intl.DisplayNames([t],{type:"region"})}catch{n=null}return xi.set(t,n),n}function Wd(e,t){const n=e?String(e).toUpperCase():"",o=Bd[n],a=Ud.get(n)||n;if(!o||!/^[A-Z]{2}$/.test(o))return a;const r=Zy(t);if(!r)return a;try{const s=r.of(o);return s&&s!==o?s:a}catch{return a}}const Vd=Object.freeze(Object.defineProperty({__proto__:null,alpha2Of:qy,countryName:Wd,default:Wd,englishName:Yy,iso3ForEnglishName:Ky},Symbol.toStringTag,{value:"Module"}));function qd(e){let t=2166136261;for(let n=0;n<String(e).length;n++)t^=String(e).charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0)%1e5/1e5}function Jy(e,{cx:t=0,cy:n=0,r:o=100,spread:a=220,key:r=s=>s.id}={}){const s=[],i=[],l=[];for(const c of e||[]){const u=r(c),d=qd(u)*Math.PI*2,h=qd(u+"|r");if(c.reached===!0){const S=Math.sqrt(h)*o*.92;s.push({...c,id:u,x:t+Math.cos(d)*S,y:n+Math.sin(d)*S,side:"in"})}else if(c.reached===!1){const S=o*1.12+h*(a-o*1.12);i.push({...c,id:u,x:t+Math.cos(d)*S,y:n+Math.sin(d)*S,side:"out"})}else l.push({...c,id:u,side:"unknown"})}return{inside:s,outside:i,unknown:l,cx:t,cy:n,r:o}}function Xy(e){return{inside:e.inside.length,outside:e.outside.length,unknown:e.unknown.length,total:e.inside.length+e.outside.length+e.unknown.length}}const Pi=1,Po=10;function Qy(e){let t=2166136261;for(let n=0;n<String(e).length;n++)t^=String(e).charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0)%1e5/1e5}const e1=0,t1=-1;function n1(e,{cx:t=0,cy:n=0,innerR:o=26,ringGap:a=24}={}){const r=[],s=[],i=[];for(const l of e||[]){const c=Number(l==null?void 0:l.ring);if(c===e1){i.push({...l,at:"centre"});continue}if(c===t1){s.push({...l,reason:"no relation found"});continue}if(!Number.isInteger(c)||c<Pi||c>Po){s.push({...l,reason:(l==null?void 0:l.ring)==null?"no ring":`ring ${l.ring} out of range`});continue}const u=Qy(String(l.id))*Math.PI*2,d=o+(c-1)*a;r.push({...l,ring:c,angle:u,r:d,x:t+Math.cos(u)*d,y:n+Math.sin(u)*d})}return{placed:r,centre:i,unplaced:s,cx:t,cy:n,innerR:o,ringGap:a,radii:Kd({innerR:o,ringGap:a})}}function Kd({innerR:e=26,ringGap:t=24}={}){const n=[];for(let o=Pi;o<=Po;o++)n.push({ring:o,r:e+(o-1)*t});return n}function o1(e){const t=new Map;for(let n=Pi;n<=Po;n++)t.set(n,0);for(const n of e.placed)t.set(n.ring,t.get(n.ring)+1);return{counts:t,placed:e.placed.length,centre:e.centre.length,unplaced:e.unplaced.length}}function Yd(e){let t=2166136261;const n=String(e);for(let o=0;o<n.length;o++)t^=n.charCodeAt(o),t=Math.imul(t,16777619);return(t>>>0)%1e5/1e5}const Na=Math.PI*2,Zd=e=>(e%Na+Na)%Na;function a1(e,t,{ringGap:n=24,minSep:o=7,minPinFloor:a=2.6,pinRadius:r=3.4,bandInset:s=.16,mode:i="fit",labels:l=[],cx:c=0,cy:u=0}={}){const d=new Map(t.map(N=>[N.ring,N.r])),h=new Map(l.map(N=>[N.ring,N.keepOut])),S=new Map;for(const N of e)d.has(N.ring)&&(S.has(N.ring)||S.set(N.ring,[]),S.get(N.ring).push(N));const F=[],y=[],L=[];for(const[N,$]of[...S.entries()].sort((w,k)=>w[0]-k[0])){const w=d.get(N),k=n/2*(1-s),b=h.get(N),v=b?Math.min(b.span,Na):0,E=Math.max(Na-v,0),C=[...$].sort((m,j)=>Yd(m.id)-Yd(j.id)||String(m.id).localeCompare(String(j.id)));let A=r;const K=m=>Math.max(Math.floor(2*k/Math.max(o,2*m)),1),le=m=>{const j=Math.max(o,2*m),me=K(m);let pe=0;for(let ve=0;ve<me;ve++){const Ne=Math.max(w-k+(ve+.5)*(2*k)/me,1e-6);pe+=Math.floor(E*Ne/j)}return Math.max(pe,0)};let te=le(A),G=!1;for(;te<C.length&&A>a;)A=Math.max(a,A-.1),te=le(A),G=!0;const ce=i==="fill-all",H=ce?C:C.slice(0,te),W=ce?[]:C.slice(te),ie=b?Zd(b.start+b.span):0,J=ce?Math.max(1,Math.min(H.length,Math.ceil(H.length/Math.max(le(a)/K(a),1)))):K(A),M=[];for(let m=0;m<J;m++)M.push(0);H.forEach((m,j)=>{const me=j%J;M[me]++});const q=M.map(()=>0);H.forEach((m,j)=>{const me=j%J,pe=Math.max(M[me],1),ve=Math.max(w-k+(me+.5)*(2*k)/J,1e-6),Ne=q[me]++,Ce=E/pe,qe=me%2?.25:-.25,Te=Zd(ie+Ce*(Ne+.5+qe));F.push({...m,ring:N,row:me,angle:Te,r:ve,pin:A,x:c+Math.cos(Te)*ve,y:u+Math.sin(Te)*ve})});for(const m of W)y.push({...m,ring:N,reason:`ring ${N} full at the pin floor (${te} fit, ${C.length} wanted)`});L.push({ring:N,wanted:C.length,fitted:H.length,capacity:te,pin:A,shrunk:G,usableArc:E})}return{placed:F,unplaced:y,rings:L,cx:c,cy:u,ringGap:n,minSep:o}}function r1(e,t){return(Number(e)||0)*(Number(t)||0)}function s1(e,t,n){const o=r1(t,n);return o?(Number(e)||0)/o:0}const Ci=new Set(["ar","he","fa","ur","ps","sd","yi"]),Ti="'Noto Sans Devanagari','Mangal','Nirmala UI','Kohinoor Devanagari'",i1={hi:{family:"Noto Serif Devanagari",dir:"noto-serif-devanagari",file:"noto-serif-devanagari-400-devanagari.woff2",also:Ti},mr:{family:"Noto Serif Devanagari",dir:"noto-serif-devanagari",file:"noto-serif-devanagari-400-devanagari.woff2",also:Ti},ne:{family:"Noto Serif Devanagari",dir:"noto-serif-devanagari",file:"noto-serif-devanagari-400-devanagari.woff2",also:Ti}};function l1({strings:e,lang:t="en",fontData:n=null,describe:o=null}){const a=e.en,r=e[t]||{},s=P=>r[P]!==void 0?r[P]:a[P],i=P=>(r.rhythms||{})[P]!==void 0?r.rhythms[P]:a.rhythms[P],l=Array.isArray(r.points)?r.points:[],c=a.points.map((P,R)=>{const D=l[R];return!D||typeof D!="object"?P:{...P,...Object.fromEntries(Object.entries(D).filter(([,ee])=>ee!==void 0&&ee!==""))}}),u=Array.isArray(r.point4_heart)?r.point4_heart:[],d=(a.point4_heart||[]).map((P,R)=>({...P,who:u[R]&&u[R].who||P.who})),h=(P,R)=>String(P).replace(/\{(\w+)\}/g,(D,ee)=>R[ee]??""),S=P=>P&&typeof P=="object"?P.label??P.value??"":P??"",F=1500,y=1941,L=8.5,N=(L*96/F).toFixed(6),$=60,w=90,k=20,b=k,v=1,E=["pray_blessed","pray_know","pray_do"],C=14,A=(F-2*$-C*(v-1))/v,K=(y-2*$-w-C*(k-1))/k,le=Math.min(K-8,64),te=160,G=62,ce=720,H=$+w+ce+G,W=660,ie=960,J={bounded:1320,centered:1240},M=te*E.length,q=A-le-M-C*2,m=P=>String(P??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),j=P=>Number.isFinite(Number(P))?Number(P).toLocaleString(t):"—",me=(P,R="")=>`<div class="sheet ${R}">${P}</div>`,pe=i1[t]||null,ve=pe&&n?`@font-face{font-family:'${pe.family}';font-style:normal;font-weight:400;font-display:swap;src:url(data:font/woff2;base64,${n}) format('woff2')}`:"",Ne=pe?`.sheet,.sheet *{font-family:'${pe.family}',${pe.also?pe.also+",":""}Georgia,'Palatino Linotype',serif !important}`:"";function Ce(){return`
|
||
${ve}
|
||
${Ne}
|
||
@page{size:letter portrait;margin:0}
|
||
html,body{margin:0;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
|
||
.sheet{position:relative;width:${F}px;height:${y}px;background:#f7f4ec;overflow:hidden;
|
||
page-break-after:always;break-after:page}
|
||
.sheet:last-child{page-break-after:auto;break-after:auto}
|
||
.hd{position:absolute;left:${$}px;top:46px;font:700 30px Georgia,'Palatino Linotype',serif;color:#1b1a17}
|
||
|
||
/* ── LIFE CALENDAR (pages 2 and 3) ─────────────────────────────────────
|
||
5,200 cells must fit one sheet and still read as countable boxes. 52 columns
|
||
is fixed by the DATA (weeks in a year), so the cell size is derived from the
|
||
printable width rather than chosen: (1500 - 2*60) / 52 = 26.5px per column,
|
||
leaving a 21px box with a 2px gap. Measured, not eyeballed — a hardcoded box
|
||
size that happened to fit at one margin would break the moment M changed. */
|
||
.pg-head{margin:0 0 10px}
|
||
.pg-kicker{font:700 15px Georgia,serif;letter-spacing:.14em;text-transform:uppercase;color:#8a8577}
|
||
.pg-h1{margin:2px 0 0;font:700 40px Georgia,serif;color:#1b1a17}
|
||
.pg-lede{margin:0 0 22px;max-width:1180px;font:400 19px/1.5 Georgia,serif;color:#413d35}
|
||
/* ⚠ THE CELLS ARE RECTANGLES, NOT SQUARES, and that is forced by the sheet rather than chosen.
|
||
52 columns is fixed by the data (weeks in a year) and 100 rows by the product's "100 year life" framing,
|
||
so both dimensions are given and only the SHAPE is free. Squares would need
|
||
(1380/52)=26.5px per side x 100 rows = 2,654px of grid in 1,521px of printable height — it
|
||
overflows the page by 1.7x. Caught by computing the height before rendering rather than by
|
||
looking at an overflowing PDF. 13px rows put 100 rows in 1,300px with room for the legend. */
|
||
/* ★ SUPERSEDED BY THE PRINTED LIFE CALENDAR'S LAYOUT (2026-09-29). Squares now, because the grid no
|
||
longer stretches to the page width: 11px boxes on a 14px pitch make 100 rows + 9 decade rules
|
||
~1,500px tall and 52 columns ~730px wide, centred in a frame like the Module 1 sheet.
|
||
Height budget, measured on paper not guessed: head+lede end near y=210, the frame is ~1,560px,
|
||
the legend and foot ~80px, which lands above the ${y-$}px margin with room to spare. */
|
||
.pg-head-c,.pg-lede-c{text-align:center;margin-inline:auto}
|
||
.lc-frame{width:max-content;margin:0 auto;padding:10px 3px;border:1.5px solid #3b463d;background:#fff}
|
||
/* The life grid is one SVG (lifeGrid): two paths of boxes, hairlines between decades, small numbers. */
|
||
.lc-svg{display:block}
|
||
.lc-svg .lc-off{fill:#fff;stroke:#8f8a78;stroke-width:1}
|
||
.lc-svg .lc-on{fill:#c9a13b;stroke:#a8832a;stroke-width:1}
|
||
.lc-svg .lc-reached{fill:#2f6d4f;stroke:#2f6d4f;stroke-width:1}
|
||
.lc-svg .lc-rule{stroke:#3b463d;stroke-width:1.6}
|
||
.lc-svg .lc-rule-q{stroke:#cfc8b4;stroke-width:1;stroke-dasharray:3 3}
|
||
.lc-svg .lc-t{font:700 18px Georgia,serif;fill:#3b463d}
|
||
.lc-svg .lc-big{font-size:20px;fill:#1b1a17}
|
||
.lc-c{display:block;box-sizing:border-box;width:22px;height:11px;border:1px solid #8f8a78;background:#fff}
|
||
/* Jesus' 33 years: warm gold, the one shading on the life page. */
|
||
.lc-on{background:#c9a13b;border-color:#a8832a}
|
||
/* The shaded share on the %-evangelical grid is the REACHED share, so it takes the accent colour and the
|
||
unshaded majority stays quiet — the visual weight belongs to what is still waiting. */
|
||
.lc-reached{background:#2f6d4f;border-color:#2f6d4f}
|
||
.lc-legend{display:flex;justify-content:center;gap:34px;margin:16px 0 0;font:400 17px Georgia,serif;color:#413d35}
|
||
.lc-legend i{display:inline-block;vertical-align:-1px;margin-inline-end:8px}
|
||
.lc-per{margin:8px 0 0;text-align:center;font:600 16px Georgia,serif;color:#413d35}
|
||
.lc-foot{margin:12px auto 0;max-width:1180px;text-align:center;font:400 14px Georgia,serif;color:#6f6a5c}
|
||
.sheet-map-poster{background:#fff}
|
||
/* ⚠ THE FLOW PAGES HAD NO PADDING. .sheet is a bare box, and the pages laid out in flow (the life
|
||
calendar, the % grid, the sets) started their heading at the sheet's very edge, where a printer's
|
||
unprintable margin cuts it. Every flow page now keeps the same margin the absolute pages do. */
|
||
.sheet-flow{box-sizing:border-box;padding:${$+12}px ${$}px ${$}px}
|
||
/* ── THE LIGHTWEIGHT WORKSHEET ── white paper, one header row per page, rows sized to tick. */
|
||
.sheet-worksheet{background:#fff}
|
||
.ws-top{display:flex;justify-content:space-between;margin:0 0 14px;font:400 15px Georgia,serif;color:#8a8577}
|
||
.ws-h1{font-size:34px}
|
||
.ws-intro{margin:8px 0 20px;max-width:1180px;font:400 22px/1.5 Georgia,serif;color:#413d35}
|
||
.ws-head,.ws-row{display:grid;grid-template-columns:58px ${jn}px 1fr repeat(${E.length},${so}px);align-items:center;column-gap:8px}
|
||
/* The tally headings are questions of two short lines; text-wrap:balance breaks them evenly in every
|
||
language ("What do you / want me to know?") instead of leaving one word on a last line. */
|
||
.ws-head{align-items:end;padding:0 0 8px;border-bottom:2px solid #3b463d;font:700 15.5px/1.25 Georgia,serif;color:#6f6a5c;text-align:center}
|
||
.ws-head span{text-wrap:balance}
|
||
.ws-head span:nth-child(3){text-align:start}
|
||
.ws-ph{display:block;width:${jn}px;height:${jn}px;box-sizing:border-box;border-radius:3px;object-fit:cover}
|
||
.ws-ph.nophoto{border:1px solid #d6d0c0;background:#f2efe6;display:flex;align-items:center;justify-content:center;
|
||
font:italic 11px Georgia,serif;color:#a89f8c;text-align:center;padding:3px}
|
||
.ws-row{height:${ao}px;box-sizing:border-box;border-bottom:1px solid #e2ddd0}
|
||
.ws-n{font:700 19px Georgia,serif;color:#8a8577;text-align:end;padding-inline-end:10px}
|
||
.ws-name{min-width:0}
|
||
.ws-name b{display:block;font:700 26px/1.2 Georgia,serif;color:#1b1a17;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||
.ws-name small{display:block;font:400 18px/1.3 Georgia,serif;color:#6f6a5c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||
.ws-name small.ws-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;
|
||
font:400 ${Fa}px/1.3 Georgia,serif;margin-top:2px}
|
||
/* A TALLY cell: room for several groups of five marks, not a box for one tick. */
|
||
.ws-box{justify-self:center;width:${so-10}px;height:${ao-22}px;box-sizing:border-box;border:1.5px solid #b0a993;border-radius:6px;background:#fff}
|
||
.ws-foot{position:absolute;left:0;right:0;bottom:50px;text-align:center;font:400 12px Georgia,serif;color:#a89f8c}
|
||
/* The first page's description and pace table: quiet type, one rule per section, nothing boxed. */
|
||
.ws-sec{margin:0 0 6px;font:700 14px Georgia,serif;letter-spacing:.14em;text-transform:uppercase;color:#8a8577}
|
||
/* THE EXPLANATION BAND (explainBand): ruled above and below like the poster's header band, three columns
|
||
between short rules; the third is exactly the table's tally block, so its example sits over the cells. */
|
||
.xb-bless{margin:0 0 14px}
|
||
.xb-lead{margin:0 0 4px;font:400 19px/1.45 Georgia,serif;color:#413d35}
|
||
.xb{display:grid;column-gap:40px;border-top:1.5px solid #c9bfa4;border-bottom:1.5px solid #c9bfa4;padding:14px 0 12px;margin:0 0 16px}
|
||
.xb-col{position:relative;min-width:0}
|
||
.xb-col + .xb-col::before{content:'';position:absolute;inset-inline-start:-20px;top:4px;bottom:4px;border-inline-start:1px solid #d6ccb4}
|
||
.xb-p{margin:0 0 6px;font:400 16px/1.4 Georgia,serif;color:#413d35}
|
||
.xb .ws-pace-t{font-size:15px;table-layout:auto}
|
||
.xb .ws-pace-t td.xb-word{white-space:nowrap}
|
||
.xb .ws-pace-t th,.xb .ws-pace-t td{padding:3px 6px;border-bottom:1px solid #e2ddd0;text-align:start;font-size:15px;line-height:1.3}
|
||
.xb .ws-pace-t th{font-weight:700;color:#1b1a17}
|
||
.xb .ws-pace-t .xb-word{font-weight:700;color:#6d766e}
|
||
.xb .ws-cols li{font-size:16px;line-height:1.4;margin:0 0 7px}
|
||
.xb-ex-head,.xb-ex-row{display:grid}
|
||
.xb-ex-head{align-items:end;padding:0 0 6px;border-bottom:2px solid #3b463d;font:700 13px/1.2 Georgia,serif;color:#6f6a5c;text-align:center}
|
||
.xb-ex-head span{text-wrap:balance;padding:0 2px}
|
||
.xb-ex-row{padding:8px 0}
|
||
.xb-cell{justify-self:center;display:flex;align-items:center;justify-content:center;box-sizing:border-box;border:1.5px solid #b0a993;border-radius:6px;background:#fff}
|
||
.xb-cell-ws{width:${so-10}px;height:${ao-22}px}
|
||
.xb-cell-fd{width:${te-12}px;height:${Math.round(K-22)}px}
|
||
.xb-marks{height:60%;max-width:92%;stroke:#3b463d;stroke-width:2.6;stroke-linecap:round;fill:none}
|
||
.xb-ex-note{margin-top:4px;font-size:14px;color:#6f6a5c}
|
||
/* The prayer themes and scenes above the twelve points: a thin numbered list, ruled off below. */
|
||
.pt-themes{margin:0 0 10px;padding:0 0 6px;border-bottom:1.5px solid #c9bfa4}
|
||
.pt-th-h{font:400 var(--pt-th,19px)/1.3 Georgia,serif;color:#413d35}
|
||
.pt-th-h b,.pt-sc-h b{font:700 var(--pt-thb,20px) Georgia,serif;color:#1b1a17;letter-spacing:.02em}
|
||
.pt-th-i{font-style:italic;color:#6d766e}
|
||
.pt-th-list{display:flex;flex-wrap:wrap;gap:1px 20px;margin:2px 0 0;padding:0;list-style:none;font:400 var(--pt-th,19px)/1.3 Georgia,serif;color:#3b3226}
|
||
.pt-n{display:inline-block;min-width:1.3em;font-weight:700;color:#7a3b2e}
|
||
.pt-sc-r{font:600 var(--pt-scr,18px) Georgia,serif;color:#7a3b2e}
|
||
.ws-cols{margin:0;padding:0;list-style:none}
|
||
.ws-cols li{margin:0 0 6px;font:400 19px/1.45 Georgia,serif;color:#413d35}
|
||
.ws-cols li b{color:#1b1a17}
|
||
.ws-bless{margin:6px 0 4px;padding:2px 0;padding-inline-start:18px;border-inline-start:3px solid #d8cfb5;
|
||
font:italic 20px/1.45 Georgia,serif;color:#2b2924}
|
||
.ws-bless cite{display:block;margin-top:2px;font:400 14px Georgia,serif;font-style:normal;color:#8a8577}
|
||
.ws-refs{white-space:nowrap;overflow:hidden;font:400 16px/1.4 Georgia,serif;color:#6f6a5c}
|
||
.ws-wheel{margin:4px 0 14px;font:italic 18px/1.45 Georgia,serif;color:#413d35}
|
||
.ws-pace-lead{margin:0 0 6px;font:400 18px/1.45 Georgia,serif;color:#413d35}
|
||
.ws-pace-t{width:100%;border-collapse:collapse;table-layout:fixed;text-align:center;font:400 17px/1.3 Georgia,serif;color:#413d35}
|
||
.ws-pace-t th{padding:6px 4px;border-bottom:1.5px solid #3b463d;font:700 17px/1.25 Georgia,serif;color:#1b1a17}
|
||
.ws-pace-t td{padding:5px 4px;border-bottom:1px solid #e2ddd0}
|
||
.ws-pace-t .ws-pace-word td{font-weight:700;color:#6d766e}
|
||
.ws-pace-t .ws-pace-best{background:#f3efe3}
|
||
.ws-pace-note{margin:6px 0 16px;font:400 15px/1.4 Georgia,serif;color:#6f6a5c}
|
||
/* Upright, not italic, in scripts with no true italic: a slanted Arabic, Chinese or Devanagari line is a
|
||
synthesized oblique, which reads as a rendering fault rather than as emphasis. */
|
||
.ws-bless:lang(ar),.ws-wheel:lang(ar),.ws-bless:lang(zh),.ws-wheel:lang(zh),.ws-bless:lang(hi),.ws-wheel:lang(hi){font-style:normal}
|
||
/* Arabic SCRIPTURE (the blessing, Mark 5) names real Arabic faces before the generic serif: Georgia has no
|
||
Arabic, so each Arabic letter falls to the first named face the device has, instead of to whatever
|
||
system font the browser picks, which on one test machine had no glyph for a letter the Van Dyck text
|
||
used. The text itself now uses only common letters (_meta.note_on_blessing); this is the second guard.
|
||
Scoped to the scripture blocks, so no other page's measured fit moves. */
|
||
.ws-bless:lang(ar),.p4-passage:lang(ar),.p4-passage:lang(ar) *{font-family:Georgia,'Palatino Linotype','Noto Naskh Arabic',Amiri,'Traditional Arabic',Tahoma,serif !important}
|
||
|
||
/* ── THE BOUNDED + CENTERED SETS (back matter) ──────────────────────────
|
||
Two figures side by side. The SVGs carry no width/height — they scale to their
|
||
column through the viewBox, which is what keeps gospel's boundary gap intact:
|
||
the gap lives in the LAYOUT's coordinates and scaling the viewBox cannot
|
||
compress it, whereas nudging r or spread would. */
|
||
/* ★ ONE PAGE, TWO SQUARE PANELS SIDE BY SIDE (2026-09-29, after the Module 1 "list of 100"
|
||
sheet, which closes on BOUNDED SET | CENTERED SET as two squares). Each panel is a framed square
|
||
with its heading on top; the ring legend runs under both at full width. */
|
||
.set-row{display:flex;gap:40px;justify-content:center;align-items:stretch;margin-top:30px}
|
||
.set-panel{width:${W}px;flex:0 0 auto;box-sizing:border-box;border:1.5px solid #3b463d;
|
||
background:#fff;padding:18px 18px 16px;text-align:center}
|
||
.set-h{margin:0;font:700 26px Georgia,serif;letter-spacing:.06em;text-transform:uppercase;color:#1b1a17}
|
||
.set-sub{margin:4px 0 8px;font:italic 17px Georgia,serif;color:#6f6a5c}
|
||
.set-svg{display:block;width:100%;height:auto}
|
||
.set-ring{fill:none;stroke:#b8453a;stroke-width:3}
|
||
.set-band-a{fill:#f1eee4;stroke:#b9b2a0;stroke-width:1}
|
||
.set-band-b{fill:#fff;stroke:#b9b2a0;stroke-width:1}
|
||
.set-band-out{fill:none;stroke:#b9b2a0;stroke-width:1;stroke-dasharray:5 5}
|
||
.set-num{fill:#fff;stroke:#8f8a78;stroke-width:1}
|
||
.set-num-t{font:700 12px Georgia,serif;fill:#3b463d;text-anchor:middle;dominant-baseline:central}
|
||
.set-in{fill:#2f6d4f;stroke:#fff;stroke-width:1}
|
||
.set-out{fill:#9d977f;stroke:#fff;stroke-width:1}
|
||
/* The centre is Christ: a cross at the heart of both figures, over a soft gold disc. */
|
||
.set-core{fill:#fbf3dc;stroke:#c9a13b;stroke-width:2}
|
||
.set-cross rect{fill:#7a4f1d;stroke:#fff;stroke-width:2;paint-order:stroke}
|
||
.set-cap{margin:10px 0 0;font:400 16px Georgia,serif;color:#413d35}
|
||
/* The legend names EVERY ring, numbered as the figure numbers them, so a reader can read the scale
|
||
from the same dialect outward to the language family — including rings this list leaves empty. */
|
||
.set-row-solo .set-panel{width:${ie}px}
|
||
.set-solo-bounded .set-panel{width:${J.bounded}px}
|
||
.set-solo-centered .set-panel{width:${J.centered}px}
|
||
.set-solo-centered + .set-legend, .set-solo-centered ~ .set-legend{max-width:${J.centered}px}
|
||
.set-legend{margin:26px auto 0;max-width:${ie}px}
|
||
.set-legend-h{font:700 17px Georgia,serif;color:#1b1a17;margin:0 0 8px}
|
||
.set-legend-p{margin:0 0 10px;font:400 16px/1.45 Georgia,serif;color:#413d35}
|
||
.set-rings{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;column-gap:40px;
|
||
row-gap:6px;font:400 16px Georgia,serif;color:#413d35}
|
||
.set-rings li{display:flex;align-items:center;gap:10px}
|
||
.set-rings .ring-n{flex:0 0 24px;height:24px;border-radius:50%;border:1px solid #8f8a78;background:#fff;
|
||
font:700 12px/22px Georgia,serif;text-align:center;color:#3b463d;box-sizing:border-box}
|
||
.set-rings .ring-c{margin-inline-start:auto;font-weight:700;color:#1b1a17}
|
||
|
||
/* ── THE THREE PRAYER COLUMNS, now a HORIZONTAL strip at the end of each row ──────────
|
||
They were a vertical stack in the old 683x160 card. In a ${A}x${K.toFixed(0)} ROW there is no
|
||
vertical room for three stacked labels, so the three cells sit side by side, each
|
||
${te}px wide, with the box above its label. inset-inline-end (not right) so the strip
|
||
still mirrors under dir=rtl with the rest of the row. */
|
||
.pray-cols{position:absolute;inset-inline-end:0;top:50%;transform:translateY(-50%);
|
||
display:flex;flex-direction:row;gap:0}
|
||
.pray-col{width:${te}px;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;
|
||
gap:3px;font:400 10px Georgia,serif;color:#6f6a5c;text-align:center;line-height:1.15}
|
||
/* A tally cell above its question, as on the worksheet: wide and short, for a few groups of marks. */
|
||
.pray-box{display:inline-block;width:${te-12}px;height:${Math.round(K-22)}px;box-sizing:border-box;border:1.5px solid #b0a993;border-radius:5px;background:#fff;flex:0 0 auto}
|
||
/* The three questions, ONCE per page, over the tally cells' own columns. */
|
||
.pray-head{position:absolute;inset-inline-end:${$}px;display:grid;grid-template-columns:repeat(${E.length},${te}px);
|
||
height:${G-6}px;align-items:end;font:700 15px/1.2 Georgia,serif;color:#6f6a5c;text-align:center}
|
||
.pray-head span{text-wrap:balance;padding:0 0 5px;border-bottom:2px solid #3b463d}
|
||
/* Page 1 of the Full detail list: the explanation, then the head row and the rows right under it (listPages). */
|
||
.fd-first{position:absolute;left:${$}px;top:${$+w}px;width:${A.toFixed(0)}px}
|
||
.fd-top{max-height:${ce}px;overflow:hidden}
|
||
.fd-rows{position:relative}
|
||
.fd-rows .pray-head{inset-inline-end:0}
|
||
.hd-r{position:absolute;right:${$}px;top:54px;font:400 19px Georgia,serif;color:#8c8170}
|
||
/* ⚠ box-sizing:border-box IS LOAD-BEARING HERE, NOT HOUSEKEEPING. Without it the row's height
|
||
is the CONTENT box and the padding + border are added OUTSIDE it, so the row renders taller
|
||
than the geometry that positions it — a rendered row measured 81px against a 73.25px model, and because
|
||
the row's top still advances by CH the rows then overlap their successors by the difference. The stack
|
||
still fitted the sheet (it ended 8px INTO the 60px bottom margin rather than on it), which is
|
||
exactly why this was invisible without a measurement: nothing clipped and nothing overflowed
|
||
the page. With border-box the declared height IS the rendered height. */
|
||
.card{position:absolute;box-sizing:border-box;display:flex;gap:${C}px;align-items:center;
|
||
border-bottom:1px solid #e2ddd0;padding-bottom:6px;overflow:hidden}
|
||
.card img,.card .nophoto{width:${le.toFixed(0)}px;height:${le.toFixed(0)}px;flex:0 0 auto;border-radius:3px}
|
||
.card img{object-fit:cover}
|
||
.card .nophoto{border:1px solid #d6d0c0;background:#f2efe6;display:flex;align-items:center;
|
||
justify-content:center;font:italic 9px Georgia,serif;color:#a89f8c;text-align:center;padding:3px}
|
||
/* The description cell. A FIXED width rather than flex:1, because the fit ladder's character
|
||
budget is computed against exactly this number — if the cell could stretch, the budget would
|
||
be describing a width the cell no longer has. */
|
||
.d-cell{width:${q.toFixed(0)}px;flex:0 0 auto;min-width:0;overflow:hidden}
|
||
.nm{font:700 15px Georgia,serif;color:#1b1a17;line-height:1.15}
|
||
.d-tx{font-family:Georgia,serif;color:#413d35;line-height:1.25;margin-top:2px}
|
||
.d-fb{font:400 13px Georgia,serif;color:#6d766e;margin-top:2px}
|
||
.mt{font:400 17px Georgia,serif;color:#6d766e}
|
||
/* FINE PRINT — product decision: attribution minimal, fine print small. */
|
||
/* ≥ 0.25in above the sheet's bottom edge (44px on letter): at 22px the credit line sat 0.14in from the edge,
|
||
inside the band a printer cannot ink. */
|
||
.fine{position:absolute;left:0;right:0;bottom:50px;text-align:center;
|
||
font:400 13px Georgia,serif;color:#a89f8c}
|
||
/* THE MAP IS MISSING, and this says so where the map would have been.
|
||
⚠ Centred in the SAME region the map occupies, not tucked into the fine print: a reader
|
||
comparing two packets must be able to see at a glance which one lost its illustration.
|
||
Quiet, not alarming — it is a missing picture in an otherwise complete document, so it reads
|
||
as a caption rather than an error. No border and no icon for the same reason: on a printed
|
||
page an error box costs ink and implies the whole packet is suspect. */
|
||
.map-missing{position:absolute;left:${$}px;right:${$}px;top:50%;transform:translateY(-50%);
|
||
text-align:center;font:italic 19px Georgia,serif;color:#a89f8c}
|
||
/* PRINT. The sheet is authored at ${F}px wide while @page is physical, so without
|
||
a rescale the browser maps ${F}px -> 15.6in and TILES one sheet over many pages.
|
||
|
||
⚠ Use zoom, NOT transform:scale(). They look identical on screen and behave
|
||
completely differently under pagination:
|
||
transform is paint-time — the element still RESERVES its full ${y}px layout
|
||
box, so the paginator walks ${y}px of content and breaks it across
|
||
two sheets, inking only the top of the first. Measured: 8 sheets
|
||
came out as 16 PDF pages. Negative margins do NOT fix this — they
|
||
collapse the outer space, not the fragmentation box.
|
||
zoom is layout-time — the box itself becomes ${(L*96).toFixed(0)}px
|
||
wide, so pagination sees the scaled size. Measured: 1 page/sheet.
|
||
Verified by _probe-pagecount.mjs (transform 2, transform+margins 2, zoom 1). */
|
||
@media print{
|
||
html,body{width:${(L*96).toFixed(0)}px;margin:0;padding:0}
|
||
.sheet{width:${F}px;height:${y}px;zoom:${N};
|
||
page-break-after:always;break-after:page}
|
||
.sheet:last-child{page-break-after:auto;break-after:auto}
|
||
}`}function qe(P){const R=P.match(/<style>([\s\S]*?)<\/style>/);if(!R)return"";const D=R[1].replace(/\/\*[\s\S]*?\*\//g,"");let ee="",ne=0;for(;ne<D.length;){if(D.startsWith("@media",ne)){let re=0,_e=!1;for(;ne<D.length;){if(D[ne]==="{")re++,_e=!0;else if(D[ne]==="}"&&(re--,_e&&re===0)){ne++;break}ne++}continue}ee+=D[ne++]}const oe=/(^|,)\s*(html|body|\*|\.stage)\s*$/;return ee.split("}").map(re=>{const _e=re.indexOf("{");if(_e<0)return"";const ye=re.slice(0,_e).trim();return!ye||ye!==":root"&&ye.split(",").some($e=>oe.test($e.trim())||/^(html|body|\*|\.stage)$/.test($e.trim()))?"":`${ye}{${re.slice(_e+1).trim()}}`}).filter(Boolean).join(`
|
||
`)}const Te=P=>[`${P}.packet.html`,`${P}.html`],Me=34,lt=(P,R)=>/\s/.test(P)?.3:/[\u3000-\u303f\u3400-\u9fff\uff00-\uffef]/.test(P)?1:/[\u0600-\u06ff]/.test(P)?.55:/[\u0900-\u097f]/.test(P)?.65:.64+(R?.1:0),_=P=>/[A-ZÀ-ÞА-ЯЁ]/.test(P),T=P=>[...String(P).replace(/&[a-z#0-9]+;/g,"x")].reduce((R,D)=>R+lt(D,_(P)),0),x=(P,R,D)=>{const ee=Math.min(1,T(P)/Math.max(T(R),1e-6)),ne=[];return ee<1&&ne.push(`font-size:${(D*ee).toFixed(1)}px`),_(R)||ne.push("letter-spacing:0"),ne.join(";")},U=(P,R)=>R?/\sstyle="/.test(P)?P.replace(/\sstyle="([^"]*)"/,(D,ee)=>` style="${ee};${R}"`):`${P} style="${R}"`:P;function Q(P,R,D){const ee=Number((R.match(/\.ctry-name\{[^}]*font-size:([\d.]+)px/)||[])[1])||15;let ne=P.replace(/<text([^>]*class="ctry-name(?:-halo|-own)?"[^>]*)>([^<]*)<\/text>/g,(_e,ye,$e)=>{const Pe=D($e);return Pe?`<text${U(ye,x($e,Pe,ee))}>${Pe}</text>`:_e});const oe=m(a.privacy_note||""),re=m(s("privacy_note")||"");return oe&&re&&re!==oe&&(ne=ne.replace(/<text([^>]*class="attrib(?:-halo)?"[^>]*)>([^<]*)<\/text>/g,(_e,ye,$e)=>$e===oe?`<text${U(ye,x($e,re,Number((R.match(/\.attrib\{[^}]*font-size:([\d.]+)px/)||[])[1])||11))}>${re}</text>`:_e)),ne}function X(P,{labelFor:R=null}={}){const D=String(P||""),ee=D.match(/<svg\b[^>]*>[\s\S]*?<\/svg>/);if(!ee)return"";const ne=ee[0].match(/^<svg\b[^>]*>/)[0],oe=ne.match(/viewBox="\s*[-\d.]+[\s,]+[-\d.]+[\s,]+([\d.]+)[\s,]+([\d.]+)\s*"/);if(!oe||Number(oe[1])<1e3||Number(oe[2])<1e3)return"";const re=Number(oe[1]),_e=Number(oe[2]),ye=/\bdata-sheet="map-only"/.test(ne);let $e,Pe,De;ye?($e=Math.min(1,(F/2-$)/(re/2-Me),(y/2-$)/(_e/2-Me)),Pe=(F-re*$e)/2,De=(y-_e*$e)/2):($e=Math.min((F-2*$)/re,(y-2*$)/_e),Pe=(F-re*$e)/2,De=(y-_e*$e)/2);const Ye=ee[0].replace(ne,ne.replace(/\s(width|height)="[^"]*"/g,"").replace(/^<svg\b/,'<svg width="100%" height="100%"')),gt=typeof R=="function"?Q(Ye,D,R):Ye;return`<style>${qe(D)}</style><div class="map-sheet" dir="ltr" data-map-kind="${ye?"map-only":"poster"}" data-map-scale="${$e.toFixed(4)}" style="position:absolute;left:${Pe.toFixed(1)}px;top:${De.toFixed(1)}px;width:${(re*$e).toFixed(1)}px;height:${(_e*$e).toFixed(1)}px">${gt}</div>`}function de(P){const R=String(P||"").trim();return/^(data:image\/|https?:\/\/|\/|\.{0,2}\/)/.test(R)?`<div class="map-sheet" dir="ltr" data-map-kind="poster" data-map-scale="1" style="position:absolute;left:${$}px;top:${$}px;width:${F-2*$}px;height:${y-2*$}px"><img src="${m(R)}" alt="" style="width:100%;height:100%;object-fit:contain"></div>`:""}function ue(P,R){if(String(t||"en").split("-")[0].toLowerCase()==="en")return P;const D=_e=>String(_e).replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim(),ee=m(s("map_page_kicker")||""),ne=m(R.label||R.id||""),oe=Number((P.match(/\.h1over\{[^}]*font-size:([\d.]+)px/)||[])[1])||19;let re=P;return ee&&(re=re.replace(/<text([^>]*class="h1over"[^>]*)>([^<]*)<\/text>/,(_e,ye,$e)=>`<text${U(ye,x($e,ee,oe))}>${ee}</text>`)),ne&&(re=re.replace(/<text([^>]*class="h1"[^>]*)>([\s\S]*?)<\/text>/,(_e,ye,$e)=>{const Pe=Number((ye.match(/font-size="([\d.]+)"/)||[])[1])||56;return`<text${U(ye,x(D($e),ne,Pe))}>${ne}</text>`})),re}function p(P,R,D,ee=null){if(D&&/data-map-kind="poster"/.test(D))return me(ue(D,P),"sheet-map sheet-map-poster");const ne=R.length,oe=Number(ee&&ee.listCount),re=Number.isFinite(oe)&&oe>0?`<div class="map-series" style="font:600 19px Georgia,serif;letter-spacing:1px;color:#8c8170;margin-top:12px">
|
||
${m(h(s("map_page_series"),{k:j(oe)}))}</div>`:"";return me(`
|
||
${D||g()}
|
||
<div style="position:absolute;left:${$}px;top:${$}px;right:${$}px;text-align:center">
|
||
<div style="font:600 21px Georgia,serif;letter-spacing:3px;color:#8c8170">${m(s("map_page_kicker"))}</div>
|
||
<div style="font:700 56px Georgia,serif;color:#1b1a17;margin-top:8px">${m(P.label||P.id)}</div>
|
||
<div style="font:italic 24px Georgia,serif;color:#6d766e;margin-top:10px">
|
||
${m(h(s("map_page_sub"),{count:j(ne)}))}</div>
|
||
${re}
|
||
</div>
|
||
<div class="fine">${m(s("privacy_note"))}</div>`,"sheet-map")}function g(){return`<div class="map-missing">${m(s("map_unavailable"))}</div>`}function z(P,R,D){if(!D||!Array.isArray(D.steps)||!D.steps.length)return"";const ee=D.steps,ne="'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif",oe=R.length,re=Number(D.listTotal)||0,_e=re?100*oe/re:0,ye=_e>=10?String(Math.round(_e)):_e.toFixed(_e>=1?1:2).replace(/\.?0+$/,""),$e=re?`<div class="funnel-share" style="font:700 19px/1.35 ${ne};color:#3b463d;margin-top:10px">
|
||
${m(D.listCount?h(s("funnel_share"),{k:j(D.listCount),pct:ye,total:j(re)}):h(s("funnel_share_pct"),{pct:ye,total:j(re)}))}</div>`:"",Pe=D.sources&&D.sources.imb,De=Pe?m(Number.isFinite(Number(D.unassigned))?h(s("funnel_foot"),{imb_pub:Pe.publisher||"",imb_date:Pe.captured||"",unassigned:j(D.unassigned),total:j(re)}):h(s("funnel_foot_source"),{imb_pub:Pe.publisher||"",imb_date:Pe.captured||""})):"",Ye=(ee[ee.length-1]||{}).groups,gt=D.listId?s(`funnel_list_${D.listId}`)??D.listLabel:D.listLabel,wt=gt&&re&&re!==Ye&&re!==oe?[{groups:re,population:null,label:gt,tint:!0}]:[],kt=[...ee.map((Ae,Gt)=>({id:Ae.id,frontier:Ae.frontier,groups:Ae.groups,population:Ae.population,label:s(`funnel_${Ae.id}`)!==void 0?s(`funnel_${Ae.id}`):Ae.id,tint:Gt===ee.length-1&&!wt.length})),...wt,{groups:oe,population:null,label:s("funnel_this"),tint:!0,mine:!0}],St={unreached:"all",frontier:"unreached"},ft=Number(D.listCount),Et=Number.isFinite(ft)&&ft>0?[{groups:ft,population:null,packets:!0,label:h(s("funnel_packets"),{total:j(re||Ye)})}]:[],xt=[...kt.filter(Ae=>!Ae.mine),...Et,...kt.filter(Ae=>Ae.mine)],bt=xt.length,tt=Ci.has(t),lo=Ae=>tt?F-Ae:Ae,Ge=262,Ue=1540,Tt=900,Yo=$+20,Bn=Yo+Tt/2,Un=10,Kr=(Ue-Ge-Un*(bt-1))/bt,Ni=Ae=>Tt/2*(Ue-Ae)/(Ue-Ge),Yr=[[223,231,223],[195,213,196],[168,195,170],[127,161,132],[86,115,91],[59,70,61]],E1=Ae=>{const Gt=(bt===1?1:Ae/(bt-1))*(Yr.length-1),nn=Math.min(Yr.length-2,Math.floor(Gt)),Lo=Gt-nn;return Yr[nn].map((co,uo)=>Math.round(co+(Yr[nn+1][uo]-co)*Lo))},N1=Ae=>"#"+Ae.map(Gt=>Gt.toString(16).padStart(2,"0")).join(""),Zr=Ae=>{const[Gt,nn,Lo]=Ae.map(co=>{const uo=co/255;return uo<=.03928?uo/12.92:((uo+.055)/1.055)**2.4});return .2126*Gt+.7152*nn+.0722*Lo},fp=(Ae,Gt)=>(Math.max(Zr(Ae),Zr(Gt))+.05)/(Math.min(Zr(Ae),Zr(Gt))+.05),F1=Ae=>fp(Ae,[255,255,255])>=fp(Ae,[59,70,61])?"#ffffff":"#3b463d";let Fi="",bp="";return xt.forEach((Ae,Gt)=>{const nn=Ge+Gt*(Kr+Un),Lo=nn+Kr,co=Ni(nn),uo=Ni(Lo),$p=E1(Gt),R1=[[Bn-co,nn],[Bn+co,nn],[Bn+uo,Lo],[Bn-uo,Lo]].map(([G1,H1])=>`${lo(G1).toFixed(1)},${H1.toFixed(1)}`).join(" ");Fi+=`<polygon class="funnel-tier${Ae.mine?" funnel-tier-mine":""}" points="${R1}" fill="${N1($p)}"/>`;const Ri=j(Ae.groups),yp=nn+Kr*.46,I1=2*Ni(yp)-28,vp=Math.min(Ae.mine?64:58,I1/(.6*Ri.length)),Ii=vp>=30,_p=`funnel-n${Ae.mine?" funnel-mine":""}`;Ii&&(Fi+=`<text class="${_p}" x="${lo(Bn).toFixed(1)}" y="${yp.toFixed(1)}" text-anchor="middle" dominant-baseline="middle" font-family="${ne}" font-weight="800" font-size="${vp.toFixed(0)}" fill="${F1($p)}">${Ri}</text>`);const Jr=Ae.population===null||Ae.population===void 0||Ae.population===""?null:Number(Ae.population),O1=Jr!==null&&Number.isFinite(Jr)&&Jr>0?`<div style="font:400 16px ${ne};color:#6d766e;margin-top:3px">${j(Jr)} ${m(s("funnel_people"))}</div>`:"",Xr=Gt>0?xt[Gt-1]:null,z1=Xr&&Ae.id&&St[Ae.id]===Xr.id&&Number(Xr.groups)>Number(Ae.groups)?`<div class="funnel-eq" style="font:400 15px ${ne};color:#8a938b;margin-top:3px">− ${j(Number(Xr.groups)-Number(Ae.groups))}</div>`:"",D1=Ae.id==="doxa"&&Number.isFinite(Number(Ae.frontier))&&Number(Ae.frontier)>0?`<div style="font:400 15px ${ne};color:#8a938b;margin-top:3px">${m(h(s("funnel_doxa_note"),{frontier:j(Ae.frontier)}))}</div>`:"",wp=Bn+co+30;bp+=`<div class="funnel-cap${Ae.mine?" funnel-mine-row":""}" style="position:absolute;top:${nn.toFixed(0)}px;height:${Kr.toFixed(0)}px;${tt?"right":"left"}:${wp.toFixed(0)}px;width:${(F-$-wp).toFixed(0)}px;display:flex;flex-direction:column;justify-content:center;text-align:start">`+(Ii?"":`<div class="${_p}" style="font:800 ${Ae.mine?58:44}px ${ne};color:#3b463d;line-height:1">${Ri}</div>`)+`<div style="font:700 ${Ae.mine?24:21}px/1.25 ${ne};color:#3b463d${Ii?"":";margin-top:4px"}">${m(Ae.label)}</div>`+O1+z1+D1+(Ae.mine?$e:"")+"</div>"}),me(`
|
||
<div style="position:absolute;left:${$}px;top:56px;right:${$}px;text-align:start">
|
||
<div style="font:700 14px ${ne};letter-spacing:.08em;text-transform:uppercase;color:#6d766e">
|
||
<span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:#92b195;margin-inline-end:9px;vertical-align:1px"></span>${m(s("funnel_kicker"))}</div>
|
||
<div class="funnel-title" style="font:800 44px/1.15 ${ne};color:#3b463d;margin-top:12px">${m(s("funnel_title"))}</div>
|
||
<div style="font:400 19px/1.5 ${ne};color:#6d766e;margin-top:8px;max-width:1100px">${m(s("funnel_intro"))}</div>
|
||
</div>
|
||
<svg class="funnel-triangle" width="${F}" height="${y}" style="position:absolute;left:0;top:0" xmlns="http://www.w3.org/2000/svg">${Fi}</svg>
|
||
${bp}
|
||
<div class="fine">${De}</div>`)}const O={cw:22,ch:11,px:25,py:14,x0:66,y0:30,dec:8,pr:8,pb:8};function ge({shaded:P=0,shadeClass:R="lc-on",people:D=!1}={}){const re=Math.max(0,Math.min(5200,Math.round(Number(P)||0))),_e=O.x0,ye=D?(O.y0+O.pb)/2:O.y0,$e=Ge=>{const Ue=Math.floor(Ge/52),Tt=Ge%52;return[_e+Tt*O.px,ye+Ue*O.py+Math.floor(Ue/10)*O.dec]},Pe=Ge=>{const[Ue,Tt]=$e(Ge);return`M${Ue+.5} ${Tt+.5}h${O.cw-1}v${O.ch-1}h${1-O.cw}z`};let De="",Ye="";for(let Ge=0;Ge<5200;Ge++)Ge<re?De+=Pe(Ge):Ye+=Pe(Ge);const gt=O.px-O.cw,wt=O.py-O.ch,kt=52*O.px-gt,St=100*O.py+(100/10-1)*O.dec-wt,ft=O.x0+kt+O.pr,Et=O.y0+St+O.pb,xt=(Ge,Ue,Tt)=>{const[,Yo]=$e(Ge*52);return`<text class="lc-t ${Tt}" x="${_e-6}" y="${Yo+O.ch/2}" dominant-baseline="central" text-anchor="end">${Ue}</text>`};let bt="";if(D)for(let Ge=1;Ge<=100/10;Ge++)bt+=xt(Ge*10-1,`${j(Ge*10)}%`,"lc-tp");else{for(const Ge of[1,13,26,39,52])bt+=`<text class="lc-t lc-tw" x="${_e+(Ge-1)*O.px+O.cw/2}" y="${ye-10}" text-anchor="middle">${j(Ge)}</text>`;for(let Ge=1;Ge<=100;Ge++)(Ge===1||Ge%5===0)&&(bt+=xt(Ge-1,j(Ge),Ge%10?"lc-ty":"lc-ty lc-big"))}let tt="";for(const Ge of[13,26,39]){const Ue=_e+Ge*O.px-gt/2;tt+=`<line class="lc-rule-q" x1="${Ue}" x2="${Ue}" y1="${ye-4}" y2="${ye+St+4}"/>`}for(let Ge=1;Ge<100/10;Ge++){const[,Ue]=$e(Ge*10*52),Tt=Ue-O.dec/2-wt/2;tt+=`<line class="lc-rule" x1="${_e-4}" x2="${_e+kt+4}" y1="${Tt}" y2="${Tt}"/>`}const lo=`<svg class="lc-svg" viewBox="0 0 ${ft} ${Et}" width="${ft}" height="${Et}" data-total="5200" data-shaded="${re}" data-weeks="52" data-geom="${_e},${ye},${O.px},${O.dec},${O.py}">${tt}${bt}<path class="lc-off" d="${Ye}"/>${De?`<path class="${R}" d="${De}"/>`:""}</svg>`;return{TOTAL:5200,YEARS:100,WEEKS:52,shadedCount:re,html:`<div class="lc-frame${D?" lc-plain":""}">${lo}</div>`}}const se=33;function I(P){const R=ge({shaded:se*52,shadeClass:"lc-on"});return me(`
|
||
<div class="pg-head pg-head-c"><div class="pg-kicker">${m(s("life_kicker"))}</div>
|
||
<h1 class="pg-h1">${m(s("life_title"))}</h1></div>
|
||
<p class="pg-lede pg-lede-c">${m(s("life_lede"))}</p>
|
||
${R.html}
|
||
<div class="lc-legend">
|
||
<span><i class="lc-c lc-on"></i> ${m(s("life_jesus"))} — ${j(R.shadedCount)} ${m(s("life_weeks"))}</span>
|
||
<span><i class="lc-c"></i> ${m(s("life_full"))} — ${j(R.TOTAL)} ${m(s("life_weeks"))}</span>
|
||
</div>
|
||
`,"sheet-life sheet-flow")}function V(P,R){if(!R||typeof R!="object")return"";const D=R.pctEvangelical,ee=D!=null&&D!==""&&Number.isFinite(Number(D)),ne=ee?Number(D):null,oe=ee?Math.round(ne*100)/100:null,re=ge({shaded:ee?ne/100*5200:0,shadeClass:"lc-reached",people:!0}),_e=tt=>`${Number(tt).toLocaleString(t,{maximumFractionDigits:2})}%`,ye=ee&&ne>0&&oe===0,$e=ee&&Number(R.population)>0?Number(R.population):null,Pe=$e!==null?Math.round($e*ne/100):null,De=tt=>`${j(tt)} ${m(s("christian_people"))}`,Ye=ye?`<${_e(.01)}`:_e(oe),gt=ye?`>${_e(99.99)}`:_e(Math.round((100-oe)*100)/100),wt=ee?`${$e!==null?`${De(Pe)} · `:""}<span class="ev-pct">${m(Ye)}</span>`:'<span class="ev-pct">—</span>',kt=ee?`${$e!==null?`${De($e-Pe)} · `:""}${m(gt)}`:"—",St=Number(R.groupsInList),ft=Number(R.groupsMatched),Et=Number.isFinite(St)&&Number.isFinite(ft)&&ft<St?` · ${m(h(s("christian_coverage"),{matched:j(ft),total:j(St)}))}`:"",xt=tt=>tt>=10?j(Math.round(tt)):Number(tt).toLocaleString(t,{maximumFractionDigits:1}),bt=$e!==null?`<p class="lc-per">${m(h(s("christian_per_cell"),{n:xt(s1($e,re.YEARS,re.WEEKS))}))}</p>`:"";return me(`
|
||
<div class="pg-head pg-head-c"><div class="pg-kicker">${m(s("christian_kicker"))}</div>
|
||
<h1 class="pg-h1">${m(s("christian_title"))}</h1></div>
|
||
<p class="pg-lede pg-lede-c">${m(s("christian_lede"))}</p>
|
||
${re.html}
|
||
<div class="lc-legend">
|
||
<span><i class="lc-c lc-reached"></i> ${m(s("christian_reached"))} — ${wt}</span>
|
||
<span><i class="lc-c"></i> ${m(s("christian_lost"))} — ${kt}</span>
|
||
</div>
|
||
${bt}
|
||
<p class="lc-foot">${m(s("christian_foot"))}${Et}</p>
|
||
`,"sheet-christian sheet-flow")}const ke=[17,15,14],Fe=.52,Be=2,pt=P=>Math.floor(q/(P*Fe))*Be;function ht(P,R){if(P.length<=R)return P;const D=P.slice(0,R-1),ee=D.lastIndexOf(" ");return(ee>0?D.slice(0,ee):D).replace(/[\s,;:.!?—–-]+$/,"")+"…"}function pn(P){const R=String(P||"");for(const ee of ke)if(R.length<=pt(ee))return{text:R,px:ee,truncated:!1};const D=ke[ke.length-1];return{text:ht(R,pt(D)),px:D,truncated:!0}}function To(P){const R=o?String(o(P)||""):"";if(!R)return`<div class="d-fb">${m(S(P.religion))} · ${j(P.population)} ${m(s("people_suffix"))} · ${m(S(P.country_code))}</div>`;const D=pn(R);return`<div class="d-tx" style="font-size:${D.px}px">${m(D.text)}</div>`}const mt=Math.floor((y-$-H+C)/(K+C));function Wt(P,R,D){const ee=[],ne=oe=>`<div class="pray-head" style="top:${Math.round(oe)}px">${E.map(re=>`<span>${m(s(re))}</span>`).join("")}</div>`;for(let oe=0,re=0;oe<R.length;re+=1){const _e=re===0?mt:b,ye=re===0?G:$+w,$e=re===0?0:$,Pe=R.slice(oe,oe+_e),De=Pe.map((wt,kt)=>{const St=oe+kt,ft=ye+kt*(K+C),Et=D.get(wt.slug),xt=Et?`<img src="${m(Et)}" alt="">`:`<div class="nophoto">${m(s("no_photo"))}</div>`;return`<div class="card" style="left:${$e}px;top:${ft.toFixed(0)}px;
|
||
width:${A.toFixed(0)}px;height:${K.toFixed(0)}px">${xt}
|
||
<div class="d-cell">
|
||
<div class="nm">${St+1}. ${m(wt.name)}</div>
|
||
${To(wt)}
|
||
</div>
|
||
<div class="pray-cols">${E.map(()=>'<span class="pray-col"><i class="pray-box"></i></span>').join("")}</div>
|
||
</div>`}).join(""),Ye=G+Pe.length*(K+C)-C,gt=re===0?`<div class="fd-first"><div class="fd-top">${It()}${xn(R.length,{w:E.length*te,cols:`repeat(${E.length},${te}px)`,gap:0,cell:"xb-cell xb-cell-fd"})}</div><div class="fd-rows" style="height:${Ye.toFixed(0)}px">${ne(0)}${De}</div></div>`:`${ne(ye-G)}${De}`;ee.push(me(`
|
||
<div class="hd">${m(P.label||P.id)}</div>
|
||
<div class="hd-r">${m(h(s("list_header"),{from:j(oe+1),to:j(Math.min(oe+_e,R.length)),count:j(R.length)}))}</div>
|
||
${gt}`)),oe+=_e}return ee}const ao=92,Hn=10,ro=18,jn=76,Fa=17,so=160,f=F-2*$-58-jn-E.length*so-(E.length+2)*8,Z=Math.floor(f/(Fa*Fe))*2;function ae(P){const R=o?String(o(P)||""):"";if(R)return`<small class="ws-desc">${m(ht(R,Z))}</small>`;const D=[S(P.country_code_label)||S(P.country)||S(P.country_code),Number(P.population)>0?`${j(P.population)} ${s("people_suffix")}`:""].filter(Boolean).join(" · ");return`<small>${m(D)}</small>`}const he=["Psalm 134:3","Psalm 115:15","Psalm 29:11","Psalm 121:7","Genesis 12:3"],ze=[{key:"pace_daily",word:"pace_strongest",days:1},{key:"pace_weekly",word:"pace_healthiest",days:7,best:!0},{key:"pace_fortnight",word:"pace_healthy",days:14},{key:"pace_monthly",word:"pace_normal",days:30},{key:"pace_quarter",word:"pace_slower",days:90}];function He(P,R){return R===1?h(s("pace_all"),{n:j(P)}):P/R>=1?h(s("pace_day"),{n:j(Math.round(P/R))}):P*7/R>=1?h(s("pace_week"),{n:j(Math.round(P*7/R))}):h(s("pace_month"),{n:j(Math.max(1,Math.round(P*30/R)))})}function It(){const P=(Array.isArray(r.bless_refs)?r.bless_refs:he).map(qr).join(" · ");return`<p class="ws-intro">${m(s("light_intro"))}</p>
|
||
<div class="xb-bless"><p class="xb-lead">${m(s("howto_bless"))}</p>
|
||
<blockquote class="ws-bless">${m(s("blessing_text"))}<cite>${m(s("blessing_credit"))}</cite></blockquote>
|
||
<div class="ws-refs">${m(s("howto_bless_more"))} ${P}</div>
|
||
<p class="ws-wheel">${m(s("howto_wheel"))}</p></div>`}function at(P){const R=[];for(let D=0,ee=6;D<Math.ceil(P/5);D+=1,ee+=34){const ne=Math.min(5,P-D*5);for(let oe=0;oe<Math.min(ne,4);oe+=1)R.push(`<line x1="${ee+oe*6}" y1="6" x2="${ee+oe*6}" y2="30"/>`);ne===5&&R.push(`<line x1="${ee-4}" y1="26" x2="${ee+22}" y2="10"/>`)}return`<svg class="xb-marks" viewBox="0 0 ${Math.max(40,Math.ceil(P/5)*34+8)} 36" aria-hidden="true">${R.join("")}</svg>`}function xn(P,R){const D=ze.map(oe=>`<tr${oe.best?' class="ws-pace-best"':""}><th>${m(s(oe.key))}</th><td class="xb-word">${m(s(oe.word))}</td><td>${m(He(P,oe.days))}</td></tr>`).join(""),ee=(oe,re)=>`<li><b>${m(s(oe))}</b> ${m(s(re))}</li>`,ne=`grid-template-columns:${R.cols};column-gap:${R.gap}px`;return`<section class="xb" style="grid-template-columns:1.4fr 0.9fr ${R.w}px">
|
||
<div class="xb-col xb-pace"><div class="ws-sec">${m(s("pace_title"))}</div>
|
||
<p class="xb-p">${m(s("pace_lead"))}</p><table class="ws-pace-t">${D}</table>
|
||
<p class="ws-pace-note">${m(s("pace_note"))}</p></div>
|
||
<div class="xb-col xb-how"><div class="ws-sec">${m(s("howto_title"))}</div>
|
||
<ol class="ws-cols">${ee("pray_blessed","howto_bless_col")}${ee("pray_know","howto_know")}${ee("pray_do","howto_do")}</ol></div>
|
||
<div class="xb-col xb-ex"><div class="ws-sec">${m(s("example_title"))}</div>
|
||
<div class="xb-ex-head" style="${ne}">${E.map(oe=>`<span>${m(s(oe))}</span>`).join("")}</div>
|
||
<div class="xb-ex-row" style="${ne}">${[7,3,2].map(oe=>`<span class="${R.cell}">${at(oe)}</span>`).join("")}</div>
|
||
<p class="xb-p xb-ex-note">${m(s("example_note"))}</p></div>
|
||
</section>`}function Pn(P,R,D=new Map){const ee=[],ne=`<div class="ws-head"><span></span><span></span><span>${m(s("light_col_group"))}</span>${E.map(oe=>`<span>${m(s(oe))}</span>`).join("")}</div>`;for(let oe=0,re=0;oe<R.length;re+=1){const _e=re===0?Hn:ro,$e=R.slice(oe,oe+_e).map((De,Ye)=>{const gt=D.get(De.slug),wt=gt?`<img class="ws-ph" src="${m(gt)}" alt="">`:`<span class="ws-ph nophoto">${m(s("no_photo"))}</span>`;return`<div class="ws-row"><span class="ws-n">${j(oe+Ye+1)}</span>${wt}<span class="ws-name"><b>${m(De.name)}</b>${ae(De)}</span>`+E.map(()=>'<i class="ws-box"></i>').join("")+"</div>"}).join(""),Pe=re===0?`<div class="pg-head"><div class="pg-kicker">${m(P.label||P.id)}</div>
|
||
<h1 class="pg-h1 ws-h1">${m(h(s("map_page_sub"),{count:j(R.length)}))}</h1></div>
|
||
${It()}${xn(R.length,{w:E.length*so+(E.length-1)*8,cols:`repeat(${E.length},${so}px)`,gap:8,cell:"xb-cell xb-cell-ws"})}`:`<div class="ws-top"><span>${m(P.label||P.id)}</span><span>${m(h(s("list_header"),{from:j(oe+1),to:j(Math.min(oe+_e,R.length)),count:j(R.length)}))}</span></div>`;ee.push(me(`${Pe}${ne}${$e}<div class="ws-foot">${m(s("privacy_note"))}</div>`,"sheet-worksheet sheet-flow")),oe+=_e}return ee}const Cn={lightweight:Pn},Dt={head:22,sub:19,text:18,refs:16,gap:3,passage:16,th:19,thb:20,scr:18},w1={head:25,sub:21,text:22.5,refs:18.5,gap:18,passage:20,th:21,thb:22,scr:19},rp=82,Vr=10,sp=.97,ip=y-($+rp)-80,Ra=P=>{const R={};for(const D of Object.keys(Dt))R[D]=Math.round((Dt[D]+(w1[D]-Dt[D])*P/Vr)*4)/4;return R},Li=/[\u2E80-\u9FFF\u3000-\u303F\uF900-\uFAFF\uFF00-\uFFEF]/,k1=P=>{const R=P.codePointAt(0);return Li.test(P)?1.05:R>=1024&&R<=1327?.6:R>=1536&&R<=1791||R>=64336&&R<=65279?.47:R>=2304&&R<=2431?.56:.54},Ko=1.2,lp=1.12,io=(P,R,D)=>[...P].reduce((ee,ne)=>ee+k1(ne),0)*R*D;function Tn(P,R){let D=0,ee=0;const ne=oe=>{D||(D=1),ee>0&&ee+oe>R&&(D++,ee=0),ee+=oe};for(const[oe,re,_e]of P){const ye=String(oe||"").replace(/\s+/g," ").trim().split(" ").filter(Boolean);for(const $e of ye){if(Li.test($e))for(const Pe of $e)ne(io(Pe,re,_e));else ne(io($e,re,_e));ee+=io(" ",re,_e)}}return D}const cp=(P,R)=>{let D=1,ee=0;for(const ne of P)ee>0&&ee+20+ne>R&&(D++,ee=0),ee+=(ee>0?20:0)+ne;return D},Ia=P=>Li.test(String(P||""))?1.33:1.19;function Mi(P){const R=F-2*$,D=Array.isArray(r.themes)&&r.themes.length===7?r.themes:a.themes||[],ee=Array.isArray(r.scenes)&&r.scenes.length===3?r.scenes:a.scenes||[],ne=a.scene_refs||[];let oe=0;if(D.length){const re=P.th*1.3,_e=1.3*P.th+io(" ",P.th,1);oe+=Tn([[s("themes_title"),P.thb,Ko],[s("themes_intro"),P.th,1]],R)*Math.max(re,P.thb*Ia(s("themes_title")));const ye=cp(D.map(Pe=>_e+io(String(Pe),P.th,1)),R),$e=cp([io(String(s("scenes_title")),P.thb,Ko),...ee.map((Pe,De)=>_e+io(String(Pe),P.th,1)+io(` ${(ne[De]||[]).map(Ai).join(" · ")}`,P.scr,lp))],R);oe+=2+ye*re+(ye-1)+2+$e*re+($e-1)+6+1.5+10}for(const re of c){const _e=(re.refs||[]).map(Ai).join(" · ");if(oe+=Tn([[`${re.n}. ${i(re.rhythm)}`,P.head,Ko],...re.sub?[[`— ${re.sub}`,P.sub,1]]:[]],R)*P.head*Ia(i(re.rhythm)),oe+=2+Tn([[re.text,P.text,1]],R)*P.text*1.3,oe+=2+Tn([[_e,P.refs,lp]],R)*P.refs*Ia(_e),re.print_passage){const ye=R-15,$e=String(s("point4_passage")||""),Pe=String(s("point4_passage_bold")||""),De=Pe?$e.indexOf(Pe):-1,Ye=De<0?[[$e,P.passage,1]]:[[$e.slice(0,De),P.passage,1],[Pe,P.passage,Ko],[$e.slice(De+Pe.length),P.passage,1]];oe+=6+Tn(Ye,ye)*P.passage*1.4+2+Tn([[s("point4_passage_credit"),13,1]],ye)*13*Ia(s("point4_passage_credit")),oe+=8+Tn([[s("point4_heart_title"),P.refs,Ko+.15]],ye)*P.refs*Ia(s("point4_heart_title")),oe+=2+Tn([[s("point4_heart_lede"),P.passage,1]],ye)*P.passage*1.35,oe+=6+Tn([[s("point4_heart_leadin"),P.passage-1,1]],ye)*(P.passage-1)*1.3;const gt=(ye-28-40)/2,wt=d.reduce((kt,St)=>kt+Tn([[St.who,P.passage-1,Ko],[` · ${Ai(St.ref)}`,P.passage-1,1]],gt),0);oe+=3+Math.ceil(wt/2)*(P.passage-1)*1.4}oe+=P.gap}return oe}const up=()=>{for(let P=Vr;P>0;P--)if(Mi(Ra(P))<=ip*sp)return{k:P,sz:Ra(P)};return{k:0,sz:Ra(0)}},dp=P=>{const R=String(P).match(/^(.*?)\s+(\d[\d:–\-,; ]*)$/),D=R&&(r.books||{})[R[1]];return{book:D,text:D?`${D} ${R[2]}`:String(P)}},Ai=P=>dp(P).text,qr=P=>{const{book:R,text:D}=dp(P);return`<span dir="${R&&Ci.has(t)?"rtl":"ltr"}" style="unicode-bidi:isolate">${m(D)}</span>`};function S1(){const P=Array.isArray(r.themes)&&r.themes.length===7?r.themes:a.themes||[],R=Array.isArray(r.scenes)&&r.scenes.length===3?r.scenes:a.scenes||[];if(!P.length)return"";const D=a.scene_refs||[],ee=(ne,oe)=>`<li><span class="pt-n">${j(ne)}</span> ${oe}</li>`;return`<div class="pt-themes">
|
||
<div class="pt-th-h"><b>${m(s("themes_title"))}</b> <span class="pt-th-i">${m(s("themes_intro"))}</span></div>
|
||
<ol class="pt-th-list">${P.map((ne,oe)=>ee(oe+1,m(ne))).join("")}</ol>
|
||
<ol class="pt-th-list pt-sc-list"><li class="pt-sc-h"><b>${m(s("scenes_title"))}</b></li>${R.map((ne,oe)=>ee(P.length+oe+1,`${m(ne)} <span class="pt-sc-r">${(D[oe]||[]).map(qr).join(" · ")}</span>`)).join("")}</ol>
|
||
</div>`}function pp(P){const R=Number.isInteger(P)?Math.max(0,Math.min(Vr,P)):up().k,D=Ra(R),ee=c.map(ne=>{const oe=(ne.refs||[]).map(qr).join(" · "),re=ne.sub?` <span style="font:italic ${D.sub}px Georgia,serif;color:#8c8170">— ${m(ne.sub)}</span>`:"";return`<div style="margin-bottom:${D.gap}px">
|
||
<div class="pt-h" style="font:700 ${D.head}px Georgia,serif;color:#1b1a17">
|
||
${ne.n}. ${m(i(ne.rhythm))}${re}</div>
|
||
<div style="font:400 ${D.text}px Georgia,serif;color:#3b3226;line-height:1.3;margin-top:2px">${m(ne.text)}</div>
|
||
<div style="font:600 ${D.refs}px Georgia,serif;color:#7a3b2e;margin-top:2px">${oe}</div>
|
||
${ne.print_passage?P1(D)+x1(D):""}
|
||
</div>`});return me(`
|
||
<div style="position:absolute;left:${$}px;top:44px;right:${$}px">
|
||
<div class="points-title" style="font:700 40px Georgia,serif;color:#1b1a17">${m(s("points_title"))}</div>
|
||
<div style="font:italic 18px Georgia,serif;color:#6d766e;margin-top:6px">${m(s("points_intro"))}</div>
|
||
</div>
|
||
<div class="points-body" data-pt-tier="${R}" data-pt-est="${Math.round(Mi(D))}" style="position:absolute;left:${$}px;top:${$+rp}px;right:${$}px;bottom:80px;--pt-th:${D.th}px;--pt-thb:${D.thb}px;--pt-scr:${D.scr}px">${S1()}${ee.join("")}</div>
|
||
<div class="fine">${m(s("points_attrib"))}</div>`,"sheet-points")}const x1=P=>`<div class="p4-heart" style="margin-top:8px;padding-inline-start:12px;border-inline-start:3px solid #d9d3c4">
|
||
<div class="p4-heart-h" style="font:700 ${P.refs}px Georgia,serif;letter-spacing:.08em;color:#7a3b2e">${m(s("point4_heart_title"))}</div>
|
||
<div class="p4-heart-lede" style="font:400 ${P.passage}px/1.35 Georgia,serif;color:#2f2a22;margin-top:2px">${m(s("point4_heart_lede"))}</div>
|
||
<div class="p4-heart-leadin" style="font:italic ${P.passage-1}px/1.3 Georgia,serif;color:#4a4a45;margin-top:6px">${m(s("point4_heart_leadin"))}</div>
|
||
<ol class="p4-heart-list" style="margin:3px 0 0;padding-inline-start:28px;columns:2;column-gap:40px;font:400 ${P.passage-1}px/1.4 Georgia,serif;color:#3b3226">${d.map(R=>`<li><b>${m(R.who)}</b> · ${qr(R.ref)}</li>`).join("")}</ol></div>`;function P1(P){const R=String(s("point4_passage")||""),D=String(s("point4_passage_bold")||""),ee=D?R.indexOf(D):-1,ne=ee<0?m(R):`${m(R.slice(0,ee))}<strong class="p4-v19" style="font-weight:700;color:#1b1a17">${m(D)}</strong>${m(R.slice(ee+D.length))}`;return`<div class="p4-passage" style="font:400 ${P.passage}px/1.4 Georgia,serif;color:#2f2a22;margin-top:6px;
|
||
padding-inline-start:12px;border-inline-start:3px solid #d9d3c4">${ne}
|
||
<div class="p4-credit" style="font:italic 13px Georgia,serif;color:#a89f8c;margin-top:2px">${m(s("point4_passage_credit"))}</div></div>`}const gp=["dialect","dialect","dialect","language","language","language","family","family","family"],C1=["same","near","different","same","near","different","same","near","different"];function T1(P){if(P===Po)return s("ring_band_geography");const R=P-1;return R<0||R>=gp.length?"":h(s("ring_join"),{band:s(`ring_band_${gp[R]}`),culture:s(`ring_culture_${C1[R]}`)})}function L1(P){const R=P&&P.counts,D=ne=>R&&typeof R.get=="function"?Number(R.get(ne)||0):0,ee=[];for(let ne=1;ne<=Po;ne++){const oe=T1(ne);if(!oe)continue;const re=D(ne);ee.push(`<li><span class="ring-n">${ne===Po?"+":ne}</span> ${m(oe)} <span class="ring-c">${re?j(re):"—"}</span></li>`)}return ee.length?`<ol class="set-rings">${ee.join("")}</ol>`:""}function hp(P,R,D){const ee=D*.2,ne=D*.66;return`<g class="set-cross"><rect x="${(P-ee/2).toFixed(1)}" y="${(R-D/2).toFixed(1)}" width="${ee.toFixed(1)}" height="${D.toFixed(1)}" rx="1.5"/><rect x="${(P-ne/2).toFixed(1)}" y="${(R-D/2+D*.24).toFixed(1)}" width="${ne.toFixed(1)}" height="${ee.toFixed(1)}" rx="1.5"/></g>`}function M1(P,R,D){if(!R||!Array.isArray(R.bounded)&&!Array.isArray(R.centered))return"";const ee=Array.isArray(R.bounded)?R.bounded:[],ne=Array.isArray(R.centered)?R.centered:[];if(!ee.length&&!ne.length)return"";const oe=ye=>Number.isFinite(D)&&D>ye?` · ${h(s("sets_no_data"),{n:j(D-ye)})}`:"",re=[];let _e="";if(ee.length){const ye=Jy(ee,{r:100,spread:220}),$e=Xy(ye),Pe=250,De=(Ye,gt)=>`<circle class="${gt}" cx="${Ye.x.toFixed(1)}" cy="${Ye.y.toFixed(1)}" r="6"/>`;re.push({kind:"bounded",html:`<div class="set-panel">
|
||
<h2 class="set-h">${m(s("sets_head_bounded"))}</h2>
|
||
<div class="set-sub">${m(s("sets_bounded_title"))}</div>
|
||
<svg class="set-svg" viewBox="${ye.cx-Pe} ${ye.cy-Pe} ${2*Pe} ${2*Pe}">
|
||
${ye.outside.map(Ye=>De(Ye,"set-out")).join("")}
|
||
${ye.inside.map(Ye=>De(Ye,"set-in")).join("")}
|
||
<circle class="set-ring" cx="${ye.cx}" cy="${ye.cy}" r="${ye.r}"/>
|
||
${hp(ye.cx,ye.cy,44)}
|
||
</svg>
|
||
<p class="set-cap">${m(h(s("sets_bounded_tally"),{inside:j($e.inside),outside:j($e.outside),unknown:j($e.unknown)})+oe(ee.length))}</p>
|
||
</div>`})}if(ne.length){const ye=n1(ne,{}),$e=o1(ye),Pe=34,De=25,Ye=Po-1,gt=Pe+Ye*De,wt=gt+De,kt=wt+14,St=5.5,ft=[];ft.push(`<circle class="set-band-out" cx="0" cy="0" r="${wt}"/>`);for(let Ue=Ye;Ue>=1;Ue--)ft.push(`<circle class="${Ue%2?"set-band-a":"set-band-b"}" cx="0" cy="0" r="${Pe+Ue*De}"/>`);ft.push(`<circle class="set-core" cx="0" cy="0" r="${Pe}"/>`);const Et=[];for(let Ue=1;Ue<=Ye;Ue++){const Tt=Pe+(Ue-.5)*De;Et.push(`<circle class="set-num" cx="0" cy="${Tt}" r="9"/><text class="set-num-t" x="0" y="${Tt}">${Ue}</text>`)}const xt=Kd({innerR:Pe+De/2,ringGap:De}),bt=Ue=>{const Tt=Math.asin(Math.min(1,(9+St+2)/Ue));return{start:-Math.PI/2-Tt,span:2*Tt}},tt=a1(ye.placed,xt,{ringGap:De,minSep:2*St+2,pinRadius:St,minPinFloor:3,labels:xt.map(Ue=>({ring:Ue.ring,keepOut:bt(Ue.r)}))}),lo=tt.placed.map(Ue=>`<circle class="set-in" cx="${(-Ue.x).toFixed(1)}" cy="${(-Ue.y).toFixed(1)}" r="${(Ue.pin||St).toFixed(1)}"/>`).join("");re.push({kind:"centered",html:`<div class="set-panel">
|
||
<h2 class="set-h">${m(s("sets_head_centered"))}</h2>
|
||
<div class="set-sub">${m(s("sets_centered_title"))}</div>
|
||
<svg class="set-svg" viewBox="${-kt} ${-kt} ${2*kt} ${2*kt}">
|
||
${ft.join("")}${lo}${Et.join("")}${hp(0,0,40)}
|
||
</svg>
|
||
<p class="set-cap">${m(h(s("sets_centered_tally"),{placed:j(tt.placed.length),centre:j($e.centre),unplaced:j($e.unplaced+tt.unplaced.length)})+oe(ne.length))}</p>
|
||
</div>`});const Ge=L1($e);Ge&&(_e=`<div class="set-legend"><div class="set-legend-h">${m(s("sets_rings_head"))}</div><p class="set-legend-p">${m(s("sets_rings_lede"))}</p>${Ge}</div>`)}return re.map((ye,$e)=>me(`
|
||
<div class="pg-head pg-head-c"><div class="pg-kicker">${m(s("sets_kicker"))}</div>
|
||
<h1 class="pg-h1">${m(s("sets_title"))}</h1></div>
|
||
${$e===0?`<p class="pg-lede pg-lede-c">${m(s("sets_lede"))}</p>`:""}
|
||
<div class="set-row set-row-solo set-solo-${ye.kind}">${ye.html}</div>
|
||
${ye.kind==="centered"?_e:""}
|
||
`,`sheet-sets sheet-flow sheet-sets-${ye.kind}`)).join("")}function mp(){const P=F/2,R=1075,D=500,ee="'Public Sans','Helvetica Neue',Arial,-apple-system,'Segoe UI',system-ui,sans-serif",ne=["praise","wait","confess","read","ask","intercede","pray_word","thank","sing","meditate","listen","praise_end"],oe=["#fe936a","#febb64","#fed164","#fffa83","#e6f37d","#a3d979","#47ccfc","#6293fe","#722cfd","#c632fd","#e6578d","#ff766f"],re=270,_e=ft=>ft*Math.PI/180,ye=ne.map((ft,Et)=>{const xt=_e(re+Et*30),bt=_e(re+(Et+1)*30),tt=(xt+bt)/2,lo=P+D*Math.cos(xt),Ge=R+D*Math.sin(xt),Ue=P+D*Math.cos(bt),Tt=R+D*Math.sin(bt),Yo=P+D*.6*Math.cos(tt),Bn=R+D*.6*Math.sin(tt);let Un=tt*180/Math.PI;return Un=((Un+180)%360+360)%360-180,(Un>90||Un<-90)&&(Un+=180),`<path d="M ${P} ${R} L ${lo.toFixed(1)} ${Ge.toFixed(1)} A ${D} ${D} 0 0 1 ${Ue.toFixed(1)} ${Tt.toFixed(1)} Z" fill="${oe[Et]}"/>
|
||
<text class="wheel-label" x="${Yo.toFixed(1)}" y="${Bn.toFixed(1)}" transform="rotate(${Un.toFixed(1)} ${Yo.toFixed(1)} ${Bn.toFixed(1)})"
|
||
text-anchor="middle" dominant-baseline="middle" filter="url(#pw-label)"
|
||
font-family="${ee}" font-weight="800" font-size="26" letter-spacing="0.5" fill="#ffffff"
|
||
stroke="#000000" stroke-opacity="0.28" stroke-width="2.5" paint-order="stroke fill">${m(i(ft))}</text>`}).join(""),$e=ne.map((ft,Et)=>{const xt=_e(re+(Et+.5)*30),bt=P+(D+44)*Math.cos(xt),tt=R+(D+44)*Math.sin(xt);return`<circle cx="${bt.toFixed(1)}" cy="${tt.toFixed(1)}" r="23" fill="#000000"/>
|
||
<text x="${bt.toFixed(1)}" y="${(tt+1).toFixed(1)}" text-anchor="middle" dominant-baseline="middle"
|
||
font-family="${ee}" font-weight="700" font-size="24" fill="#ffffff">5</text>
|
||
<rect x="${(bt-40).toFixed(1)}" y="${(tt+19).toFixed(1)}" width="80" height="22" rx="2" fill="#5b5b5b"/>
|
||
<text x="${bt.toFixed(1)}" y="${(tt+31).toFixed(1)}" text-anchor="middle" dominant-baseline="middle"
|
||
font-family="${ee}" font-size="14" fill="#ffffff">${m(s("wheel_minutes"))}</text>`}).join(""),Pe=_e(re+45),De=P+(D+150)*Math.cos(Pe),Ye=R+(D+150)*Math.sin(Pe),gt=_e(re+20),wt=P+(D+8)*Math.cos(gt),kt=R+(D+8)*Math.sin(gt),St=`<g class="wheel-start">
|
||
<rect x="${(De-110).toFixed(1)}" y="${(Ye-26).toFixed(1)}" width="220" height="52" rx="26" fill="#009c57"/>
|
||
<text x="${De.toFixed(1)}" y="${(Ye+1).toFixed(1)}" text-anchor="middle" dominant-baseline="middle"
|
||
font-family="${ee}" font-weight="800" font-size="24" fill="#ffffff">${m(s("wheel_start"))}</text>
|
||
<path d="M ${(De-70).toFixed(1)} ${(Ye+26).toFixed(1)} Q ${(De-90).toFixed(1)} ${(kt-10).toFixed(1)} ${wt.toFixed(1)} ${kt.toFixed(1)}"
|
||
fill="none" stroke="#009c57" stroke-width="5" stroke-linecap="round" marker-end="url(#pw-arrow)"/>
|
||
</g>`;return me(`
|
||
<div style="position:absolute;left:${$}px;top:48px;right:${$}px;text-align:center">
|
||
<div class="wheel-title" style="font:800 46px ${ee};color:#009c57;text-transform:uppercase;letter-spacing:.5px">${m(s("wheel_title"))}</div>
|
||
<div style="font:400 21px/1.5 ${ee};color:#2b2a26;margin-top:12px;
|
||
max-width:1060px;margin-left:auto;margin-right:auto">${m(s("wheel_intro"))}</div>
|
||
</div>
|
||
<svg width="${F}" height="${y}" style="position:absolute;left:0;top:0" xmlns="http://www.w3.org/2000/svg">
|
||
<defs>
|
||
<!-- the source wheel's soft shadow, and the shadow that keeps white labels legible on its
|
||
palest segments (READ THE WORD sits on #fffa83). The labels ALSO carry a faint dark
|
||
outline painted under the fill: a print path that drops SVG filters would otherwise
|
||
leave white text on pale yellow, near-invisible. -->
|
||
<filter id="pw-wheel" x="${P-D-60}" y="${R-D-60}" width="${2*D+120}" height="${2*D+120}" filterUnits="userSpaceOnUse">
|
||
<feDropShadow dx="4" dy="6" stdDeviation="7" flood-color="#000000" flood-opacity="0.22"/>
|
||
</filter>
|
||
<marker id="pw-arrow" viewBox="0 0 10 10" refX="7" refY="5" markerWidth="5" markerHeight="5" orient="auto-start-reverse">
|
||
<path d="M 0 0 L 10 5 L 0 10 z" fill="#009c57"/>
|
||
</marker>
|
||
<filter id="pw-label" x="-20%" y="-60%" width="140%" height="220%">
|
||
<feDropShadow dx="1.5" dy="1.5" stdDeviation="1.2" flood-color="#000000" flood-opacity="0.55"/>
|
||
</filter>
|
||
</defs>
|
||
<circle cx="${P}" cy="${R}" r="${D}" fill="#ffffff" filter="url(#pw-wheel)"/>
|
||
${ye}${$e}${St}
|
||
</svg>
|
||
<div class="fine">${m(s("wheel_attrib"))}</div>`)}const Ei={full:null,lightweight:new Set(["life","christian","sets"])};function A1(P,R,D,ee,ne=null,oe=null,re="full",_e=null){const ye=Ei[re]||Ei.full,$e=De=>!(ye&&ye.has(De)),Pe=[$e("map")&&p(P,R,ee,ne),$e("funnel")&&z(P,R,ne),$e("life")&&I(),$e("christian")&&V(P,oe),...Cn[re]?Cn[re](P,R,D):Wt(P,R,D),$e("sets")&&M1(P,_e,Array.isArray(R)?R.length:NaN),$e("wheel")&&mp(),$e("points")&&pp()].filter(Boolean);return`<!DOCTYPE html><html lang="${m(t)}" dir="${Ci.has(t)?"rtl":"ltr"}"><head><meta charset="utf-8">
|
||
<title>${m(P.label||P.id)}</title><style>${Ce()}</style></head>
|
||
<body>${Pe.join(`
|
||
`)}</body></html>`}return{buildPacket:A1,mapPage:p,lifePage:I,christianPage:V,funnelPage:z,listPages:Wt,pointsPage:pp,pointsFit:{tiers:Vr,bodyH:ip,safe:sp,height:P=>Mi(Ra(P)),chosen:()=>up().k},wheelPage:mp,css:Ce,mapCss:qe,liftMap:X,mapFromImage:de,mapSheetFiles:Te,PER_PAGE:b,FD_FIRST:mt,WS_FIRST:Hn,WS_REST:ro,W:F,H:y,VARIANTS:Ei}}const c1=Object.freeze(Object.defineProperty({__proto__:null,createPacketRenderer:l1},Symbol.toStringTag,{value:"Module"}));function Jd(e){if(!e||!Array.isArray(e.cols)||!Array.isArray(e.rows))return new Map;const t=Object.fromEntries(e.cols.map((r,s)=>[r,s])),n=e.dict||{},o=(r,s)=>s in t?n[s]?n[s][r[t[s]]]:r[t[s]]:void 0,a=new Map;for(const r of e.rows){const s=o(r,"slug");s&&a.set(String(s),{reached:o(r,"reached")===1,ring:o(r,"ring"),ringNb:o(r,"ringNb")})}return a}function u1(e,t){const n=Jd(t);if(!n.size||!Array.isArray(e)||!e.length)return null;const o=[],a=[];let r=0;for(const s of e){const i=String(s.slug||s.id||"");if(!i)continue;const l=s.name||i,c=n.get(i);if(!c){o.push({id:i,label:l,reached:void 0});continue}r++,o.push({id:i,label:l,reached:c.reached}),a.push({id:i,label:l,ring:c.ring,neighborId:c.ringNb==null?null:String(c.ringNb)})}return r?{bounded:o,centered:a,unmatched:o.length-r}:null}const d1=Object.freeze(Object.defineProperty({__proto__:null,buildPacketSets:u1,decodeNearTable:Jd},Symbol.toStringTag,{value:"Module"}));function p1(e,t){const n=t&&t.groups;if(!n||typeof n!="object")return null;const o=Array.isArray(e)?e:[];let a=0,r=0,s=0;for(const i of o){const l=i&&n[i.slug];if(!Array.isArray(l))continue;const[c,u]=l;!Number.isFinite(c)||!Number.isFinite(u)||(s++,a+=u,r+=u*c/100)}return{groupsInList:o.length,groupsMatched:s,population:a,evangelicalPopulation:Math.round(r),pctEvangelical:a>0?100*r/a:null}}const g1=Object.freeze(Object.defineProperty({__proto__:null,evangelicalShareFor:p1},Symbol.toStringTag,{value:"Module"})),Xd="Each DOXA people group's evangelical share (band midpoint, percent) and population, for a prayer packet's own-groups figure. Summed over every group it reproduces christian-share.json exactly.",Qd="IMB people-group CSV joined to the DOXA snapshot by ROP3Code + ISOAlpha3; EvangelicalLevel band at its midpoint (0 for No Known Evangelicals); IMB Population.",ep={imb:"data/people-groups/people_groups.csv",doxa:"data/people-groups/doxa-groups-snapshot.json"},tp={"a-ou":[0,2700],"abai-sungai":[1,1200],"abu-junuk":[0,9800],accukattavandlu:[1,12500],"acre-arara":[1,375],adi:[0,1400],adiyan:[1,21500],afar:[1,356e3],afitti:[1,5700],afshari:[0,203e3],agaria:[0,25e3],agasa:[1,652e3],agri:[1,70500],agul:[1,29e3],aguru:[1,2e4],aheu:[0,2700],ahmadiya:[1,7100],"ai-cham":[0,4400],"ainu-china":[0,11e3],"ainu-japan":[0,13e3],aiton:[0,4100],aiyarakulu:[1,693e3],ajja:[0,325],akaselem:[1,83e3],akeu:[0,1300],akha:[1,113e3],"akha-eurba":[0,5900],"akha-jijor":[0,5200],"akha-jipea":[0,9800],"akha-jowhoi":[0,550],"akha-ker":[0,3300],"akha-luma":[0,6700],"akha-muji":[0,5300],"akha-nuver":[0,6400],"akha-pala":[0,6600],"akha-piso":[0,5600],akhdam:[0,1865e3],akhwakh:[0,6500],akkin:[0,44e3],alak:[1,25500],alas:[1,269e3],alavan:[0,1e4],"alawites-lebanon":[0,82500],"alawites-turkiye":[1,132e4],ale:[0,75500],alehemir:[0,2200],aling:[0,9600],allar:[0,15500],alu:[0,9400],"alxa-mongols":[0,35500],amahuaca:[1,300],amanaye:[0,125],amarakaire:[1,2e3],amaruwa:[1,475],"amazonas-arara":[0,375],amba:[1,64500],ambalavasi:[0,221e3],ambelau:[1,8900],"american-samoa-deaf":[0,450],amundava:[1,125],anambe:[1,125],andamanese:[1,12e3],"andhra-vaisnawa":[1,5200],andi:[1,4e4],andorrans:[1,46e3],anfillo:[0,2700],angarok:[0,6900],angku:[0,9200],angosturas:[1,125],ani:[0,5100],animpokoimo:[0,45],anjana:[0,53500],"anjana-patel-gujarati":[0,352e3],"ansari-momin-bengali":[0,471e3],"ansari-momin-kannada":[0,8700],"ansari-momin-tamil":[0,2300],"ansari-momin-telugu":[0,142e3],"anthur-nair":[0,173e3],antiti:[0,16500],anuppan:[0,1e3],anwal:[0,125],aoka:[1,429e3],apama:[0,200],apiaka:[1,850],apu:[0,4300],"arab-bahraini-sunni":[0,137e3],"arab-bedouin":[0,1365e3],"arab-qatari":[1,394e3],"arabic-shihhi":[0,19500],"arabized-africans":[0,49e3],"arain-dogri":[0,1800],"arain-kannauji":[0,71e3],"arain-punjabi":[1,41e3],arakala:[0,375],aranadan:[0,375],arapaso:[0,475],arasu:[0,46e3],arawak:[0,3300],arawete:[1,475],arayavati:[0,1200],arbore:[1,11e3],"are-bondili":[0,3100],"are-kapu":[0,245e3],"are-katika":[0,226e3],"arem-laos":[0,900],"arem-vietnam":[0,175],arikapu:[0,40],arra:[0,2400],arua:[0,90],"ash-ninka-alto-pichis":[1,7e3],"ash-ninka-bajo-pichis":[1,5e3],"asheninca-perene":[1,5500],"ashkuni-nuristani":[0,49e3],asilulu:[1,14500],"asurini-xingu":[1,200],atollu:[0,250],attagara:[0,7400],"attar-saibulu":[1,3800],"ava-canoeiro":[0,70],"avar-azerbaijan":[0,45e3],"avar-kunsakh":[1,912e3],aweti:[0,225],"awlad-hassan":[0,172e3],ayri:[0,225],ayyanavar:[1,2e4],baangi:[0,30500],babalia:[0,13e3],"badhai-chhattisgarhi":[1,851e3],badhik:[1,19e3],badi:[1,16e3],"badi-marwari":[0,19500],badyara:[1,13e3],bafan:[0,600],"baga-fore":[0,9700],"baga-koga":[0,5400],"baga-mandouri":[0,4900],"baga-sitemu":[1,48e3],bagga:[0,550],"baggara-dekakire":[1,15500],bago:[1,13e3],bagti:[0,275],bagvalal:[0,6500],"baha-i":[0,1600],baharupi:[0,5300],baida:[0,800],baig:[0,27e3],bainouk:[1,3e3],baira:[0,9400],"bairagi-chhattisgarhi":[1,158e3],"bairagi-gujarati":[1,514e3],"bairagi-odia":[1,152e3],baisya:[0,1600],bajandar:[0,750],bakuda:[0,8900],balaesan:[1,6400],balahar:[1,12500],balasantoshi:[0,34500],baloch:[0,97500],"baloch-eastern":[1,298e4],"baloch-western":[1,3035e3],bamcha:[0,5700],banai:[0,650],banchada:[1,36e3],bandi:[0,5900],bandial:[1,19500],bandollu:[0,3e4],"bangi-me":[0,2600],bangti:[0,300],"bania-agarwal-telegu":[1,632e3],"bania-dogri":[1,147e3],"bania-kannada":[1,258e3],"bania-kashmiri":[0,113e3],"bania-konkani":[0,38e3],"bania-malayalam":[1,156e3],"banik-bania":[1,128e3],baniya:[1,22e4],banjania:[1,35500],banka:[0,29e3],"banka-samogho":[1,11500],banpar:[1,23500],"bantu-swahili":[0,54500],baonuo:[1,41500],barae:[1,61500],baras:[1,400],baraua:[0,500],barda:[1,1800],barein:[0,13500],baret:[0,1100],bargah:[0,48e3],bargala:[1,25500],bargi:[1,16e3],bargujar:[1,16e4],"bari-bai":[0,4800],"bari-hindi":[1,408e3],"bari-marathi":[1,102e3],"bari-odia":[0,550],barke:[1,25e3],barot:[0,1700],barthari:[1,17e3],barua:[0,1e3],"bashgali-nuristani":[0,9e3],bashkardi:[0,7900],bashkarik:[0,2400],basila:[0,21500],basudeva:[0,18e3],batada:[0,4700],batahin:[0,348e3],batahira:[0,200],bateri:[1,49e3],bati:[0,5500],"batlukh-gid-avar":[0,5e4],bauti:[0,1e3],bavuri:[0,7800],baygo:[0,2900],"bayil-kammara":[0,375],"bayita-kammara":[0,1e4],bederia:[0,1345e3],"bedouin-arabs-saudi-arabia":[0,144e4],"begi-mao":[0,71e3],beidongnuo:[0,600],beja:[1,224e3],belbali:[0,3800],"beldar-chhattisgarhi":[1,4400],beli:[1,83e3],bellara:[0,1900],"beni-shangul":[0,32e4],berad:[0,250],berar:[0,131e3],berguid:[0,25500],bernde:[0,5200],berti:[0,459e3],bestha:[1,472e3],betoye:[1,800],bhakta:[1,2700],bhalla:[1,3800],bhand:[0,17500],"bhand-kashmiri":[0,5200],"bhangi-chhattisgarhi":[1,24500],bhanumati:[0,2300],bharewa:[0,9500],"bharia-bhumia-chhattisgarhi":[1,132e3],bharwad:[1,2100],bhatrajulu:[0,77500],"bhattra-bhatri":[1,337e3],"bhatu-andamani":[1,400],bhediyar:[1,30500],bhodala:[0,14500],"bhoi-marathi":[1,31e4],"bhoi-odia":[1,143e3],bhojki:[0,3200],bhondari:[0,365e3],bhopa:[0,650],bhuiyar:[1,42e3],bhujel:[1,19e3],bhunjia:[1,39e3],bhurtia:[1,21500],bhutta:[0,7100],bidio:[1,98e3],bijobe:[1,6700],bilala:[1,446e3],bilaspuri:[0,1e3],bilen:[0,78500],bindili:[0,7100],bindla:[1,2e4],binga:[0,1e3],bisati:[1,8800],bisaya:[1,86500],"bisayan-tutong":[1,24e3],"bit-china":[0,850],"bit-laos":[0,2e3],"black-thai":[1,48e3],bo:[0,4900],bodo:[1,4900],"bogar-lhoba":[0,5400],bogol:[0,1400],bokoruge:[0,7600],"bolgo-dugag":[0,5800],bolla:[0,246e3],bomba:[0,1700],"bon-gula":[0,3900],bondili:[0,3200],bondo:[1,11500],bonerate:[0,15500],bonggi:[0,3e3],boor:[0,450],borogo:[0,5e3],borono:[0,24e3],bororo:[1,2400],borpi:[0,1e3],bosniaks:[1,48500],botlikh:[1,7200],"bowis-mogeyar":[1,101e3],"boyu-tibetans":[0,5400],bozo:[1,251e3],"brahman-jyoti":[0,71500],"brahmin-andamani":[0,600],brao:[1,26e3],brokkat:[0,475],brukpa:[0,4500],"brunei-dusun":[1,10500],bua:[0,25e3],budakukkala:[0,27e3],budhan:[1,6e4],buduma:[0,15e3],bugan:[0,4400],bulba:[0,4200],bulgeda:[0,56e3],bunan:[0,2500],buol:[1,13e4],buryat:[1,17e4],buso:[0,250],"butuo-nosu":[1,34e4],buyang:[0,3800],byadh:[0,1200],byangsi:[1,2800],cabiyari:[1,350],cai:[1,33500],caki:[0,1300],cakkala:[0,244e3],cakketakare:[0,30],"cakkyar-nambiyar":[0,1e3],cali:[1,23e3],camadollu:[0,400],camma:[0,7700],campa:[0,7500],canamomo:[1,26500],"candhai-maru":[0,350],"cape-malay":[1,249e3],carabayo:[0,225],"carapana-brazil":[0,60],"carapana-colombia":[0,450],carijona:[0,375],cayubaba:[1,1200],cejara:[0,1400],cekkala:[1,32500],"central-koma":[0,1900],"central-sama":[1,68500],"central-swahili":[1,64e3],"central-tati":[0,41500],chachis:[1,9500],"chadian-french":[0,8500],chadwa:[0,9e3],chaikwa:[0,26500],chak:[0,1800],chakkiyar:[0,1e3],chali:[1,1900],chamacocos:[0,40],chamalal:[0,9500],"chamar-assamese":[1,20500],"chamar-muchi-malayalam":[0,475],"chamar-muchi-tamil":[0,450],"chamba-bedouin":[1,1e5],champta:[0,4400],changpao:[0,8500],chaptegar:[0,8200],chari:[0,125],charodi:[0,5200],charwaha:[0,6400],chatarkheya:[1,10500],chaudangsi:[1,1600],chayakkaran:[1,43e3],cheintz:[0,1300],"chengazhi-nambiar":[0,750],"chenna-dasar":[1,66500],chenoua:[0,109e3],cherua:[0,1100],chesu:[1,10500],chheepi:[1,10500],chidmar:[1,21500],"chikunda-mozambique":[1,85500],"chikunda-zimbabwe":[1,191e3],chobdar:[1,34e3],chong:[1,700],chopan:[0,50500],chunari:[0,64500],chungar:[0,8100],churaute:[0,8500],ci:[3.5,54e3],cingatanmar:[0,1200],cippollu:[1,132e3],cishinga:[1,1e5],citrakar:[1,19e3],citrakathi:[0,750],"cocos-malays":[1,550],"comorian-mwali":[1,41e3],"comorian-nzwani":[1,4e5],"coorgi-andamanese":[0,1900],coquille:[1,650],coyaima:[1,57500],cudigar:[0,1800],cuiba:[0,650],cunara:[0,2600],cundollu:[0,5500],cung:[1,4e3],daasanach:[0,4900],dabarre:[0,47e3],dadupanthi:[1,101e3],dafer:[0,275],dagel:[0,2400],dahalo:[1,650],dair:[0,3300],daitapati:[0,750],dajo:[0,35e3],dalang:[0,1e3],"dalu-bangladesh":[0,750],"dalu-india":[0,16500],damami:[1,5900],damel:[1,9400],damla:[0,6e3],dammali:[1,7800],dampelasa:[1,14e3],danau:[1,5700],dangasiya:[0,4400],daoli:[0,2900],"dar-fur-daju":[0,129e3],"dar-hamid":[0,1075e3],"darang-deng":[1,12500],"darji-odia":[1,3e4],"dasa-palanjika":[1,2400],dasari:[1,268e3],"dasnami-bawa":[0,7400],daule:[0,3900],dayare:[0,1900],"deaf-afghans":[0,422e3],"deaf-algerians":[0,486e3],"deaf-american-virgin-islanders":[0,1100],"deaf-angolans":[0,63500],"deaf-antiguans":[0,1e3],"deaf-armenians":[0,27500],"deaf-arubans":[0,1100],"deaf-azerbaijanis":[0,102e3],"deaf-bahamians":[0,4100],"deaf-bahrainis":[0,14500],"deaf-barbadians":[0,2900],"deaf-belarusians":[0,90500],"deaf-beninese":[0,34500],"deaf-bermudians":[0,650],"deaf-bhutanese":[0,7800],"deaf-bissau-guineans":[0,10500],"deaf-bosnians":[0,31500],"deaf-british-virgin-islanders":[0,375],"deaf-bruneians":[0,2100],"deaf-bulgarians":[0,65e3],"deaf-burmese":[1,526e3],"deaf-cambodians":[0,161e3],"deaf-cameroonians":[0,149e3],"deaf-caymanians":[0,650],"deaf-central-africans":[0,23e3],"deaf-christmas-islanders":[0,15],"deaf-cocos-islanders":[0,5],"deaf-comorans":[0,3500],"deaf-congolese-congo":[0,26e3],"deaf-congolese-democratic-republic-of-the-congo":[1,151e4],"deaf-cook-islanders":[0,100],"deaf-cubans":[0,109e3],"deaf-curacaoan":[0,1600],"deaf-cypriots":[0,3900],"deaf-djiboutians":[0,1e4],"deaf-dominicans":[0,750],"deaf-emiratis":[0,97e3],"deaf-equatoguineans":[0,4700],"deaf-eritreans":[0,40500],"deaf-faroese":[0,500],"deaf-fijians":[0,3700],"deaf-french-polynesians":[0,2800],"deaf-gabonese":[0,9500],"deaf-gambians":[1,26500],"deaf-georgians":[0,37e3],"deaf-gibraltarians":[0,275],"deaf-greeks":[0,55500],"deaf-grenadians":[0,1100],"deaf-guadeloupeans":[0,4500],"deaf-guamanians":[0,1700],"deaf-guernsey-islanders":[0,650],"deaf-guineans":[0,27e3],"deaf-guyanese":[0,2800],"deaf-hong-kong":[0,7900],"deaf-i-kiribati":[0,1300],"deaf-icelanders":[0,1600],"deaf-iranians":[1,888e3],"deaf-iraqis":[0,449e3],"deaf-israelis":[0,45500],"deaf-ivoirians":[1,105e3],"deaf-jamaicans":[0,27500],"deaf-jersey-islanders":[0,1100],"deaf-jordanians":[1,116e3],"deaf-kazakhstanis":[1,208e3],"deaf-koreans":[0,269e3],"deaf-kosovar":[0,9800],"deaf-kuwaitis":[0,12e3],"deaf-kyrgyzstanis":[1,61e3],"deaf-laotians":[0,68e3],"deaf-lebanese":[0,51e3],"deaf-liberians":[0,17e3],"deaf-libyans":[0,70500],"deaf-liechtensteiners":[0,400],"deaf-luxembourgers":[0,2100],"deaf-macao":[0,4900],"deaf-mahorais":[0,3300],"deaf-maldivans":[0,2300],"deaf-maltese":[0,2800],"deaf-mariana":[0,500],"deaf-marshallese":[0,600],"deaf-mauritanians":[0,54500],"deaf-mauritians":[0,7600],"deaf-micronesians":[0,1100],"deaf-monacans":[0,225],"deaf-montserratians":[0,60],"deaf-moroccans":[0,38e4],"deaf-mozambicans":[0,148e3],"deaf-new-caledonians":[0,2800],"deaf-ni-vanuatu":[0,2e3],"deaf-niueans":[0,15],"deaf-norfolk-islanders":[0,20],"deaf-omanis":[0,46e3],"deaf-pakistanis":[0,1023e4],"deaf-palauans":[0,175],"deaf-palestinian-arabs":[0,57500],"deaf-papua-new-guineans":[0,5e4],"deaf-qataris":[0,23500],"deaf-sahrawis":[0,6100],"deaf-saint-barth":[0,100],"deaf-saint-helenians":[0,50],"deaf-saint-lucians":[0,1600],"deaf-sammarinese":[0,325],"deaf-samoan":[0,850],"deaf-santomeans":[0,2300],"deaf-saudi-arabians":[0,349e3],"deaf-sint-maarteners":[0,475],"deaf-solomon-islanders":[0,8e3],"deaf-somalis":[0,193e3],"deaf-sri-lankans":[0,165e3],"deaf-sudanese":[0,448e3],"deaf-surinamers":[0,6100],"deaf-svalbardians":[0,30],"deaf-swazis":[0,6100],"deaf-swedes":[0,4e4],"deaf-syrians":[0,221e3],"deaf-tajikistanis":[1,97500],"deaf-tokelauans":[0,20],"deaf-tongans":[0,1100],"deaf-turks-and-caicos-islanders":[0,500],"deaf-vincentians":[0,1100],"deaf-wallisians":[0,125],"deaf-yemenis":[0,287e3],degema:[3.5,24e3],dehwari:[0,21500],dek:[1,6100],dendi:[0,4100],dendje:[0,1e4],deno:[1,14500],depala:[0,650],desana:[1,2300],"desana-1":[1,1800],"dhakad-halbi":[0,2800],dhaki:[1,7400],"dhal-kstriya":[0,125],dhamin:[0,500],dhawad:[0,1900],dhed:[0,475],dheevara:[0,475e3],dhekaro:[0,1200],dhera:[0,3700],dhimal:[0,5400],dhimba:[1,29500],dhobi:[1,127e3],"dhobi-dogri":[0,8e3],"dhobi-tamil":[0,5100],dhola:[0,225],dhunia:[1,2100],dhyar:[0,11e3],diahoi:[0,100],dianbao:[0,12e3],diao:[0,2700],didayi:[1,26e3],"digil-rahanweyn":[0,1065e3],dihina:[0,7900],dirya:[0,15e3],dobase:[0,49e3],"dogos-fing":[1,16e3],dokhpa:[0,2400],dolgans:[0,7100],doloka:[0,14500],"dom-chhattisgarhi":[0,48500],"dom-marathi":[1,3900],domal:[0,9300],domari:[1,111e3],"domari-gypsy":[1,462e3],"dombi-dasa":[0,8800],dompago:[0,125e3],"doms-libya":[0,44e3],dondo:[1,17500],donyiro:[1,17500],dosali:[0,1700],doupo:[0,950],doya:[1,2500],"druze-jordan":[0,24500],"druze-syria":[1,124e3],dubasiyin:[0,145e3],dudhwala:[0,2900],"dui-menia-bedouin":[0,86500],dulbu:[0,300],dumaki:[0,850],dura:[1,9e3],"durga-murga":[0,1200],duwai:[1,21500],dzalakha:[1,28e3],"east-limba":[0,7600],"eastern-samadu":[1,800],"eastern-tunebo":[1,800],"eastern-xiangxi-miao":[0,137e3],"egyptian-jews":[0,20],eliri:[0,11e3],emok:[0,1300],"enawen-naw":[0,1e3],"eneti-dora":[0,8600],engenni:[1,59e3],"enger-yugur":[1,5500],epie:[3.5,45e3],erawallan:[1,10500],erenga:[0,13e3],ersu:[1,48500],"ethiopian-jews":[0,9700],even:[1,19e3],ewe:[0,102e3],ezhavathi:[1,55e3],fanda:[0,21500],fanya:[0,3600],farla:[0,26500],fezara:[0,473e3],"fezzan-bedouins":[0,227e3],"figig-imazighen":[0,86500],"finnish-lapp":[12.5,750],fongoro:[0,3300],foodo:[1,54500],"fula-jalon":[0,128e3],fulakunda:[0,7700],fulanke:[1,107e3],fungor:[0,8100],fur:[0,7300],fwe:[1,16500],"ga-mong":[0,6e4],gaaliin:[1,452e4],gabit:[0,212e3],gachha:[0,37500],gadhai:[0,750],gadhia:[0,750],gadihar:[0,200],gagra:[0,700],"galada-kokani":[0,750],galiara:[0,550],galo:[1,4e3],galwan:[0,1300],gandalla:[0,27e3],gandharv:[0,14e3],gandla:[0,2e3],gane:[1,5200],gangai:[1,54e3],gangawar:[1,467e3],gangireddula:[0,20500],"ganta-sayebulu":[0,750],"ganti-chores":[0,4800],ganz:[0,1200],gao:[1,3600],garadi:[0,21500],gardi:[0,4800],garmatan:[0,70],garodi:[0,56500],garpagari:[0,29e3],garre:[0,321e3],garvi:[0,1300],gatti:[0,8700],gauli:[1,17e3],gavara:[1,263e3],gavli:[0,17500],gawamaa:[0,1415e3],"gawar-bati":[0,38500],"gazan-arabs":[1,233e4],gazi:[0,6100],gbaya:[0,6300],gberi:[1,1700],"gciriku-angola":[1,52500],"gciriku-namibia":[1,16500],gelao:[0,2300],"geman-deng":[0,16500],geruma:[0,18e3],"geser-gorom":[0,57500],ghadi:[0,5e3],ghadwa:[1,4900],ghantarghada:[0,8700],ghantiya:[0,350],ghazi:[0,1700],ghihara:[0,800],ghogia:[0,800],"ghomara-imazighen":[0,78e3],ghusuria:[0,11500],godagali:[0,3900],godari:[0,1300],godda:[1,7200],godra:[1,5400],golarana:[0,950],"golden-palaung":[1,215e3],gollango:[0,8800],"gomantak-maratha":[1,86e3],"gond-kannada":[0,186e3],gondhali:[1,53500],gongduk:[0,2800],gopal:[0,40500],"gorani-albania":[1,3700],"gorani-kosovo":[1,26500],gorap:[1,4e3],gorkun:[1,17500],goroa:[1,185e3],"gosain-chhattisgarhi":[1,54500],"gosain-gujarati":[0,85500],"gosain-kangri":[1,9500],"gosain-rajasthani":[1,11e3],gosangi:[0,34e3],gosha:[0,7e4],goundo:[0,50],"gourara-imazighen":[0,13500],gowro:[0,375],grangali:[0,12e3],"great-andamanese":[0,60],guaigun:[0,700],guanaca:[1,600],guato:[0,700],"guddi-eluguwallu":[0,650],gudikara:[0,2500],gudugudupandi:[0,650],guhayna:[0,2015e3],"gujur-rajasthani":[0,20500],gula:[0,11500],gulfan:[0,46500],guna:[0,2200],guraw:[0,41500],gurika:[0,222e3],gurru:[0,500],gurukkal:[1,14e3],gwa:[1,3900],gyasumdoba:[0,5900],"ha-li":[1,926e3],habura:[0,7600],hadi:[0,5300],"hadrami-arabs":[1,193e4],hagei:[0,3100],"hajjam-assamese":[0,700],"hajjam-bengali":[0,68500],"hajjam-gujarati":[0,47500],"hajjam-haryanvi":[0,2e4],"hajjam-hindi":[0,22500],"hajjam-kannada":[0,2e3],"hajjam-kashmiri":[0,3e3],"hajjam-telugu":[0,17e3],"halang-doan":[0,2300],halaypotra:[0,4200],halkhor:[1,6300],halleer:[0,7400],haluadas:[0,7400],haluwai:[1,87500],"hararghe-oromo":[1,6355e3],harasi:[0,600],hardas:[1,64e3],harkantra:[0,24500],harso:[0,10500],hasalaru:[0,3e4],hasania:[1,1025e3],hatgar:[0,3600],hatkar:[1,419e3],hawazama:[0,7500],hawrami:[0,46e3],heishui:[1,49e3],helawa:[1,22500],"henan-mongols":[0,43e3],"herero-angola":[1,129e3],"herero-namibia":[1,283e3],hesi:[1,3900],hijra:[0,19500],hima:[1,436e3],"hindu-santarash":[0,4600],hingora:[0,400],hingorza:[0,400],hiranbaj:[0,900],hitu:[0,26500],"hobyot-oman":[0,225],"hobyot-yemen":[0,550],"holeya-dasari":[0,5600],homa:[1,4900],"hongjin-tai":[1,21e4],hu:[0,1900],huachipaire:[0,2100],"huishui-miao":[1,371e3],hung:[0,4500],hupdah:[0,300],husseinat:[0,221e3],iban:[1,24e3],ibuoro:[1,13e3],idaksahak:[1,162e3],"ifora-tuareg":[0,24e3],ilayatu:[0,37e3],"indian-muslims":[1,318e3],"indo-french":[0,6700],"indo-vietnamese":[0,500],ir:[1,7400],irantxe:[1,475],"iraqi-jews":[0,4],irika:[0,750],isconahua:[0,80],ishkashimi:[1,3e3],itogapuk:[0,100],jadam:[0,1300],jadupetia:[1,5e3],jaine:[1,1800],"jains-bengali":[0,131e3],"jains-hindi":[0,112e4],"jains-maithili":[0,48e3],"jains-tamil":[0,123e3],"jains-telugu":[0,62e3],jakkula:[0,2100],"jalo-imazighen":[0,45500],jandra:[0,17500],janughanta:[0,2300],jarawas:[0,375],"jarkhandi-hajjam":[0,95500],"jarkhandi-julaha":[0,164e3],"jat-muslim":[0,649e3],"jati-pillai":[1,4600],jatigar:[0,125],java:[1,1300],jaweri:[0,375],jegu:[0,4900],jeng:[1,8700],jerba:[1,62e3],jethi:[0,26500],jew:[1,7400],"jews-czechia":[0,3900],"jews-panama":[1,11e3],"jews-venezuela":[0,7e3],jhadi:[0,24500],"jharkhandi-nai":[0,499e3],"jiamao-li":[1,11e4],jiasou:[0,51e3],jibbali:[0,48e3],jiiddu:[0,53e3],jimbin:[1,4700],jimdar:[0,99e3],jina:[0,3e3],jing:[1,3e4],jino:[1,24e3],jita:[1,598e3],jiye:[0,54500],"jofra-imazighen":[0,3e4],"jogi-angika":[0,9400],"jogi-halbi":[0,3600],"jogi-odia":[0,55e3],"jogi-telugu":[0,3e4],"jogi-tulu":[0,32500],jongor:[1,51500],"jula-burkina-faso":[1,273e4],"jula-mali":[0,125e3],jumam:[0,1e4],juneja:[0,225],"kaba-kurumi":[0,13e3],"kabixi-txapakura":[0,10],kabiye:[1,2e4],"kachchi-alia":[0,6700],"kachchi-kushwaha":[0,17e3],"kachera-bagheli":[0,2e3],kachi:[1,5e4],kadar:[1,87500],kadaru:[0,46500],kadiro:[1,8e3],kadung:[0,21e3],kaghzi:[0,76500],"kahar-gujarati":[0,9e3],kaijen:[0,15e3],kaikali:[1,32500],kaike:[1,2400],kaitag:[0,3e4],kaixana:[0,500],kajakaja:[0,37500],kajakse:[0,40500],kakkalan:[0,9600],kakmara:[0,900],"kalal-sadri":[1,61e3],kalanadies:[0,1500],kalapalo:[0,900],kalik:[0,31e3],kaliko:[0,12500],kalkoti:[1,9100],kalladi:[0,57500],"kallattu-kurup":[0,1300],"kalmyk-oirats":[1,19e4],kamalia:[0,13500],kamar:[1,15e3],kamba:[0,2100],kambalattan:[0,3200],kambar:[1,37500],"kambodia-bhagat":[0,1300],kami:[1,33e3],kamila:[0,15500],"kamviri-nuristani":[0,28e3],kanda:[0,3100],kandera:[0,27500],kanga:[0,21500],"kango-dikango":[0,14e3],"kango-likango":[0,11500],kankali:[0,750],"kannada-naicker":[1,3300],"kannada-saineegar":[0,2800],kanu:[1,166e3],kapadi:[0,6300],kapasiya:[1,18e3],kapewar:[0,8e4],kapuria:[0,1800],karaiyar:[1,2700],karanga:[0,26e3],karata:[0,6400],karbo:[0,5e3],karimpalan:[0,22500],"karipuna-of-rond-nia":[0,30],kariya:[1,4800],karko:[0,30500],karlar:[0,58e3],"karna-sale":[0,3400],karnam:[1,90500],karnibhakthulu:[0,31500],karo:[0,2400],kasanga:[0,1200],"kasar-bengali":[0,103e3],"kasar-gujarati":[0,45500],"kasar-hindi":[0,132e3],"kasar-odia":[1,106e3],kasbati:[0,25500],kasena:[1,256e3],kasha:[0,14e3],kasikapadi:[0,11500],kasseng:[0,1200],kate:[0,950],katesar:[0,1200],kathar:[1,11e3],kathi:[0,19e3],"kati-nuristani":[0,155e3],katipamula:[0,42e3],katokinn:[1,1200],katong:[0,1e3],kattiakaran:[0,112e3],"katu-adek":[0,500],"katu-dark-kang":[0,2100],"katu-hanna":[0,750],"katu-triew":[0,2600],"katukina-juta":[0,600],"katukina-of-rio-bia":[0,450],kauyaru:[0,6300],kavara:[0,22e3],kavuthiyan:[0,31500],kawahia:[0,139e4],kawoj:[0,9700],kaxix:[0,325],kaxuyana:[1,950],kayalar:[0,49e3],kayastha:[1,8e4],kazakh:[0,63e3],kebena:[0,86e3],kebu:[1,533e3],kedayan:[0,91e3],"kega-alkheel":[0,21500],keiga:[1,15500],keji:[1,2600],"kelenga-bozo":[0,53e3],kenana:[0,35e3],kendeje:[0,4100],kensiu:[0,300],kepmari:[0,1100],ker:[0,425],kerarish:[0,61500],kereyu:[0,13e3],khadim:[0,400],khadura:[0,10500],"khairwar-bengali":[0,167e3],"khairwar-chhattisgarhi":[1,17500],khakar:[0,34e3],khalifa:[0,8800],khalpa:[0,54e3],khamba:[0,500],khamyang:[1,2e3],khandwal:[0,12500],"khangar-bundeli":[1,35500],kharol:[0,50500],kharvi:[1,36e3],khaskeli:[0,600],khatavueng:[0,1e3],khatbune:[0,1200],"khati-odia":[0,8200],"khatik-bengali":[0,11500],"khatik-chambeali":[62.5,45],"khatik-chhattisgarhi":[1,2200],"khatik-gujarati":[0,35500],"khatik-marathi":[0,17e4],"khatik-punjabi":[1,34e3],"khatik-telugu":[1,283e3],khe:[1,4200],khlor:[0,15e3],khmu:[1,1900],kho:[1,421e3],"khorasani-turks":[1,2e5],khowa:[1,700],khua:[0,4500],khuen:[1,15500],khunsari:[0,24e3],khwarshi:[0,4e3],kibet:[0,88500],kidaran:[0,650],kimla:[0,26500],kimr:[0,221e3],kineenawi:[0,36500],kiput:[1,4100],kirifi:[1,51e3],kluet:[0,56e3],kobari:[0,1100],"kocu-wellan":[0,200],koda:[0,1500],kohistani:[1,139e3],koiren:[0,1700],koiupanka:[1,1200],kokaniz:[1,15500],koke:[0,1900],"kol-chhattisgarhi":[1,61e3],kolari:[0,8300],kolhati:[0,29500],koliyan:[1,10500],kollan:[0,2200],"komara-panta":[0,41e3],komfana:[0,450],"kommu-dasari":[0,1e4],komodo:[1,1800],komono:[1,7800],"konda-kammara":[0,46500],"kong-ge":[0,1800],kongsat:[0,850],"kongu-vaisnawa":[1,34500],"kongu-vellala-gounder":[1,6300],"konjo-pegunungan":[1,226e3],"konjo-pesisir":[1,189e3],konkabay:[1,72500],kono:[1,122e3],konongo:[1,154e3],koosa:[0,1700],kootan:[0,7400],koraga:[1,51e3],"koraga-korra":[1,25500],"koro-nulu":[0,4700],"koro-zuba":[0,13e3],koroshi:[0,1e4],korubo:[0,500],kota:[1,1800],"kotokoli-ghana":[1,97500],"kotokoli-togo":[1,532e3],kottari:[0,15e3],koyava:[0,850],kraal:[0,7200],krenak:[1,350],kresh:[0,9800],kreye:[0,30],kri:[0,1400],krim:[1,22e3],krishnavaka:[0,68500],kriyagar:[0,7500],kuan:[0,4400],kubeo:[1,550],kubi:[0,3400],kucband:[0,2400],kucong:[1,51500],kuda:[0,750],kudimahan:[0,1e3],kudiya:[0,4900],kudubi:[0,146e3],kudumi:[0,85500],kudur:[0,1e4],"kufa-lima":[0,16e3],"kufra-bedouin":[0,30500],kui:[1,377e3],kuikuro:[1,800],kujarge:[0,3500],kujriya:[0,15e3],kuka:[1,25e4],kulfe:[0,3900],kuli:[1,16500],kuliya:[0,450],kuluvan:[1,750],"kumar-kshatriya":[0,37e3],"kumhar-assamese":[0,124e3],"kummara-kumbara":[0,547e3],"kummara-kummari":[0,312e3],"kummara-kusuvan":[0,7e3],kumzari:[0,5e3],kunduvadian:[0,1e3],"kunnuva-vellalar":[1,19e3],kupto:[0,6300],"kurahina-setti":[0,184e3],kurakula:[0,26500],kuranko:[1,142e3],"kurd-northern":[1,572e3],"kurdistani-jews":[0,13e3],kuria:[1,775e3],"kurmanji-kurds-azerbaijan":[1,6400],kurol:[1,5100],kurtop:[1,19e3],kurukkal:[0,3400],kurundi:[0,21e3],kurunga:[0,6300],kusta:[0,2200],"kuthliya-bora":[1,700],kuwala:[0,21e3],"kwangali-angola":[0,33e3],"kwangali-namibia":[1,115e3],kwaza:[0,35],kyrgyz:[1,196e3],laba:[1,293e3],labapo:[0,11e3],laccadive:[0,75500],ladar:[0,36500],ladia:[0,10500],ladsi:[0,3300],"laguat-bedouin":[0,86500],laha:[1,8200],lahanan:[0,900],lahawin:[0,254e3],lajjhar:[0,6600],lakha:[0,12500],"lakhera-haryanvi":[0,6800],laki:[1,1305e3],"lakkamari-kapu":[1,56500],lamet:[1,27500],lamira:[0,24e3],"lampung-abung":[1,202e3],langa:[0,500],"lange-burun":[0,58e3],laoseng:[0,11500],laowu:[0,11e3],"larike-wakasihu":[1,20500],laru:[0,34500],laskari:[7.5,450],lassi:[0,24500],"lati-china":[0,2900],"lati-vietnam":[1,13e3],latu:[0,3900],laven:[1,56500],lawi:[0,1e3],lawu:[1,33e3],"lebanese-shia-arabs":[1,1035e3],"lebanese-sunni-arabs":[1,1135e3],lelak:[0,550],"levantine-bedawi-arabs":[0,96500],leya:[1,25e3],liabuku:[0,850],"liang-e":[0,6800],liari:[0,650],"libyan-arabs":[1,2805e3],linghua:[0,28500],lintang:[0,11e4],"liping-baheng":[0,8500],liri:[0,11e3],liude:[0,2300],liujia:[0,5100],lodha:[1,43e3],"lodha-marathi":[0,78500],logol:[1,37500],logorif:[1,8200],"lohar-dogri":[0,22e3],lois:[0,76500],lola:[0,1e3],lonar:[0,43e4],longjia:[0,4900],lopa:[0,11500],lu:[0,4700],luhu:[1,12e3],lunape:[0,850],"lupanshui-miao":[0,78e3],luwu:[1,566e3],luzu:[0,1600],maalia:[0,156e3],macaguaje:[0,100],macaguan:[0,1100],macanese:[0,4e3],machhiyara:[0,192e3],"madiga-dasu":[0,7400],maghia:[0,12e3],maha:[0,22e3],mahamid:[0,29e3],mahisyadas:[1,192e3],mahra:[0,58500],mahuria:[0,8300],maila:[0,2600],maimande:[1,150],mairiri:[0,550],"majera-cameroon":[0,950],"majera-chad":[0,4600],majjula:[0,22e3],majothi:[0,750],"makalu-sherpa":[1,1600],"makhuwa-shirima":[1,1015e3],makrani:[0,33500],makua:[1,937e3],makuna:[0,175],"mala-masti":[1,550],"malai-pandaram":[1,8700],"malai-vellala":[0,250],malaikudi:[0,13e3],malakar:[0,67500],malaneese:[0,2100],malayalar:[0,1e3],male:[0,16e4],maleng:[0,1100],maleru:[0,2e3],maleyan:[0,22e3],mali:[1,19500],malia:[0,5100],malis:[1,6500],mallah:[1,201e3],man:[1,2e3],mana:[0,239e3],manbhav:[0,74e3],mandaean:[1,11500],"mandaeans-iraq":[0,36e3],"mandahuaca-brazil":[0,25],"mandahuaca-venezuela":[0,4500],mandal:[0,17500],"mandali-muslims":[0,1700],mandula:[1,12500],"mang-china":[0,550],"mang-vietnam":[1,3700],"manga-kanuri":[1,442e3],"mangnyar-muslims":[0,1400],mango:[0,213e3],manguangan:[1,12e3],manhas:[1,30500],maniyattikkaran:[1,5500],"manjygur-muslims":[0,250],mankanya:[1,3800],mankar:[0,223e3],manmet:[0,1700],"manna-dhora":[0,22e3],manser:[0,21500],mansi:[0,12500],manyak:[1,3100],mapoyo:[0,325],"maran-nairs":[1,476e3],mararit:[0,49500],marasari:[1,209e3],mareko:[1,105e3],marfa:[0,21500],"maria-muslims":[0,16e4],"markande-kanjia":[0,5900],"marsh-arabs":[0,53e3],marwadi:[1,76e3],"mashan-miao":[1,266e3],masiguare:[0,275],masku:[0,700],maslam:[0,1400],massalat:[0,129e3],maswanka:[1,23e3],matak:[0,700],matangi:[1,1600],matipu:[0,200],matpa:[0,32e3],mavilan:[0,48500],mbukushu:[0,13500],"meadow-mari":[1,548e3],meda:[0,54e3],medari:[1,189e3],"medog-monba":[0,11e3],mehinaku:[1,250],"meifu-li":[1,65500],"menasser-imazighen":[0,24e3],mendriq:[1,375],mengwu:[0,31e3],mensa:[0,44e3],mer:[0,6100],mesengo:[0,59e3],mesmedje:[0,83500],mhalo:[0,1100],"middle-east-gypsy":[0,38e3],midob:[0,93e3],migaama:[0,79e3],miguba:[0,100],minduumo:[0,8700],ming:[0,15500],minyak:[1,35e3],mir:[0,49e3],"mirisia-zuruk":[0,23e3],"miriti-tapuia":[0,125],mirshikar:[1,1e4],"mishaba-laluo":[1,727e3],"mith-gauda":[0,4e3],"mitha-ayyalavar":[0,4e3],mitna:[0,19500],miyana:[0,41500],mlabri:[0,60],mo:[1,30500],mocha:[0,127e3],modaks:[0,165e3],mogaveera:[0,38e3],"moger-malayalam":[0,28500],"moghal-telugu":[0,12500],moghol:[0,9200],"moghol-dogri":[0,375],"moghol-gujarati":[0,6500],"moghol-marwari":[0,34500],mogia:[0,1900],mogum:[0,14500],mokoulou:[0,41e3],molo:[0,275],momba:[1,5800],"mon-india":[1,1100],"mon-laos":[0,400],mondivogula:[0,15500],mondiwar:[0,650],"mongallese-arabs":[0,55e3],moor:[0,698e3],moothan:[1,4800],morerebi:[0,100],"moroccan-arabs":[1,414e3],"moroccan-jews":[0,2200],moronene:[1,43500],mosuo:[1,74e3],"motil-n-bar":[0,2e3],"mountain-mari":[1,3e4],mozhihei:[0,6100],mpi:[1,1500],mubi:[0,109e3],"muchi-chamar":[1,24500],muda:[0,3100],mudugar:[1,2500],mugat:[0,5e3],muinane:[1,550],"muirin-dargin":[0,39e3],mujavar:[0,700],mujavir:[0,7100],mukeri:[0,39500],mukhi:[1,24500],mukkari:[0,2500],muli:[0,23e3],mundala:[1,39e3],mundapotta:[0,1600],"munji-yidgha":[0,8800],munnewar:[0,650],"murgi-birked":[0,245e3],murhid:[0,750],musari:[1,4700],mushungulu:[0,40500],muskhan:[0,550],"muslim-gond":[1,28e3],"muslim-kachera":[0,2500],"muslim-khatri":[0,74e3],"muslim-lakhera":[0,2200],"muslim-patel":[0,1500],"musti-chenchu":[0,1800],muttatu:[0,750],mutwa:[0,1400],muzi:[0,2600],mwera:[1,993e3],mynky:[0,80],mzab:[1,202e3],na:[0,100],nadors:[0,6400],nagavamsam:[0,116e3],nagbansi:[0,31500],"nagbansi-dogri":[0,1700],nagda:[0,41500],nahal:[0,97500],naheng:[0,2e3],nahukwa:[0,175],"nai-assamese":[0,111e3],"nai-kannada":[0,339e3],"nai-mewari":[1,45500],"nai-odia":[0,96500],naikpod:[0,16e3],"nail-bedouin":[0,41e3],nairy:[0,500],naita:[0,67500],najjar:[0,6100],naju:[0,2500],nakhasa:[0,113e3],nakkala:[0,18500],naksia:[0,3500],nalband:[0,4700],nalkadaya:[0,12500],nama:[1,145e3],"namasudra-assamese":[0,834e3],nambutiris:[0,70500],namdagur:[0,1200],namdeo:[0,3800],"namdeo-maratha":[0,5100],namuyi:[0,11500],nandiwala:[0,9800],"nanjil-mudali":[0,700],nanjingren:[1,2500],naoda:[1,41500],naqqas:[0,1e3],nar:[0,225],nara:[0,74500],narin:[0,8700],narsanna:[0,700],narsinghpura:[0,76e3],naruvotu:[0,90],"nash-didan":[0,4e3],nasuvan:[0,10500],"nat-bagheli":[0,1400],natua:[0,59500],nawa:[0,425],nawaiyat:[0,59e3],nayadi:[0,6600],"nayak-muslims":[0,8600],ndemli:[0,12500],ndengereko:[1,316e3],ndunga:[0,11e3],neeli:[0,27e3],"nefusa-imazighen":[1,194e3],"negev-bedouins":[1,13e4],nema:[0,56500],neyyala:[1,19e3],ngai:[0,5400],ngalgulgule:[0,2600],"nghari-tibetans":[1,83500],ngile:[0,117e3],ngoni:[1,83500],nguan:[1,45500],nguon:[0,2400],nicar:[0,4400],nilkanth:[0,53500],node:[0,3800],noliya:[0,4900],"north-koma":[0,26e3],"northeast-pashayi":[0,51500],"northern-awu":[1,6e3],"northern-barasano":[0,50],"northern-conchucos-ancash-quechua":[1,329e3],"northern-dong":[1,153e4],"northern-muji":[0,17500],"northern-saami":[0,6100],"northern-tati":[0,45500],"northern-thai":[0,44500],"northern-yemeni-arabs":[1,1518e4],nubi:[0,43500],nuer:[1,1765e3],nukuini:[0,600],numao:[0,2500],nupbi:[0,3100],nurang:[1,475],nyahkur:[1,1500],nyahon:[0,11e3],nyam:[1,175],nyamusa:[3.5,1900],nyaria:[0,3200],nyengo:[1,28500],nyenpa:[0,14e3],nyong:[1,14e3],"o-du":[0,400],ocaina:[0,275],ofay:[1,60],"oki-no-erabu":[1,17500],okpamheri:[1,282e3],ole:[0,700],olot:[0,2400],olubogo:[0,24500],onge:[0,150],ongkor:[0,25],ontaris:[0,128e3],"opuua-shita":[0,6900],oriya:[0,43e3],osatu:[0,750],otans:[1,5100],"oy-kamsang":[0,1400],"pa-a":[1,18500],"pa-hng":[0,7700],pacoh:[1,2e4],padannan:[0,6700],padarthis:[0,16e3],padhar:[0,38e3],padhola:[1,706e3],padigarajulu:[0,1e3],padiyar:[0,1e3],pagativeshagallu:[0,500],"pahari-nagarkotis":[0,1500],paharia:[1,9200],paiaku:[0,300],pajabgar:[0,5300],pakhimara:[0,450],"pakpak-boang":[1,19500],paky:[0,23e3],"palakad-tandans":[0,375],palula:[1,14500],palyu:[0,15500],pam:[0,125],pambada:[0,3800],pambala:[1,5200],pamidi:[0,5e3],pamula:[0,12500],"pana-china":[0,5400],"pana-laos":[0,600],"pana-mali":[1,9200],panar:[0,1800],panara:[0,28e3],"pancaratra-srivaisnavas-brahmans":[0,25500],pandithar:[0,11500],pando:[1,2200],pangans:[0,134e3],pangul:[0,22e3],"pangwal-buddhists":[0,2100],pangwala:[1,24500],"panka-odia":[0,11e3],pankara:[1,3e3],pankhiya:[0,850],pannadi:[1,7500],panniandi:[0,24500],"panxian-nasu":[1,482e3],"para-gaviao":[1,475],parachi:[0,12e3],paradhi:[1,8800],paranawat:[1,100],parenga:[1,19500],pari:[0,59500],"pariki-muggula":[0,6500],parkavakulam:[1,70500],parvatarajakulam:[1,38e3],patanwadia:[0,55500],patari:[1,34500],"pataxo-hahahai":[1,14e3],pathinaickans:[0,300],pathiyan:[1,15e3],patkars:[0,73500],"patni-jamat":[0,1700],"patni-vankars":[0,325],pattanavan:[1,11500],pattegar:[0,13500],"pemon-brazil":[1,650],"pemon-guyana":[0,550],pendar:[0,23e4],pequots:[1,1500],persian:[0,34500],"persians-pakistan":[1,13e3],perumkollar:[1,85500],phai:[1,28500],phongku:[0,1800],phongset:[0,1100],phula:[1,11e3],phularis:[0,28500],"phunoi-laos":[0,48500],"phunoi-thailand":[1,14e3],"phutai-kata":[0,1400],"phuthai-angkham":[0,1700],pila:[1,519e3],"pingdi-yao":[1,1845e3],"pinjara-dhunia-bengali":[0,40500],"pinjara-kannada":[0,223e3],"pinjara-marathi":[0,18500],"pinjara-punjabi":[0,3e3],piraha:[0,425],piratapuyo:[1,650],"piratapuyo-1":[1,1400],pisaroti:[0,6900],pitaguari:[1,2900],pochammalollu:[0,7500],poduval:[0,6200],pohul:[0,3200],pomak:[1,5e4],pomla:[0,1300],pong:[0,41e3],"pong-phen":[0,3900],"pong-poong":[0,1100],"pong-puang":[0,3900],"pong-seng":[0,1e3],popei:[0,6800],pouhoy:[0,375],poumong:[0,1700],poussang:[0,3500],"prabhu-patane":[0,72e3],"prasuni-nuristani":[0,12e3],"pu-peo":[0,700],pubiao:[0,425],pulisari:[0,38500],puma:[0,5600],puman:[0,18500],puran:[0,2200],"purig-pa":[0,44500],puroik:[0,450],pusha:[0,6500],"puspakan-unni":[0,3200],putliwale:[0,1e3],qanu:[0,14500],"qiubei-zhuang":[1,215e3],qixingmin:[0,7400],qizilbash:[0,31e3],racband:[0,3700],rachavar:[0,45500],raddi:[0,167e3],radhi:[0,56500],"rai-bhat-muslims":[0,198e3],rajannalu:[0,2700],rajapuri:[0,55500],rajbhar:[1,42e3],rajdhop:[0,4300],"raji-india":[0,650],"raji-nepal":[1,3100],rajkoti:[0,24500],rajkumhar:[1,4300],rajpurohit:[0,98e3],rana:[1,77500],raneyar:[0,4700],rao:[0,14500],rashad:[0,78e3],rashaida:[1,153e3],rastogi:[1,53e3],ratal:[0,2800],rath:[0,424e3],rathodia:[0,700],raval:[0,12500],rave:[0,111e3],"raya-rawat":[0,2800],raysipotra:[0,1500],"red-tai":[0,176e3],"red-thai":[1,47e3],reddi:[1,3300],"reddi-dora":[3.5,2600],reddika:[0,251e3],rehar:[1,3800],rengao:[1,21e3],reshiat:[0,78500],"riyah-bedouin":[0,38e3],rizeiqat:[0,574e3],roshor:[0,1500],royma:[0,400],"ruarha-bedouins":[0,86500],rufaa:[0,822e3],rufiji:[1,575e3],rujjhar:[0,1400],"rumai-de-ang":[0,6200],runjalavallu:[0,250],runwalas:[0,250],saaronge:[0,93e3],saba:[0,3300],sabakhia:[0,1300],sabanes:[1,150],sabar:[0,6300],sadaru:[0,16500],"sadhu-chetty":[1,41e3],saek:[1,3600],sagar:[1,19e3],sagara:[1,227e3],sagharias:[0,125],sagolle:[0,26e3],saha:[0,4400],sahi:[1,1900],sahisia:[0,10500],saho:[1,17e4],sahrawi:[0,272e3],sain:[0,250],sais:[0,236e3],sakiriabar:[0,150],sakunapaksollu:[0,6100],salang:[0,1e3],salao:[0,1300],salivahanam:[1,3700],saluma:[0,300],saman:[0,2700],samanthan:[0,30500],samaritans:[0,450],samasi:[0,2500],samayavallu:[0,15500],samoya:[1,4400],sanchia:[0,13500],sanda:[1,1700],"sandhai-muslims":[0,1600],sanei:[0,1700],sanghar:[0,47500],sanglechi:[0,2200],sanhai:[0,4200],sankaran:[1,125e3],sanqiao:[0,6900],sansoi:[0,7900],santia:[0,13500],"sanusi-bedouins":[0,681e3],"sanye-waata":[1,23e3],sapalyas:[0,4300],sapanawas:[0,100],sape:[0,15],sapo:[1,78e3],sapuan:[0,5900],saradagallu:[0,21e3],"saragh-yugur":[1,10500],saranias:[1,5900],saraogi:[1,97e3],"sarikoli-tajiks":[0,20500],sarodi:[1,36e3],sau:[0,9100],savalakkarar:[0,1e3],sawknah:[0,7500],"sayyid-chhattisgarhi":[0,10500],"sayyid-garhwali":[0,3800],"sayyid-gujarati":[0,177e3],"sayyid-kannada":[0,84e3],"sayyid-odia":[0,12e3],"sayyid-pahari":[0,90],"sayyid-tamil":[0,157e3],sebei:[0,25500],"seit-kaitetu":[0,16500],selim:[0,84500],semman:[0,6e3],semnani:[0,22500],senaithalaivar:[1,181e3],senapathi:[1,10500],"senara-senufo":[1,68500],senga:[1,108e3],sentinelese:[0,60],seok:[0,1900],serdukpen:[1,4e3],sere:[0,12500],seze:[0,17e3],shabak:[1,295e3],shabdakar:[0,750],shabo:[0,1200],"shaikh-bhojpuri":[1,327e3],shaksaz:[0,3300],shanga:[0,29500],shani:[0,800],sharanahua:[1,500],shawafna:[0,4500],sheikhzade:[0,5e3],sheko:[0,58500],shenzhou:[0,5200],sherifi:[0,267e3],shershabadia:[0,4500],shifir:[0,37e3],shihuh:[0,22e3],shiites:[1,1355e3],shikari:[0,900],"shina-india":[0,37e3],"shina-pakistan":[1,601e3],shirazi:[0,1015e3],shixing:[0,4100],shravan:[0,50],shukria:[0,371e3],shumashti:[0,2400],shuweihat:[0,144e3],"sichuan-mongols":[1,29500],sida:[0,2800],siddi:[0,34500],"sidi-bedouins":[0,144e3],sikiana:[0,35],sikligar:[0,177e3],"sila-laos":[0,3700],"sila-vietnam":[0,700],silavantulu:[0,12500],sindhollu:[1,3700],sinduria:[0,450],singiwala:[1,10500],singkil:[0,75500],singmoon:[0,9600],sininkere:[0,12500],siriano:[1,650],siripu:[0,70],"sirtican-bedouin":[0,38e3],sisgars:[0,900],sivandi:[0,8e3],siviar:[0,600],"siwa-imazighen":[0,26e3],siyalgar:[0,7600],socotran:[0,78500],sofi:[1,49e3],soi:[0,8e3],sokoro:[0,16e3],soligaru:[1,5e4],"soliman-bedouins":[0,39500],"sompura-salat":[0,22e3],"son-koli":[1,4700],sonavar:[0,20500],songhai:[1,259e3],sopi:[1,3100],sorgars:[0,4100],soria:[0,1300],soruba:[1,21500],sou:[0,3600],"south-african-muslims":[0,388e3],"southeast-pashayi":[0,172e3],"southern-ngbandi":[0,32e4],"southern-tati":[0,18e4],"southwest-pashayi":[0,95500],soyot:[0,4300],"spanish-jews":[1,17e3],"suafa-bedouin":[0,151e3],subei:[0,8500],subia:[1,37500],suda:[0,70500],sudhan:[0,23e3],sudhi:[1,156e3],sudir:[1,6300],"sudra-das":[0,917e3],sukiyar:[0,2500],sula:[1,89500],sunga:[0,9300],sungor:[0,72e3],sunuwar:[1,38500],"suodi-nosu":[1,308e3],surbakhal:[0,19500],surel:[0,350],suri:[0,99e3],suruwaha:[1,150],"sutar-mistry":[1,9100],sutradhar:[1,919e3],suya:[1,400],swahili:[0,5500],"swakulasali-koshti":[0,18e3],swangla:[1,13500],"syenara-senufo":[1,346e3],"ta-er":[0,1600],"ta-oy-pras":[0,1300],"ta-oy-ralok":[0,850],"ta-oy-tamla":[0,1600],tabak:[0,21e3],tacho:[0,23e3],tagale:[0,137e3],tagbo:[0,42500],tagdal:[1,73500],tagewale:[0,7100],tagoy:[0,26500],tagu:[0,5600],tahanag:[0,550],tai:[0,23500],"tai-he":[0,15500],"tai-khang":[0,83e3],"tai-khun":[1,1e5],"tai-laan":[0,750],"tai-leng":[1,1e5],"tai-loi":[0,600],"tai-lu":[1,596e3],"tai-men":[1,12500],"tai-nua":[1,8e4],"tai-nyo":[1,82e3],"tai-peung":[0,1900],"tai-pong":[1,129e3],"tai-sam":[0,1300],taiphake:[0,2600],tajio:[1,16e3],tak:[0,1800],takari:[0,475],talasa:[0,24500],talysh:[1,148e3],tama:[0,97500],tambiran:[0,1200],tambo:[1,6600],"tamboli-bengali":[1,106e3],"tamboli-telugu":[0,41e3],tamoy:[0,950],tapayuna:[0,150],tapuia:[1,150],targala:[0,42500],tariano:[0,2800],tasoomi:[0,27e3],tata:[0,18e3],tayten:[0,550],tchaho:[0,475],telengi:[1,67500],"teli-assamese":[1,192e3],temain:[1,17500],temoq:[1,850],"thachanad-moopan":[0,3100],"thai-ae":[0,900],"thai-toum":[0,2600],thakurai:[1,11500],thammadi:[0,14500],thanapati:[0,16e3],thanga:[1,111e3],tharaka:[1,251e3],tharua:[0,650],thavi:[1,15500],theba:[0,750],"thogataveera-kshatriya":[0,3100],"tholuva-naicker":[1,4600],thoraiyar:[1,1500],thuri:[0,26500],"tidikelt-imazighen":[0,1300],"tiemaxo-bozo":[1,349e3],tigre:[0,923e3],"tigre-quichua":[0,2e3],tihama:[0,214e3],"tihama-yemeni-arabs":[1,425e4],tikulhara:[0,2100],tilli:[1,151e3],tindi:[0,6700],tingal:[0,8e3],"tingui-boto":[0,800],tirgar:[0,17500],tirugatigantla:[0,1500],tiyattunni:[0,550],tmagourt:[0,6200],toka:[1,38e3],"toku-no-shima":[1,37e3],tolakari:[0,7600],tomini:[0,40500],tondman:[0,559e3],tong:[0,17500],"tongren-bonan":[1,9e3],tora:[1,300],"tornasi-kelo":[0,5e3],torom:[0,21e3],totela:[1,7e4],trawing:[0,2200],"tripuri-kumhar":[0,20500],"tripuri-namasudra":[1,294e3],trumai:[0,100],tsaatan:[0,350],tsamai:[0,32500],tseku:[0,6600],"tsun-lao":[0,15500],tswa:[1,199e3],"tuat-imazighen":[0,33500],tucano:[1,7e3],tukulor:[1,7800],tukum:[0,22500],"tula-vina":[0,11e3],tulao:[0,5200],tumale:[0,13e3],tumbatu:[0,322e3],tumtum:[0,22e3],tunni:[0,56500],tupinamba:[0,4700],tura:[1,75500],"turi-barot":[0,14e3],turkmen:[1,2855e3],turks:[0,13e3],turuj:[0,26500],"turuk-pasi":[1,1400],turun:[0,2400],tusu:[1,53e3],tutung:[0,17500],tuvinians:[1,6700],tuyaa:[0,7100],tuyuka:[1,1600],txikao:[0,450],udupula:[0,2800],ujir:[0,1200],ukaan:[1,64500],"umm-heitan":[1,33500],umpqua:[1,900],"uncontacted-of-bararati":[0,25],"uncontacted-of-cumina":[0,25],"uncontacted-of-jatapu":[0,50],"uncontacted-of-madeirinha":[0,25],"uncontacted-of-mapuera":[0,25],"uncontacted-of-parauari":[0,25],"uncontacted-of-rio-liberdade":[0,25],"uncontacted-of-rio-tapirape":[0,25],"uncontacted-of-serra-do-taquaral":[0,50],"uncontacted-of-teles-pires":[0,25],uneme:[1,4e4],uppara:[1,498e3],"upper-pokomo":[0,73e3],"upper-ta-oy":[1,24e3],uppillian:[0,9800],uraparaquara:[0,100],"urikkar-naicker":[1,4900],urindavan:[0,1200],"uru-pa-in":[0,200],ushoi:[1,7700],ushojo:[0,4200],usta:[0,2500],uzbeks:[1,12500],vadi:[0,17e3],vadugan:[0,21500],"vaghri-koli":[1,16500],"vahivanca-barot":[0,6700],vai:[1,27e3],"vaikhanasa-brahmans":[0,16500],valinjiyar:[0,1200],"van-baoriya":[0,445e3],vayati:[0,16e3],ved:[0,2700],velip:[3.5,450],"vellaiyan-kuppam-padaiyaci":[1,750],"verra-musti":[1,26e3],vetan:[0,39500],vettaikkaran:[1,6500],vettalaikarans:[1,13e3],vettiyan:[0,950],vijabargiya:[0,192e3],vilkurup:[0,2400],vilyagaras:[0,500],vinza:[0,33500],vipravinodulu:[0,1500],viri:[0,55e3],visavan:[0,175],"vlax-romani":[1,24500],vute:[0,3800],vyapari:[0,1e3],waama:[0,24e3],wadalka:[0,37500],wadshili:[0,7500],wagheri:[1,1600],waidu:[0,18500],"waigeli-nuristani":[0,2300],"waimiri-atroari":[1,1100],"wainadan-cetti":[1,6800],"wainadan-kader":[0,850],"wainadan-pulayan":[0,7100],"wakhi-china":[0,9600],"wakhi-pakistan":[0,17e3],wali:[1,2700],wandharo:[0,1900],wandya:[1,27500],wanetsi:[0,9e3],warday:[1,94500],warnang:[0,6200],wasi:[0,64e3],waura:[1,400],"wayampi-amapari":[0,1400],"wayanad-pathiyan":[0,1700],wayoro:[1,175],waza:[0,1e3],"wenma-zhuang":[1,155e3],"west-bank-arabs":[1,341e4],"western-baloch-pakistan":[1,184e4],"western-gaisu":[0,1600],"western-samadu":[0,10500],"western-tunebo":[1,1800],"western-xibe":[1,35500],"white-moor":[0,312e4],wokarangma:[0,30],wolof:[0,364e3],wopu:[0,4800],wunai:[0,14e3],wutun:[0,3800],xambioa:[0,275],xamir:[1,388e3],xi:[0,1600],xialusi:[0,4e3],"xiaoliangshan-nosu":[1,701e3],xijima:[0,51500],"xingmoun-kor":[0,750],"xingmoun-laomai":[0,6100],"xinh-mun":[0,23500],"xinping-lalu":[1,65e3],"xuzhang-lalu":[0,6800],ya:[0,69e3],yabaana:[0,90],yaeyama:[1,46e3],yagua:[1,1100],yakarawakta:[0,30],yakha:[1,7500],yaminahua:[1,600],yang:[0,6800],yanghuang:[1,63500],yao:[1,1035e3],yari:[0,900],yata:[1,132e3],yatagiri:[0,275],yatibi:[0,700],yatla:[0,550],yauma:[1,51500],yawalapiti:[0,325],yawanawa:[1,850],yazeed:[0,609e3],yelmar:[0,18500],yerong:[0,750],yidgha:[0,9600],yidinit:[0,800],"yidu-lhoba":[0,12500],"yinuo-nosu":[1,818e3],yite:[0,325],yizi:[0,3e3],yombe:[0,96500],yonaguni:[0,1500],yoron:[1,7300],youmai:[0,2800],"younuo-bunu":[1,29500],yoy:[0,1800],yukpa:[0,4200],"yulu-binga":[0,5e3],"yunnan-mongol":[0,8900],"yunnan-shui":[1,14500],za:[0,3400],zaghawa:[0,11500],zakhrin:[1,600],"zambezi-tonga":[1,161e3],zamral:[0,7400],"zartoshi-zoroastrians":[0,8e3],zenaga:[0,61500],zigua:[1,965e3],zoe:[0,425],"zott-gypsy":[0,43e3],zuara:[0,44e3]},h1=Object.freeze(Object.defineProperty({__proto__:null,_method:Qd,_what:Xd,default:{_what:Xd,_method:Qd,sources:ep,groups:tp},groups:tp,sources:ep},Symbol.toStringTag,{value:"Module"}));function m1(e){if(!e||typeof e!="string")return[];const t=[];let n=0,o="";for(const a of e)a==="("?n++:a===")"&&(n=Math.max(0,n-1)),a===","&&n===0?(t.push(o),o=""):o+=a;return t.push(o),t.map(a=>a.trim()).filter(Boolean)}function f1(e){if(!e||typeof e!="string")return"";const t=m1(e);if(t.length<2)return e.trim();const n=t[t.length-1],o=n.match(/\s*(\(.*\))$/);o&&(t[t.length-1]=n.slice(0,o.index).trim());const a=t.filter(Boolean).reverse().join(" ");return o?`${a} ${o[1]}`:a}const b1=[0,1,2,3,4,5,6],$1=e=>e&&typeof e=="object"&&!Array.isArray(e)&&"value"in e?e.value:e,Co=(e,...t)=>{for(const n of t){const o=$1(e&&e[n]);if(o!=null&&String(o).trim()!=="")return String(o).trim()}return""},np=e=>e&&typeof e=="object"&&!Array.isArray(e)?String(e.label??"").trim():"",y1=(e,t)=>String(e).replace(/\{(\w+)\}/g,(n,o)=>t[o]!==void 0?t[o]:n),v1=(e,t)=>{if(!t||e.length<=t)return e;const n=e.slice(0,t-1),o=n.lastIndexOf(" ");return(o>t*.6?n.slice(0,o):n).trimEnd()+"…"};function op(e,t,n={}){const o=n.strings||{},a=String(t||"en").split("-")[0].toLowerCase(),r=o[a]||o.en||{},s=o.en||{},i=N=>r[N]||s[N]||"",l=Co(e,"name","Name","peopleName"),c=Co(e,"country_code","countryIso","ISOAlpha3","countryCode"),u=(c&&n.countryName?n.countryName(c,a):"")||Co(e,"country_code_label")||np(e&&e.country_code)||Co(e,"country","CountryName","countryName")||c,d=f1(Co(e,"primary_language_label")||np(e&&e.primary_language)||Co(e,"LanguageName","languageName")),h=d&&u?"desc_where_both":u?"desc_where_country":d?"desc_where_language":"",S=h&&l?y1(i(h),{people:l,country:u,language:d}):"",F=Co(e,"imb_gsec","gsec","GSEC"),y=F===""?null:Number(F),L=b1.includes(y)?i(`desc_gsec_${y}`):"";return v1([S,L].filter(Boolean).join(" ").replace(/\s+/g," ").trim(),n.maxChars)}const _1=Object.freeze(Object.defineProperty({__proto__:null,default:op,describeGroup:op},Symbol.toStringTag,{value:"Module"}))})();
|