From ed27b40e6654872205d0b81ae294ee2d561536b6 Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Thu, 24 Sep 2026 03:51:06 +0000 Subject: [PATCH] Put the tables in the house palette instead of Tabulator's stock theme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every table in the product was shipping Tabulator's DEFAULT theme — #333 header, #666 rows, #444 filter boxes — against a house style that is Material LIGHT and has no dark mode. Measured identically in both served consumers before the change: row rgb(102,102,102), header rgb(51,51,51). OVERRIDDEN BY SPECIFICITY, NOT BY ORDER, and that is the load-bearing part. The vendor sheet is fetched and appended AFTER these rules, so any tie goes to the vendor. Each override is written one class deeper than the rule it replaces: four for the column header, five for the filter inputs, four for the paginator. Re-ordering the injection would have been the fragile fix — it breaks the first time injectCss is made sync. Getting that wrong is visible in stages, which is why it took three passes: at three classes the columns stayed dark while the header went light; at four the filter inputs were still #444 and the "Page Size" label was rendering white on a now-light footer, invisible. The computed-style probe reported the header and row fixed and said nothing about either — both were caught by looking at the screenshot. Dark mode is left alone. .dt.is-dark is three classes and still beats these, so callers using it keep it; this repo ships light only, but silently removing another consumer's dark mode is not this change's business. Blast radius named and checked: three consumers import DataTable — gospel-resources, cities-internet and key-cities. The first two are the ones with a served table page and both were re-checked, by computed style (row #fff, header #f3f3f1 in both) and by reading both screenshots. key-cities ships no data-tables page, so it could not be exercised live. The gospel-resources link and deep-link probes both still pass, so the restyle did not disturb the anchors the table exists for. --- library/components/tables/DataTable.vue | 53 +++++++++++++++++++ .../cities-internet/cities-internet.js | 36 ++++++------- .../connectivity-list/index.html | 2 +- .../connectivity-map/index.html | 2 +- .../cities-internet/data-tables/index.html | 2 +- .../gospel-resources/charts/index.html | 2 +- .../gospel-resources/data-tables/index.html | 2 +- .../gospel-resources/gospel-resources.js | 26 ++++----- .../resources-list/index.html | 2 +- .../gospel-resources/resources-map/index.html | 2 +- public/doxa-maps/index.html | 2 +- public/doxa-maps/key-cities/key-cities.js | 26 ++++----- public/doxa-maps/manifest.json | 18 +++---- 13 files changed, 114 insertions(+), 61 deletions(-) diff --git a/library/components/tables/DataTable.vue b/library/components/tables/DataTable.vue index 3b1bfb710..17aa132b5 100644 --- a/library/components/tables/DataTable.vue +++ b/library/components/tables/DataTable.vue @@ -191,6 +191,59 @@ onBeforeUnmount(() => { try { tab.value?.destroy() } catch (_) {} }) watch(() => props.table, () => { try { tab.value?.replaceData(props.table?.rows || []) } catch (_) {} }) useShadowStyles( + // ── HOUSE PALETTE OVER TABULATOR'S STOCK THEME ──────────────────────────────────── + // The vendored tabulator.min.css is Tabulator's DEFAULT theme: #333 borders, #666 rows, + // #000 headers. MEASURED identically in all three consumers (gospel-resources, + // cities-internet, key-cities) — row rgb(102,102,102), header rgb(51,51,51) — so every + // table in the product shipped mid-grey while the house style is Material LIGHT. + // + // OVERRIDDEN BY SPECIFICITY, NOT BY ORDER. injectCss() appends the vendor sheet AFTER + // a fetch, so it lands after these rules and would win any tie. Every selector here is + // `.dt` + the tabulator class — two classes against the vendor's one — so it wins + // regardless of which sheet is appended last. Re-ordering the injection would be the + // fragile fix; specificity is the durable one. + // + // The dark variant is left to the vendor sheet under .dt.is-dark (three classes, so it + // still beats these): this repo ships light only, but DataTable has other callers and + // silently removing their dark mode is not this change's business. + '.dt .tabulator{border:1px solid #d1d4cd;background:#fff;font-size:14px}' + + '.dt .tabulator .tabulator-header{background:#f3f3f1;border-bottom:1px solid #d1d4cd;color:#3b463d}' + + // FOUR classes, deliberately: the vendor's own rule is + // `.tabulator .tabulator-header .tabulator-col` — three — and it is appended after + // these, so a three-class override ties and LOSES. Measured: the header went #f3f3f1 + // while the columns stayed rgb(51,51,51), which is what a specificity tie looks like. + '.dt .tabulator .tabulator-header .tabulator-col{background:#f3f3f1;' + + 'border-right:1px solid #d1d4cd;color:#3b463d}' + + '.dt .tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{background:#e9ebe6}' + + '.dt .tabulator .tabulator-col-title{color:#3b463d;font-weight:700}' + + // FIVE classes: the vendor's filter-input rule is four + // (.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input) and sets + // background:#444;color:#fff. A four-class override ties and loses, which read on screen + // as dark boxes sitting under a light header — caught by LOOKING at it, not by the + // computed-style probe, which was only sampling the row and the header. + '.dt .tabulator .tabulator-header .tabulator-col .tabulator-header-filter input,' + + '.dt .tabulator .tabulator-header .tabulator-col .tabulator-header-filter select' + + '{background:#fff;border:1px solid #d1d4cd;border-radius:5px;color:#3b463d;padding:3px 6px}' + + '.dt .tabulator .tabulator-row{background:#fff;color:#3b463d;border-bottom:1px solid #e6e8e3}' + + '.dt .tabulator .tabulator-row.tabulator-row-even{background:#faf9f7}' + + '.dt .tabulator .tabulator-row:hover{background:#e9ebe6}' + + '.dt .tabulator .tabulator-row .tabulator-cell{border-right:1px solid #e6e8e3;color:#3b463d}' + + // The resource link is the point of the gospel-resources table, so it reads as a link + // in the accent rather than as default-blue on grey. + '.dt .tabulator .tabulator-row .tabulator-cell a{color:#4a7a52;font-weight:600}' + + '.dt .tabulator .tabulator-footer{background:#f3f3f1;border-top:1px solid #d1d4cd;color:#3b463d}' + + // The paginator and its "Page Size" label are coloured by three-class vendor rules, so + // these take four. The label was rendering white on the now-light footer — invisible. + '.dt .tabulator .tabulator-footer .tabulator-paginator{color:#3b463d}' + + '.dt .tabulator .tabulator-footer .tabulator-paginator label{color:#3b463d}' + + '.dt .tabulator .tabulator-footer .tabulator-paginator select{background:#fff;' + + 'border:1px solid #d1d4cd;border-radius:5px;color:#3b463d}' + + '.dt .tabulator .tabulator-footer .tabulator-page{border:1px solid #d1d4cd;background:#fff;' + + 'color:#3b463d;border-radius:5px}' + + '.dt .tabulator .tabulator-footer .tabulator-page.active{background:#92b195;' + + 'border-color:#92b195;color:#fff}' + + '.dt .tabulator .tabulator-footer .tabulator-page:not(disabled):hover{background:#e9ebe6;color:#3b463d}' + + '.dt .tabulator .tabulator-footer .tabulator-page:disabled{opacity:.45}' + // box-sizing is NOT inherited into a shadow root from the host reset. '.dt,.dt *{box-sizing:border-box}' + ".dt{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}" + diff --git a/public/doxa-maps/cities-internet/cities-internet.js b/public/doxa-maps/cities-internet/cities-internet.js index 87092034d..4d116f601 100644 --- a/public/doxa-maps/cities-internet/cities-internet.js +++ b/public/doxa-maps/cities-internet/cities-internet.js @@ -1,45 +1,45 @@ -(function(){"use strict";var ar=typeof document<"u"?document.currentScript:null;const $_="modulepreload",O_=function(e){return"/"+e},N_={},lr=function(t,n,o){let s=Promise.resolve();function r(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&r(a.reason);return t().catch(r)})};/** +(function(){"use strict";var ir=typeof document<"u"?document.currentScript:null;const $_="modulepreload",O_=function(e){return"/"+e},N_={},lr=function(t,n,o){let s=Promise.resolve();function r(a){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=a,window.dispatchEvent(i),!i.defaultPrevented)throw a}return s.then(a=>{for(const i of a||[])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 cr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const _e={},_n=[],ht=()=>{},ks=()=>!1,ho=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),go=e=>e.startsWith("onUpdate:"),Ce=Object.assign,ur=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ul=Object.prototype.hasOwnProperty,he=(e,t)=>Ul.call(e,t),ee=Array.isArray,Gt=e=>Mn(e)==="[object Map]",mo=e=>Mn(e)==="[object Set]",$s=e=>Mn(e)==="[object Date]",oe=e=>typeof e=="function",be=e=>typeof e=="string",Xe=e=>typeof e=="symbol",ge=e=>e!==null&&typeof e=="object",Os=e=>(ge(e)||oe(e))&&oe(e.then)&&oe(e.catch),Ns=Object.prototype.toString,Mn=e=>Ns.call(e),jl=e=>Mn(e).slice(8,-1),_o=e=>Mn(e)==="[object Object]",bo=e=>be(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Pn=cr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),yo=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Gl=/-\w/g,Fe=yo(e=>e.replace(Gl,t=>t.slice(1).toUpperCase())),Yl=/\B([A-Z])/g,tt=yo(e=>e.replace(Yl,"-$1").toLowerCase()),vo=yo(e=>e.charAt(0).toUpperCase()+e.slice(1)),pr=yo(e=>e?`on${vo(e)}`:""),gt=(e,t)=>!Object.is(e,t),dr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Vl=e=>{const t=parseFloat(e);return isNaN(t)?e:t},As=e=>{const t=be(e)?Number(e):NaN;return isNaN(t)?e:t};let Es;const wo=()=>Es||(Es=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function bn(e){if(ee(e)){const t={};for(let n=0;n{if(n){const o=n.split(ql);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Te(e){let t="";if(be(e))t=e;else if(ee(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Q=e=>be(e)?e:e==null?"":ee(e)||ge(e)&&(e.toString===Ns||!oe(e.toString))?Ss(e)?Q(e.value):JSON.stringify(e,Is,2):String(e),Is=(e,t)=>Ss(t)?Is(e,t.value):Gt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,s],r)=>(n[fr(o,r)+" =>"]=s,n),{})}:mo(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>fr(n))}:Xe(t)?fr(t):ge(t)&&!ee(t)&&!_o(t)?String(t):t,fr=(e,t="")=>{var n;return Xe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +**/function cr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const _e={},_n=[],ht=()=>{},ks=()=>!1,ho=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),go=e=>e.startsWith("onUpdate:"),Ce=Object.assign,ur=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ul=Object.prototype.hasOwnProperty,he=(e,t)=>Ul.call(e,t),ee=Array.isArray,Gt=e=>Mn(e)==="[object Map]",mo=e=>Mn(e)==="[object Set]",$s=e=>Mn(e)==="[object Date]",oe=e=>typeof e=="function",be=e=>typeof e=="string",Xe=e=>typeof e=="symbol",ge=e=>e!==null&&typeof e=="object",Os=e=>(ge(e)||oe(e))&&oe(e.then)&&oe(e.catch),Ns=Object.prototype.toString,Mn=e=>Ns.call(e),jl=e=>Mn(e).slice(8,-1),_o=e=>Mn(e)==="[object Object]",bo=e=>be(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Pn=cr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),yo=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Gl=/-\w/g,Fe=yo(e=>e.replace(Gl,t=>t.slice(1).toUpperCase())),Yl=/\B([A-Z])/g,tt=yo(e=>e.replace(Yl,"-$1").toLowerCase()),vo=yo(e=>e.charAt(0).toUpperCase()+e.slice(1)),pr=yo(e=>e?`on${vo(e)}`:""),gt=(e,t)=>!Object.is(e,t),dr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Vl=e=>{const t=parseFloat(e);return isNaN(t)?e:t},As=e=>{const t=be(e)?Number(e):NaN;return isNaN(t)?e:t};let Es;const wo=()=>Es||(Es=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function bn(e){if(ee(e)){const t={};for(let n=0;n{if(n){const o=n.split(ql);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Te(e){let t="";if(be(e))t=e;else if(ee(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Q=e=>be(e)?e:e==null?"":ee(e)||ge(e)&&(e.toString===Ns||!oe(e.toString))?Ss(e)?Q(e.value):JSON.stringify(e,xs,2):String(e),xs=(e,t)=>Ss(t)?xs(e,t.value):Gt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,s],r)=>(n[fr(o,r)+" =>"]=s,n),{})}:mo(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>fr(n))}:Xe(t)?fr(t):ge(t)&&!ee(t)&&!_o(t)?String(t):t,fr=(e,t="")=>{var n;return Xe(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 Se;class xs{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&&Se&&(Se.active?(this.parent=Se,this.index=(Se.scopes||(Se.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;t0&&--this._on===0){if(Se===this)Se=this.prevScope;else{let t=Se;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;n0)return;if(Dn){let t=Dn;for(Dn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Bn;){let t=Bn;for(Bn=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 Ds(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Rs(e){let t,n=e.depsTail,o=n;for(;o;){const s=o.prevDep;o.version===-1?(o===n&&(n=s),yr(o),Ql(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=s}e.deps=t,e.depsTail=n}function br(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ws(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ws(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Rn)||(e.globalVersion=Rn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!br(e))))return;e.flags|=2;const t=e.dep,n=ye,o=st;ye=e,st=!0;try{Ds(e);const s=e.fn(e._value);(t.version===0||gt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ye=n,st=o,Rs(e),e.flags&=-3}}function yr(e,t=!1){const{dep:n,prevSub:o,nextSub:s}=e;if(o&&(o.nextSub=s,e.prevSub=void 0),s&&(s.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)yr(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ql(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let st=!0;const Us=[];function mt(){Us.push(st),st=!1}function _t(){const e=Us.pop();st=e===void 0?!0:e}function js(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ye;ye=void 0;try{t()}finally{ye=n}}}let Rn=0;class ec{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 vr{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(!ye||!st||ye===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ye)n=this.activeLink=new ec(ye,this),ye.deps?(n.prevDep=ye.depsTail,ye.depsTail.nextDep=n,ye.depsTail=n):ye.deps=ye.depsTail=n,Gs(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=ye.depsTail,n.nextDep=void 0,ye.depsTail.nextDep=n,ye.depsTail=n,ye.deps===n&&(ye.deps=o)}return n}trigger(t){this.version++,Rn++,this.notify(t)}notify(t){mr();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{_r()}}}function Gs(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)Gs(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const $o=new WeakMap,sn=Symbol(""),wr=Symbol(""),Wn=Symbol("");function je(e,t,n){if(st&&ye){let o=$o.get(e);o||$o.set(e,o=new Map);let s=o.get(n);s||(o.set(n,s=new vr),s.map=o,s.key=n),s.track()}}function At(e,t,n,o,s,r){const i=$o.get(e);if(!i){Rn++;return}const a=l=>{l&&l.trigger()};if(mr(),t==="clear")i.forEach(a);else{const l=ee(e),c=l&&bo(n);if(l&&n==="length"){const u=Number(o);i.forEach((f,h)=>{(h==="length"||h===Wn||!Xe(h)&&h>=u)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),c&&a(i.get(Wn)),t){case"add":l?c&&a(i.get("length")):(a(i.get(sn)),Gt(e)&&a(i.get(wr)));break;case"delete":l||(a(i.get(sn)),Gt(e)&&a(i.get(wr)));break;case"set":Gt(e)&&a(i.get(sn));break}}_r()}function tc(e,t){const n=$o.get(e);return n&&n.get(t)}function yn(e){const t=pe(e);return t===e?t:(je(t,"iterate",Wn),Je(e)?t:t.map(it))}function Oo(e){return je(e=pe(e),"iterate",Wn),e}function bt(e,t){return Lt(e)?wn(Tt(e)?it(t):t):it(t)}const nc={__proto__:null,[Symbol.iterator](){return kr(this,Symbol.iterator,e=>bt(this,e))},concat(...e){return yn(this).concat(...e.map(t=>ee(t)?yn(t):t))},entries(){return kr(this,"entries",e=>(e[1]=bt(this,e[1]),e))},every(e,t){return Et(this,"every",e,t,void 0,arguments)},filter(e,t){return Et(this,"filter",e,t,n=>n.map(o=>bt(this,o)),arguments)},find(e,t){return Et(this,"find",e,t,n=>bt(this,n),arguments)},findIndex(e,t){return Et(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Et(this,"findLast",e,t,n=>bt(this,n),arguments)},findLastIndex(e,t){return Et(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Et(this,"forEach",e,t,void 0,arguments)},includes(...e){return $r(this,"includes",e)},indexOf(...e){return $r(this,"indexOf",e)},join(e){return yn(this).join(e)},lastIndexOf(...e){return $r(this,"lastIndexOf",e)},map(e,t){return Et(this,"map",e,t,void 0,arguments)},pop(){return Un(this,"pop")},push(...e){return Un(this,"push",e)},reduce(e,...t){return Ys(this,"reduce",e,t)},reduceRight(e,...t){return Ys(this,"reduceRight",e,t)},shift(){return Un(this,"shift")},some(e,t){return Et(this,"some",e,t,void 0,arguments)},splice(...e){return Un(this,"splice",e)},toReversed(){return yn(this).toReversed()},toSorted(e){return yn(this).toSorted(e)},toSpliced(...e){return yn(this).toSpliced(...e)},unshift(...e){return Un(this,"unshift",e)},values(){return kr(this,"values",e=>bt(this,e))}};function kr(e,t,n){const o=Oo(e),s=o[t]();return o!==e&&!Je(e)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=n(r.value)),r}),s}const oc=Array.prototype;function Et(e,t,n,o,s,r){const i=Oo(e),a=i!==e&&!Je(e),l=i[t];if(l!==oc[t]){const f=l.apply(e,r);return a?it(f):f}let c=n;i!==e&&(a?c=function(f,h){return n.call(this,bt(e,f),h,e)}:n.length>2&&(c=function(f,h){return n.call(this,f,h,e)}));const u=l.call(i,c,o);return a&&s?s(u):u}function Ys(e,t,n,o){const s=Oo(e),r=s!==e&&!Je(e);let i=n,a=!1;s!==e&&(r?(a=o.length===0,i=function(c,u,f){return a&&(a=!1,c=bt(e,c)),n.call(this,c,bt(e,u),f,e)}):n.length>3&&(i=function(c,u,f){return n.call(this,c,u,f,e)}));const l=s[t](i,...o);return a?bt(e,l):l}function $r(e,t,n){const o=pe(e);je(o,"iterate",Wn);const s=o[t](...n);return(s===-1||s===!1)&&Lo(n[0])?(n[0]=pe(n[0]),o[t](...n)):s}function Un(e,t,n=[]){mt(),mr();const o=pe(e)[t].apply(e,n);return _r(),_t(),o}const rc=cr("__proto__,__v_isRef,__isVue"),Vs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Xe));function sc(e){Xe(e)||(e=String(e));const t=pe(this);return je(t,"has",e),t.hasOwnProperty(e)}class Hs{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return r;if(n==="__v_raw")return o===(s?r?Zs:Js:r?Xs:Ks).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=ee(t);if(!s){let l;if(i&&(l=nc[n]))return l;if(n==="hasOwnProperty")return sc}const a=Reflect.get(t,n,Ne(t)?t:o);if((Xe(n)?Vs.has(n):rc(n))||(s||je(t,"get",n),r))return a;if(Ne(a)){const l=i&&bo(n)?a:a.value;return s&&ge(l)?Nr(l):l}return ge(a)?s?Nr(a):Eo(a):a}}class qs extends Hs{constructor(t=!1){super(!1,t)}set(t,n,o,s){let r=t[n];const i=ee(t)&&bo(n);if(!this._isShallow){const c=Lt(r);if(!Je(o)&&!Lt(o)&&(r=pe(r),o=pe(o)),!i&&Ne(r)&&!Ne(o))return c||(r.value=o),!0}const a=i?Number(n)e,No=e=>Reflect.getPrototypeOf(e);function uc(e,t,n){return function(...o){const s=this.__v_raw,r=pe(s),i=Gt(r),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=s[e](...o),u=n?Or:t?wn:it;return!t&&je(r,"iterate",l?wr:sn),Ce(Object.create(c),{next(){const{value:f,done:h}=c.next();return h?{value:f,done:h}:{value:a?[u(f[0]),u(f[1])]:u(f),done:h}}})}}function Co(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function pc(e,t){const n={get(s){const r=this.__v_raw,i=pe(r),a=pe(s);e||(gt(s,a)&&je(i,"get",s),je(i,"get",a));const{has:l}=No(i),c=t?Or:e?wn:it;if(l.call(i,s))return c(r.get(s));if(l.call(i,a))return c(r.get(a));r!==i&&r.get(s)},get size(){const s=this.__v_raw;return!e&&je(pe(s),"iterate",sn),s.size},has(s){const r=this.__v_raw,i=pe(r),a=pe(s);return e||(gt(s,a)&&je(i,"has",s),je(i,"has",a)),s===a?r.has(s):r.has(s)||r.has(a)},forEach(s,r){const i=this,a=i.__v_raw,l=pe(a),c=t?Or:e?wn:it;return!e&&je(l,"iterate",sn),a.forEach((u,f)=>s.call(r,c(u),c(f),i))}};return Ce(n,e?{add:Co("add"),set:Co("set"),delete:Co("delete"),clear:Co("clear")}:{add(s){const r=pe(this),i=No(r),a=pe(s),l=!t&&!Je(s)&&!Lt(s)?a:s;return i.has.call(r,l)||gt(s,l)&&i.has.call(r,s)||gt(a,l)&&i.has.call(r,a)||(r.add(l),At(r,"add",l,l)),this},set(s,r){!t&&!Je(r)&&!Lt(r)&&(r=pe(r));const i=pe(this),{has:a,get:l}=No(i);let c=a.call(i,s);c||(s=pe(s),c=a.call(i,s));const u=l.call(i,s);return i.set(s,r),c?gt(r,u)&&At(i,"set",s,r):At(i,"add",s,r),this},delete(s){const r=pe(this),{has:i,get:a}=No(r);let l=i.call(r,s);l||(s=pe(s),l=i.call(r,s)),a&&a.call(r,s);const c=r.delete(s);return l&&At(r,"delete",s,void 0),c},clear(){const s=pe(this),r=s.size!==0,i=s.clear();return r&&At(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=uc(s,e,t)}),n}function Ao(e,t){const n=pc(e,t);return(o,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?o:Reflect.get(he(n,s)&&s in o?n:o,s,r)}const dc={get:Ao(!1,!1)},fc={get:Ao(!1,!0)},hc={get:Ao(!0,!1)},gc={get:Ao(!0,!0)},Ks=new WeakMap,Xs=new WeakMap,Js=new WeakMap,Zs=new WeakMap;function mc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Eo(e){return Lt(e)?e:To(e,!1,ic,dc,Ks)}function _c(e){return To(e,!1,lc,fc,Xs)}function Nr(e){return To(e,!0,ac,hc,Js)}function A_(e){return To(e,!0,cc,gc,Zs)}function To(e,t,n,o,s){if(!ge(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=s.get(e);if(r)return r;const i=mc(jl(e));if(i===0)return e;const a=new Proxy(e,i===2?o:n);return s.set(e,a),a}function Tt(e){return Lt(e)?Tt(e.__v_raw):!!(e&&e.__v_isReactive)}function Lt(e){return!!(e&&e.__v_isReadonly)}function Je(e){return!!(e&&e.__v_isShallow)}function Lo(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function vn(e){return!he(e,"__v_skip")&&Object.isExtensible(e)&&Cs(e,"__v_skip",!0),e}const it=e=>ge(e)?Eo(e):e,wn=e=>ge(e)?Nr(e):e;function Ne(e){return e?e.__v_isRef===!0:!1}function re(e){return Qs(e,!1)}function jn(e){return Qs(e,!0)}function Qs(e,t){return Ne(e)?e:new bc(e,t)}class bc{constructor(t,n){this.dep=new vr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:pe(t),this._value=n?t:it(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Je(t)||Lt(t);t=o?t:pe(t),gt(t,n)&&(this._rawValue=t,this._value=o?t:it(t),this.dep.trigger())}}function ze(e){return Ne(e)?e.value:e}const yc={get:(e,t,n)=>t==="__v_raw"?e:ze(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return Ne(s)&&!Ne(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function ei(e){return Tt(e)?e:new Proxy(e,yc)}function vc(e){const t=ee(e)?new Array(e.length):{};for(const n in e)t[n]=kc(e,n);return t}class wc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Xe(n)?n:String(n),this._raw=pe(t);let s=!0,r=t;if(!ee(t)||Xe(this._key)||!bo(this._key))do s=!Lo(r)||Je(r);while(s&&(r=r.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=ze(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ne(this._raw[this._key])){const n=this._object[this._key];if(Ne(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return tc(this._raw,this._key)}}function kc(e,t,n){return new wc(e,t,n)}class $c{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new vr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Rn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&ye!==this)return Bs(this,!0),!0}get value(){const t=this.dep.track();return Ws(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Oc(e,t,n=!1){let o,s;return oe(e)?o=e:(o=e.get,s=e.set),new $c(o,s,n)}const So={},Io=new WeakMap;let an;function Nc(e,t=!1,n=an){if(n){let o=Io.get(n);o||Io.set(n,o=[]),o.push(e)}}function Cc(e,t,n=_e){const{immediate:o,deep:s,once:r,scheduler:i,augmentJob:a,call:l}=n,c=b=>s?b:Je(b)||s===!1||s===0?St(b,1):St(b);let u,f,h,m,w=!1,k=!1;if(Ne(e)?(f=()=>e.value,w=Je(e)):Tt(e)?(f=()=>c(e),w=!0):ee(e)?(k=!0,w=e.some(b=>Tt(b)||Je(b)),f=()=>e.map(b=>{if(Ne(b))return b.value;if(Tt(b))return c(b);if(oe(b))return l?l(b,2):b()})):oe(e)?t?f=l?()=>l(e,2):e:f=()=>{if(h){mt();try{h()}finally{_t()}}const b=an;an=u;try{return l?l(e,3,[m]):e(m)}finally{an=b}}:f=ht,t&&s){const b=f,v=s===!0?1/0:s;f=()=>St(b(),v)}const A=Fs(),O=()=>{u.stop(),A&&A.active&&ur(A.effects,u)};if(r&&t){const b=t;t=(...v)=>{const E=b(...v);return O(),E}}let C=k?new Array(e.length).fill(So):So;const _=b=>{if(!(!(u.flags&1)||!u.dirty&&!b))if(t){const v=u.run();if(b||s||w||(k?v.some((E,L)=>gt(E,C[L])):gt(v,C))){h&&h();const E=an;an=u;try{const L=[v,C===So?void 0:k&&C[0]===So?[]:C,m];C=v,l?l(t,3,L):t(...L)}finally{an=E}}}else u.run()};return a&&a(_),u=new Ms(f),u.scheduler=i?()=>i(_,!1):_,m=b=>Nc(b,!1,u),h=u.onStop=()=>{const b=Io.get(u);if(b){if(l)l(b,4);else for(const v of b)v();Io.delete(u)}},t?o?_(!0):C=u.run():i?i(_.bind(null,!0),!0):u.run(),O.pause=u.pause.bind(u),O.resume=u.resume.bind(u),O.stop=O,O}function St(e,t=1/0,n){if(t<=0||!ge(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ne(e))St(e.value,t,n);else if(ee(e))for(let o=0;o{St(o,t,n)});else if(_o(e)){for(const o in e)St(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&St(e[o],t,n)}return e}/** +**/let Se;class Is{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&&Se&&(Se.active?(this.parent=Se,this.index=(Se.scopes||(Se.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;t0&&--this._on===0){if(Se===this)Se=this.prevScope;else{let t=Se;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;n0)return;if(Dn){let t=Dn;for(Dn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Bn;){let t=Bn;for(Bn=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 Ds(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Rs(e){let t,n=e.depsTail,o=n;for(;o;){const s=o.prevDep;o.version===-1?(o===n&&(n=s),yr(o),Ql(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=s}e.deps=t,e.depsTail=n}function br(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ws(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ws(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Rn)||(e.globalVersion=Rn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!br(e))))return;e.flags|=2;const t=e.dep,n=ye,o=st;ye=e,st=!0;try{Ds(e);const s=e.fn(e._value);(t.version===0||gt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ye=n,st=o,Rs(e),e.flags&=-3}}function yr(e,t=!1){const{dep:n,prevSub:o,nextSub:s}=e;if(o&&(o.nextSub=s,e.prevSub=void 0),s&&(s.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)yr(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ql(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let st=!0;const Us=[];function mt(){Us.push(st),st=!1}function _t(){const e=Us.pop();st=e===void 0?!0:e}function js(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ye;ye=void 0;try{t()}finally{ye=n}}}let Rn=0;class ec{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 vr{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(!ye||!st||ye===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ye)n=this.activeLink=new ec(ye,this),ye.deps?(n.prevDep=ye.depsTail,ye.depsTail.nextDep=n,ye.depsTail=n):ye.deps=ye.depsTail=n,Gs(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=ye.depsTail,n.nextDep=void 0,ye.depsTail.nextDep=n,ye.depsTail=n,ye.deps===n&&(ye.deps=o)}return n}trigger(t){this.version++,Rn++,this.notify(t)}notify(t){mr();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{_r()}}}function Gs(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)Gs(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const $o=new WeakMap,sn=Symbol(""),wr=Symbol(""),Wn=Symbol("");function je(e,t,n){if(st&&ye){let o=$o.get(e);o||$o.set(e,o=new Map);let s=o.get(n);s||(o.set(n,s=new vr),s.map=o,s.key=n),s.track()}}function At(e,t,n,o,s,r){const a=$o.get(e);if(!a){Rn++;return}const i=l=>{l&&l.trigger()};if(mr(),t==="clear")a.forEach(i);else{const l=ee(e),c=l&&bo(n);if(l&&n==="length"){const u=Number(o);a.forEach((f,h)=>{(h==="length"||h===Wn||!Xe(h)&&h>=u)&&i(f)})}else switch((n!==void 0||a.has(void 0))&&i(a.get(n)),c&&i(a.get(Wn)),t){case"add":l?c&&i(a.get("length")):(i(a.get(sn)),Gt(e)&&i(a.get(wr)));break;case"delete":l||(i(a.get(sn)),Gt(e)&&i(a.get(wr)));break;case"set":Gt(e)&&i(a.get(sn));break}}_r()}function tc(e,t){const n=$o.get(e);return n&&n.get(t)}function yn(e){const t=pe(e);return t===e?t:(je(t,"iterate",Wn),Je(e)?t:t.map(at))}function Oo(e){return je(e=pe(e),"iterate",Wn),e}function bt(e,t){return Lt(e)?wn(Tt(e)?at(t):t):at(t)}const nc={__proto__:null,[Symbol.iterator](){return kr(this,Symbol.iterator,e=>bt(this,e))},concat(...e){return yn(this).concat(...e.map(t=>ee(t)?yn(t):t))},entries(){return kr(this,"entries",e=>(e[1]=bt(this,e[1]),e))},every(e,t){return Et(this,"every",e,t,void 0,arguments)},filter(e,t){return Et(this,"filter",e,t,n=>n.map(o=>bt(this,o)),arguments)},find(e,t){return Et(this,"find",e,t,n=>bt(this,n),arguments)},findIndex(e,t){return Et(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Et(this,"findLast",e,t,n=>bt(this,n),arguments)},findLastIndex(e,t){return Et(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Et(this,"forEach",e,t,void 0,arguments)},includes(...e){return $r(this,"includes",e)},indexOf(...e){return $r(this,"indexOf",e)},join(e){return yn(this).join(e)},lastIndexOf(...e){return $r(this,"lastIndexOf",e)},map(e,t){return Et(this,"map",e,t,void 0,arguments)},pop(){return Un(this,"pop")},push(...e){return Un(this,"push",e)},reduce(e,...t){return Ys(this,"reduce",e,t)},reduceRight(e,...t){return Ys(this,"reduceRight",e,t)},shift(){return Un(this,"shift")},some(e,t){return Et(this,"some",e,t,void 0,arguments)},splice(...e){return Un(this,"splice",e)},toReversed(){return yn(this).toReversed()},toSorted(e){return yn(this).toSorted(e)},toSpliced(...e){return yn(this).toSpliced(...e)},unshift(...e){return Un(this,"unshift",e)},values(){return kr(this,"values",e=>bt(this,e))}};function kr(e,t,n){const o=Oo(e),s=o[t]();return o!==e&&!Je(e)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=n(r.value)),r}),s}const oc=Array.prototype;function Et(e,t,n,o,s,r){const a=Oo(e),i=a!==e&&!Je(e),l=a[t];if(l!==oc[t]){const f=l.apply(e,r);return i?at(f):f}let c=n;a!==e&&(i?c=function(f,h){return n.call(this,bt(e,f),h,e)}:n.length>2&&(c=function(f,h){return n.call(this,f,h,e)}));const u=l.call(a,c,o);return i&&s?s(u):u}function Ys(e,t,n,o){const s=Oo(e),r=s!==e&&!Je(e);let a=n,i=!1;s!==e&&(r?(i=o.length===0,a=function(c,u,f){return i&&(i=!1,c=bt(e,c)),n.call(this,c,bt(e,u),f,e)}):n.length>3&&(a=function(c,u,f){return n.call(this,c,u,f,e)}));const l=s[t](a,...o);return i?bt(e,l):l}function $r(e,t,n){const o=pe(e);je(o,"iterate",Wn);const s=o[t](...n);return(s===-1||s===!1)&&Lo(n[0])?(n[0]=pe(n[0]),o[t](...n)):s}function Un(e,t,n=[]){mt(),mr();const o=pe(e)[t].apply(e,n);return _r(),_t(),o}const rc=cr("__proto__,__v_isRef,__isVue"),Vs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Xe));function sc(e){Xe(e)||(e=String(e));const t=pe(this);return je(t,"has",e),t.hasOwnProperty(e)}class Hs{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return r;if(n==="__v_raw")return o===(s?r?Zs:Js:r?Xs:Ks).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const a=ee(t);if(!s){let l;if(a&&(l=nc[n]))return l;if(n==="hasOwnProperty")return sc}const i=Reflect.get(t,n,Ne(t)?t:o);if((Xe(n)?Vs.has(n):rc(n))||(s||je(t,"get",n),r))return i;if(Ne(i)){const l=a&&bo(n)?i:i.value;return s&&ge(l)?Nr(l):l}return ge(i)?s?Nr(i):Eo(i):i}}class qs extends Hs{constructor(t=!1){super(!1,t)}set(t,n,o,s){let r=t[n];const a=ee(t)&&bo(n);if(!this._isShallow){const c=Lt(r);if(!Je(o)&&!Lt(o)&&(r=pe(r),o=pe(o)),!a&&Ne(r)&&!Ne(o))return c||(r.value=o),!0}const i=a?Number(n)e,No=e=>Reflect.getPrototypeOf(e);function uc(e,t,n){return function(...o){const s=this.__v_raw,r=pe(s),a=Gt(r),i=e==="entries"||e===Symbol.iterator&&a,l=e==="keys"&&a,c=s[e](...o),u=n?Or:t?wn:at;return!t&&je(r,"iterate",l?wr:sn),Ce(Object.create(c),{next(){const{value:f,done:h}=c.next();return h?{value:f,done:h}:{value:i?[u(f[0]),u(f[1])]:u(f),done:h}}})}}function Co(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function pc(e,t){const n={get(s){const r=this.__v_raw,a=pe(r),i=pe(s);e||(gt(s,i)&&je(a,"get",s),je(a,"get",i));const{has:l}=No(a),c=t?Or:e?wn:at;if(l.call(a,s))return c(r.get(s));if(l.call(a,i))return c(r.get(i));r!==a&&r.get(s)},get size(){const s=this.__v_raw;return!e&&je(pe(s),"iterate",sn),s.size},has(s){const r=this.__v_raw,a=pe(r),i=pe(s);return e||(gt(s,i)&&je(a,"has",s),je(a,"has",i)),s===i?r.has(s):r.has(s)||r.has(i)},forEach(s,r){const a=this,i=a.__v_raw,l=pe(i),c=t?Or:e?wn:at;return!e&&je(l,"iterate",sn),i.forEach((u,f)=>s.call(r,c(u),c(f),a))}};return Ce(n,e?{add:Co("add"),set:Co("set"),delete:Co("delete"),clear:Co("clear")}:{add(s){const r=pe(this),a=No(r),i=pe(s),l=!t&&!Je(s)&&!Lt(s)?i:s;return a.has.call(r,l)||gt(s,l)&&a.has.call(r,s)||gt(i,l)&&a.has.call(r,i)||(r.add(l),At(r,"add",l,l)),this},set(s,r){!t&&!Je(r)&&!Lt(r)&&(r=pe(r));const a=pe(this),{has:i,get:l}=No(a);let c=i.call(a,s);c||(s=pe(s),c=i.call(a,s));const u=l.call(a,s);return a.set(s,r),c?gt(r,u)&&At(a,"set",s,r):At(a,"add",s,r),this},delete(s){const r=pe(this),{has:a,get:i}=No(r);let l=a.call(r,s);l||(s=pe(s),l=a.call(r,s)),i&&i.call(r,s);const c=r.delete(s);return l&&At(r,"delete",s,void 0),c},clear(){const s=pe(this),r=s.size!==0,a=s.clear();return r&&At(s,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=uc(s,e,t)}),n}function Ao(e,t){const n=pc(e,t);return(o,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?o:Reflect.get(he(n,s)&&s in o?n:o,s,r)}const dc={get:Ao(!1,!1)},fc={get:Ao(!1,!0)},hc={get:Ao(!0,!1)},gc={get:Ao(!0,!0)},Ks=new WeakMap,Xs=new WeakMap,Js=new WeakMap,Zs=new WeakMap;function mc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Eo(e){return Lt(e)?e:To(e,!1,ac,dc,Ks)}function _c(e){return To(e,!1,lc,fc,Xs)}function Nr(e){return To(e,!0,ic,hc,Js)}function A_(e){return To(e,!0,cc,gc,Zs)}function To(e,t,n,o,s){if(!ge(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=s.get(e);if(r)return r;const a=mc(jl(e));if(a===0)return e;const i=new Proxy(e,a===2?o:n);return s.set(e,i),i}function Tt(e){return Lt(e)?Tt(e.__v_raw):!!(e&&e.__v_isReactive)}function Lt(e){return!!(e&&e.__v_isReadonly)}function Je(e){return!!(e&&e.__v_isShallow)}function Lo(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function vn(e){return!he(e,"__v_skip")&&Object.isExtensible(e)&&Cs(e,"__v_skip",!0),e}const at=e=>ge(e)?Eo(e):e,wn=e=>ge(e)?Nr(e):e;function Ne(e){return e?e.__v_isRef===!0:!1}function re(e){return Qs(e,!1)}function jn(e){return Qs(e,!0)}function Qs(e,t){return Ne(e)?e:new bc(e,t)}class bc{constructor(t,n){this.dep=new vr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:pe(t),this._value=n?t:at(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Je(t)||Lt(t);t=o?t:pe(t),gt(t,n)&&(this._rawValue=t,this._value=o?t:at(t),this.dep.trigger())}}function ze(e){return Ne(e)?e.value:e}const yc={get:(e,t,n)=>t==="__v_raw"?e:ze(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return Ne(s)&&!Ne(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function ea(e){return Tt(e)?e:new Proxy(e,yc)}function vc(e){const t=ee(e)?new Array(e.length):{};for(const n in e)t[n]=kc(e,n);return t}class wc{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=Xe(n)?n:String(n),this._raw=pe(t);let s=!0,r=t;if(!ee(t)||Xe(this._key)||!bo(this._key))do s=!Lo(r)||Je(r);while(s&&(r=r.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=ze(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ne(this._raw[this._key])){const n=this._object[this._key];if(Ne(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return tc(this._raw,this._key)}}function kc(e,t,n){return new wc(e,t,n)}class $c{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new vr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Rn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&ye!==this)return Bs(this,!0),!0}get value(){const t=this.dep.track();return Ws(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Oc(e,t,n=!1){let o,s;return oe(e)?o=e:(o=e.get,s=e.set),new $c(o,s,n)}const So={},xo=new WeakMap;let an;function Nc(e,t=!1,n=an){if(n){let o=xo.get(n);o||xo.set(n,o=[]),o.push(e)}}function Cc(e,t,n=_e){const{immediate:o,deep:s,once:r,scheduler:a,augmentJob:i,call:l}=n,c=b=>s?b:Je(b)||s===!1||s===0?St(b,1):St(b);let u,f,h,m,w=!1,k=!1;if(Ne(e)?(f=()=>e.value,w=Je(e)):Tt(e)?(f=()=>c(e),w=!0):ee(e)?(k=!0,w=e.some(b=>Tt(b)||Je(b)),f=()=>e.map(b=>{if(Ne(b))return b.value;if(Tt(b))return c(b);if(oe(b))return l?l(b,2):b()})):oe(e)?t?f=l?()=>l(e,2):e:f=()=>{if(h){mt();try{h()}finally{_t()}}const b=an;an=u;try{return l?l(e,3,[m]):e(m)}finally{an=b}}:f=ht,t&&s){const b=f,v=s===!0?1/0:s;f=()=>St(b(),v)}const A=Fs(),O=()=>{u.stop(),A&&A.active&&ur(A.effects,u)};if(r&&t){const b=t;t=(...v)=>{const E=b(...v);return O(),E}}let C=k?new Array(e.length).fill(So):So;const _=b=>{if(!(!(u.flags&1)||!u.dirty&&!b))if(t){const v=u.run();if(b||s||w||(k?v.some((E,L)=>gt(E,C[L])):gt(v,C))){h&&h();const E=an;an=u;try{const L=[v,C===So?void 0:k&&C[0]===So?[]:C,m];C=v,l?l(t,3,L):t(...L)}finally{an=E}}}else u.run()};return i&&i(_),u=new Ms(f),u.scheduler=a?()=>a(_,!1):_,m=b=>Nc(b,!1,u),h=u.onStop=()=>{const b=xo.get(u);if(b){if(l)l(b,4);else for(const v of b)v();xo.delete(u)}},t?o?_(!0):C=u.run():a?a(_.bind(null,!0),!0):u.run(),O.pause=u.pause.bind(u),O.resume=u.resume.bind(u),O.stop=O,O}function St(e,t=1/0,n){if(t<=0||!ge(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ne(e))St(e.value,t,n);else if(ee(e))for(let o=0;o{St(o,t,n)});else if(_o(e)){for(const o in e)St(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&St(e[o],t,n)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Gn=[];let Cr=!1;function E_(e,...t){if(Cr)return;Cr=!0,mt();const n=Gn.length?Gn[Gn.length-1].component:null,o=n&&n.appContext.config.warnHandler,s=Ac();if(o)kn(o,n,11,[e+t.map(r=>{var i,a;return(a=(i=r.toString)==null?void 0:i.call(r))!=null?a:JSON.stringify(r)}).join(""),n&&n.proxy,s.map(({vnode:r})=>`at <${Qi(n,r.type)}>`).join(` +**/const Gn=[];let Cr=!1;function E_(e,...t){if(Cr)return;Cr=!0,mt();const n=Gn.length?Gn[Gn.length-1].component:null,o=n&&n.appContext.config.warnHandler,s=Ac();if(o)kn(o,n,11,[e+t.map(r=>{var a,i;return(i=(a=r.toString)==null?void 0:a.call(r))!=null?i:JSON.stringify(r)}).join(""),n&&n.proxy,s.map(({vnode:r})=>`at <${Qa(n,r.type)}>`).join(` `),s]);else{const r=[`[Vue warn]: ${e}`,...t];s.length&&r.push(` `,...Ec(s)),console.warn(...r)}_t(),Cr=!1}function Ac(){let e=Gn[Gn.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 Ec(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[` -`],...Tc(n))}),t}function Tc({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,s=` at <${Qi(e.component,e.type,o)}`,r=">"+n;return e.props?[s,...Lc(e.props),r]:[s+r]}function Lc(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...ti(o,e[o]))}),n.length>3&&t.push(" ..."),t}function ti(e,t,n){return be(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:Ne(t)?(t=ti(e,pe(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):oe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=pe(t),n?t:[`${e}=`,t])}function kn(e,t,n,o){try{return o?e(...o):e()}catch(s){Yn(s,t,n)}}function at(e,t,n,o){if(oe(e)){const s=kn(e,t,n,o);return s&&Os(s)&&s.catch(r=>{Yn(r,t,n)}),s}if(ee(e)){const s=[];for(let r=0;r>>1,s=Ge[o],r=Hn(s);r=Hn(n)?Ge.push(e):Ge.splice(Ic(t),0,e),e.flags|=1,oi()}}function oi(){xo||(xo=ni.then(ii))}function xc(e){if(!ee(e))Yt&&e.id===-1?Yt.splice(On+1,0,e):e.flags&1||($n.push(e),e.flags|=1);else for(let t=0;tHn(n)-Hn(o));if($n.length=0,Yt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function ii(e){try{for(yt=0;yt{o._d&&Yo(-1);const r=Fo(t),i=xt.length;let a;try{a=e(...s)}finally{for(let l=xt.length;l>i;l--)Vr();Fo(r),o._d&&Yo(1)}return a};return o._n=!0,o._c=!0,o._d=!0,o}function Fc(e,t){if(Be===null)return e;const n=zo(Be),o=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&oe(t)?t.call(o&&o.proxy):t}}function Mc(){return!!(Mt()||pn)}const Pc=Symbol.for("v-scx"),Bc=()=>De(Pc);function Dc(e,t){return Er(e,null,t)}function lt(e,t,n){return Er(e,t,n)}function Er(e,t,n=_e){const{immediate:o,deep:s,flush:r,once:i}=n,a=Ce({},n),l=t&&o||!t&&r!=="post";let c;if(An){if(r==="sync"){const m=Bc();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=ht,m.resume=ht,m.pause=ht,m}}const u=Re;a.call=(m,w,k)=>at(m,u,w,k);let f=!1;r==="post"?a.scheduler=m=>{Ve(m,u&&u.suspense)}:r!=="sync"&&(f=!0,a.scheduler=(m,w)=>{w?m():Ar(m)}),a.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const h=Cc(e,t,a);return An&&(c?c.push(h):l&&h()),h}function Rc(e,t,n){const o=this.proxy,s=be(e)?e.includes(".")?li(o,e):()=>o[e]:e.bind(o,o);let r;oe(t)?r=t:(r=t.handler,n=t);const i=oo(this),a=Er(s,r.bind(o),n);return i(),a}function li(e,t){const n=t.split(".");return()=>{let o=e;for(let s=0;se.__isTeleport,cn=e=>e&&(e.disabled||e.disabled===""),Wc=e=>e&&(e.defer||e.defer===""),ui=e=>typeof SVGElement<"u"&&e instanceof SVGElement,pi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Tr=(e,t)=>{const n=e&&e.to;return be(n)?t?t(n):null:n},Uc={name:"Teleport",__isTeleport:!0,process(e,t,n,o,s,r,i,a,l,c){const{mc:u,pc:f,pbc:h,o:{insert:m,querySelector:w,createText:k,createComment:A,parentNode:O}}=c,C=cn(t.props);let{dynamicChildren:_}=t;const b=(L,I,N)=>{L.shapeFlag&16&&u(L.children,I,N,s,r,i,a,l)},v=(L=t)=>{const I=cn(L.props),N=L.target=Tr(L.props,w),R=Lr(N,L,k,m);N&&(i!=="svg"&&ui(N)?i="svg":i!=="mathml"&&pi(N)&&(i="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(N),I||(b(L,N,R),qn(L,!1)))},E=L=>{const I=()=>{if(Ht.get(L)===I){if(Ht.delete(L),cn(L.props)){const N=O(L.el)||n;b(L,N,L.anchor),qn(L,!0)}v(L)}};Ht.set(L,I),Ve(I,r)};if(e==null){const L=t.el=k(""),I=t.anchor=k("");if(m(L,n,o),m(I,n,o),Wc(t.props)||r&&r.pendingBranch){E(t);return}C&&(b(t,n,I),qn(t,!0)),v()}else{t.el=e.el;const L=t.anchor=e.anchor,I=Ht.get(e);if(I){I.flags|=8,Ht.delete(e),E(t);return}t.targetStart=e.targetStart;const N=t.target=e.target,R=t.targetAnchor=e.targetAnchor,j=cn(e.props),K=j?n:N,ne=j?L:R;if(i==="svg"||ui(N)?i="svg":(i==="mathml"||pi(N))&&(i="mathml"),_?(h(e.dynamicChildren,_,K,s,r,i,a),Gr(e,t,!0)):l||f(e,t,K,ne,s,r,i,a,!1),C)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Po(t,n,L,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=Tr(t.props,w);ue&&(t.target=ue,Po(t,ue,null,c,0))}else j&&Po(t,N,R,c,1);qn(t,C)}},remove(e,t,n,{um:o,o:{remove:s}},r){const{shapeFlag:i,children:a,anchor:l,targetStart:c,targetAnchor:u,target:f,props:h}=e,m=cn(h),w=r||!m,k=Ht.get(e);if(k&&(k.flags|=8,Ht.delete(e)),f&&(s(c),s(u)),r&&s(l),!k&&(m||f)&&i&16)for(let A=0;A1){for(const n of e)if(n.type!==vt){t=n;break}}return t}function di(e){if(!Ro(e))return Mo(e.type)&&e.children?Yc(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&&oe(n.default))return n.default()}}function Ir(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Ir(Mo(n.type)&&di(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 zn(e,t){return oe(e)?Ce({name:e.name},t,{setup:e}):e}function xr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function fi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Bo=new WeakMap;function Kn(e,t,n,o,s=!1){if(ee(e)){e.forEach((k,A)=>Kn(k,t&&(ee(t)?t[A]:t),n,o,s));return}if(Nn(o)&&!s){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Kn(e,t,n,o.component.subTree);return}const r=o.shapeFlag&4?zo(o.component):o.el,i=s?null:r,{i:a,r:l}=e,c=t&&t.r,u=a.refs===_e?a.refs={}:a.refs,f=a.setupState,h=pe(f),m=f===_e?ks:k=>fi(u,k)?!1:he(h,k),w=(k,A)=>!(A&&fi(u,A));if(c!=null&&c!==l){if(hi(t),be(c))u[c]=null,m(c)&&(f[c]=null);else if(Ne(c)){const k=t;w(c,k.k)&&(c.value=null),k.k&&(u[k.k]=null)}}if(oe(l))kn(l,a,12,[i,u]);else{const k=be(l),A=Ne(l);if(k||A){const O=()=>{if(e.f){const C=k?m(l)?f[l]:u[l]:w()||!e.k?l.value:u[e.k];if(s)ee(C)&&ur(C,r);else if(ee(C))C.includes(r)||C.push(r);else if(k)u[l]=[r],m(l)&&(f[l]=u[l]);else{const _=[r];w(l,e.k)&&(l.value=_),e.k&&(u[e.k]=_)}}else k?(u[l]=i,m(l)&&(f[l]=i)):A&&(w(l,e.k)&&(l.value=i),e.k&&(u[e.k]=i))};if(i){const C=()=>{O(),Bo.delete(e)};C.id=-1,Bo.set(e,C),Ve(C,n)}else hi(e),O()}}}function hi(e){const t=Bo.get(e);t&&(t.flags|=8,Bo.delete(e))}const gi=e=>e.nodeType===8;wo().requestIdleCallback,wo().cancelIdleCallback;function Vc(e,t){if(gi(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(gi(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const Nn=e=>!!e.type.__asyncLoader;function Hc(e){oe(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:s=200,hydrate:r,timeout:i,suspensible:a=!0,onError:l}=e;let c=null,u,f=0;const h=()=>(f++,c=null,m()),m=()=>{let w;return c||(w=c=t().catch(k=>{if(k=k instanceof Error?k:new Error(String(k)),l)return new Promise((A,O)=>{l(k,()=>A(h()),()=>O(k),f+1)});throw k}).then(k=>w!==c&&c?c:(k&&(k.__esModule||k[Symbol.toStringTag]==="Module")&&(k=k.default),u=k,k)))};return zn({name:"AsyncComponentWrapper",__asyncLoader:m,__asyncHydrate(w,k,A){const O=w.isConnected;let C=!1;(k.bu||(k.bu=[])).push(()=>C=!0);const _=()=>{C||!w.parentNode||O&&!w.isConnected||A()},b=r?()=>{const v=r(_,E=>Vc(w,E));v&&(k.bum||(k.bum=[])).push(v)}:_;u?b():m().then(()=>!k.isUnmounted&&b())},get __asyncResolved(){return u},setup(){const w=Re;if(xr(w),u)return()=>Do(u,w);const k=v=>{c=null,Yn(v,w,13,!o)};if(a&&w.suspense||An)return m().then(v=>()=>Do(v,w)).catch(v=>(k(v),()=>o?ve(o,{error:v}):null));const A=re(!1),O=re(),C=re(!!s);let _,b;return Uo(()=>{_!=null&&clearTimeout(_),b!=null&&clearTimeout(b)}),s&&(b=setTimeout(()=>{w.isUnmounted||(C.value=!1)},s)),i!=null&&(_=setTimeout(()=>{if(!w.isUnmounted&&!A.value&&!O.value){const v=new Error(`Async component timed out after ${i}ms.`);k(v),O.value=v}},i)),m().then(()=>{w.isUnmounted||(A.value=!0,w.parent&&Ro(w.parent.vnode)&&w.parent.update())}).catch(v=>{if(w.isUnmounted){c=null;return}k(v),O.value=v}),()=>{if(A.value&&u)return Do(u,w);if(O.value&&o)return ve(o,{error:O.value});if(n&&!C.value)return Do(n,w)}}})}function Do(e,t){const{ref:n,props:o,children:s,ce:r}=t.vnode,i=ve(e,o,s);return i.ref=n,i.ce=r,delete t.vnode.ce,i}const Ro=e=>e.type.__isKeepAlive;function qc(e,t){mi(e,"a",t)}function zc(e,t){mi(e,"da",t)}function mi(e,t,n=Re){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Wo(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Ro(s.parent.vnode)&&Kc(o,t,n,s),s=s.parent}}function Kc(e,t,n,o){const s=Wo(t,e,o,!0);Uo(()=>{ur(o[t],s)},n)}function Wo(e,t,n=Re,o=!1){if(n){const s=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...i)=>{mt();const a=oo(n),l=at(t,n,e,i);return a(),_t(),l});return o?s.unshift(r):s.push(r),r}}const It=e=>(t,n=Re)=>{(!An||e==="sp")&&Wo(e,(...o)=>t(...o),n)},_i=It("bm"),qt=It("m"),Xc=It("bu"),Jc=It("u"),un=It("bum"),Uo=It("um"),Zc=It("sp"),Qc=It("rtg"),eu=It("rtc");function tu(e,t=Re){Wo("ec",e,t)}const nu="components",bi=Symbol.for("v-ndc");function yi(e){return be(e)?ou(nu,e,!1)||e:e||bi}function ou(e,t,n=!0,o=!1){const s=Be||Re;if(s){const r=s.type;{const a=Zi(r,!1);if(a&&(a===t||a===Fe(t)||a===vo(Fe(t))))return r}const i=vi(s[e]||r[e],t)||vi(s.appContext[e],t);return!i&&o?r:i}}function vi(e,t){return e&&(e[t]||e[Fe(t)]||e[vo(Fe(t))])}function ct(e,t,n,o){let s;const r=n,i=ee(e);if(i||be(e)){const a=i&&Tt(e);let l=!1,c=!1;a&&(l=!Je(e),c=Lt(e),e=Oo(e)),s=new Array(e.length);for(let u=0,f=e.length;ut(a,l,void 0,r));else{const a=Object.keys(e);s=new Array(a.length);for(let l=0,c=a.length;l0;return H(),Qe(de,null,[ve("slot",c,o)],u?-2:64)}let i=e[t];i&&i._c&&(i._d=!1);const a=xt.length;H();let l;try{const c=i&&wi(i(n)),u=n.key||r||c&&c.key;l=Qe(de,{key:(u&&!Xe(u)?u:`_${t}`)+(!c&&o?"_fb":"")},c||(o?o():[]),c&&e._===1?64:-2)}catch(c){for(let u=xt.length;u>a;u--)Vr();throw c}finally{i&&i._c&&(i._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function wi(e){return e.some(t=>eo(t)?!(t.type===vt||t.type===de&&!wi(t.children)):!0)?e:null}const Mr=e=>e?Ki(e)?zo(e):Mr(e.parent):null,Xn=Ce(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=>Mr(e.parent),$root:e=>Mr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ni(e),$forceUpdate:e=>e.f||(e.f=()=>{Ar(e.update)}),$nextTick:e=>e.n||(e.n=Vn.bind(e.proxy)),$watch:e=>Rc.bind(e)}),Pr=(e,t)=>e!==_e&&!e.__isScriptSetup&&he(e,t),ru={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:s,props:r,accessCache:i,type:a,appContext:l}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return s[t];case 4:return n[t];case 3:return r[t]}else{if(Pr(o,t))return i[t]=1,o[t];if(s!==_e&&he(s,t))return i[t]=2,s[t];if(he(r,t))return i[t]=3,r[t];if(n!==_e&&he(n,t))return i[t]=4,n[t];Br&&(i[t]=0)}}const c=Xn[t];let u,f;if(c)return t==="$attrs"&&je(e.attrs,"get",""),c(e);if((u=a.__cssModules)&&(u=u[t]))return u;if(n!==_e&&he(n,t))return i[t]=4,n[t];if(f=l.config.globalProperties,he(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:r}=e;return Pr(s,t)?(s[t]=n,!0):o!==_e&&he(o,t)?(o[t]=n,!0):he(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:s,props:r,type:i}},a){let l;return!!(n[a]||e!==_e&&a[0]!=="$"&&he(e,a)||Pr(t,a)||he(r,a)||he(o,a)||he(Xn,a)||he(s.config.globalProperties,a)||(l=i.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:he(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ki(e){return ee(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Br=!0;function su(e){const t=Ni(e),n=e.proxy,o=e.ctx;Br=!1,t.beforeCreate&&$i(t.beforeCreate,e,"bc");const{data:s,computed:r,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:h,beforeUpdate:m,updated:w,activated:k,deactivated:A,beforeDestroy:O,beforeUnmount:C,destroyed:_,unmounted:b,render:v,renderTracked:E,renderTriggered:L,errorCaptured:I,serverPrefetch:N,expose:R,inheritAttrs:j,components:K,directives:ne,filters:ue}=t;if(c&&iu(c,o,null),i)for(const X in i){const le=i[X];oe(le)&&(o[X]=le.bind(n))}if(s){const X=s.call(n,n);ge(X)&&(e.data=Eo(X))}if(Br=!0,r)for(const X in r){const le=r[X],Ee=oe(le)?le.bind(n,n):oe(le.get)?le.get.bind(n,n):ht,Nt=!oe(le)&&oe(le.set)?le.set.bind(n):ht,xe=ie({get:Ee,set:Nt});Object.defineProperty(o,X,{enumerable:!0,configurable:!0,get:()=>xe.value,set:Pe=>xe.value=Pe})}if(a)for(const X in a)Oi(a[X],o,n,X);if(l){const X=oe(l)?l.call(n):l;Reflect.ownKeys(X).forEach(le=>{nt(le,X[le])})}u&&$i(u,e,"c");function W(X,le){ee(le)?le.forEach(Ee=>X(Ee.bind(n))):le&&X(le.bind(n))}if(W(_i,f),W(qt,h),W(Xc,m),W(Jc,w),W(qc,k),W(zc,A),W(tu,I),W(eu,E),W(Qc,L),W(un,C),W(Uo,b),W(Zc,N),ee(R))if(R.length){const X=e.exposed||(e.exposed={});R.forEach(le=>{Object.defineProperty(X,le,{get:()=>n[le],set:Ee=>n[le]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});v&&e.render===ht&&(e.render=v),j!=null&&(e.inheritAttrs=j),K&&(e.components=K),ne&&(e.directives=ne),N&&xr(e)}function iu(e,t,n=ht){ee(e)&&(e=Dr(e));for(const o in e){const s=e[o];let r;ge(s)?"default"in s?r=De(s.from||o,s.default,!0):r=De(s.from||o):r=De(s),Ne(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:i=>r.value=i}):t[o]=r}}function $i(e,t,n){at(ee(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Oi(e,t,n,o){let s=o.includes(".")?li(n,o):()=>n[o];if(be(e)){const r=t[e];oe(r)&<(s,r)}else if(oe(e))lt(s,e.bind(n));else if(ge(e))if(ee(e))e.forEach(r=>Oi(r,t,n,o));else{const r=oe(e.handler)?e.handler.bind(n):t[e.handler];oe(r)&<(s,r,e)}}function Ni(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:i}}=e.appContext,a=r.get(t);let l;return a?l=a:!s.length&&!n&&!o?l=t:(l={},s.length&&s.forEach(c=>jo(l,c,i,!0)),jo(l,t,i)),ge(t)&&r.set(t,l),l}function jo(e,t,n,o=!1){const{mixins:s,extends:r}=t;r&&jo(e,r,n,!0),s&&s.forEach(i=>jo(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const a=au[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const au={data:Ci,props:Ai,emits:Ai,methods:Jn,computed:Jn,beforeCreate:Ye,created:Ye,beforeMount:Ye,mounted:Ye,beforeUpdate:Ye,updated:Ye,beforeDestroy:Ye,beforeUnmount:Ye,destroyed:Ye,unmounted:Ye,activated:Ye,deactivated:Ye,errorCaptured:Ye,serverPrefetch:Ye,components:Jn,directives:Jn,watch:cu,provide:Ci,inject:lu};function Ci(e,t){return t?e?function(){return Ce(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function lu(e,t){return Jn(Dr(e),Dr(t))}function Dr(e){if(ee(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Fe(t)}Modifiers`]||e[`${tt(t)}Modifiers`];function fu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||_e;let s=n;const r=t.startsWith("update:"),i=r&&du(o,t.slice(7));i&&(i.trim&&(s=n.map(u=>be(u)?u.trim():u)),i.number&&(s=s.map(Vl)));let a,l=o[a=pr(t)]||o[a=pr(Fe(t))];!l&&r&&(l=o[a=pr(tt(t))]),l&&at(l,e,6,s);const c=o[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,at(c,e,6,s)}}const hu=new WeakMap;function Ti(e,t,n=!1){const o=n?hu:t.emitsCache,s=o.get(e);if(s!==void 0)return s;const r=e.emits;let i={},a=!1;if(!oe(e)){const l=c=>{const u=Ti(c,t,!0);u&&(a=!0,Ce(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!a?(ge(e)&&o.set(e,null),null):(ee(r)?r.forEach(l=>i[l]=null):Ce(i,r),ge(e)&&o.set(e,i),i)}function Go(e,t){return!e||!ho(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),he(e,t[0].toLowerCase()+t.slice(1))||he(e,tt(t))||he(e,t))}function T_(){}function Li(e){const{type:t,vnode:n,proxy:o,withProxy:s,propsOptions:[r],slots:i,attrs:a,emit:l,render:c,renderCache:u,props:f,data:h,setupState:m,ctx:w,inheritAttrs:k}=e,A=Fo(e);let O,C;try{if(n.shapeFlag&4){const b=s||o,v=b;O=wt(c.call(v,b,u,f,m,h,w)),C=a}else{const b=t;O=wt(b.length>1?b(f,{attrs:a,slots:i,emit:l}):b(f,null)),C=t.props?a:gu(a)}}catch(b){xt.length=0,Yn(b,e,1),O=ve(vt)}let _=O;if(C&&k!==!1){const b=Object.keys(C),{shapeFlag:v}=_;b.length&&v&7&&(r&&b.some(go)&&(C=mu(C,r)),_=Cn(_,C,!1,!0))}if(n.dirs&&(_=Cn(_,null,!1,!0),_.dirs=_.dirs?_.dirs.concat(n.dirs):n.dirs),n.transition){const b=Mo(_.type)&&di(_)||_;Ir(b,n.transition)}return O=_,Fo(A),O}const gu=e=>{let t;for(const n in e)(n==="class"||n==="style"||ho(n))&&((t||(t={}))[n]=e[n]);return t},mu=(e,t)=>{const n={};for(const o in e)(!go(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function _u(e,t,n){const{props:o,children:s,component:r}=e,{props:i,children:a,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?Si(o,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fObject.create(xi),Mi=e=>Object.getPrototypeOf(e)===xi;function yu(e,t,n,o=!1){const s={},r=Fi();e.propsDefaults=Object.create(null),Pi(e,t,s,r);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=o?s:_c(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function vu(e,t,n,o){const{props:s,attrs:r,vnode:{patchFlag:i}}=e,a=pe(s),[l]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[h,m]=Bi(f,t,!0);Ce(i,h),m&&a.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return ge(e)&&o.set(e,_n),_n;if(ee(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Ur=e=>ee(e)?e.map(wt):[wt(e)],ku=(e,t,n)=>{if(t._n)return t;const o=Vt((...s)=>Ur(t(...s)),n);return o._c=!1,o},Ri=(e,t,n)=>{const o=e._ctx;for(const s in e){if(Wr(s))continue;const r=e[s];if(oe(r))t[s]=ku(s,r,o);else if(r!=null){const i=Ur(r);t[s]=()=>i}}},Wi=(e,t)=>{const n=Ur(t);e.slots.default=()=>n},Ui=(e,t,n)=>{for(const o in t)(n||!Wr(o))&&(e[o]=t[o])},$u=(e,t,n)=>{const o=e.slots=Fi();if(e.vnode.shapeFlag&32){const s=t._;s?(Ui(o,t,n),n&&Cs(o,"_",s,!0)):Ri(t,o)}else t&&Wi(e,t)},Ou=(e,t,n)=>{const{vnode:o,slots:s}=e;let r=!0,i=_e;if(o.shapeFlag&32){const a=t._;a?n&&a===1?r=!1:Ui(s,t,n):(r=!t.$stable,Ri(t,s)),i=t}else t&&(Wi(e,t),i={default:1});if(r)for(const a in s)!Wr(a)&&i[a]==null&&delete s[a]},Ve=Tu;function Nu(e){return Cu(e)}function Cu(e,t){const n=wo();n.__VUE__=!0;const{insert:o,remove:s,patchProp:r,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:h,setScopeId:m=ht,insertStaticContent:w}=e,k=(g,$,y,x=null,D=null,B=null,Y=void 0,G=null,p=!!$.dynamicChildren)=>{if(g===$)return;g&&!to(g,$)&&(x=Ut(g),Pe(g,D,B,!0),g=null),$.patchFlag===-2&&(p=!1,$.dynamicChildren=null);const{type:d,ref:S,shapeFlag:F}=$;switch(d){case Zn:A(g,$,y,x);break;case vt:O(g,$,y,x);break;case Yr:g==null&&C($,y,x,Y);break;case de:K(g,$,y,x,D,B,Y,G,p);break;default:F&1?v(g,$,y,x,D,B,Y,G,p):F&6?ne(g,$,y,x,D,B,Y,G,p):(F&64||F&128)&&d.process(g,$,y,x,D,B,Y,G,p,rt)}S!=null&&D?Kn(S,g&&g.ref,B,$||g,!$):S==null&&g&&g.ref!=null&&Kn(g.ref,null,B,g,!0)},A=(g,$,y,x)=>{if(g==null)o($.el=a($.children),y,x);else{const D=$.el=g.el;$.children!==g.children&&c(D,$.children)}},O=(g,$,y,x)=>{g==null?o($.el=l($.children||""),y,x):$.el=g.el},C=(g,$,y,x)=>{[g.el,g.anchor]=w(g.children,$,y,x,g.el,g.anchor)},_=({el:g,anchor:$},y,x)=>{let D;for(;g&&g!==$;)D=h(g),o(g,y,x),g=D;o($,y,x)},b=({el:g,anchor:$})=>{let y;for(;g&&g!==$;)y=h(g),s(g),g=y;s($)},v=(g,$,y,x,D,B,Y,G,p)=>{if($.type==="svg"?Y="svg":$.type==="math"&&(Y="mathml"),g==null)E($,y,x,D,B,Y,G,p);else{const d=g.el&&g.el._isVueCE?g.el:null;try{d&&d._beginPatch(),N(g,$,D,B,Y,G,p)}finally{d&&d._endPatch()}}},E=(g,$,y,x,D,B,Y,G)=>{let p,d;const{props:S,shapeFlag:F,transition:V,dirs:U}=g;if(p=g.el=i(g.type,B,S&&S.is,S),F&8?u(p,g.children):F&16&&I(g.children,p,null,x,D,jr(g,B),Y,G),U&&ln(g,null,x,"created"),L(p,g,g.scopeId,Y,x),S){for(const P in S)P!=="value"&&!Pn(P)&&r(p,P,null,S[P],B,x);"value"in S&&r(p,"value",null,S.value,B),(d=S.onVnodeBeforeMount)&&kt(d,x,g)}U&&ln(g,null,x,"beforeMount");const T=Au(D,V);T&&V.beforeEnter(p),o(p,$,y),((d=S&&S.onVnodeMounted)||T||U)&&Ve(()=>{try{d&&kt(d,x,g),T&&V.enter(p),U&&ln(g,null,x,"mounted")}finally{}},D)},L=(g,$,y,x,D)=>{if(y&&m(g,y),x)for(let B=0;B{for(let d=p;d{const G=$.el=g.el;let{patchFlag:p,dynamicChildren:d,dirs:S}=$;p|=g.patchFlag&16;const F=g.props||_e,V=$.props||_e;let U;if(y&&dn(y,!1),(U=V.onVnodeBeforeUpdate)&&kt(U,y,$,g),S&&ln($,g,y,"beforeUpdate"),y&&dn(y,!0),d&&(!g.dynamicChildren||g.dynamicChildren.length!==d.length)&&(p=0,Y=!1,d=null),(F.innerHTML&&V.innerHTML==null||F.textContent&&V.textContent==null)&&u(G,""),d?R(g.dynamicChildren,d,G,y,x,jr($,D),B):Y||le(g,$,G,null,y,x,jr($,D),B,!1),p>0){if(p&16)j(G,F,V,y,D);else if(p&2&&F.class!==V.class&&r(G,"class",null,V.class,D),p&4&&r(G,"style",F.style,V.style,D),p&8){const T=$.dynamicProps;for(let P=0;P{U&&kt(U,y,$,g),S&&ln($,g,y,"updated")},x)},R=(g,$,y,x,D,B,Y)=>{for(let G=0;G<$.length;G++){const p=g[G],d=$[G],S=p.el&&(p.type===de||!to(p,d)||p.shapeFlag&198)?f(p.el):y;k(p,d,S,null,x,D,B,Y,!0)}},j=(g,$,y,x,D)=>{if($!==y){if($!==_e)for(const B in $)!Pn(B)&&!(B in y)&&r(g,B,$[B],null,D,x);for(const B in y){if(Pn(B))continue;const Y=y[B],G=$[B];Y!==G&&B!=="value"&&r(g,B,G,Y,D,x)}"value"in y&&r(g,"value",$.value,y.value,D)}},K=(g,$,y,x,D,B,Y,G,p)=>{const d=$.el=g?g.el:a(""),S=$.anchor=g?g.anchor:a("");let{patchFlag:F,dynamicChildren:V,slotScopeIds:U}=$;U&&(G=G?G.concat(U):U),g==null?(o(d,y,x),o(S,y,x),I($.children||[],y,S,D,B,Y,G,p)):F>0&&F&64&&V&&g.dynamicChildren&&g.dynamicChildren.length===V.length?(R(g.dynamicChildren,V,y,D,B,Y,G),($.key!=null||D&&$===D.subTree)&&Gr(g,$,!0)):le(g,$,y,S,D,B,Y,G,p)},ne=(g,$,y,x,D,B,Y,G,p)=>{$.slotScopeIds=G,g==null?$.shapeFlag&512?D.ctx.activate($,y,x,Y,p):ue($,y,x,D,B,Y,p):z(g,$,p)},ue=(g,$,y,x,D,B,Y)=>{const G=g.component=Mu(g,x,D);if(Ro(g)&&(G.ctx.renderer=rt),Pu(G,!1,Y),G.asyncDep){if(D&&D.registerDep(G,W,Y),!g.el){const p=G.subTree=ve(vt);O(null,p,$,y),g.placeholder=p.el}}else W(G,g,$,y,D,B,Y)},z=(g,$,y)=>{const x=$.component=g.component;if(_u(g,$,y))if(x.asyncDep&&!x.asyncResolved){X(x,$,y);return}else x.next=$,x.update();else $.el=g.el,x.vnode=$},W=(g,$,y,x,D,B,Y)=>{const G=()=>{if(g.isMounted){let{next:F,bu:V,u:U,parent:T,vnode:P}=g;{const Ue=ji(g);if(Ue){F&&(F.el=P.el,X(g,F,Y)),Ue.asyncDep.then(()=>{Ve(()=>{g.isUnmounted||d()},D)});return}}let Z=F,ae;dn(g,!1),F?(F.el=P.el,X(g,F,Y)):F=P,V&&dr(V),(ae=F.props&&F.props.onVnodeBeforeUpdate)&&kt(ae,T,F,P),dn(g,!0);const ke=Li(g),qe=g.subTree;g.subTree=ke,k(qe,ke,f(qe.el),Ut(qe),g,D,B),F.el=ke.el,Z===null&&bu(g,ke.el),U&&Ve(U,D),(ae=F.props&&F.props.onVnodeUpdated)&&Ve(()=>kt(ae,T,F,P),D)}else{let F;const{el:V,props:U}=$,{bm:T,m:P,parent:Z,root:ae,type:ke}=g,qe=Nn($);dn(g,!1),T&&dr(T),!qe&&(F=U&&U.onVnodeBeforeMount)&&kt(F,Z,$),dn(g,!0);{ae.ce&&ae.ce._hasShadowRoot()&&ae.ce._injectChildStyle(ke,g.parent?g.parent.type:void 0);const Ue=g.subTree=Li(g);k(null,Ue,y,x,g,D,B),$.el=Ue.el}if(P&&Ve(P,D),!qe&&(F=U&&U.onVnodeMounted)){const Ue=$;Ve(()=>kt(F,Z,Ue),D)}($.shapeFlag&256||Z&&Nn(Z.vnode)&&Z.vnode.shapeFlag&256)&&g.a&&Ve(g.a,D),g.isMounted=!0,$=y=x=null}};g.scope.on();const p=g.effect=new Ms(G);g.scope.off();const d=g.update=p.run.bind(p),S=g.job=p.runIfDirty.bind(p);S.i=g,S.id=g.uid,p.scheduler=()=>Ar(S),dn(g,!0),d()},X=(g,$,y)=>{$.component=g;const x=g.vnode.props;g.vnode=$,g.next=null,vu(g,$.props,x,y),Ou(g,$.children,y),mt(),ri(g),_t()},le=(g,$,y,x,D,B,Y,G,p=!1)=>{const d=g&&g.children,S=g?g.shapeFlag:0,F=$.children,{patchFlag:V,shapeFlag:U}=$;if(V>0){if(V&128){Nt(d,F,y,x,D,B,Y,G,p);return}else if(V&256){Ee(d,F,y,x,D,B,Y,G,p);return}}U&8?(S&16&&ft(d,D,B),F!==d&&u(y,F)):S&16?U&16?Nt(d,F,y,x,D,B,Y,G,p):ft(d,D,B,!0):(S&8&&u(y,""),U&16&&I(F,y,x,D,B,Y,G,p))},Ee=(g,$,y,x,D,B,Y,G,p)=>{g=g||_n,$=$||_n;const d=g.length,S=$.length,F=Math.min(d,S);let V;for(V=0;VS?ft(g,D,B,!0,!1,F):I($,y,x,D,B,Y,G,p,F)},Nt=(g,$,y,x,D,B,Y,G,p)=>{let d=0;const S=$.length;let F=g.length-1,V=S-1;for(;d<=F&&d<=V;){const U=g[d],T=$[d]=p?Ft($[d]):wt($[d]);if(to(U,T))k(U,T,y,null,D,B,Y,G,p);else break;d++}for(;d<=F&&d<=V;){const U=g[F],T=$[V]=p?Ft($[V]):wt($[V]);if(to(U,T))k(U,T,y,null,D,B,Y,G,p);else break;F--,V--}if(d>F){if(d<=V){const U=V+1,T=UV)for(;d<=F;)Pe(g[d],D,B,!0),d++;else{const U=d,T=d,P=new Map;for(d=T;d<=V;d++){const et=$[d]=p?Ft($[d]):wt($[d]);et.key!=null&&P.set(et.key,d)}let Z,ae=0;const ke=V-T+1;let qe=!1,Ue=0;const mn=new Array(ke);for(d=0;d=ke){Pe(et,D,B,!0);continue}let Ct;if(et.key!=null)Ct=P.get(et.key);else for(Z=T;Z<=V;Z++)if(mn[Z-T]===0&&to(et,$[Z])){Ct=Z;break}Ct===void 0?Pe(et,D,B,!0):(mn[Ct-T]=d+1,Ct>=Ue?Ue=Ct:qe=!0,k(et,$[Ct],y,null,D,B,Y,G,p),ae++)}const ws=qe?Eu(mn):_n;for(Z=ws.length-1,d=ke-1;d>=0;d--){const et=T+d,Ct=$[et],Rl=$[et+1],Wl=et+1{const{el:B,type:Y,transition:G,children:p,shapeFlag:d}=g;if(d&6){xe(g.component.subTree,$,y,x);return}if(d&128){g.suspense.move($,y,x);return}if(d&64){Y.move(g,$,y,rt);return}if(Y===de){o(B,$,y);for(let F=0;FG.enter(B),D));else{const{leave:F,delayLeave:V,afterLeave:U}=G,T=()=>{g.ctx.isUnmounted?s(B):o(B,$,y)},P=()=>{const Z=B._isLeaving||!!B[Sr];B._isLeaving&&B[Sr](!0),G.persisted&&!Z?T():F(B,()=>{T(),U&&U()})};V?V(B,T,P):P()}else o(B,$,y)},Pe=(g,$,y,x=!1,D=!1)=>{const{type:B,props:Y,ref:G,children:p,dynamicChildren:d,shapeFlag:S,patchFlag:F,dirs:V,cacheIndex:U,memo:T}=g;if(F===-2&&(D=!1),G!=null&&(mt(),Kn(G,null,y,g,!0),_t()),U!=null&&($.renderCache[U]=void 0),S&256){$.ctx.deactivate(g);return}const P=S&1&&V,Z=!Nn(g);let ae;if(Z&&(ae=Y&&Y.onVnodeBeforeUnmount)&&kt(ae,$,g),S&6)gn(g.component,y,x);else{if(S&128){g.suspense.unmount(y,x);return}P&&ln(g,null,$,"beforeUnmount"),S&64?g.type.remove(g,$,y,rt,x):d&&!d.hasOnce&&(B!==de||F>0&&F&64)?ft(d,$,y,!1,!0):(B===de&&F&384||!D&&S&16)&&ft(p,$,y),x&&nn(g)}const ke=T!=null&&U==null;(Z&&(ae=Y&&Y.onVnodeUnmounted)||P||ke)&&Ve(()=>{ae&&kt(ae,$,g),P&&ln(g,null,$,"unmounted"),ke&&(g.el=null)},y)},nn=g=>{const{type:$,el:y,anchor:x,transition:D}=g;if($===de){on(y,x);return}if($===Yr){b(g);return}const B=()=>{s(y),D&&!D.persisted&&D.afterLeave&&D.afterLeave()};if(g.shapeFlag&1&&D&&!D.persisted){const{leave:Y,delayLeave:G}=D,p=()=>Y(y,B);G?G(g.el,B,p):p()}else B()},on=(g,$)=>{let y;for(;g!==$;)y=h(g),s(g),g=y;s($)},gn=(g,$,y)=>{const{bum:x,scope:D,job:B,subTree:Y,um:G,m:p,a:d}=g;Gi(p),Gi(d),x&&dr(x),D.stop(),B&&(B.flags|=8,Pe(Y,g,$,y)),G&&Ve(G,$),Ve(()=>{g.isUnmounted=!0},$)},ft=(g,$,y,x=!1,D=!1,B=0)=>{for(let Y=B;Y{if(g.shapeFlag&6)return Ut(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const $=h(g.anchor||g.el),y=$&&$[ci];return y?h(y):$};let jt=!1;const rn=(g,$,y)=>{let x;g==null?$._vnode&&(Pe($._vnode,null,null,!0),x=$._vnode.component):k($._vnode||null,g,$,null,null,null,y),$._vnode=g,jt||(jt=!0,ri(x),si(),jt=!1)},rt={p:k,um:Pe,m:xe,r:nn,mt:ue,mc:I,pc:le,pbc:R,n:Ut,o:e};return{render:rn,hydrate:void 0,createApp:pu(rn)}}function jr({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 dn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Au(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gr(e,t,n=!1){const o=e.children,s=t.children;if(ee(o)&&ee(s))for(let r=0;r>1,e[n[a]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,i=n[r-1];r-- >0;)n[r]=i,i=t[i];return n}function ji(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ji(t)}function Gi(e){if(e)for(let t=0;te.__isSuspense;function Tu(e,t){t&&t.pendingBranch?ee(e)?t.effects.push(...e):t.effects.push(e):xc(e)}const de=Symbol.for("v-fgt"),Zn=Symbol.for("v-txt"),vt=Symbol.for("v-cmt"),Yr=Symbol.for("v-stc"),xt=[];let Ze=null;function H(e=!1){xt.push(Ze=e?null:[])}function Vr(){xt.pop(),Ze=xt[xt.length-1]||null}let Qn=1;function Yo(e,t=!1){Qn+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function Hi(e){return e.dynamicChildren=Qn>0?Ze||_n:null,Vr(),Qn>0&&Ze&&Ze.push(e),e}function J(e,t,n,o,s,r){return Hi(M(e,t,n,o,s,r,!0))}function Qe(e,t,n,o,s){return Hi(ve(e,t,n,o,s,!0))}function eo(e){return e?e.__v_isVNode===!0:!1}function to(e,t){return e.type===t.type&&e.key===t.key}const qi=({key:e})=>e??null,Vo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?be(e)||Ne(e)||oe(e)?{i:Be,r:e,k:t,f:!!n}:e:null);function M(e,t=null,n=null,o=0,s=null,r=e===de?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qi(t),ref:t&&Vo(t),scopeId:ai,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:s,dynamicChildren:null,appContext:null,ctx:Be};return a?(Ho(l,n),r&128&&e.normalize(l)):n&&(l.shapeFlag|=be(n)?8:16),Qn>0&&!i&&Ze&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ze.push(l),l}const ve=Lu;function Lu(e,t=null,n=null,o=0,s=null,r=!1){if((!e||e===bi)&&(e=vt),eo(e)){const a=Cn(e,t,!0);return n&&Ho(a,n),Qn>0&&!r&&Ze&&(a.shapeFlag&6?Ze[Ze.indexOf(e)]=a:Ze.push(a)),a.patchFlag=-2,a}if(ju(e)&&(e=e.__vccOpts),t){t=Su(t);let{class:a,style:l}=t;a&&!be(a)&&(t.class=Te(a)),ge(l)&&(Lo(l)&&!ee(l)&&(l=Ce({},l)),t.style=bn(l))}const i=be(e)?1:Vi(e)?128:Mo(e)?64:ge(e)?4:oe(e)?2:0;return M(e,t,n,o,s,i,r,!0)}function Su(e){return e?Lo(e)||Mi(e)?Ce({},e):e:null}function Cn(e,t,n=!1,o=!1){const{props:s,ref:r,patchFlag:i,children:a,transition:l}=e,c=t?Iu(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&qi(c),ref:t&&t.ref?n&&r?ee(r)?r.concat(Vo(t)):[r,Vo(t)]:Vo(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==de?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Cn(e.ssContent),ssFallback:e.ssFallback&&Cn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&o&&Ir(u,l.clone(u)),u}function $e(e=" ",t=0){return ve(Zn,null,e,t)}function Le(e="",t=!1){return t?(H(),Qe(vt,null,e)):ve(vt,null,e)}function wt(e){return e==null||typeof e=="boolean"?ve(vt):ee(e)?ve(de,null,e.slice()):eo(e)?Ft(e):ve(Zn,null,String(e))}function Ft(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Cn(e)}function Ho(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(ee(t))n=16;else if(typeof t=="object")if(o&65){const s=t.default;s&&(s._c&&(s._d=!1),Ho(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Mi(t)?t._ctx=Be:s===3&&Be&&(Be.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(oe(t)){if(o&65){Ho(e,{default:t});return}t={default:t,_ctx:Be},n=32}else t=String(t),o&64?(n=16,t=[$e(t)]):n=8;e.children=t,e.shapeFlag|=n}function Iu(...e){const t={};for(let n=0;nRe||Be;let qo,no;{const e=wo(),t=(n,o)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(o),r=>{s.length>1?s.forEach(i=>i(r)):s[0](r)}};qo=t("__VUE_INSTANCE_SETTERS__",n=>Re=n),no=t("__VUE_SSR_SETTERS__",n=>An=n)}const oo=e=>{const t=Re;return qo(e),e.scope.on(),()=>{e.scope.off(),qo(t)}},zi=()=>{Re&&Re.scope.off(),qo(null)};function Ki(e){return e.vnode.shapeFlag&4}let An=!1;function Pu(e,t=!1,n=!1){t&&no(t);const{props:o,children:s}=e.vnode,r=Ki(e);yu(e,o,r,t),$u(e,s,n||t);const i=r?Bu(e,t):void 0;return t&&no(!1),i}function Bu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ru);const{setup:o}=n;if(o){mt();const s=e.setupContext=o.length>1?Ru(e):null,r=oo(e),i=kn(o,e,0,[e.props,s]),a=Os(i);if(_t(),r(),(a||e.sp)&&!Nn(e)&&xr(e),a){if(i.then(zi,zi),t)return i.then(l=>{no(!0);try{Xi(e,l,t)}finally{no(!1)}}).catch(l=>{Yn(l,e,0)});e.asyncDep=i}else Xi(e,i)}else Ji(e)}function Xi(e,t,n){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ge(t)&&(e.setupState=ei(t)),Ji(e)}function Ji(e,t,n){const o=e.type;e.render||(e.render=o.render||ht);{const s=oo(e);mt();try{su(e)}finally{_t(),s()}}}const Du={get(e,t){return je(e,"get",""),e[t]}};function Ru(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Du),slots:e.slots,emit:e.emit,expose:t}}function zo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ei(vn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Xn)return Xn[n](e)},has(t,n){return n in t||n in Xn}})):e.proxy}const Wu=/(?:^|[-_])\w/g,Uu=e=>e.replace(Wu,t=>t.toUpperCase()).replace(/[-_]/g,"");function Zi(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function Qi(e,t,n=!1){let o=Zi(t);if(!o&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(o=s[1])}if(!o&&e){const s=r=>{for(const i in r)if(r[i]===t)return i};o=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return o?Uu(o):n?"App":"Anonymous"}function ju(e){return oe(e)&&"__vccOpts"in e}const ie=(e,t)=>Oc(e,t,An);function ea(e,t,n){try{Yo(-1);const o=arguments.length;return o===2?ge(t)&&!ee(t)?eo(t)?ve(e,null,[t]):ve(e,t):ve(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&eo(n)&&(n=[n]),ve(e,t,n))}finally{Yo(1)}}const Gu="3.5.42";/** +`],...Tc(n))}),t}function Tc({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,s=` at <${Qa(e.component,e.type,o)}`,r=">"+n;return e.props?[s,...Lc(e.props),r]:[s+r]}function Lc(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...ta(o,e[o]))}),n.length>3&&t.push(" ..."),t}function ta(e,t,n){return be(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:Ne(t)?(t=ta(e,pe(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):oe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=pe(t),n?t:[`${e}=`,t])}function kn(e,t,n,o){try{return o?e(...o):e()}catch(s){Yn(s,t,n)}}function it(e,t,n,o){if(oe(e)){const s=kn(e,t,n,o);return s&&Os(s)&&s.catch(r=>{Yn(r,t,n)}),s}if(ee(e)){const s=[];for(let r=0;r>>1,s=Ge[o],r=Hn(s);r=Hn(n)?Ge.push(e):Ge.splice(xc(t),0,e),e.flags|=1,oa()}}function oa(){Io||(Io=na.then(aa))}function Ic(e){if(!ee(e))Yt&&e.id===-1?Yt.splice(On+1,0,e):e.flags&1||($n.push(e),e.flags|=1);else for(let t=0;tHn(n)-Hn(o));if($n.length=0,Yt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function aa(e){try{for(yt=0;yt{o._d&&Yo(-1);const r=Fo(t),a=It.length;let i;try{i=e(...s)}finally{for(let l=It.length;l>a;l--)Vr();Fo(r),o._d&&Yo(1)}return i};return o._n=!0,o._c=!0,o._d=!0,o}function Fc(e,t){if(Be===null)return e;const n=zo(Be),o=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&oe(t)?t.call(o&&o.proxy):t}}function Mc(){return!!(Mt()||pn)}const Pc=Symbol.for("v-scx"),Bc=()=>De(Pc);function Dc(e,t){return Er(e,null,t)}function lt(e,t,n){return Er(e,t,n)}function Er(e,t,n=_e){const{immediate:o,deep:s,flush:r,once:a}=n,i=Ce({},n),l=t&&o||!t&&r!=="post";let c;if(An){if(r==="sync"){const m=Bc();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=ht,m.resume=ht,m.pause=ht,m}}const u=Re;i.call=(m,w,k)=>it(m,u,w,k);let f=!1;r==="post"?i.scheduler=m=>{Ve(m,u&&u.suspense)}:r!=="sync"&&(f=!0,i.scheduler=(m,w)=>{w?m():Ar(m)}),i.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const h=Cc(e,t,i);return An&&(c?c.push(h):l&&h()),h}function Rc(e,t,n){const o=this.proxy,s=be(e)?e.includes(".")?la(o,e):()=>o[e]:e.bind(o,o);let r;oe(t)?r=t:(r=t.handler,n=t);const a=oo(this),i=Er(s,r.bind(o),n);return a(),i}function la(e,t){const n=t.split(".");return()=>{let o=e;for(let s=0;se.__isTeleport,cn=e=>e&&(e.disabled||e.disabled===""),Wc=e=>e&&(e.defer||e.defer===""),ua=e=>typeof SVGElement<"u"&&e instanceof SVGElement,pa=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Tr=(e,t)=>{const n=e&&e.to;return be(n)?t?t(n):null:n},Uc={name:"Teleport",__isTeleport:!0,process(e,t,n,o,s,r,a,i,l,c){const{mc:u,pc:f,pbc:h,o:{insert:m,querySelector:w,createText:k,createComment:A,parentNode:O}}=c,C=cn(t.props);let{dynamicChildren:_}=t;const b=(L,x,N)=>{L.shapeFlag&16&&u(L.children,x,N,s,r,a,i,l)},v=(L=t)=>{const x=cn(L.props),N=L.target=Tr(L.props,w),R=Lr(N,L,k,m);N&&(a!=="svg"&&ua(N)?a="svg":a!=="mathml"&&pa(N)&&(a="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(N),x||(b(L,N,R),qn(L,!1)))},E=L=>{const x=()=>{if(Ht.get(L)===x){if(Ht.delete(L),cn(L.props)){const N=O(L.el)||n;b(L,N,L.anchor),qn(L,!0)}v(L)}};Ht.set(L,x),Ve(x,r)};if(e==null){const L=t.el=k(""),x=t.anchor=k("");if(m(L,n,o),m(x,n,o),Wc(t.props)||r&&r.pendingBranch){E(t);return}C&&(b(t,n,x),qn(t,!0)),v()}else{t.el=e.el;const L=t.anchor=e.anchor,x=Ht.get(e);if(x){x.flags|=8,Ht.delete(e),E(t);return}t.targetStart=e.targetStart;const N=t.target=e.target,R=t.targetAnchor=e.targetAnchor,j=cn(e.props),K=j?n:N,ne=j?L:R;if(a==="svg"||ua(N)?a="svg":(a==="mathml"||pa(N))&&(a="mathml"),_?(h(e.dynamicChildren,_,K,s,r,a,i),Gr(e,t,!0)):l||f(e,t,K,ne,s,r,a,i,!1),C)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Po(t,n,L,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ue=Tr(t.props,w);ue&&(t.target=ue,Po(t,ue,null,c,0))}else j&&Po(t,N,R,c,1);qn(t,C)}},remove(e,t,n,{um:o,o:{remove:s}},r){const{shapeFlag:a,children:i,anchor:l,targetStart:c,targetAnchor:u,target:f,props:h}=e,m=cn(h),w=r||!m,k=Ht.get(e);if(k&&(k.flags|=8,Ht.delete(e)),f&&(s(c),s(u)),r&&s(l),!k&&(m||f)&&a&16)for(let A=0;A1){for(const n of e)if(n.type!==vt){t=n;break}}return t}function da(e){if(!Ro(e))return Mo(e.type)&&e.children?Yc(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&&oe(n.default))return n.default()}}function xr(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;xr(Mo(n.type)&&da(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 zn(e,t){return oe(e)?Ce({name:e.name},t,{setup:e}):e}function Ir(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function fa(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Bo=new WeakMap;function Kn(e,t,n,o,s=!1){if(ee(e)){e.forEach((k,A)=>Kn(k,t&&(ee(t)?t[A]:t),n,o,s));return}if(Nn(o)&&!s){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Kn(e,t,n,o.component.subTree);return}const r=o.shapeFlag&4?zo(o.component):o.el,a=s?null:r,{i,r:l}=e,c=t&&t.r,u=i.refs===_e?i.refs={}:i.refs,f=i.setupState,h=pe(f),m=f===_e?ks:k=>fa(u,k)?!1:he(h,k),w=(k,A)=>!(A&&fa(u,A));if(c!=null&&c!==l){if(ha(t),be(c))u[c]=null,m(c)&&(f[c]=null);else if(Ne(c)){const k=t;w(c,k.k)&&(c.value=null),k.k&&(u[k.k]=null)}}if(oe(l))kn(l,i,12,[a,u]);else{const k=be(l),A=Ne(l);if(k||A){const O=()=>{if(e.f){const C=k?m(l)?f[l]:u[l]:w()||!e.k?l.value:u[e.k];if(s)ee(C)&&ur(C,r);else if(ee(C))C.includes(r)||C.push(r);else if(k)u[l]=[r],m(l)&&(f[l]=u[l]);else{const _=[r];w(l,e.k)&&(l.value=_),e.k&&(u[e.k]=_)}}else k?(u[l]=a,m(l)&&(f[l]=a)):A&&(w(l,e.k)&&(l.value=a),e.k&&(u[e.k]=a))};if(a){const C=()=>{O(),Bo.delete(e)};C.id=-1,Bo.set(e,C),Ve(C,n)}else ha(e),O()}}}function ha(e){const t=Bo.get(e);t&&(t.flags|=8,Bo.delete(e))}const ga=e=>e.nodeType===8;wo().requestIdleCallback,wo().cancelIdleCallback;function Vc(e,t){if(ga(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(ga(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const Nn=e=>!!e.type.__asyncLoader;function Hc(e){oe(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:s=200,hydrate:r,timeout:a,suspensible:i=!0,onError:l}=e;let c=null,u,f=0;const h=()=>(f++,c=null,m()),m=()=>{let w;return c||(w=c=t().catch(k=>{if(k=k instanceof Error?k:new Error(String(k)),l)return new Promise((A,O)=>{l(k,()=>A(h()),()=>O(k),f+1)});throw k}).then(k=>w!==c&&c?c:(k&&(k.__esModule||k[Symbol.toStringTag]==="Module")&&(k=k.default),u=k,k)))};return zn({name:"AsyncComponentWrapper",__asyncLoader:m,__asyncHydrate(w,k,A){const O=w.isConnected;let C=!1;(k.bu||(k.bu=[])).push(()=>C=!0);const _=()=>{C||!w.parentNode||O&&!w.isConnected||A()},b=r?()=>{const v=r(_,E=>Vc(w,E));v&&(k.bum||(k.bum=[])).push(v)}:_;u?b():m().then(()=>!k.isUnmounted&&b())},get __asyncResolved(){return u},setup(){const w=Re;if(Ir(w),u)return()=>Do(u,w);const k=v=>{c=null,Yn(v,w,13,!o)};if(i&&w.suspense||An)return m().then(v=>()=>Do(v,w)).catch(v=>(k(v),()=>o?ve(o,{error:v}):null));const A=re(!1),O=re(),C=re(!!s);let _,b;return Uo(()=>{_!=null&&clearTimeout(_),b!=null&&clearTimeout(b)}),s&&(b=setTimeout(()=>{w.isUnmounted||(C.value=!1)},s)),a!=null&&(_=setTimeout(()=>{if(!w.isUnmounted&&!A.value&&!O.value){const v=new Error(`Async component timed out after ${a}ms.`);k(v),O.value=v}},a)),m().then(()=>{w.isUnmounted||(A.value=!0,w.parent&&Ro(w.parent.vnode)&&w.parent.update())}).catch(v=>{if(w.isUnmounted){c=null;return}k(v),O.value=v}),()=>{if(A.value&&u)return Do(u,w);if(O.value&&o)return ve(o,{error:O.value});if(n&&!C.value)return Do(n,w)}}})}function Do(e,t){const{ref:n,props:o,children:s,ce:r}=t.vnode,a=ve(e,o,s);return a.ref=n,a.ce=r,delete t.vnode.ce,a}const Ro=e=>e.type.__isKeepAlive;function qc(e,t){ma(e,"a",t)}function zc(e,t){ma(e,"da",t)}function ma(e,t,n=Re){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Wo(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Ro(s.parent.vnode)&&Kc(o,t,n,s),s=s.parent}}function Kc(e,t,n,o){const s=Wo(t,e,o,!0);Uo(()=>{ur(o[t],s)},n)}function Wo(e,t,n=Re,o=!1){if(n){const s=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...a)=>{mt();const i=oo(n),l=it(t,n,e,a);return i(),_t(),l});return o?s.unshift(r):s.push(r),r}}const xt=e=>(t,n=Re)=>{(!An||e==="sp")&&Wo(e,(...o)=>t(...o),n)},_a=xt("bm"),qt=xt("m"),Xc=xt("bu"),Jc=xt("u"),un=xt("bum"),Uo=xt("um"),Zc=xt("sp"),Qc=xt("rtg"),eu=xt("rtc");function tu(e,t=Re){Wo("ec",e,t)}const nu="components",ba=Symbol.for("v-ndc");function ya(e){return be(e)?ou(nu,e,!1)||e:e||ba}function ou(e,t,n=!0,o=!1){const s=Be||Re;if(s){const r=s.type;{const i=Za(r,!1);if(i&&(i===t||i===Fe(t)||i===vo(Fe(t))))return r}const a=va(s[e]||r[e],t)||va(s.appContext[e],t);return!a&&o?r:a}}function va(e,t){return e&&(e[t]||e[Fe(t)]||e[vo(Fe(t))])}function ct(e,t,n,o){let s;const r=n,a=ee(e);if(a||be(e)){const i=a&&Tt(e);let l=!1,c=!1;i&&(l=!Je(e),c=Lt(e),e=Oo(e)),s=new Array(e.length);for(let u=0,f=e.length;ut(i,l,void 0,r));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;l0;return H(),Qe(de,null,[ve("slot",c,o)],u?-2:64)}let a=e[t];a&&a._c&&(a._d=!1);const i=It.length;H();let l;try{const c=a&&wa(a(n)),u=n.key||r||c&&c.key;l=Qe(de,{key:(u&&!Xe(u)?u:`_${t}`)+(!c&&o?"_fb":"")},c||(o?o():[]),c&&e._===1?64:-2)}catch(c){for(let u=It.length;u>i;u--)Vr();throw c}finally{a&&a._c&&(a._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function wa(e){return e.some(t=>eo(t)?!(t.type===vt||t.type===de&&!wa(t.children)):!0)?e:null}const Mr=e=>e?Ka(e)?zo(e):Mr(e.parent):null,Xn=Ce(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=>Mr(e.parent),$root:e=>Mr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Na(e),$forceUpdate:e=>e.f||(e.f=()=>{Ar(e.update)}),$nextTick:e=>e.n||(e.n=Vn.bind(e.proxy)),$watch:e=>Rc.bind(e)}),Pr=(e,t)=>e!==_e&&!e.__isScriptSetup&&he(e,t),ru={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:s,props:r,accessCache:a,type:i,appContext:l}=e;if(t[0]!=="$"){const h=a[t];if(h!==void 0)switch(h){case 1:return o[t];case 2:return s[t];case 4:return n[t];case 3:return r[t]}else{if(Pr(o,t))return a[t]=1,o[t];if(s!==_e&&he(s,t))return a[t]=2,s[t];if(he(r,t))return a[t]=3,r[t];if(n!==_e&&he(n,t))return a[t]=4,n[t];Br&&(a[t]=0)}}const c=Xn[t];let u,f;if(c)return t==="$attrs"&&je(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(n!==_e&&he(n,t))return a[t]=4,n[t];if(f=l.config.globalProperties,he(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:r}=e;return Pr(s,t)?(s[t]=n,!0):o!==_e&&he(o,t)?(o[t]=n,!0):he(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:s,props:r,type:a}},i){let l;return!!(n[i]||e!==_e&&i[0]!=="$"&&he(e,i)||Pr(t,i)||he(r,i)||he(o,i)||he(Xn,i)||he(s.config.globalProperties,i)||(l=a.__cssModules)&&l[i])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:he(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ka(e){return ee(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Br=!0;function su(e){const t=Na(e),n=e.proxy,o=e.ctx;Br=!1,t.beforeCreate&&$a(t.beforeCreate,e,"bc");const{data:s,computed:r,methods:a,watch:i,provide:l,inject:c,created:u,beforeMount:f,mounted:h,beforeUpdate:m,updated:w,activated:k,deactivated:A,beforeDestroy:O,beforeUnmount:C,destroyed:_,unmounted:b,render:v,renderTracked:E,renderTriggered:L,errorCaptured:x,serverPrefetch:N,expose:R,inheritAttrs:j,components:K,directives:ne,filters:ue}=t;if(c&&au(c,o,null),a)for(const X in a){const le=a[X];oe(le)&&(o[X]=le.bind(n))}if(s){const X=s.call(n,n);ge(X)&&(e.data=Eo(X))}if(Br=!0,r)for(const X in r){const le=r[X],Ee=oe(le)?le.bind(n,n):oe(le.get)?le.get.bind(n,n):ht,Nt=!oe(le)&&oe(le.set)?le.set.bind(n):ht,Ie=ae({get:Ee,set:Nt});Object.defineProperty(o,X,{enumerable:!0,configurable:!0,get:()=>Ie.value,set:Pe=>Ie.value=Pe})}if(i)for(const X in i)Oa(i[X],o,n,X);if(l){const X=oe(l)?l.call(n):l;Reflect.ownKeys(X).forEach(le=>{nt(le,X[le])})}u&&$a(u,e,"c");function W(X,le){ee(le)?le.forEach(Ee=>X(Ee.bind(n))):le&&X(le.bind(n))}if(W(_a,f),W(qt,h),W(Xc,m),W(Jc,w),W(qc,k),W(zc,A),W(tu,x),W(eu,E),W(Qc,L),W(un,C),W(Uo,b),W(Zc,N),ee(R))if(R.length){const X=e.exposed||(e.exposed={});R.forEach(le=>{Object.defineProperty(X,le,{get:()=>n[le],set:Ee=>n[le]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});v&&e.render===ht&&(e.render=v),j!=null&&(e.inheritAttrs=j),K&&(e.components=K),ne&&(e.directives=ne),N&&Ir(e)}function au(e,t,n=ht){ee(e)&&(e=Dr(e));for(const o in e){const s=e[o];let r;ge(s)?"default"in s?r=De(s.from||o,s.default,!0):r=De(s.from||o):r=De(s),Ne(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:a=>r.value=a}):t[o]=r}}function $a(e,t,n){it(ee(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Oa(e,t,n,o){let s=o.includes(".")?la(n,o):()=>n[o];if(be(e)){const r=t[e];oe(r)&<(s,r)}else if(oe(e))lt(s,e.bind(n));else if(ge(e))if(ee(e))e.forEach(r=>Oa(r,t,n,o));else{const r=oe(e.handler)?e.handler.bind(n):t[e.handler];oe(r)&<(s,r,e)}}function Na(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,i=r.get(t);let l;return i?l=i:!s.length&&!n&&!o?l=t:(l={},s.length&&s.forEach(c=>jo(l,c,a,!0)),jo(l,t,a)),ge(t)&&r.set(t,l),l}function jo(e,t,n,o=!1){const{mixins:s,extends:r}=t;r&&jo(e,r,n,!0),s&&s.forEach(a=>jo(e,a,n,!0));for(const a in t)if(!(o&&a==="expose")){const i=iu[a]||n&&n[a];e[a]=i?i(e[a],t[a]):t[a]}return e}const iu={data:Ca,props:Aa,emits:Aa,methods:Jn,computed:Jn,beforeCreate:Ye,created:Ye,beforeMount:Ye,mounted:Ye,beforeUpdate:Ye,updated:Ye,beforeDestroy:Ye,beforeUnmount:Ye,destroyed:Ye,unmounted:Ye,activated:Ye,deactivated:Ye,errorCaptured:Ye,serverPrefetch:Ye,components:Jn,directives:Jn,watch:cu,provide:Ca,inject:lu};function Ca(e,t){return t?e?function(){return Ce(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function lu(e,t){return Jn(Dr(e),Dr(t))}function Dr(e){if(ee(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Fe(t)}Modifiers`]||e[`${tt(t)}Modifiers`];function fu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||_e;let s=n;const r=t.startsWith("update:"),a=r&&du(o,t.slice(7));a&&(a.trim&&(s=n.map(u=>be(u)?u.trim():u)),a.number&&(s=s.map(Vl)));let i,l=o[i=pr(t)]||o[i=pr(Fe(t))];!l&&r&&(l=o[i=pr(tt(t))]),l&&it(l,e,6,s);const c=o[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,it(c,e,6,s)}}const hu=new WeakMap;function Ta(e,t,n=!1){const o=n?hu:t.emitsCache,s=o.get(e);if(s!==void 0)return s;const r=e.emits;let a={},i=!1;if(!oe(e)){const l=c=>{const u=Ta(c,t,!0);u&&(i=!0,Ce(a,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(ge(e)&&o.set(e,null),null):(ee(r)?r.forEach(l=>a[l]=null):Ce(a,r),ge(e)&&o.set(e,a),a)}function Go(e,t){return!e||!ho(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),he(e,t[0].toLowerCase()+t.slice(1))||he(e,tt(t))||he(e,t))}function T_(){}function La(e){const{type:t,vnode:n,proxy:o,withProxy:s,propsOptions:[r],slots:a,attrs:i,emit:l,render:c,renderCache:u,props:f,data:h,setupState:m,ctx:w,inheritAttrs:k}=e,A=Fo(e);let O,C;try{if(n.shapeFlag&4){const b=s||o,v=b;O=wt(c.call(v,b,u,f,m,h,w)),C=i}else{const b=t;O=wt(b.length>1?b(f,{attrs:i,slots:a,emit:l}):b(f,null)),C=t.props?i:gu(i)}}catch(b){It.length=0,Yn(b,e,1),O=ve(vt)}let _=O;if(C&&k!==!1){const b=Object.keys(C),{shapeFlag:v}=_;b.length&&v&7&&(r&&b.some(go)&&(C=mu(C,r)),_=Cn(_,C,!1,!0))}if(n.dirs&&(_=Cn(_,null,!1,!0),_.dirs=_.dirs?_.dirs.concat(n.dirs):n.dirs),n.transition){const b=Mo(_.type)&&da(_)||_;xr(b,n.transition)}return O=_,Fo(A),O}const gu=e=>{let t;for(const n in e)(n==="class"||n==="style"||ho(n))&&((t||(t={}))[n]=e[n]);return t},mu=(e,t)=>{const n={};for(const o in e)(!go(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function _u(e,t,n){const{props:o,children:s,component:r}=e,{props:a,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?Sa(o,a,c):!!a;if(l&8){const u=t.dynamicProps;for(let f=0;fObject.create(Ia),Ma=e=>Object.getPrototypeOf(e)===Ia;function yu(e,t,n,o=!1){const s={},r=Fa();e.propsDefaults=Object.create(null),Pa(e,t,s,r);for(const a in e.propsOptions[0])a in s||(s[a]=void 0);n?e.props=o?s:_c(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function vu(e,t,n,o){const{props:s,attrs:r,vnode:{patchFlag:a}}=e,i=pe(s),[l]=e.propsOptions;let c=!1;if((o||a>0)&&!(a&16)){if(a&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[h,m]=Ba(f,t,!0);Ce(a,h),m&&i.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return ge(e)&&o.set(e,_n),_n;if(ee(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Ur=e=>ee(e)?e.map(wt):[wt(e)],ku=(e,t,n)=>{if(t._n)return t;const o=Vt((...s)=>Ur(t(...s)),n);return o._c=!1,o},Ra=(e,t,n)=>{const o=e._ctx;for(const s in e){if(Wr(s))continue;const r=e[s];if(oe(r))t[s]=ku(s,r,o);else if(r!=null){const a=Ur(r);t[s]=()=>a}}},Wa=(e,t)=>{const n=Ur(t);e.slots.default=()=>n},Ua=(e,t,n)=>{for(const o in t)(n||!Wr(o))&&(e[o]=t[o])},$u=(e,t,n)=>{const o=e.slots=Fa();if(e.vnode.shapeFlag&32){const s=t._;s?(Ua(o,t,n),n&&Cs(o,"_",s,!0)):Ra(t,o)}else t&&Wa(e,t)},Ou=(e,t,n)=>{const{vnode:o,slots:s}=e;let r=!0,a=_e;if(o.shapeFlag&32){const i=t._;i?n&&i===1?r=!1:Ua(s,t,n):(r=!t.$stable,Ra(t,s)),a=t}else t&&(Wa(e,t),a={default:1});if(r)for(const i in s)!Wr(i)&&a[i]==null&&delete s[i]},Ve=Tu;function Nu(e){return Cu(e)}function Cu(e,t){const n=wo();n.__VUE__=!0;const{insert:o,remove:s,patchProp:r,createElement:a,createText:i,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:h,setScopeId:m=ht,insertStaticContent:w}=e,k=(g,$,y,I=null,D=null,B=null,Y=void 0,G=null,p=!!$.dynamicChildren)=>{if(g===$)return;g&&!to(g,$)&&(I=Ut(g),Pe(g,D,B,!0),g=null),$.patchFlag===-2&&(p=!1,$.dynamicChildren=null);const{type:d,ref:S,shapeFlag:F}=$;switch(d){case Zn:A(g,$,y,I);break;case vt:O(g,$,y,I);break;case Yr:g==null&&C($,y,I,Y);break;case de:K(g,$,y,I,D,B,Y,G,p);break;default:F&1?v(g,$,y,I,D,B,Y,G,p):F&6?ne(g,$,y,I,D,B,Y,G,p):(F&64||F&128)&&d.process(g,$,y,I,D,B,Y,G,p,rt)}S!=null&&D?Kn(S,g&&g.ref,B,$||g,!$):S==null&&g&&g.ref!=null&&Kn(g.ref,null,B,g,!0)},A=(g,$,y,I)=>{if(g==null)o($.el=i($.children),y,I);else{const D=$.el=g.el;$.children!==g.children&&c(D,$.children)}},O=(g,$,y,I)=>{g==null?o($.el=l($.children||""),y,I):$.el=g.el},C=(g,$,y,I)=>{[g.el,g.anchor]=w(g.children,$,y,I,g.el,g.anchor)},_=({el:g,anchor:$},y,I)=>{let D;for(;g&&g!==$;)D=h(g),o(g,y,I),g=D;o($,y,I)},b=({el:g,anchor:$})=>{let y;for(;g&&g!==$;)y=h(g),s(g),g=y;s($)},v=(g,$,y,I,D,B,Y,G,p)=>{if($.type==="svg"?Y="svg":$.type==="math"&&(Y="mathml"),g==null)E($,y,I,D,B,Y,G,p);else{const d=g.el&&g.el._isVueCE?g.el:null;try{d&&d._beginPatch(),N(g,$,D,B,Y,G,p)}finally{d&&d._endPatch()}}},E=(g,$,y,I,D,B,Y,G)=>{let p,d;const{props:S,shapeFlag:F,transition:V,dirs:U}=g;if(p=g.el=a(g.type,B,S&&S.is,S),F&8?u(p,g.children):F&16&&x(g.children,p,null,I,D,jr(g,B),Y,G),U&&ln(g,null,I,"created"),L(p,g,g.scopeId,Y,I),S){for(const P in S)P!=="value"&&!Pn(P)&&r(p,P,null,S[P],B,I);"value"in S&&r(p,"value",null,S.value,B),(d=S.onVnodeBeforeMount)&&kt(d,I,g)}U&&ln(g,null,I,"beforeMount");const T=Au(D,V);T&&V.beforeEnter(p),o(p,$,y),((d=S&&S.onVnodeMounted)||T||U)&&Ve(()=>{try{d&&kt(d,I,g),T&&V.enter(p),U&&ln(g,null,I,"mounted")}finally{}},D)},L=(g,$,y,I,D)=>{if(y&&m(g,y),I)for(let B=0;B{for(let d=p;d{const G=$.el=g.el;let{patchFlag:p,dynamicChildren:d,dirs:S}=$;p|=g.patchFlag&16;const F=g.props||_e,V=$.props||_e;let U;if(y&&dn(y,!1),(U=V.onVnodeBeforeUpdate)&&kt(U,y,$,g),S&&ln($,g,y,"beforeUpdate"),y&&dn(y,!0),d&&(!g.dynamicChildren||g.dynamicChildren.length!==d.length)&&(p=0,Y=!1,d=null),(F.innerHTML&&V.innerHTML==null||F.textContent&&V.textContent==null)&&u(G,""),d?R(g.dynamicChildren,d,G,y,I,jr($,D),B):Y||le(g,$,G,null,y,I,jr($,D),B,!1),p>0){if(p&16)j(G,F,V,y,D);else if(p&2&&F.class!==V.class&&r(G,"class",null,V.class,D),p&4&&r(G,"style",F.style,V.style,D),p&8){const T=$.dynamicProps;for(let P=0;P{U&&kt(U,y,$,g),S&&ln($,g,y,"updated")},I)},R=(g,$,y,I,D,B,Y)=>{for(let G=0;G<$.length;G++){const p=g[G],d=$[G],S=p.el&&(p.type===de||!to(p,d)||p.shapeFlag&198)?f(p.el):y;k(p,d,S,null,I,D,B,Y,!0)}},j=(g,$,y,I,D)=>{if($!==y){if($!==_e)for(const B in $)!Pn(B)&&!(B in y)&&r(g,B,$[B],null,D,I);for(const B in y){if(Pn(B))continue;const Y=y[B],G=$[B];Y!==G&&B!=="value"&&r(g,B,G,Y,D,I)}"value"in y&&r(g,"value",$.value,y.value,D)}},K=(g,$,y,I,D,B,Y,G,p)=>{const d=$.el=g?g.el:i(""),S=$.anchor=g?g.anchor:i("");let{patchFlag:F,dynamicChildren:V,slotScopeIds:U}=$;U&&(G=G?G.concat(U):U),g==null?(o(d,y,I),o(S,y,I),x($.children||[],y,S,D,B,Y,G,p)):F>0&&F&64&&V&&g.dynamicChildren&&g.dynamicChildren.length===V.length?(R(g.dynamicChildren,V,y,D,B,Y,G),($.key!=null||D&&$===D.subTree)&&Gr(g,$,!0)):le(g,$,y,S,D,B,Y,G,p)},ne=(g,$,y,I,D,B,Y,G,p)=>{$.slotScopeIds=G,g==null?$.shapeFlag&512?D.ctx.activate($,y,I,Y,p):ue($,y,I,D,B,Y,p):z(g,$,p)},ue=(g,$,y,I,D,B,Y)=>{const G=g.component=Mu(g,I,D);if(Ro(g)&&(G.ctx.renderer=rt),Pu(G,!1,Y),G.asyncDep){if(D&&D.registerDep(G,W,Y),!g.el){const p=G.subTree=ve(vt);O(null,p,$,y),g.placeholder=p.el}}else W(G,g,$,y,D,B,Y)},z=(g,$,y)=>{const I=$.component=g.component;if(_u(g,$,y))if(I.asyncDep&&!I.asyncResolved){X(I,$,y);return}else I.next=$,I.update();else $.el=g.el,I.vnode=$},W=(g,$,y,I,D,B,Y)=>{const G=()=>{if(g.isMounted){let{next:F,bu:V,u:U,parent:T,vnode:P}=g;{const Ue=ja(g);if(Ue){F&&(F.el=P.el,X(g,F,Y)),Ue.asyncDep.then(()=>{Ve(()=>{g.isUnmounted||d()},D)});return}}let Z=F,ie;dn(g,!1),F?(F.el=P.el,X(g,F,Y)):F=P,V&&dr(V),(ie=F.props&&F.props.onVnodeBeforeUpdate)&&kt(ie,T,F,P),dn(g,!0);const ke=La(g),qe=g.subTree;g.subTree=ke,k(qe,ke,f(qe.el),Ut(qe),g,D,B),F.el=ke.el,Z===null&&bu(g,ke.el),U&&Ve(U,D),(ie=F.props&&F.props.onVnodeUpdated)&&Ve(()=>kt(ie,T,F,P),D)}else{let F;const{el:V,props:U}=$,{bm:T,m:P,parent:Z,root:ie,type:ke}=g,qe=Nn($);dn(g,!1),T&&dr(T),!qe&&(F=U&&U.onVnodeBeforeMount)&&kt(F,Z,$),dn(g,!0);{ie.ce&&ie.ce._hasShadowRoot()&&ie.ce._injectChildStyle(ke,g.parent?g.parent.type:void 0);const Ue=g.subTree=La(g);k(null,Ue,y,I,g,D,B),$.el=Ue.el}if(P&&Ve(P,D),!qe&&(F=U&&U.onVnodeMounted)){const Ue=$;Ve(()=>kt(F,Z,Ue),D)}($.shapeFlag&256||Z&&Nn(Z.vnode)&&Z.vnode.shapeFlag&256)&&g.a&&Ve(g.a,D),g.isMounted=!0,$=y=I=null}};g.scope.on();const p=g.effect=new Ms(G);g.scope.off();const d=g.update=p.run.bind(p),S=g.job=p.runIfDirty.bind(p);S.i=g,S.id=g.uid,p.scheduler=()=>Ar(S),dn(g,!0),d()},X=(g,$,y)=>{$.component=g;const I=g.vnode.props;g.vnode=$,g.next=null,vu(g,$.props,I,y),Ou(g,$.children,y),mt(),ra(g),_t()},le=(g,$,y,I,D,B,Y,G,p=!1)=>{const d=g&&g.children,S=g?g.shapeFlag:0,F=$.children,{patchFlag:V,shapeFlag:U}=$;if(V>0){if(V&128){Nt(d,F,y,I,D,B,Y,G,p);return}else if(V&256){Ee(d,F,y,I,D,B,Y,G,p);return}}U&8?(S&16&&ft(d,D,B),F!==d&&u(y,F)):S&16?U&16?Nt(d,F,y,I,D,B,Y,G,p):ft(d,D,B,!0):(S&8&&u(y,""),U&16&&x(F,y,I,D,B,Y,G,p))},Ee=(g,$,y,I,D,B,Y,G,p)=>{g=g||_n,$=$||_n;const d=g.length,S=$.length,F=Math.min(d,S);let V;for(V=0;VS?ft(g,D,B,!0,!1,F):x($,y,I,D,B,Y,G,p,F)},Nt=(g,$,y,I,D,B,Y,G,p)=>{let d=0;const S=$.length;let F=g.length-1,V=S-1;for(;d<=F&&d<=V;){const U=g[d],T=$[d]=p?Ft($[d]):wt($[d]);if(to(U,T))k(U,T,y,null,D,B,Y,G,p);else break;d++}for(;d<=F&&d<=V;){const U=g[F],T=$[V]=p?Ft($[V]):wt($[V]);if(to(U,T))k(U,T,y,null,D,B,Y,G,p);else break;F--,V--}if(d>F){if(d<=V){const U=V+1,T=UV)for(;d<=F;)Pe(g[d],D,B,!0),d++;else{const U=d,T=d,P=new Map;for(d=T;d<=V;d++){const et=$[d]=p?Ft($[d]):wt($[d]);et.key!=null&&P.set(et.key,d)}let Z,ie=0;const ke=V-T+1;let qe=!1,Ue=0;const mn=new Array(ke);for(d=0;d=ke){Pe(et,D,B,!0);continue}let Ct;if(et.key!=null)Ct=P.get(et.key);else for(Z=T;Z<=V;Z++)if(mn[Z-T]===0&&to(et,$[Z])){Ct=Z;break}Ct===void 0?Pe(et,D,B,!0):(mn[Ct-T]=d+1,Ct>=Ue?Ue=Ct:qe=!0,k(et,$[Ct],y,null,D,B,Y,G,p),ie++)}const ws=qe?Eu(mn):_n;for(Z=ws.length-1,d=ke-1;d>=0;d--){const et=T+d,Ct=$[et],Rl=$[et+1],Wl=et+1{const{el:B,type:Y,transition:G,children:p,shapeFlag:d}=g;if(d&6){Ie(g.component.subTree,$,y,I);return}if(d&128){g.suspense.move($,y,I);return}if(d&64){Y.move(g,$,y,rt);return}if(Y===de){o(B,$,y);for(let F=0;FG.enter(B),D));else{const{leave:F,delayLeave:V,afterLeave:U}=G,T=()=>{g.ctx.isUnmounted?s(B):o(B,$,y)},P=()=>{const Z=B._isLeaving||!!B[Sr];B._isLeaving&&B[Sr](!0),G.persisted&&!Z?T():F(B,()=>{T(),U&&U()})};V?V(B,T,P):P()}else o(B,$,y)},Pe=(g,$,y,I=!1,D=!1)=>{const{type:B,props:Y,ref:G,children:p,dynamicChildren:d,shapeFlag:S,patchFlag:F,dirs:V,cacheIndex:U,memo:T}=g;if(F===-2&&(D=!1),G!=null&&(mt(),Kn(G,null,y,g,!0),_t()),U!=null&&($.renderCache[U]=void 0),S&256){$.ctx.deactivate(g);return}const P=S&1&&V,Z=!Nn(g);let ie;if(Z&&(ie=Y&&Y.onVnodeBeforeUnmount)&&kt(ie,$,g),S&6)gn(g.component,y,I);else{if(S&128){g.suspense.unmount(y,I);return}P&&ln(g,null,$,"beforeUnmount"),S&64?g.type.remove(g,$,y,rt,I):d&&!d.hasOnce&&(B!==de||F>0&&F&64)?ft(d,$,y,!1,!0):(B===de&&F&384||!D&&S&16)&&ft(p,$,y),I&&nn(g)}const ke=T!=null&&U==null;(Z&&(ie=Y&&Y.onVnodeUnmounted)||P||ke)&&Ve(()=>{ie&&kt(ie,$,g),P&&ln(g,null,$,"unmounted"),ke&&(g.el=null)},y)},nn=g=>{const{type:$,el:y,anchor:I,transition:D}=g;if($===de){on(y,I);return}if($===Yr){b(g);return}const B=()=>{s(y),D&&!D.persisted&&D.afterLeave&&D.afterLeave()};if(g.shapeFlag&1&&D&&!D.persisted){const{leave:Y,delayLeave:G}=D,p=()=>Y(y,B);G?G(g.el,B,p):p()}else B()},on=(g,$)=>{let y;for(;g!==$;)y=h(g),s(g),g=y;s($)},gn=(g,$,y)=>{const{bum:I,scope:D,job:B,subTree:Y,um:G,m:p,a:d}=g;Ga(p),Ga(d),I&&dr(I),D.stop(),B&&(B.flags|=8,Pe(Y,g,$,y)),G&&Ve(G,$),Ve(()=>{g.isUnmounted=!0},$)},ft=(g,$,y,I=!1,D=!1,B=0)=>{for(let Y=B;Y{if(g.shapeFlag&6)return Ut(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const $=h(g.anchor||g.el),y=$&&$[ca];return y?h(y):$};let jt=!1;const rn=(g,$,y)=>{let I;g==null?$._vnode&&(Pe($._vnode,null,null,!0),I=$._vnode.component):k($._vnode||null,g,$,null,null,null,y),$._vnode=g,jt||(jt=!0,ra(I),sa(),jt=!1)},rt={p:k,um:Pe,m:Ie,r:nn,mt:ue,mc:x,pc:le,pbc:R,n:Ut,o:e};return{render:rn,hydrate:void 0,createApp:pu(rn)}}function jr({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 dn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Au(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Gr(e,t,n=!1){const o=e.children,s=t.children;if(ee(o)&&ee(s))for(let r=0;r>1,e[n[i]]0&&(t[o]=n[r-1]),n[r]=o)}}for(r=n.length,a=n[r-1];r-- >0;)n[r]=a,a=t[a];return n}function ja(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ja(t)}function Ga(e){if(e)for(let t=0;te.__isSuspense;function Tu(e,t){t&&t.pendingBranch?ee(e)?t.effects.push(...e):t.effects.push(e):Ic(e)}const de=Symbol.for("v-fgt"),Zn=Symbol.for("v-txt"),vt=Symbol.for("v-cmt"),Yr=Symbol.for("v-stc"),It=[];let Ze=null;function H(e=!1){It.push(Ze=e?null:[])}function Vr(){It.pop(),Ze=It[It.length-1]||null}let Qn=1;function Yo(e,t=!1){Qn+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function Ha(e){return e.dynamicChildren=Qn>0?Ze||_n:null,Vr(),Qn>0&&Ze&&Ze.push(e),e}function J(e,t,n,o,s,r){return Ha(M(e,t,n,o,s,r,!0))}function Qe(e,t,n,o,s){return Ha(ve(e,t,n,o,s,!0))}function eo(e){return e?e.__v_isVNode===!0:!1}function to(e,t){return e.type===t.type&&e.key===t.key}const qa=({key:e})=>e??null,Vo=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?be(e)||Ne(e)||oe(e)?{i:Be,r:e,k:t,f:!!n}:e:null);function M(e,t=null,n=null,o=0,s=null,r=e===de?0:1,a=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qa(t),ref:t&&Vo(t),scopeId:ia,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:s,dynamicChildren:null,appContext:null,ctx:Be};return i?(Ho(l,n),r&128&&e.normalize(l)):n&&(l.shapeFlag|=be(n)?8:16),Qn>0&&!a&&Ze&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ze.push(l),l}const ve=Lu;function Lu(e,t=null,n=null,o=0,s=null,r=!1){if((!e||e===ba)&&(e=vt),eo(e)){const i=Cn(e,t,!0);return n&&Ho(i,n),Qn>0&&!r&&Ze&&(i.shapeFlag&6?Ze[Ze.indexOf(e)]=i:Ze.push(i)),i.patchFlag=-2,i}if(ju(e)&&(e=e.__vccOpts),t){t=Su(t);let{class:i,style:l}=t;i&&!be(i)&&(t.class=Te(i)),ge(l)&&(Lo(l)&&!ee(l)&&(l=Ce({},l)),t.style=bn(l))}const a=be(e)?1:Va(e)?128:Mo(e)?64:ge(e)?4:oe(e)?2:0;return M(e,t,n,o,s,a,r,!0)}function Su(e){return e?Lo(e)||Ma(e)?Ce({},e):e:null}function Cn(e,t,n=!1,o=!1){const{props:s,ref:r,patchFlag:a,children:i,transition:l}=e,c=t?xu(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&qa(c),ref:t&&t.ref?n&&r?ee(r)?r.concat(Vo(t)):[r,Vo(t)]:Vo(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!==de?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Cn(e.ssContent),ssFallback:e.ssFallback&&Cn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&o&&xr(u,l.clone(u)),u}function $e(e=" ",t=0){return ve(Zn,null,e,t)}function Le(e="",t=!1){return t?(H(),Qe(vt,null,e)):ve(vt,null,e)}function wt(e){return e==null||typeof e=="boolean"?ve(vt):ee(e)?ve(de,null,e.slice()):eo(e)?Ft(e):ve(Zn,null,String(e))}function Ft(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Cn(e)}function Ho(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(ee(t))n=16;else if(typeof t=="object")if(o&65){const s=t.default;s&&(s._c&&(s._d=!1),Ho(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ma(t)?t._ctx=Be:s===3&&Be&&(Be.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(oe(t)){if(o&65){Ho(e,{default:t});return}t={default:t,_ctx:Be},n=32}else t=String(t),o&64?(n=16,t=[$e(t)]):n=8;e.children=t,e.shapeFlag|=n}function xu(...e){const t={};for(let n=0;nRe||Be;let qo,no;{const e=wo(),t=(n,o)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(o),r=>{s.length>1?s.forEach(a=>a(r)):s[0](r)}};qo=t("__VUE_INSTANCE_SETTERS__",n=>Re=n),no=t("__VUE_SSR_SETTERS__",n=>An=n)}const oo=e=>{const t=Re;return qo(e),e.scope.on(),()=>{e.scope.off(),qo(t)}},za=()=>{Re&&Re.scope.off(),qo(null)};function Ka(e){return e.vnode.shapeFlag&4}let An=!1;function Pu(e,t=!1,n=!1){t&&no(t);const{props:o,children:s}=e.vnode,r=Ka(e);yu(e,o,r,t),$u(e,s,n||t);const a=r?Bu(e,t):void 0;return t&&no(!1),a}function Bu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ru);const{setup:o}=n;if(o){mt();const s=e.setupContext=o.length>1?Ru(e):null,r=oo(e),a=kn(o,e,0,[e.props,s]),i=Os(a);if(_t(),r(),(i||e.sp)&&!Nn(e)&&Ir(e),i){if(a.then(za,za),t)return a.then(l=>{no(!0);try{Xa(e,l,t)}finally{no(!1)}}).catch(l=>{Yn(l,e,0)});e.asyncDep=a}else Xa(e,a)}else Ja(e)}function Xa(e,t,n){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ge(t)&&(e.setupState=ea(t)),Ja(e)}function Ja(e,t,n){const o=e.type;e.render||(e.render=o.render||ht);{const s=oo(e);mt();try{su(e)}finally{_t(),s()}}}const Du={get(e,t){return je(e,"get",""),e[t]}};function Ru(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Du),slots:e.slots,emit:e.emit,expose:t}}function zo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ea(vn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Xn)return Xn[n](e)},has(t,n){return n in t||n in Xn}})):e.proxy}const Wu=/(?:^|[-_])\w/g,Uu=e=>e.replace(Wu,t=>t.toUpperCase()).replace(/[-_]/g,"");function Za(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function Qa(e,t,n=!1){let o=Za(t);if(!o&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(o=s[1])}if(!o&&e){const s=r=>{for(const a in r)if(r[a]===t)return a};o=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return o?Uu(o):n?"App":"Anonymous"}function ju(e){return oe(e)&&"__vccOpts"in e}const ae=(e,t)=>Oc(e,t,An);function ei(e,t,n){try{Yo(-1);const o=arguments.length;return o===2?ge(t)&&!ee(t)?eo(t)?ve(e,null,[t]):ve(e,t):ve(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&eo(n)&&(n=[n]),ve(e,t,n))}finally{Yo(1)}}const Gu="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Hr;const ta=typeof window<"u"&&window.trustedTypes;if(ta)try{Hr=ta.createPolicy("vue",{createHTML:e=>e})}catch{}const na=Hr?e=>Hr.createHTML(e):e=>e,Yu="http://www.w3.org/2000/svg",Vu="http://www.w3.org/1998/Math/MathML",Pt=typeof document<"u"?document:null,oa=Pt&&Pt.createElement("template"),Hu={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 s=t==="svg"?Pt.createElementNS(Yu,e):t==="mathml"?Pt.createElementNS(Vu,e):n?Pt.createElement(e,{is:n}):Pt.createElement(e);return e==="select"&&o&&o.multiple!=null&&s.setAttribute("multiple",o.multiple),s},createText:e=>Pt.createTextNode(e),createComment:e=>Pt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Pt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,s,r){const i=n?n.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===r||!(s=s.nextSibling)););else{oa.innerHTML=na(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const a=oa.content;if(o==="svg"||o==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},qu=Symbol("_vtc");function zu(e,t,n){const o=e[qu];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ko=Symbol("_vod"),ra=Symbol("_vsh"),Ku={name:"show",beforeMount(e,{value:t},{transition:n}){e[Ko]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):ro(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),ro(e,!0),o.enter(e)):o.leave(e,()=>{ro(e,!1)}):ro(e,t))},beforeUnmount(e,{value:t}){ro(e,t)}};function ro(e,t){e.style.display=t?e[Ko]:"none",e[ra]=!t}const Xu=Symbol(""),Ju=/(?:^|;)\s*display\s*:/;function Zu(e,t,n){const o=e.style,s=be(n);let r=!1;if(n&&!s){if(t)if(be(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&so(o,a,"")}else for(const i in t)n[i]==null&&so(o,i,"");for(const i in n){i==="display"&&(r=!0);const a=n[i];a!=null?ep(e,i,!be(t)&&t?t[i]:void 0,a)||so(o,i,a):so(o,i,"")}}else if(s){if(t!==n){const i=o[Xu];i&&(n+=";"+i),o.cssText=n,r=Ju.test(n)}}else t&&e.removeAttribute("style");Ko in e&&(e[Ko]=r?o.display:"",e[ra]&&(o.display="none"))}const Xo=/\s*!important$/;function so(e,t,n){if(ee(n))n.forEach(o=>so(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))Xo.test(n)?e.setProperty(t,n.replace(Xo,""),"important"):e.setProperty(t,n);else{const o=Qu(e,t);Xo.test(n)?e.setProperty(tt(o),n.replace(Xo,""),"important"):e[o]=n}}const sa=["Webkit","Moz","ms"],qr={};function Qu(e,t){const n=qr[t];if(n)return n;let o=Fe(t);if(o!=="filter"&&o in e)return qr[t]=o;o=vo(o);for(let s=0;szr||(ap.then(()=>zr=0),zr=Date.now());function cp(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const s=n.value;if(ee(s)){const r=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{r.call(o),o._stopped=!0};const i=s.slice(),a=[o];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,up=(e,t,n,o,s,r)=>{const i=s==="svg";t==="class"?zu(e,o,i):t==="style"?Zu(e,n,o):ho(t)?go(t)||op(e,t,n,o,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):pp(e,t,o,i))?(la(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&aa(e,t,o,i,r,t!=="value")):e._isVueCE&&(dp(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!be(o)))?la(e,Fe(t),o,r,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),aa(e,t,o,i))};function pp(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&ua(t)&&oe(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return ua(t)&&be(n)?!1:t in e}function dp(e,t){const n=e._def.props;if(!n)return!1;const o=Fe(t);return Array.isArray(n)?n.some(s=>Fe(s)===o):Object.keys(n).some(s=>Fe(s)===o)}const pa={};function fp(e,t,n){let o=zn(e,t);_o(o)&&(o=Ce({},o,t));class s extends Kr{constructor(i){super(o,i,n)}}return s.def=o,s}const hp=typeof HTMLElement<"u"?HTMLElement:class{};class Kr extends hp{constructor(t,n={},o=ha){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!==ha?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Ce({},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 Kr){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,Vn(()=>{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._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:i}=o;let a;if(r&&!ee(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=As(this._props[l])),(a||(a=Object.create(null)))[Fe(l)]=!0)}this._numberProps=a,this._resolveProps(o),this.shadowRoot&&this._applyStyles(i),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)he(this,o)||Object.defineProperty(this,o,{get:()=>ze(n[o])})}_resolveProps(t){const{props:n}=t,o=ee(n)?n:Object.keys(n||{});for(const s of Object.keys(this))s[0]!=="_"&&o.includes(s)&&this._setProp(s,this[s]);for(const s of o.map(Fe))Object.defineProperty(this,s,{get(){return this._getProp(s)},set(r){this._setProp(s,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let o=n?this.getAttribute(t):pa;const s=Fe(t);n&&this._numberProps&&this._numberProps[s]&&(o=As(o)),this._setProp(s,o,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,o=!0,s=!1){if(n!==this._props[t]&&(this._dirty=!0,n===pa?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),s&&this._instance&&this._update(),o)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),n===!0?this.setAttribute(tt(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(tt(t),n+""):n||this.removeAttribute(tt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),yp(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=ve(this._def,Ce(t,this._props));return this._instance||(n.ce=o=>{this._instance=o,o.ce=this,o.isCE=!0;const s=(r,i)=>{this.dispatchEvent(new CustomEvent(r,_o(i[0])?Ce({detail:i},i[0]):{detail:i}))};o.emit=(r,...i)=>{s(r,i),tt(r)!==r&&s(tt(r),i)},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 s=this._nonce,r=this.shadowRoot,i=o?this._getStyleAnchor(o)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let a=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");s&&c.setAttribute("nonce",s),c.textContent=t[l],r.insertBefore(c,a||i),a=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;ne.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)=>gp.some(n=>e[`${n}Key`]&&!t.includes(n))},_p=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(s,...r)=>{for(let i=0;i{fa().render(...e)},ha=(...e)=>{const t=fa().createApp(...e),{mount:n}=t;return t.mount=o=>{const s=wp(o);if(!s)return;const r=t._component;!oe(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,vp(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t};function vp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function wp(e){return be(e)?document.querySelector(e):e}/*! +**/let Hr;const ti=typeof window<"u"&&window.trustedTypes;if(ti)try{Hr=ti.createPolicy("vue",{createHTML:e=>e})}catch{}const ni=Hr?e=>Hr.createHTML(e):e=>e,Yu="http://www.w3.org/2000/svg",Vu="http://www.w3.org/1998/Math/MathML",Pt=typeof document<"u"?document:null,oi=Pt&&Pt.createElement("template"),Hu={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 s=t==="svg"?Pt.createElementNS(Yu,e):t==="mathml"?Pt.createElementNS(Vu,e):n?Pt.createElement(e,{is:n}):Pt.createElement(e);return e==="select"&&o&&o.multiple!=null&&s.setAttribute("multiple",o.multiple),s},createText:e=>Pt.createTextNode(e),createComment:e=>Pt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Pt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,s,r){const a=n?n.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===r||!(s=s.nextSibling)););else{oi.innerHTML=ni(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const i=oi.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[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},qu=Symbol("_vtc");function zu(e,t,n){const o=e[qu];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ko=Symbol("_vod"),ri=Symbol("_vsh"),Ku={name:"show",beforeMount(e,{value:t},{transition:n}){e[Ko]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):ro(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),ro(e,!0),o.enter(e)):o.leave(e,()=>{ro(e,!1)}):ro(e,t))},beforeUnmount(e,{value:t}){ro(e,t)}};function ro(e,t){e.style.display=t?e[Ko]:"none",e[ri]=!t}const Xu=Symbol(""),Ju=/(?:^|;)\s*display\s*:/;function Zu(e,t,n){const o=e.style,s=be(n);let r=!1;if(n&&!s){if(t)if(be(t))for(const a of t.split(";")){const i=a.slice(0,a.indexOf(":")).trim();n[i]==null&&so(o,i,"")}else for(const a in t)n[a]==null&&so(o,a,"");for(const a in n){a==="display"&&(r=!0);const i=n[a];i!=null?ep(e,a,!be(t)&&t?t[a]:void 0,i)||so(o,a,i):so(o,a,"")}}else if(s){if(t!==n){const a=o[Xu];a&&(n+=";"+a),o.cssText=n,r=Ju.test(n)}}else t&&e.removeAttribute("style");Ko in e&&(e[Ko]=r?o.display:"",e[ri]&&(o.display="none"))}const Xo=/\s*!important$/;function so(e,t,n){if(ee(n))n.forEach(o=>so(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))Xo.test(n)?e.setProperty(t,n.replace(Xo,""),"important"):e.setProperty(t,n);else{const o=Qu(e,t);Xo.test(n)?e.setProperty(tt(o),n.replace(Xo,""),"important"):e[o]=n}}const si=["Webkit","Moz","ms"],qr={};function Qu(e,t){const n=qr[t];if(n)return n;let o=Fe(t);if(o!=="filter"&&o in e)return qr[t]=o;o=vo(o);for(let s=0;szr||(ip.then(()=>zr=0),zr=Date.now());function cp(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const s=n.value;if(ee(s)){const r=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{r.call(o),o._stopped=!0};const a=s.slice(),i=[o];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,up=(e,t,n,o,s,r)=>{const a=s==="svg";t==="class"?zu(e,o,a):t==="style"?Zu(e,n,o):ho(t)?go(t)||op(e,t,n,o,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):pp(e,t,o,a))?(li(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ii(e,t,o,a,r,t!=="value")):e._isVueCE&&(dp(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!be(o)))?li(e,Fe(t),o,r,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),ii(e,t,o,a))};function pp(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&ui(t)&&oe(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return ui(t)&&be(n)?!1:t in e}function dp(e,t){const n=e._def.props;if(!n)return!1;const o=Fe(t);return Array.isArray(n)?n.some(s=>Fe(s)===o):Object.keys(n).some(s=>Fe(s)===o)}const pi={};function fp(e,t,n){let o=zn(e,t);_o(o)&&(o=Ce({},o,t));class s extends Kr{constructor(a){super(o,a,n)}}return s.def=o,s}const hp=typeof HTMLElement<"u"?HTMLElement:class{};class Kr extends hp{constructor(t,n={},o=hi){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!==hi?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Ce({},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 Kr){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,Vn(()=>{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._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:a}=o;let i;if(r&&!ee(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=As(this._props[l])),(i||(i=Object.create(null)))[Fe(l)]=!0)}this._numberProps=i,this._resolveProps(o),this.shadowRoot&&this._applyStyles(a),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)he(this,o)||Object.defineProperty(this,o,{get:()=>ze(n[o])})}_resolveProps(t){const{props:n}=t,o=ee(n)?n:Object.keys(n||{});for(const s of Object.keys(this))s[0]!=="_"&&o.includes(s)&&this._setProp(s,this[s]);for(const s of o.map(Fe))Object.defineProperty(this,s,{get(){return this._getProp(s)},set(r){this._setProp(s,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let o=n?this.getAttribute(t):pi;const s=Fe(t);n&&this._numberProps&&this._numberProps[s]&&(o=As(o)),this._setProp(s,o,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,o=!0,s=!1){if(n!==this._props[t]&&(this._dirty=!0,n===pi?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),s&&this._instance&&this._update(),o)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),n===!0?this.setAttribute(tt(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(tt(t),n+""):n||this.removeAttribute(tt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),yp(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=ve(this._def,Ce(t,this._props));return this._instance||(n.ce=o=>{this._instance=o,o.ce=this,o.isCE=!0;const s=(r,a)=>{this.dispatchEvent(new CustomEvent(r,_o(a[0])?Ce({detail:a},a[0]):{detail:a}))};o.emit=(r,...a)=>{s(r,a),tt(r)!==r&&s(tt(r),a)},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 s=this._nonce,r=this.shadowRoot,a=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");s&&c.setAttribute("nonce",s),c.textContent=t[l],r.insertBefore(c,i||a),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;ne.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)=>gp.some(n=>e[`${n}Key`]&&!t.includes(n))},_p=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(s,...r)=>{for(let a=0;a{fi().render(...e)},hi=(...e)=>{const t=fi().createApp(...e),{mount:n}=t;return t.mount=o=>{const s=wp(o);if(!s)return;const r=t._component;!oe(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const a=n(s,!1,vp(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},t};function vp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function wp(e){return be(e)?document.querySelector(e):e}/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let ga;const Jo=e=>ga=e,ma=Symbol();function Xr(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var io;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(io||(io={}));function kp(){const e=hr(!0),t=e.run(()=>re({}));let n=[],o=[];const s=vn({install(r){Jo(s),s._a=r,r.provide(ma,s),r.config.globalProperties.$pinia=s,o.forEach(i=>n.push(i)),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 s}const _a=()=>{};function ba(e,t,n,o=_a){e.push(t);const s=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),o())};return!n&&Fs()&&Zl(s),s}function En(e,...t){e.slice().forEach(n=>{n(...t)})}const $p=e=>e(),ya=Symbol(),Jr=Symbol();function Zr(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],s=e[n];Xr(s)&&Xr(o)&&e.hasOwnProperty(n)&&!Ne(o)&&!Tt(o)?e[n]=Zr(s,o):e[n]=o}return e}const Op=Symbol();function Np(e){return!Xr(e)||!e.hasOwnProperty(Op)}const{assign:zt}=Object;function Cp(e){return!!(Ne(e)&&e.effect)}function Ap(e,t,n,o){const{state:s,actions:r,getters:i}=t,a=n.state.value[e];let l;function c(){a||(n.state.value[e]=s?s():{});const u=vc(n.state.value[e]);return zt(u,r,Object.keys(i||{}).reduce((f,h)=>(f[h]=vn(ie(()=>{Jo(n);const m=n._s.get(e);return i[h].call(m,m)})),f),{}))}return l=va(e,c,t,n,o,!0),l}function va(e,t,n={},o,s,r){let i;const a=zt({actions:{}},n),l={deep:!0};let c,u,f=[],h=[],m;const w=o.state.value[e];!r&&!w&&(o.state.value[e]={});let k;function A(I){let N;c=u=!1,typeof I=="function"?(I(o.state.value[e]),N={type:io.patchFunction,storeId:e,events:m}):(Zr(o.state.value[e],I),N={type:io.patchObject,payload:I,storeId:e,events:m});const R=k=Symbol();Vn().then(()=>{k===R&&(c=!0)}),u=!0,En(f,N,o.state.value[e])}const O=r?function(){const{state:N}=n,R=N?N():{};this.$patch(j=>{zt(j,R)})}:_a;function C(){i.stop(),f=[],h=[],o._s.delete(e)}const _=(I,N="")=>{if(ya in I)return I[Jr]=N,I;const R=function(){Jo(o);const j=Array.from(arguments),K=[],ne=[];function ue(X){K.push(X)}function z(X){ne.push(X)}En(h,{args:j,name:R[Jr],store:v,after:ue,onError:z});let W;try{W=I.apply(this&&this.$id===e?this:v,j)}catch(X){throw En(ne,X),X}return W instanceof Promise?W.then(X=>(En(K,X),X)).catch(X=>(En(ne,X),Promise.reject(X))):(En(K,W),W)};return R[ya]=!0,R[Jr]=N,R},b={_p:o,$id:e,$onAction:ba.bind(null,h),$patch:A,$reset:O,$subscribe(I,N={}){const R=ba(f,I,N.detached,()=>j()),j=i.run(()=>lt(()=>o.state.value[e],K=>{(N.flush==="sync"?u:c)&&I({storeId:e,type:io.direct,events:m},K)},zt({},l,N)));return R},$dispose:C},v=Eo(b);o._s.set(e,v);const L=(o._a&&o._a.runWithContext||$p)(()=>o._e.run(()=>(i=hr()).run(()=>t({action:_}))));for(const I in L){const N=L[I];if(Ne(N)&&!Cp(N)||Tt(N))r||(w&&Np(N)&&(Ne(N)?N.value=w[I]:Zr(N,w[I])),o.state.value[e][I]=N);else if(typeof N=="function"){const R=_(N,I);L[I]=R,a.actions[I]=N}}return zt(v,L),zt(pe(v),L),Object.defineProperty(v,"$state",{get:()=>o.state.value[e],set:I=>{A(N=>{zt(N,I)})}}),o._p.forEach(I=>{zt(v,i.run(()=>I({store:v,app:o._a,pinia:o,options:a})))}),w&&r&&n.hydrate&&n.hydrate(v.$state,w),c=!0,u=!0,v}/*! #__NO_SIDE_EFFECTS__ */function Qr(e,t,n){let o,s;const r=typeof t=="function";typeof e=="string"?(o=e,s=r?n:t):(s=e,o=e.id);function i(a,l){const c=Mc();return a=a||(c?De(ma,null):null),a&&Jo(a),a=ga,a._s.has(o)||(r?va(o,t,s,a):Ap(o,s,a)),a._s.get(o)}return i.$id=o,i}const Ep={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},Tp={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},Lp={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Sp={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},Ip={menuComingSoon:"القائمة قادمة قريباً"},xp={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Fp={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Mp={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"}},Pp={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},Bp={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},Dp={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"},Rp={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Wp={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},Up={menuComingSoon:"Menü folgt in Kürze"},jp={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Gp={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Yp={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"}},Vp={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land"},Hp={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},qp={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"},zp={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Kp={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocks",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"}},Xp={menuComingSoon:"Menu coming soon"},Jp={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Zp={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Qp={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},ed={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},td={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country"},nd={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},od={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar"},rd={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},sd={title:{prayer:"Progreso de oración",engagement:"Progreso de implicación",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},id={menuComingSoon:"Menú próximamente"},ad={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},ld={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},cd={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"}},ud={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País"},pd={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},dd={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"},fd={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},hd={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},gd={menuComingSoon:"Menu bientôt disponible"},md={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},_d={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},bd={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},yd={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"}},vd={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays"},wd={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},kd={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},$d={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Od={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या"},footer:{total:"कुल"}},Nd={menuComingSoon:"मेनू शीघ्र आ रहा है"},Cd={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Ad={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Ed={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},Td={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Ld={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"},Sd={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Id={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento dell'impegno",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione"},footer:{total:"Totale"}},xd={menuComingSoon:"Menu in arrivo"},Fd={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Md={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Pd={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},Bd={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},Dd={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"},Rd={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},Wd={title:{prayer:"Progresso da oração",engagement:"Progresso do envolvimento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},Ud={menuComingSoon:"Menu em breve"},jd={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Gd={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Yd={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"}},Vd={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País"},Hd={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},qd={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ă"},zd={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},Kd={title:{prayer:"Progresul rugăciunii",engagement:"Progresul implicării",adoption:"Progresul adopției",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație"},footer:{total:"Total"}},Xd={menuComingSoon:"Meniu în curând"},Jd={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Zd={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Qd={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},ef={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},tf={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},nf={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},of={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},rf={menuComingSoon:"Меню скоро появится"},sf={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},af={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},lf={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"}},cf={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},uf={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},pf={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},df={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},ff={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},hf={menuComingSoon:"菜单即将推出"},gf={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},mf={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},_f={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! + */let gi;const Jo=e=>gi=e,mi=Symbol();function Xr(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var ao;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(ao||(ao={}));function kp(){const e=hr(!0),t=e.run(()=>re({}));let n=[],o=[];const s=vn({install(r){Jo(s),s._a=r,r.provide(mi,s),r.config.globalProperties.$pinia=s,o.forEach(a=>n.push(a)),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 s}const _i=()=>{};function bi(e,t,n,o=_i){e.push(t);const s=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),o())};return!n&&Fs()&&Zl(s),s}function En(e,...t){e.slice().forEach(n=>{n(...t)})}const $p=e=>e(),yi=Symbol(),Jr=Symbol();function Zr(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],s=e[n];Xr(s)&&Xr(o)&&e.hasOwnProperty(n)&&!Ne(o)&&!Tt(o)?e[n]=Zr(s,o):e[n]=o}return e}const Op=Symbol();function Np(e){return!Xr(e)||!e.hasOwnProperty(Op)}const{assign:zt}=Object;function Cp(e){return!!(Ne(e)&&e.effect)}function Ap(e,t,n,o){const{state:s,actions:r,getters:a}=t,i=n.state.value[e];let l;function c(){i||(n.state.value[e]=s?s():{});const u=vc(n.state.value[e]);return zt(u,r,Object.keys(a||{}).reduce((f,h)=>(f[h]=vn(ae(()=>{Jo(n);const m=n._s.get(e);return a[h].call(m,m)})),f),{}))}return l=vi(e,c,t,n,o,!0),l}function vi(e,t,n={},o,s,r){let a;const i=zt({actions:{}},n),l={deep:!0};let c,u,f=[],h=[],m;const w=o.state.value[e];!r&&!w&&(o.state.value[e]={});let k;function A(x){let N;c=u=!1,typeof x=="function"?(x(o.state.value[e]),N={type:ao.patchFunction,storeId:e,events:m}):(Zr(o.state.value[e],x),N={type:ao.patchObject,payload:x,storeId:e,events:m});const R=k=Symbol();Vn().then(()=>{k===R&&(c=!0)}),u=!0,En(f,N,o.state.value[e])}const O=r?function(){const{state:N}=n,R=N?N():{};this.$patch(j=>{zt(j,R)})}:_i;function C(){a.stop(),f=[],h=[],o._s.delete(e)}const _=(x,N="")=>{if(yi in x)return x[Jr]=N,x;const R=function(){Jo(o);const j=Array.from(arguments),K=[],ne=[];function ue(X){K.push(X)}function z(X){ne.push(X)}En(h,{args:j,name:R[Jr],store:v,after:ue,onError:z});let W;try{W=x.apply(this&&this.$id===e?this:v,j)}catch(X){throw En(ne,X),X}return W instanceof Promise?W.then(X=>(En(K,X),X)).catch(X=>(En(ne,X),Promise.reject(X))):(En(K,W),W)};return R[yi]=!0,R[Jr]=N,R},b={_p:o,$id:e,$onAction:bi.bind(null,h),$patch:A,$reset:O,$subscribe(x,N={}){const R=bi(f,x,N.detached,()=>j()),j=a.run(()=>lt(()=>o.state.value[e],K=>{(N.flush==="sync"?u:c)&&x({storeId:e,type:ao.direct,events:m},K)},zt({},l,N)));return R},$dispose:C},v=Eo(b);o._s.set(e,v);const L=(o._a&&o._a.runWithContext||$p)(()=>o._e.run(()=>(a=hr()).run(()=>t({action:_}))));for(const x in L){const N=L[x];if(Ne(N)&&!Cp(N)||Tt(N))r||(w&&Np(N)&&(Ne(N)?N.value=w[x]:Zr(N,w[x])),o.state.value[e][x]=N);else if(typeof N=="function"){const R=_(N,x);L[x]=R,i.actions[x]=N}}return zt(v,L),zt(pe(v),L),Object.defineProperty(v,"$state",{get:()=>o.state.value[e],set:x=>{A(N=>{zt(N,x)})}}),o._p.forEach(x=>{zt(v,a.run(()=>x({store:v,app:o._a,pinia:o,options:i})))}),w&&r&&n.hydrate&&n.hydrate(v.$state,w),c=!0,u=!0,v}/*! #__NO_SIDE_EFFECTS__ */function Qr(e,t,n){let o,s;const r=typeof t=="function";typeof e=="string"?(o=e,s=r?n:t):(s=e,o=e.id);function a(i,l){const c=Mc();return i=i||(c?De(mi,null):null),i&&Jo(i),i=gi,i._s.has(o)||(r?vi(o,t,s,i):Ap(o,s,i)),i._s.get(o)}return a.$id=o,a}const Ep={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},Tp={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},Lp={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Sp={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},xp={menuComingSoon:"القائمة قادمة قريباً"},Ip={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Fp={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Mp={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"}},Pp={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},Bp={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},Dp={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"},Rp={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Wp={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},Up={menuComingSoon:"Menü folgt in Kürze"},jp={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Gp={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Yp={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"}},Vp={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land"},Hp={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},qp={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"},zp={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Kp={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocks",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"}},Xp={menuComingSoon:"Menu coming soon"},Jp={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Zp={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Qp={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},ed={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},td={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country"},nd={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},od={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar"},rd={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},sd={title:{prayer:"Progreso de oración",engagement:"Progreso de implicación",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},ad={menuComingSoon:"Menú próximamente"},id={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},ld={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},cd={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"}},ud={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País"},pd={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},dd={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"},fd={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},hd={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},gd={menuComingSoon:"Menu bientôt disponible"},md={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},_d={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},bd={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},yd={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"}},vd={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays"},wd={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},kd={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},$d={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Od={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या"},footer:{total:"कुल"}},Nd={menuComingSoon:"मेनू शीघ्र आ रहा है"},Cd={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Ad={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Ed={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},Td={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Ld={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"},Sd={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},xd={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento dell'impegno",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione"},footer:{total:"Totale"}},Id={menuComingSoon:"Menu in arrivo"},Fd={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Md={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Pd={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},Bd={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},Dd={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"},Rd={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},Wd={title:{prayer:"Progresso da oração",engagement:"Progresso do envolvimento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},Ud={menuComingSoon:"Menu em breve"},jd={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Gd={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Yd={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"}},Vd={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País"},Hd={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},qd={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ă"},zd={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},Kd={title:{prayer:"Progresul rugăciunii",engagement:"Progresul implicării",adoption:"Progresul adopției",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație"},footer:{total:"Total"}},Xd={menuComingSoon:"Meniu în curând"},Jd={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Zd={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Qd={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},ef={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},tf={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},nf={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},of={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},rf={menuComingSoon:"Меню скоро появится"},sf={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},af={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},lf={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"}},cf={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},uf={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},pf={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},df={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},ff={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},hf={menuComingSoon:"菜单即将推出"},gf={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},mf={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},_f={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function bf(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Zo=typeof window<"u",Kt=(e,t=!1)=>t?Symbol.for(e):Symbol(e),yf=(e,t,n)=>vf({l:e,k:t,s:n}),vf=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ae=e=>typeof e=="number"&&isFinite(e),wf=e=>Na(e)==="[object Date]",Xt=e=>Na(e)==="[object RegExp]",Qo=e=>se(e)&&Object.keys(e).length===0,We=Object.assign,kf=Object.create,me=(e=null)=>kf(e);let wa;const Bt=()=>wa||(wa=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:me());function ka(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function $a(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function $f(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(o,s,r)=>`${s}="${$a(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(o,s,r)=>`${s}='${$a(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 Of=Object.prototype.hasOwnProperty;function ut(e,t){return Of.call(e,t)}const Oe=Array.isArray,we=e=>typeof e=="function",q=e=>typeof e=="string",ce=e=>typeof e=="boolean",fe=e=>e!==null&&typeof e=="object",Nf=e=>fe(e)&&we(e.then)&&we(e.catch),Oa=Object.prototype.toString,Na=e=>Oa.call(e),se=e=>{if(!fe(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Cf=e=>e==null?"":Oe(e)||se(e)&&e.toString===Oa?JSON.stringify(e,null,2):String(e);function Af(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}function er(e){let t=e;return()=>++t}const tr=e=>!fe(e)||Oe(e);function nr(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:s}=n.pop();Object.keys(o).forEach(r=>{r!=="__proto__"&&(fe(o[r])&&!fe(s[r])&&(s[r]=Array.isArray(o[r])?[]:me()),tr(s[r])||tr(o[r])?s[r]=o[r]:n.push({src:o[r],des:s[r]}))})}}/*! + */function bf(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Zo=typeof window<"u",Kt=(e,t=!1)=>t?Symbol.for(e):Symbol(e),yf=(e,t,n)=>vf({l:e,k:t,s:n}),vf=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ae=e=>typeof e=="number"&&isFinite(e),wf=e=>Ni(e)==="[object Date]",Xt=e=>Ni(e)==="[object RegExp]",Qo=e=>se(e)&&Object.keys(e).length===0,We=Object.assign,kf=Object.create,me=(e=null)=>kf(e);let wi;const Bt=()=>wi||(wi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:me());function ki(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function $i(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function $f(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(o,s,r)=>`${s}="${$i(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(o,s,r)=>`${s}='${$i(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 Of=Object.prototype.hasOwnProperty;function ut(e,t){return Of.call(e,t)}const Oe=Array.isArray,we=e=>typeof e=="function",q=e=>typeof e=="string",ce=e=>typeof e=="boolean",fe=e=>e!==null&&typeof e=="object",Nf=e=>fe(e)&&we(e.then)&&we(e.catch),Oi=Object.prototype.toString,Ni=e=>Oi.call(e),se=e=>{if(!fe(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Cf=e=>e==null?"":Oe(e)||se(e)&&e.toString===Oi?JSON.stringify(e,null,2):String(e);function Af(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}function er(e){let t=e;return()=>++t}const tr=e=>!fe(e)||Oe(e);function nr(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:s}=n.pop();Object.keys(o).forEach(r=>{r!=="__proto__"&&(fe(o[r])&&!fe(s[r])&&(s[r]=Array.isArray(o[r])?[]:me()),tr(s[r])||tr(o[r])?s[r]=o[r]:n.push({src:o[r],des:s[r]}))})}}/*! * message-compiler v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function Ef(e,t,n){return{line:e,column:t,offset:n}}function or(e,t,n){return{start:e,end:t}}const Tf=/\{([0-9a-zA-Z]+)\}/g;function Ca(e,...t){return t.length===1&&Lf(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Tf,(n,o)=>t.hasOwnProperty(o)?t[o]:"")}const Aa=Object.assign,Ea=e=>typeof e=="string",Lf=e=>e!==null&&typeof e=="object";function Ta(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}const es={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Sf={[es.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function If(e,t,...n){const o=Ca(Sf[e],...n||[]),s={message:String(o),code:e};return t&&(s.location=t),s}const te={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},xf={[te.EXPECTED_TOKEN]:"Expected token: '{0}'",[te.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[te.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[te.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[te.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[te.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[te.EMPTY_PLACEHOLDER]:"Empty placeholder",[te.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[te.INVALID_LINKED_FORMAT]:"Invalid linked format",[te.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[te.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[te.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[te.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[te.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[te.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Tn(e,t,n={}){const{domain:o,messages:s,args:r}=n,i=Ca((s||xf)[e]||"",...r||[]),a=new SyntaxError(String(i));return a.code=e,t&&(a.location=t),a.domain=o,a}function Ff(e){throw e}const Dt=" ",Mf="\r",He=` -`,Pf="\u2028",Bf="\u2029";function Df(e){const t=e;let n=0,o=1,s=1,r=0;const i=L=>t[L]===Mf&&t[L+1]===He,a=L=>t[L]===He,l=L=>t[L]===Bf,c=L=>t[L]===Pf,u=L=>i(L)||a(L)||l(L)||c(L),f=()=>n,h=()=>o,m=()=>s,w=()=>r,k=L=>i(L)||l(L)||c(L)?He:t[L],A=()=>k(n),O=()=>k(n+r);function C(){return r=0,u(n)&&(o++,s=0),i(n)&&n++,n++,s++,t[n]}function _(){return i(n+r)&&r++,r++,t[n+r]}function b(){n=0,o=1,s=1,r=0}function v(L=0){r=L}function E(){const L=n+r;for(;L!==n;)C();r=0}return{index:f,line:h,column:m,peekOffset:w,charAt:k,currentChar:A,currentPeek:O,next:C,peek:_,reset:b,resetPeek:v,skipToPeek:E}}const Jt=void 0,Rf=".",La="'",Wf="tokenizer";function Uf(e,t={}){const n=t.location!==!1,o=Df(e),s=()=>o.index(),r=()=>Ef(o.line(),o.column(),o.index()),i=r(),a=s(),l={currentType:14,offset:a,startLoc:i,endLoc:i,lastType:14,lastOffset:a,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function f(p,d,S,...F){const V=c();if(d.column+=S,d.offset+=S,u){const U=n?or(V.startLoc,d):null,T=Tn(p,U,{domain:Wf,args:F});u(T)}}function h(p,d,S){p.endLoc=r(),p.currentType=d;const F={type:d};return n&&(F.loc=or(p.startLoc,p.endLoc)),S!=null&&(F.value=S),F}const m=p=>h(p,14);function w(p,d){return p.currentChar()===d?(p.next(),d):(f(te.EXPECTED_TOKEN,r(),0,d),"")}function k(p){let d="";for(;p.currentPeek()===Dt||p.currentPeek()===He;)d+=p.currentPeek(),p.peek();return d}function A(p){const d=k(p);return p.skipToPeek(),d}function O(p){if(p===Jt)return!1;const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d===95}function C(p){if(p===Jt)return!1;const d=p.charCodeAt(0);return d>=48&&d<=57}function _(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=O(p.currentPeek());return p.resetPeek(),F}function b(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=p.currentPeek()==="-"?p.peek():p.currentPeek(),V=C(F);return p.resetPeek(),V}function v(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=p.currentPeek()===La;return p.resetPeek(),F}function E(p,d){const{currentType:S}=d;if(S!==8)return!1;k(p);const F=p.currentPeek()===".";return p.resetPeek(),F}function L(p,d){const{currentType:S}=d;if(S!==9)return!1;k(p);const F=O(p.currentPeek());return p.resetPeek(),F}function I(p,d){const{currentType:S}=d;if(!(S===8||S===12))return!1;k(p);const F=p.currentPeek()===":";return p.resetPeek(),F}function N(p,d){const{currentType:S}=d;if(S!==10)return!1;const F=()=>{const U=p.currentPeek();return U==="{"?O(p.peek()):U==="@"||U==="%"||U==="|"||U===":"||U==="."||U===Dt||!U?!1:U===He?(p.peek(),F()):K(p,!1)},V=F();return p.resetPeek(),V}function R(p){k(p);const d=p.currentPeek()==="|";return p.resetPeek(),d}function j(p){const d=k(p),S=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:S,hasSpace:d.length>0}}function K(p,d=!0){const S=(V=!1,U="",T=!1)=>{const P=p.currentPeek();return P==="{"?U==="%"?!1:V:P==="@"||!P?U==="%"?!0:V:P==="%"?(p.peek(),S(V,"%",!0)):P==="|"?U==="%"||T?!0:!(U===Dt||U===He):P===Dt?(p.peek(),S(!0,Dt,T)):P===He?(p.peek(),S(!0,He,T)):!0},F=S();return d&&p.resetPeek(),F}function ne(p,d){const S=p.currentChar();return S===Jt?Jt:d(S)?(p.next(),S):null}function ue(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36}function z(p){return ne(p,ue)}function W(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36||d===45}function X(p){return ne(p,W)}function le(p){const d=p.charCodeAt(0);return d>=48&&d<=57}function Ee(p){return ne(p,le)}function Nt(p){const d=p.charCodeAt(0);return d>=48&&d<=57||d>=65&&d<=70||d>=97&&d<=102}function xe(p){return ne(p,Nt)}function Pe(p){let d="",S="";for(;d=Ee(p);)S+=d;return S}function nn(p){A(p);const d=p.currentChar();return d!=="%"&&f(te.EXPECTED_TOKEN,r(),0,d),p.next(),"%"}function on(p){let d="";for(;;){const S=p.currentChar();if(S==="{"||S==="}"||S==="@"||S==="|"||!S)break;if(S==="%")if(K(p))d+=S,p.next();else break;else if(S===Dt||S===He)if(K(p))d+=S,p.next();else{if(R(p))break;d+=S,p.next()}else d+=S,p.next()}return d}function gn(p){A(p);let d="",S="";for(;d=X(p);)S+=d;return p.currentChar()===Jt&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S}function ft(p){A(p);let d="";return p.currentChar()==="-"?(p.next(),d+=`-${Pe(p)}`):d+=Pe(p),p.currentChar()===Jt&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),d}function Ut(p){return p!==La&&p!==He}function jt(p){A(p),w(p,"'");let d="",S="";for(;d=ne(p,Ut);)d==="\\"?S+=rn(p):S+=d;const F=p.currentChar();return F===He||F===Jt?(f(te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),F===He&&(p.next(),w(p,"'")),S):(w(p,"'"),S)}function rn(p){const d=p.currentChar();switch(d){case"\\":case"'":return p.next(),`\\${d}`;case"u":return rt(p,d,4);case"U":return rt(p,d,6);default:return f(te.UNKNOWN_ESCAPE_SEQUENCE,r(),0,d),""}}function rt(p,d,S){w(p,d);let F="";for(let V=0;V{const F=p.currentChar();return F==="{"||F==="%"||F==="@"||F==="|"||F==="("||F===")"||!F||F===Dt?S:(S+=F,p.next(),d(S))};return d("")}function x(p){A(p);const d=w(p,"|");return A(p),d}function D(p,d){let S=null;switch(p.currentChar()){case"{":return d.braceNest>=1&&f(te.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),p.next(),S=h(d,2,"{"),A(p),d.braceNest++,S;case"}":return d.braceNest>0&&d.currentType===2&&f(te.EMPTY_PLACEHOLDER,r(),0),p.next(),S=h(d,3,"}"),d.braceNest--,d.braceNest>0&&A(p),d.inLinked&&d.braceNest===0&&(d.inLinked=!1),S;case"@":return d.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=B(p,d)||m(d),d.braceNest=0,S;default:{let V=!0,U=!0,T=!0;if(R(p))return d.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=h(d,1,x(p)),d.braceNest=0,d.inLinked=!1,S;if(d.braceNest>0&&(d.currentType===5||d.currentType===6||d.currentType===7))return f(te.UNTERMINATED_CLOSING_BRACE,r(),0),d.braceNest=0,Y(p,d);if(V=_(p,d))return S=h(d,5,gn(p)),A(p),S;if(U=b(p,d))return S=h(d,6,ft(p)),A(p),S;if(T=v(p,d))return S=h(d,7,jt(p)),A(p),S;if(!V&&!U&&!T)return S=h(d,13,g(p)),f(te.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,S.value),A(p),S;break}}return S}function B(p,d){const{currentType:S}=d;let F=null;const V=p.currentChar();switch((S===8||S===9||S===12||S===10)&&(V===He||V===Dt)&&f(te.INVALID_LINKED_FORMAT,r(),0),V){case"@":return p.next(),F=h(d,8,"@"),d.inLinked=!0,F;case".":return A(p),p.next(),h(d,9,".");case":":return A(p),p.next(),h(d,10,":");default:return R(p)?(F=h(d,1,x(p)),d.braceNest=0,d.inLinked=!1,F):E(p,d)||I(p,d)?(A(p),B(p,d)):L(p,d)?(A(p),h(d,12,$(p))):N(p,d)?(A(p),V==="{"?D(p,d)||F:h(d,11,y(p))):(S===8&&f(te.INVALID_LINKED_FORMAT,r(),0),d.braceNest=0,d.inLinked=!1,Y(p,d))}}function Y(p,d){let S={type:14};if(d.braceNest>0)return D(p,d)||m(d);if(d.inLinked)return B(p,d)||m(d);switch(p.currentChar()){case"{":return D(p,d)||m(d);case"}":return f(te.UNBALANCED_CLOSING_BRACE,r(),0),p.next(),h(d,3,"}");case"@":return B(p,d)||m(d);default:{if(R(p))return S=h(d,1,x(p)),d.braceNest=0,d.inLinked=!1,S;const{isModulo:V,hasSpace:U}=j(p);if(V)return U?h(d,0,on(p)):h(d,4,nn(p));if(K(p))return h(d,0,on(p));break}}return S}function G(){const{currentType:p,offset:d,startLoc:S,endLoc:F}=l;return l.lastType=p,l.lastOffset=d,l.lastStartLoc=S,l.lastEndLoc=F,l.offset=s(),l.startLoc=r(),o.currentChar()===Jt?h(l,14):Y(o,l)}return{nextToken:G,currentOffset:s,currentPosition:r,context:c}}const jf="parser",Gf=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Yf(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const o=parseInt(t||n,16);return o<=55295||o>=57344?String.fromCodePoint(o):"�"}}}function Vf(e={}){const t=e.location!==!1,{onError:n,onWarn:o}=e;function s(_,b,v,E,...L){const I=_.currentPosition();if(I.offset+=E,I.column+=E,n){const N=t?or(v,I):null,R=Tn(b,N,{domain:jf,args:L});n(R)}}function r(_,b,v,E,...L){const I=_.currentPosition();if(I.offset+=E,I.column+=E,o){const N=t?or(v,I):null;o(If(b,N,L))}}function i(_,b,v){const E={type:_};return t&&(E.start=b,E.end=b,E.loc={start:v,end:v}),E}function a(_,b,v,E){t&&(_.end=b,_.loc&&(_.loc.end=v))}function l(_,b){const v=_.context(),E=i(3,v.offset,v.startLoc);return E.value=b,a(E,_.currentOffset(),_.currentPosition()),E}function c(_,b){const v=_.context(),{lastOffset:E,lastStartLoc:L}=v,I=i(5,E,L);return I.index=parseInt(b,10),_.nextToken(),a(I,_.currentOffset(),_.currentPosition()),I}function u(_,b,v){const E=_.context(),{lastOffset:L,lastStartLoc:I}=E,N=i(4,L,I);return N.key=b,v===!0&&(N.modulo=!0),_.nextToken(),a(N,_.currentOffset(),_.currentPosition()),N}function f(_,b){const v=_.context(),{lastOffset:E,lastStartLoc:L}=v,I=i(9,E,L);return I.value=b.replace(Gf,Yf),_.nextToken(),a(I,_.currentOffset(),_.currentPosition()),I}function h(_){const b=_.nextToken(),v=_.context(),{lastOffset:E,lastStartLoc:L}=v,I=i(8,E,L);return b.type!==12?(s(_,te.UNEXPECTED_EMPTY_LINKED_MODIFIER,v.lastStartLoc,0),I.value="",a(I,E,L),{nextConsumeToken:b,node:I}):(b.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,pt(b)),I.value=b.value||"",a(I,_.currentOffset(),_.currentPosition()),{node:I})}function m(_,b){const v=_.context(),E=i(7,v.offset,v.startLoc);return E.value=b,a(E,_.currentOffset(),_.currentPosition()),E}function w(_){const b=_.context(),v=i(6,b.offset,b.startLoc);let E=_.nextToken();if(E.type===9){const L=h(_);v.modifier=L.node,E=L.nextConsumeToken||_.nextToken()}switch(E.type!==10&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),E=_.nextToken(),E.type===2&&(E=_.nextToken()),E.type){case 11:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=m(_,E.value||"");break;case 5:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=u(_,E.value||"");break;case 6:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=c(_,E.value||"");break;case 7:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=f(_,E.value||"");break;default:{s(_,te.UNEXPECTED_EMPTY_LINKED_KEY,b.lastStartLoc,0);const L=_.context(),I=i(7,L.offset,L.startLoc);return I.value="",a(I,L.offset,L.startLoc),v.key=I,a(v,L.offset,L.startLoc),{nextConsumeToken:E,node:v}}}return a(v,_.currentOffset(),_.currentPosition()),{node:v}}function k(_){const b=_.context(),v=b.currentType===1?_.currentOffset():b.offset,E=b.currentType===1?b.endLoc:b.startLoc,L=i(2,v,E);L.items=[];let I=null,N=null;do{const K=I||_.nextToken();switch(I=null,K.type){case 0:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(l(_,K.value||""));break;case 6:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(c(_,K.value||""));break;case 4:N=!0;break;case 5:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(u(_,K.value||"",!!N)),N&&(r(_,es.USE_MODULO_SYNTAX,b.lastStartLoc,0,pt(K)),N=null);break;case 7:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(f(_,K.value||""));break;case 8:{const ne=w(_);L.items.push(ne.node),I=ne.nextConsumeToken||null;break}}}while(b.currentType!==14&&b.currentType!==1);const R=b.currentType===1?b.lastOffset:_.currentOffset(),j=b.currentType===1?b.lastEndLoc:_.currentPosition();return a(L,R,j),L}function A(_,b,v,E){const L=_.context();let I=E.items.length===0;const N=i(1,b,v);N.cases=[],N.cases.push(E);do{const R=k(_);I||(I=R.items.length===0),N.cases.push(R)}while(L.currentType!==14);return I&&s(_,te.MUST_HAVE_MESSAGES_IN_PLURAL,v,0),a(N,_.currentOffset(),_.currentPosition()),N}function O(_){const b=_.context(),{offset:v,startLoc:E}=b,L=k(_);return b.currentType===14?L:A(_,v,E,L)}function C(_){const b=Uf(_,Aa({},e)),v=b.context(),E=i(0,v.offset,v.startLoc);return t&&E.loc&&(E.loc.source=_),E.body=O(b),e.onCacheKey&&(E.cacheKey=e.onCacheKey(_)),v.currentType!==14&&s(b,te.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_[v.offset]||""),a(E,b.currentOffset(),b.currentPosition()),E}return{parse:C}}function pt(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 Hf(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function Sa(e,t){for(let n=0;nIa(n)),e}function Ia(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;ni;function l(k,A){i.code+=k}function c(k,A=!0){const O=A?o:"";l(s?O+" ".repeat(k):O)}function u(k=!0){const A=++i.indentLevel;k&&c(A)}function f(k=!0){const A=--i.indentLevel;k&&c(A)}function h(){c(i.indentLevel)}return{context:a,push:l,indent:u,deindent:f,newline:h,helper:k=>`_${k}`,needIndent:()=>i.needIndent}}function Zf(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),Sn(e,t.key),t.modifier?(e.push(", "),Sn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Qf(e,t){const{helper:n,needIndent:o}=e;e.push(`${n("normalize")}([`),e.indent(o());const s=t.items.length;for(let r=0;r1){e.push(`${n("plural")}([`),e.indent(o());const s=t.cases.length;for(let r=0;r{const n=Ea(t.mode)?t.mode:"normal",o=Ea(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` -`,r=t.needIndent?t.needIndent:n!=="arrow",i=e.helpers||[],a=Jf(e,{filename:o,breakLineCode:s,needIndent:r});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(r),i.length>0&&(a.push(`const { ${Ta(i.map(u=>`${u}: _${u}`),", ")} } = ctx`),a.newline()),a.push("return "),Sn(a,e),a.deindent(r),a.push("}"),delete e.helpers;const{code:l,map:c}=a.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function oh(e,t={}){const n=Aa({},t),o=!!n.jit,s=!!n.minify,r=n.optimize==null?!0:n.optimize,a=Vf(n).parse(e);return o?(r&&zf(a),s&&Ln(a),{ast:a,code:""}):(qf(a,n),nh(a,n))}/*! + */function Ef(e,t,n){return{line:e,column:t,offset:n}}function or(e,t,n){return{start:e,end:t}}const Tf=/\{([0-9a-zA-Z]+)\}/g;function Ci(e,...t){return t.length===1&&Lf(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Tf,(n,o)=>t.hasOwnProperty(o)?t[o]:"")}const Ai=Object.assign,Ei=e=>typeof e=="string",Lf=e=>e!==null&&typeof e=="object";function Ti(e,t=""){return e.reduce((n,o,s)=>s===0?n+o:n+t+o,"")}const es={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Sf={[es.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function xf(e,t,...n){const o=Ci(Sf[e],...n||[]),s={message:String(o),code:e};return t&&(s.location=t),s}const te={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},If={[te.EXPECTED_TOKEN]:"Expected token: '{0}'",[te.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[te.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[te.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[te.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[te.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[te.EMPTY_PLACEHOLDER]:"Empty placeholder",[te.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[te.INVALID_LINKED_FORMAT]:"Invalid linked format",[te.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[te.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[te.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[te.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[te.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[te.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Tn(e,t,n={}){const{domain:o,messages:s,args:r}=n,a=Ci((s||If)[e]||"",...r||[]),i=new SyntaxError(String(a));return i.code=e,t&&(i.location=t),i.domain=o,i}function Ff(e){throw e}const Dt=" ",Mf="\r",He=` +`,Pf="\u2028",Bf="\u2029";function Df(e){const t=e;let n=0,o=1,s=1,r=0;const a=L=>t[L]===Mf&&t[L+1]===He,i=L=>t[L]===He,l=L=>t[L]===Bf,c=L=>t[L]===Pf,u=L=>a(L)||i(L)||l(L)||c(L),f=()=>n,h=()=>o,m=()=>s,w=()=>r,k=L=>a(L)||l(L)||c(L)?He:t[L],A=()=>k(n),O=()=>k(n+r);function C(){return r=0,u(n)&&(o++,s=0),a(n)&&n++,n++,s++,t[n]}function _(){return a(n+r)&&r++,r++,t[n+r]}function b(){n=0,o=1,s=1,r=0}function v(L=0){r=L}function E(){const L=n+r;for(;L!==n;)C();r=0}return{index:f,line:h,column:m,peekOffset:w,charAt:k,currentChar:A,currentPeek:O,next:C,peek:_,reset:b,resetPeek:v,skipToPeek:E}}const Jt=void 0,Rf=".",Li="'",Wf="tokenizer";function Uf(e,t={}){const n=t.location!==!1,o=Df(e),s=()=>o.index(),r=()=>Ef(o.line(),o.column(),o.index()),a=r(),i=s(),l={currentType:14,offset:i,startLoc:a,endLoc:a,lastType:14,lastOffset:i,lastStartLoc:a,lastEndLoc:a,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function f(p,d,S,...F){const V=c();if(d.column+=S,d.offset+=S,u){const U=n?or(V.startLoc,d):null,T=Tn(p,U,{domain:Wf,args:F});u(T)}}function h(p,d,S){p.endLoc=r(),p.currentType=d;const F={type:d};return n&&(F.loc=or(p.startLoc,p.endLoc)),S!=null&&(F.value=S),F}const m=p=>h(p,14);function w(p,d){return p.currentChar()===d?(p.next(),d):(f(te.EXPECTED_TOKEN,r(),0,d),"")}function k(p){let d="";for(;p.currentPeek()===Dt||p.currentPeek()===He;)d+=p.currentPeek(),p.peek();return d}function A(p){const d=k(p);return p.skipToPeek(),d}function O(p){if(p===Jt)return!1;const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d===95}function C(p){if(p===Jt)return!1;const d=p.charCodeAt(0);return d>=48&&d<=57}function _(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=O(p.currentPeek());return p.resetPeek(),F}function b(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=p.currentPeek()==="-"?p.peek():p.currentPeek(),V=C(F);return p.resetPeek(),V}function v(p,d){const{currentType:S}=d;if(S!==2)return!1;k(p);const F=p.currentPeek()===Li;return p.resetPeek(),F}function E(p,d){const{currentType:S}=d;if(S!==8)return!1;k(p);const F=p.currentPeek()===".";return p.resetPeek(),F}function L(p,d){const{currentType:S}=d;if(S!==9)return!1;k(p);const F=O(p.currentPeek());return p.resetPeek(),F}function x(p,d){const{currentType:S}=d;if(!(S===8||S===12))return!1;k(p);const F=p.currentPeek()===":";return p.resetPeek(),F}function N(p,d){const{currentType:S}=d;if(S!==10)return!1;const F=()=>{const U=p.currentPeek();return U==="{"?O(p.peek()):U==="@"||U==="%"||U==="|"||U===":"||U==="."||U===Dt||!U?!1:U===He?(p.peek(),F()):K(p,!1)},V=F();return p.resetPeek(),V}function R(p){k(p);const d=p.currentPeek()==="|";return p.resetPeek(),d}function j(p){const d=k(p),S=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:S,hasSpace:d.length>0}}function K(p,d=!0){const S=(V=!1,U="",T=!1)=>{const P=p.currentPeek();return P==="{"?U==="%"?!1:V:P==="@"||!P?U==="%"?!0:V:P==="%"?(p.peek(),S(V,"%",!0)):P==="|"?U==="%"||T?!0:!(U===Dt||U===He):P===Dt?(p.peek(),S(!0,Dt,T)):P===He?(p.peek(),S(!0,He,T)):!0},F=S();return d&&p.resetPeek(),F}function ne(p,d){const S=p.currentChar();return S===Jt?Jt:d(S)?(p.next(),S):null}function ue(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36}function z(p){return ne(p,ue)}function W(p){const d=p.charCodeAt(0);return d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===95||d===36||d===45}function X(p){return ne(p,W)}function le(p){const d=p.charCodeAt(0);return d>=48&&d<=57}function Ee(p){return ne(p,le)}function Nt(p){const d=p.charCodeAt(0);return d>=48&&d<=57||d>=65&&d<=70||d>=97&&d<=102}function Ie(p){return ne(p,Nt)}function Pe(p){let d="",S="";for(;d=Ee(p);)S+=d;return S}function nn(p){A(p);const d=p.currentChar();return d!=="%"&&f(te.EXPECTED_TOKEN,r(),0,d),p.next(),"%"}function on(p){let d="";for(;;){const S=p.currentChar();if(S==="{"||S==="}"||S==="@"||S==="|"||!S)break;if(S==="%")if(K(p))d+=S,p.next();else break;else if(S===Dt||S===He)if(K(p))d+=S,p.next();else{if(R(p))break;d+=S,p.next()}else d+=S,p.next()}return d}function gn(p){A(p);let d="",S="";for(;d=X(p);)S+=d;return p.currentChar()===Jt&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S}function ft(p){A(p);let d="";return p.currentChar()==="-"?(p.next(),d+=`-${Pe(p)}`):d+=Pe(p),p.currentChar()===Jt&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),d}function Ut(p){return p!==Li&&p!==He}function jt(p){A(p),w(p,"'");let d="",S="";for(;d=ne(p,Ut);)d==="\\"?S+=rn(p):S+=d;const F=p.currentChar();return F===He||F===Jt?(f(te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),F===He&&(p.next(),w(p,"'")),S):(w(p,"'"),S)}function rn(p){const d=p.currentChar();switch(d){case"\\":case"'":return p.next(),`\\${d}`;case"u":return rt(p,d,4);case"U":return rt(p,d,6);default:return f(te.UNKNOWN_ESCAPE_SEQUENCE,r(),0,d),""}}function rt(p,d,S){w(p,d);let F="";for(let V=0;V{const F=p.currentChar();return F==="{"||F==="%"||F==="@"||F==="|"||F==="("||F===")"||!F||F===Dt?S:(S+=F,p.next(),d(S))};return d("")}function I(p){A(p);const d=w(p,"|");return A(p),d}function D(p,d){let S=null;switch(p.currentChar()){case"{":return d.braceNest>=1&&f(te.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),p.next(),S=h(d,2,"{"),A(p),d.braceNest++,S;case"}":return d.braceNest>0&&d.currentType===2&&f(te.EMPTY_PLACEHOLDER,r(),0),p.next(),S=h(d,3,"}"),d.braceNest--,d.braceNest>0&&A(p),d.inLinked&&d.braceNest===0&&(d.inLinked=!1),S;case"@":return d.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=B(p,d)||m(d),d.braceNest=0,S;default:{let V=!0,U=!0,T=!0;if(R(p))return d.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,r(),0),S=h(d,1,I(p)),d.braceNest=0,d.inLinked=!1,S;if(d.braceNest>0&&(d.currentType===5||d.currentType===6||d.currentType===7))return f(te.UNTERMINATED_CLOSING_BRACE,r(),0),d.braceNest=0,Y(p,d);if(V=_(p,d))return S=h(d,5,gn(p)),A(p),S;if(U=b(p,d))return S=h(d,6,ft(p)),A(p),S;if(T=v(p,d))return S=h(d,7,jt(p)),A(p),S;if(!V&&!U&&!T)return S=h(d,13,g(p)),f(te.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,S.value),A(p),S;break}}return S}function B(p,d){const{currentType:S}=d;let F=null;const V=p.currentChar();switch((S===8||S===9||S===12||S===10)&&(V===He||V===Dt)&&f(te.INVALID_LINKED_FORMAT,r(),0),V){case"@":return p.next(),F=h(d,8,"@"),d.inLinked=!0,F;case".":return A(p),p.next(),h(d,9,".");case":":return A(p),p.next(),h(d,10,":");default:return R(p)?(F=h(d,1,I(p)),d.braceNest=0,d.inLinked=!1,F):E(p,d)||x(p,d)?(A(p),B(p,d)):L(p,d)?(A(p),h(d,12,$(p))):N(p,d)?(A(p),V==="{"?D(p,d)||F:h(d,11,y(p))):(S===8&&f(te.INVALID_LINKED_FORMAT,r(),0),d.braceNest=0,d.inLinked=!1,Y(p,d))}}function Y(p,d){let S={type:14};if(d.braceNest>0)return D(p,d)||m(d);if(d.inLinked)return B(p,d)||m(d);switch(p.currentChar()){case"{":return D(p,d)||m(d);case"}":return f(te.UNBALANCED_CLOSING_BRACE,r(),0),p.next(),h(d,3,"}");case"@":return B(p,d)||m(d);default:{if(R(p))return S=h(d,1,I(p)),d.braceNest=0,d.inLinked=!1,S;const{isModulo:V,hasSpace:U}=j(p);if(V)return U?h(d,0,on(p)):h(d,4,nn(p));if(K(p))return h(d,0,on(p));break}}return S}function G(){const{currentType:p,offset:d,startLoc:S,endLoc:F}=l;return l.lastType=p,l.lastOffset=d,l.lastStartLoc=S,l.lastEndLoc=F,l.offset=s(),l.startLoc=r(),o.currentChar()===Jt?h(l,14):Y(o,l)}return{nextToken:G,currentOffset:s,currentPosition:r,context:c}}const jf="parser",Gf=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Yf(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const o=parseInt(t||n,16);return o<=55295||o>=57344?String.fromCodePoint(o):"�"}}}function Vf(e={}){const t=e.location!==!1,{onError:n,onWarn:o}=e;function s(_,b,v,E,...L){const x=_.currentPosition();if(x.offset+=E,x.column+=E,n){const N=t?or(v,x):null,R=Tn(b,N,{domain:jf,args:L});n(R)}}function r(_,b,v,E,...L){const x=_.currentPosition();if(x.offset+=E,x.column+=E,o){const N=t?or(v,x):null;o(xf(b,N,L))}}function a(_,b,v){const E={type:_};return t&&(E.start=b,E.end=b,E.loc={start:v,end:v}),E}function i(_,b,v,E){t&&(_.end=b,_.loc&&(_.loc.end=v))}function l(_,b){const v=_.context(),E=a(3,v.offset,v.startLoc);return E.value=b,i(E,_.currentOffset(),_.currentPosition()),E}function c(_,b){const v=_.context(),{lastOffset:E,lastStartLoc:L}=v,x=a(5,E,L);return x.index=parseInt(b,10),_.nextToken(),i(x,_.currentOffset(),_.currentPosition()),x}function u(_,b,v){const E=_.context(),{lastOffset:L,lastStartLoc:x}=E,N=a(4,L,x);return N.key=b,v===!0&&(N.modulo=!0),_.nextToken(),i(N,_.currentOffset(),_.currentPosition()),N}function f(_,b){const v=_.context(),{lastOffset:E,lastStartLoc:L}=v,x=a(9,E,L);return x.value=b.replace(Gf,Yf),_.nextToken(),i(x,_.currentOffset(),_.currentPosition()),x}function h(_){const b=_.nextToken(),v=_.context(),{lastOffset:E,lastStartLoc:L}=v,x=a(8,E,L);return b.type!==12?(s(_,te.UNEXPECTED_EMPTY_LINKED_MODIFIER,v.lastStartLoc,0),x.value="",i(x,E,L),{nextConsumeToken:b,node:x}):(b.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,pt(b)),x.value=b.value||"",i(x,_.currentOffset(),_.currentPosition()),{node:x})}function m(_,b){const v=_.context(),E=a(7,v.offset,v.startLoc);return E.value=b,i(E,_.currentOffset(),_.currentPosition()),E}function w(_){const b=_.context(),v=a(6,b.offset,b.startLoc);let E=_.nextToken();if(E.type===9){const L=h(_);v.modifier=L.node,E=L.nextConsumeToken||_.nextToken()}switch(E.type!==10&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),E=_.nextToken(),E.type===2&&(E=_.nextToken()),E.type){case 11:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=m(_,E.value||"");break;case 5:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=u(_,E.value||"");break;case 6:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=c(_,E.value||"");break;case 7:E.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(E)),v.key=f(_,E.value||"");break;default:{s(_,te.UNEXPECTED_EMPTY_LINKED_KEY,b.lastStartLoc,0);const L=_.context(),x=a(7,L.offset,L.startLoc);return x.value="",i(x,L.offset,L.startLoc),v.key=x,i(v,L.offset,L.startLoc),{nextConsumeToken:E,node:v}}}return i(v,_.currentOffset(),_.currentPosition()),{node:v}}function k(_){const b=_.context(),v=b.currentType===1?_.currentOffset():b.offset,E=b.currentType===1?b.endLoc:b.startLoc,L=a(2,v,E);L.items=[];let x=null,N=null;do{const K=x||_.nextToken();switch(x=null,K.type){case 0:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(l(_,K.value||""));break;case 6:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(c(_,K.value||""));break;case 4:N=!0;break;case 5:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(u(_,K.value||"",!!N)),N&&(r(_,es.USE_MODULO_SYNTAX,b.lastStartLoc,0,pt(K)),N=null);break;case 7:K.value==null&&s(_,te.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,pt(K)),L.items.push(f(_,K.value||""));break;case 8:{const ne=w(_);L.items.push(ne.node),x=ne.nextConsumeToken||null;break}}}while(b.currentType!==14&&b.currentType!==1);const R=b.currentType===1?b.lastOffset:_.currentOffset(),j=b.currentType===1?b.lastEndLoc:_.currentPosition();return i(L,R,j),L}function A(_,b,v,E){const L=_.context();let x=E.items.length===0;const N=a(1,b,v);N.cases=[],N.cases.push(E);do{const R=k(_);x||(x=R.items.length===0),N.cases.push(R)}while(L.currentType!==14);return x&&s(_,te.MUST_HAVE_MESSAGES_IN_PLURAL,v,0),i(N,_.currentOffset(),_.currentPosition()),N}function O(_){const b=_.context(),{offset:v,startLoc:E}=b,L=k(_);return b.currentType===14?L:A(_,v,E,L)}function C(_){const b=Uf(_,Ai({},e)),v=b.context(),E=a(0,v.offset,v.startLoc);return t&&E.loc&&(E.loc.source=_),E.body=O(b),e.onCacheKey&&(E.cacheKey=e.onCacheKey(_)),v.currentType!==14&&s(b,te.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_[v.offset]||""),i(E,b.currentOffset(),b.currentPosition()),E}return{parse:C}}function pt(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 Hf(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function Si(e,t){for(let n=0;nxi(n)),e}function xi(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;na;function l(k,A){a.code+=k}function c(k,A=!0){const O=A?o:"";l(s?O+" ".repeat(k):O)}function u(k=!0){const A=++a.indentLevel;k&&c(A)}function f(k=!0){const A=--a.indentLevel;k&&c(A)}function h(){c(a.indentLevel)}return{context:i,push:l,indent:u,deindent:f,newline:h,helper:k=>`_${k}`,needIndent:()=>a.needIndent}}function Zf(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),Sn(e,t.key),t.modifier?(e.push(", "),Sn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Qf(e,t){const{helper:n,needIndent:o}=e;e.push(`${n("normalize")}([`),e.indent(o());const s=t.items.length;for(let r=0;r1){e.push(`${n("plural")}([`),e.indent(o());const s=t.cases.length;for(let r=0;r{const n=Ei(t.mode)?t.mode:"normal",o=Ei(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` +`,r=t.needIndent?t.needIndent:n!=="arrow",a=e.helpers||[],i=Jf(e,{filename:o,breakLineCode:s,needIndent:r});i.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),a.length>0&&(i.push(`const { ${Ti(a.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),Sn(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 oh(e,t={}){const n=Ai({},t),o=!!n.jit,s=!!n.minify,r=n.optimize==null?!0:n.optimize,i=Vf(n).parse(e);return o?(r&&zf(i),s&&Ln(i),{ast:i,code:""}):(qf(i,n),nh(i,n))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function rh(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function $t(e){return fe(e)&&ns(e)===0&&(ut(e,"b")||ut(e,"body"))}const xa=["b","body"];function sh(e){return Zt(e,xa)}const Fa=["c","cases"];function ih(e){return Zt(e,Fa,[])}const Ma=["s","static"];function ah(e){return Zt(e,Ma)}const Pa=["i","items"];function lh(e){return Zt(e,Pa,[])}const Ba=["t","type"];function ns(e){return Zt(e,Ba)}const Da=["v","value"];function rr(e,t){const n=Zt(e,Da);if(n!=null)return n;throw ao(t)}const Ra=["m","modifier"];function ch(e){return Zt(e,Ra)}const Wa=["k","key"];function uh(e){const t=Zt(e,Wa);if(t)return t;throw ao(6)}function Zt(e,t,n){for(let o=0;o{i===void 0?i=a:i+=a},h[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},h[2]=()=>{h[0](),s++},h[3]=()=>{if(s>0)s--,o=4,h[0]();else{if(s=0,i===void 0||(i=gh(i),i===!1))return!1;h[1]()}};function m(){const w=e[n+1];if(o===5&&w==="'"||o===6&&w==='"')return n++,a="\\"+w,h[0](),!0}for(;o!==null;)if(n++,r=e[n],!(r==="\\"&&m())){if(l=hh(r),f=Qt[o],c=f[l]||f.l||8,c===8||(o=c[0],c[1]!==void 0&&(u=h[c[1]],u&&(a=r,u()===!1))))return;if(o===7)return t}}const ja=new Map;function _h(e,t){return fe(e)?e[t]:null}function bh(e,t){if(!fe(e))return null;let n=ja.get(t);if(n||(n=mh(t),n&&ja.set(t,n)),!n)return null;const o=n.length;let s=e,r=0;for(;re,vh=e=>"",wh="text",kh=e=>e.length===0?"":Af(e),$h=Cf;function Ga(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Oh(e){const t=Ae(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ae(e.named.count)||Ae(e.named.n))?Ae(e.named.count)?e.named.count:Ae(e.named.n)?e.named.n:t:t}function Nh(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Ch(e={}){const t=e.locale,n=Oh(e),o=fe(e.pluralRules)&&q(t)&&we(e.pluralRules[t])?e.pluralRules[t]:Ga,s=fe(e.pluralRules)&&q(t)&&we(e.pluralRules[t])?Ga:void 0,r=O=>O[o(n,O.length,s)],i=e.list||[],a=O=>i[O],l=e.named||me();Ae(e.pluralIndex)&&Nh(n,l);const c=O=>l[O];function u(O){const C=we(e.messages)?e.messages(O):fe(e.messages)?e.messages[O]:!1;return C||(e.parent?e.parent.message(O):vh)}const f=O=>e.modifiers?e.modifiers[O]:yh,h=se(e.processor)&&we(e.processor.normalize)?e.processor.normalize:kh,m=se(e.processor)&&we(e.processor.interpolate)?e.processor.interpolate:$h,w=se(e.processor)&&q(e.processor.type)?e.processor.type:wh,A={list:a,named:c,plural:r,linked:(O,...C)=>{const[_,b]=C;let v="text",E="";C.length===1?fe(_)?(E=_.modifier||E,v=_.type||v):q(_)&&(E=_||E):C.length===2&&(q(_)&&(E=_||E),q(b)&&(v=b||v));const L=u(O)(A),I=v==="vnode"&&Oe(L)&&E?L[0]:L;return E?f(E)(I,v):I},message:u,type:w,interpolate:m,normalize:h,values:We(me(),i,l)};return A}let lo=null;function Ah(e){lo=e}function Eh(e,t,n){lo&&lo.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const Th=Lh("function:translate");function Lh(e){return t=>lo&&lo.emit(e,t)}const Sh=es.__EXTEND_POINT__,fn=er(Sh),Ih={FALLBACK_TO_TRANSLATE:fn(),CANNOT_FORMAT_NUMBER:fn(),FALLBACK_TO_NUMBER_FORMAT:fn(),CANNOT_FORMAT_DATE:fn(),FALLBACK_TO_DATE_FORMAT:fn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:fn(),__EXTEND_POINT__:fn()},Ya=te.__EXTEND_POINT__,hn=er(Ya),dt={INVALID_ARGUMENT:Ya,INVALID_DATE_ARGUMENT:hn(),INVALID_ISO_DATE_ARGUMENT:hn(),NOT_SUPPORT_NON_STRING_MESSAGE:hn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:hn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:hn(),NOT_SUPPORT_LOCALE_TYPE:hn(),__EXTEND_POINT__:hn()};function Ot(e){return Tn(e,null,void 0)}function os(e,t){return t.locale!=null?Va(t.locale):Va(e.locale)}let rs;function Va(e){if(q(e))return e;if(we(e)){if(e.resolvedOnce&&rs!=null)return rs;if(e.constructor.name==="Function"){const t=e();if(Nf(t))throw Ot(dt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return rs=t}else throw Ot(dt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Ot(dt.NOT_SUPPORT_LOCALE_TYPE)}function xh(e,t,n){return[...new Set([n,...Oe(t)?t:fe(t)?Object.keys(t):q(t)?[t]:[n]])]}function Ha(e,t,n){const o=q(n)?n:In,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let r=s.__localeChainCache.get(o);if(!r){r=[];let i=[n];for(;Oe(i);)i=qa(r,i,t);const a=Oe(t)||!se(t)?t:t.default?t.default:null;i=q(a)?[a]:a,Oe(i)&&qa(r,i,!1),s.__localeChainCache.set(o,r)}return r}function qa(e,t,n){let o=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Bh(){return{upper:(e,t)=>t==="text"&&q(e)?e.toUpperCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&q(e)?e.toLowerCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&q(e)?Ka(e):t==="vnode"&&fe(e)&&"__v_isVNode"in e?Ka(e.children):e}}let Xa;function Ja(e){Xa=e}let Za;function Dh(e){Za=e}let Qa;function Rh(e){Qa=e}let el=null;const Wh=e=>{el=e},Uh=()=>el;let tl=null;const nl=e=>{tl=e},jh=()=>tl;let ol=0;function Gh(e={}){const t=we(e.onWarn)?e.onWarn:bf,n=q(e.version)?e.version:Ph,o=q(e.locale)||we(e.locale)?e.locale:In,s=we(o)?In:o,r=Oe(e.fallbackLocale)||se(e.fallbackLocale)||q(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,i=se(e.messages)?e.messages:ss(s),a=se(e.datetimeFormats)?e.datetimeFormats:ss(s),l=se(e.numberFormats)?e.numberFormats:ss(s),c=We(me(),e.modifiers,Bh()),u=e.pluralRules||me(),f=we(e.missing)?e.missing:null,h=ce(e.missingWarn)||Xt(e.missingWarn)?e.missingWarn:!0,m=ce(e.fallbackWarn)||Xt(e.fallbackWarn)?e.fallbackWarn:!0,w=!!e.fallbackFormat,k=!!e.unresolving,A=we(e.postTranslation)?e.postTranslation:null,O=se(e.processor)?e.processor:null,C=ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,_=!!e.escapeParameter,b=we(e.messageCompiler)?e.messageCompiler:Xa,v=we(e.messageResolver)?e.messageResolver:Za||_h,E=we(e.localeFallbacker)?e.localeFallbacker:Qa||xh,L=fe(e.fallbackContext)?e.fallbackContext:void 0,I=e,N=fe(I.__datetimeFormatters)?I.__datetimeFormatters:new Map,R=fe(I.__numberFormatters)?I.__numberFormatters:new Map,j=fe(I.__meta)?I.__meta:{};ol++;const K={version:n,cid:ol,locale:o,fallbackLocale:r,messages:i,modifiers:c,pluralRules:u,missing:f,missingWarn:h,fallbackWarn:m,fallbackFormat:w,unresolving:k,postTranslation:A,processor:O,warnHtmlMessage:C,escapeParameter:_,messageCompiler:b,messageResolver:v,localeFallbacker:E,fallbackContext:L,onWarn:t,__meta:j};return K.datetimeFormats=a,K.numberFormats=l,K.__datetimeFormatters=N,K.__numberFormatters=R,__INTLIFY_PROD_DEVTOOLS__&&Eh(K,n,j),K}const ss=e=>({[e]:me()});function is(e,t,n,o,s){const{missing:r,onWarn:i}=e;if(r!==null){const a=r(e,n,t,s);return q(a)?a:t}else return t}function co(e,t,n){const o=e;o.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function Yh(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Vh(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let o=n+1;oHh(n,e)}function Hh(e,t){const n=sh(t);if(n==null)throw ao(0);if(ns(n)===1){const r=ih(n);return e.plural(r.reduce((i,a)=>[...i,rl(e,a)],[]))}else return rl(e,n)}function rl(e,t){const n=ah(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const o=lh(t).reduce((s,r)=>[...s,ls(e,r)],[]);return e.normalize(o)}}function ls(e,t){const n=ns(t);switch(n){case 3:return rr(t,n);case 9:return rr(t,n);case 4:{const o=t;if(ut(o,"k")&&o.k)return e.interpolate(e.named(o.k));if(ut(o,"key")&&o.key)return e.interpolate(e.named(o.key));throw ao(n)}case 5:{const o=t;if(ut(o,"i")&&Ae(o.i))return e.interpolate(e.list(o.i));if(ut(o,"index")&&Ae(o.index))return e.interpolate(e.list(o.index));throw ao(n)}case 6:{const o=t,s=ch(o),r=uh(o);return e.linked(ls(e,r),s?ls(e,s):void 0,e.type)}case 7:return rr(t,n);case 8:return rr(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const sl=e=>e;let xn=me();function il(e,t={}){let n=!1;const o=t.onError||Ff;return t.onError=s=>{n=!0,o(s)},{...oh(e,t),detectError:n}}const qh=(e,t)=>{if(!q(e))throw Ot(dt.NOT_SUPPORT_NON_STRING_MESSAGE);{ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||sl)(e),s=xn[o];if(s)return s;const{code:r,detectError:i}=il(e,t),a=new Function(`return ${r}`)();return i?a:xn[o]=a}};function zh(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&q(e)){ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||sl)(e),s=xn[o];if(s)return s;const{ast:r,detectError:i}=il(e,{...t,location:!1,jit:!0}),a=as(r);return i?a:xn[o]=a}else{const n=e.cacheKey;if(n){const o=xn[n];return o||(xn[n]=as(e))}else return as(e)}}const al=()=>"",ot=e=>we(e);function ll(e,...t){const{fallbackFormat:n,postTranslation:o,unresolving:s,messageCompiler:r,fallbackLocale:i,messages:a}=e,[l,c]=cs(...t),u=ce(c.missingWarn)?c.missingWarn:e.missingWarn,f=ce(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=ce(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,w=q(c.default)||ce(c.default)?ce(c.default)?r?l:()=>l:c.default:n?r?l:()=>l:"",k=n||w!=="",A=os(e,c);h&&Kh(c);let[O,C,_]=m?[l,A,a[A]||me()]:cl(e,l,A,i,f,u),b=O,v=l;if(!m&&!(q(b)||$t(b)||ot(b))&&k&&(b=w,v=b),!m&&(!(q(b)||$t(b)||ot(b))||!q(C)))return s?sr:l;let E=!1;const L=()=>{E=!0},I=ot(b)?b:ul(e,l,C,b,v,L);if(E)return b;const N=Zh(e,C,_,c),R=Ch(N),j=Xh(e,I,R);let K=o?o(j,l):j;if(h&&q(K)&&(K=$f(K)),__INTLIFY_PROD_DEVTOOLS__){const ne={timestamp:Date.now(),key:q(l)?l:ot(b)?b.key:"",locale:C||(ot(b)?b.locale:""),format:q(b)?b:ot(b)?b.source:"",message:K};ne.meta=We({},e.__meta,Uh()||{}),Th(ne)}return K}function Kh(e){Oe(e.list)?e.list=e.list.map(t=>q(t)?ka(t):t):fe(e.named)&&Object.keys(e.named).forEach(t=>{q(e.named[t])&&(e.named[t]=ka(e.named[t]))})}function cl(e,t,n,o,s,r){const{messages:i,onWarn:a,messageResolver:l,localeFallbacker:c}=e,u=c(e,o,n);let f=me(),h,m=null;const w="translate";for(let k=0;ko;return c.locale=n,c.key=t,c}const l=i(o,Jh(e,n,s,o,a,r));return l.locale=n,l.key=t,l.source=o,l}function Xh(e,t,n){return t(n)}function cs(...e){const[t,n,o]=e,s=me();if(!q(t)&&!Ae(t)&&!ot(t)&&!$t(t))throw Ot(dt.INVALID_ARGUMENT);const r=Ae(t)?String(t):(ot(t),t);return Ae(n)?s.plural=n:q(n)?s.default=n:se(n)&&!Qo(n)?s.named=n:Oe(n)&&(s.list=n),Ae(o)?s.plural=o:q(o)?s.default=o:se(o)&&We(s,o),[r,s]}function Jh(e,t,n,o,s,r){return{locale:t,key:n,warnHtmlMessage:s,onError:i=>{throw r&&r(i),i},onCacheKey:i=>yf(t,n,i)}}function Zh(e,t,n,o){const{modifiers:s,pluralRules:r,messageResolver:i,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:s,pluralRules:r,messages:m=>{let w=i(n,m);if(w==null&&u){const[,,k]=cl(u,m,t,a,l,c);w=i(k,m)}if(q(w)||$t(w)){let k=!1;const O=ul(e,m,t,w,m,()=>{k=!0});return k?al:O}else return ot(w)?w:al}};return e.processor&&(h.processor=e.processor),o.list&&(h.list=o.list),o.named&&(h.named=o.named),Ae(o.plural)&&(h.pluralIndex=o.plural),h}function pl(e,...t){const{datetimeFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:i}=e,{__datetimeFormatters:a}=e,[l,c,u,f]=us(...t),h=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,w=os(e,u),k=i(e,s,w);if(!q(l)||l==="")return new Intl.DateTimeFormat(w,f).format(c);let A={},O,C=null;const _="datetime format";for(let E=0;E{dl.includes(l)?i[l]=n[l]:r[l]=n[l]}),q(o)?r.locale=o:se(o)&&(i=o),se(s)&&(i=s),[r.key||"",a,r,i]}function fl(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__datetimeFormatters.has(r)&&o.__datetimeFormatters.delete(r)}}function hl(e,...t){const{numberFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:i}=e,{__numberFormatters:a}=e,[l,c,u,f]=ps(...t),h=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,w=os(e,u),k=i(e,s,w);if(!q(l)||l==="")return new Intl.NumberFormat(w,f).format(c);let A={},O,C=null;const _="number format";for(let E=0;E{gl.includes(l)?i[l]=n[l]:r[l]=n[l]}),q(o)?r.locale=o:se(o)&&(i=o),se(s)&&(i=s),[r.key||"",a,r,i]}function ml(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__numberFormatters.has(r)&&o.__numberFormatters.delete(r)}}rh();/*! + */function rh(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function $t(e){return fe(e)&&ns(e)===0&&(ut(e,"b")||ut(e,"body"))}const Ii=["b","body"];function sh(e){return Zt(e,Ii)}const Fi=["c","cases"];function ah(e){return Zt(e,Fi,[])}const Mi=["s","static"];function ih(e){return Zt(e,Mi)}const Pi=["i","items"];function lh(e){return Zt(e,Pi,[])}const Bi=["t","type"];function ns(e){return Zt(e,Bi)}const Di=["v","value"];function rr(e,t){const n=Zt(e,Di);if(n!=null)return n;throw io(t)}const Ri=["m","modifier"];function ch(e){return Zt(e,Ri)}const Wi=["k","key"];function uh(e){const t=Zt(e,Wi);if(t)return t;throw io(6)}function Zt(e,t,n){for(let o=0;o{a===void 0?a=i:a+=i},h[1]=()=>{a!==void 0&&(t.push(a),a=void 0)},h[2]=()=>{h[0](),s++},h[3]=()=>{if(s>0)s--,o=4,h[0]();else{if(s=0,a===void 0||(a=gh(a),a===!1))return!1;h[1]()}};function m(){const w=e[n+1];if(o===5&&w==="'"||o===6&&w==='"')return n++,i="\\"+w,h[0](),!0}for(;o!==null;)if(n++,r=e[n],!(r==="\\"&&m())){if(l=hh(r),f=Qt[o],c=f[l]||f.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 ji=new Map;function _h(e,t){return fe(e)?e[t]:null}function bh(e,t){if(!fe(e))return null;let n=ji.get(t);if(n||(n=mh(t),n&&ji.set(t,n)),!n)return null;const o=n.length;let s=e,r=0;for(;re,vh=e=>"",wh="text",kh=e=>e.length===0?"":Af(e),$h=Cf;function Gi(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Oh(e){const t=Ae(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ae(e.named.count)||Ae(e.named.n))?Ae(e.named.count)?e.named.count:Ae(e.named.n)?e.named.n:t:t}function Nh(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Ch(e={}){const t=e.locale,n=Oh(e),o=fe(e.pluralRules)&&q(t)&&we(e.pluralRules[t])?e.pluralRules[t]:Gi,s=fe(e.pluralRules)&&q(t)&&we(e.pluralRules[t])?Gi:void 0,r=O=>O[o(n,O.length,s)],a=e.list||[],i=O=>a[O],l=e.named||me();Ae(e.pluralIndex)&&Nh(n,l);const c=O=>l[O];function u(O){const C=we(e.messages)?e.messages(O):fe(e.messages)?e.messages[O]:!1;return C||(e.parent?e.parent.message(O):vh)}const f=O=>e.modifiers?e.modifiers[O]:yh,h=se(e.processor)&&we(e.processor.normalize)?e.processor.normalize:kh,m=se(e.processor)&&we(e.processor.interpolate)?e.processor.interpolate:$h,w=se(e.processor)&&q(e.processor.type)?e.processor.type:wh,A={list:i,named:c,plural:r,linked:(O,...C)=>{const[_,b]=C;let v="text",E="";C.length===1?fe(_)?(E=_.modifier||E,v=_.type||v):q(_)&&(E=_||E):C.length===2&&(q(_)&&(E=_||E),q(b)&&(v=b||v));const L=u(O)(A),x=v==="vnode"&&Oe(L)&&E?L[0]:L;return E?f(E)(x,v):x},message:u,type:w,interpolate:m,normalize:h,values:We(me(),a,l)};return A}let lo=null;function Ah(e){lo=e}function Eh(e,t,n){lo&&lo.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const Th=Lh("function:translate");function Lh(e){return t=>lo&&lo.emit(e,t)}const Sh=es.__EXTEND_POINT__,fn=er(Sh),xh={FALLBACK_TO_TRANSLATE:fn(),CANNOT_FORMAT_NUMBER:fn(),FALLBACK_TO_NUMBER_FORMAT:fn(),CANNOT_FORMAT_DATE:fn(),FALLBACK_TO_DATE_FORMAT:fn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:fn(),__EXTEND_POINT__:fn()},Yi=te.__EXTEND_POINT__,hn=er(Yi),dt={INVALID_ARGUMENT:Yi,INVALID_DATE_ARGUMENT:hn(),INVALID_ISO_DATE_ARGUMENT:hn(),NOT_SUPPORT_NON_STRING_MESSAGE:hn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:hn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:hn(),NOT_SUPPORT_LOCALE_TYPE:hn(),__EXTEND_POINT__:hn()};function Ot(e){return Tn(e,null,void 0)}function os(e,t){return t.locale!=null?Vi(t.locale):Vi(e.locale)}let rs;function Vi(e){if(q(e))return e;if(we(e)){if(e.resolvedOnce&&rs!=null)return rs;if(e.constructor.name==="Function"){const t=e();if(Nf(t))throw Ot(dt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return rs=t}else throw Ot(dt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Ot(dt.NOT_SUPPORT_LOCALE_TYPE)}function Ih(e,t,n){return[...new Set([n,...Oe(t)?t:fe(t)?Object.keys(t):q(t)?[t]:[n]])]}function Hi(e,t,n){const o=q(n)?n:xn,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let r=s.__localeChainCache.get(o);if(!r){r=[];let a=[n];for(;Oe(a);)a=qi(r,a,t);const i=Oe(t)||!se(t)?t:t.default?t.default:null;a=q(i)?[i]:i,Oe(a)&&qi(r,a,!1),s.__localeChainCache.set(o,r)}return r}function qi(e,t,n){let o=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Bh(){return{upper:(e,t)=>t==="text"&&q(e)?e.toUpperCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&q(e)?e.toLowerCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&q(e)?Ki(e):t==="vnode"&&fe(e)&&"__v_isVNode"in e?Ki(e.children):e}}let Xi;function Ji(e){Xi=e}let Zi;function Dh(e){Zi=e}let Qi;function Rh(e){Qi=e}let el=null;const Wh=e=>{el=e},Uh=()=>el;let tl=null;const nl=e=>{tl=e},jh=()=>tl;let ol=0;function Gh(e={}){const t=we(e.onWarn)?e.onWarn:bf,n=q(e.version)?e.version:Ph,o=q(e.locale)||we(e.locale)?e.locale:xn,s=we(o)?xn:o,r=Oe(e.fallbackLocale)||se(e.fallbackLocale)||q(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,a=se(e.messages)?e.messages:ss(s),i=se(e.datetimeFormats)?e.datetimeFormats:ss(s),l=se(e.numberFormats)?e.numberFormats:ss(s),c=We(me(),e.modifiers,Bh()),u=e.pluralRules||me(),f=we(e.missing)?e.missing:null,h=ce(e.missingWarn)||Xt(e.missingWarn)?e.missingWarn:!0,m=ce(e.fallbackWarn)||Xt(e.fallbackWarn)?e.fallbackWarn:!0,w=!!e.fallbackFormat,k=!!e.unresolving,A=we(e.postTranslation)?e.postTranslation:null,O=se(e.processor)?e.processor:null,C=ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,_=!!e.escapeParameter,b=we(e.messageCompiler)?e.messageCompiler:Xi,v=we(e.messageResolver)?e.messageResolver:Zi||_h,E=we(e.localeFallbacker)?e.localeFallbacker:Qi||Ih,L=fe(e.fallbackContext)?e.fallbackContext:void 0,x=e,N=fe(x.__datetimeFormatters)?x.__datetimeFormatters:new Map,R=fe(x.__numberFormatters)?x.__numberFormatters:new Map,j=fe(x.__meta)?x.__meta:{};ol++;const K={version:n,cid:ol,locale:o,fallbackLocale:r,messages:a,modifiers:c,pluralRules:u,missing:f,missingWarn:h,fallbackWarn:m,fallbackFormat:w,unresolving:k,postTranslation:A,processor:O,warnHtmlMessage:C,escapeParameter:_,messageCompiler:b,messageResolver:v,localeFallbacker:E,fallbackContext:L,onWarn:t,__meta:j};return K.datetimeFormats=i,K.numberFormats=l,K.__datetimeFormatters=N,K.__numberFormatters=R,__INTLIFY_PROD_DEVTOOLS__&&Eh(K,n,j),K}const ss=e=>({[e]:me()});function as(e,t,n,o,s){const{missing:r,onWarn:a}=e;if(r!==null){const i=r(e,n,t,s);return q(i)?i:t}else return t}function co(e,t,n){const o=e;o.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function Yh(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Vh(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let o=n+1;oHh(n,e)}function Hh(e,t){const n=sh(t);if(n==null)throw io(0);if(ns(n)===1){const r=ah(n);return e.plural(r.reduce((a,i)=>[...a,rl(e,i)],[]))}else return rl(e,n)}function rl(e,t){const n=ih(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const o=lh(t).reduce((s,r)=>[...s,ls(e,r)],[]);return e.normalize(o)}}function ls(e,t){const n=ns(t);switch(n){case 3:return rr(t,n);case 9:return rr(t,n);case 4:{const o=t;if(ut(o,"k")&&o.k)return e.interpolate(e.named(o.k));if(ut(o,"key")&&o.key)return e.interpolate(e.named(o.key));throw io(n)}case 5:{const o=t;if(ut(o,"i")&&Ae(o.i))return e.interpolate(e.list(o.i));if(ut(o,"index")&&Ae(o.index))return e.interpolate(e.list(o.index));throw io(n)}case 6:{const o=t,s=ch(o),r=uh(o);return e.linked(ls(e,r),s?ls(e,s):void 0,e.type)}case 7:return rr(t,n);case 8:return rr(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const sl=e=>e;let In=me();function al(e,t={}){let n=!1;const o=t.onError||Ff;return t.onError=s=>{n=!0,o(s)},{...oh(e,t),detectError:n}}const qh=(e,t)=>{if(!q(e))throw Ot(dt.NOT_SUPPORT_NON_STRING_MESSAGE);{ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||sl)(e),s=In[o];if(s)return s;const{code:r,detectError:a}=al(e,t),i=new Function(`return ${r}`)();return a?i:In[o]=i}};function zh(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&q(e)){ce(t.warnHtmlMessage)&&t.warnHtmlMessage;const o=(t.onCacheKey||sl)(e),s=In[o];if(s)return s;const{ast:r,detectError:a}=al(e,{...t,location:!1,jit:!0}),i=is(r);return a?i:In[o]=i}else{const n=e.cacheKey;if(n){const o=In[n];return o||(In[n]=is(e))}else return is(e)}}const il=()=>"",ot=e=>we(e);function ll(e,...t){const{fallbackFormat:n,postTranslation:o,unresolving:s,messageCompiler:r,fallbackLocale:a,messages:i}=e,[l,c]=cs(...t),u=ce(c.missingWarn)?c.missingWarn:e.missingWarn,f=ce(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,h=ce(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,w=q(c.default)||ce(c.default)?ce(c.default)?r?l:()=>l:c.default:n?r?l:()=>l:"",k=n||w!=="",A=os(e,c);h&&Kh(c);let[O,C,_]=m?[l,A,i[A]||me()]:cl(e,l,A,a,f,u),b=O,v=l;if(!m&&!(q(b)||$t(b)||ot(b))&&k&&(b=w,v=b),!m&&(!(q(b)||$t(b)||ot(b))||!q(C)))return s?sr:l;let E=!1;const L=()=>{E=!0},x=ot(b)?b:ul(e,l,C,b,v,L);if(E)return b;const N=Zh(e,C,_,c),R=Ch(N),j=Xh(e,x,R);let K=o?o(j,l):j;if(h&&q(K)&&(K=$f(K)),__INTLIFY_PROD_DEVTOOLS__){const ne={timestamp:Date.now(),key:q(l)?l:ot(b)?b.key:"",locale:C||(ot(b)?b.locale:""),format:q(b)?b:ot(b)?b.source:"",message:K};ne.meta=We({},e.__meta,Uh()||{}),Th(ne)}return K}function Kh(e){Oe(e.list)?e.list=e.list.map(t=>q(t)?ki(t):t):fe(e.named)&&Object.keys(e.named).forEach(t=>{q(e.named[t])&&(e.named[t]=ki(e.named[t]))})}function cl(e,t,n,o,s,r){const{messages:a,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,o,n);let f=me(),h,m=null;const w="translate";for(let k=0;ko;return c.locale=n,c.key=t,c}const l=a(o,Jh(e,n,s,o,i,r));return l.locale=n,l.key=t,l.source=o,l}function Xh(e,t,n){return t(n)}function cs(...e){const[t,n,o]=e,s=me();if(!q(t)&&!Ae(t)&&!ot(t)&&!$t(t))throw Ot(dt.INVALID_ARGUMENT);const r=Ae(t)?String(t):(ot(t),t);return Ae(n)?s.plural=n:q(n)?s.default=n:se(n)&&!Qo(n)?s.named=n:Oe(n)&&(s.list=n),Ae(o)?s.plural=o:q(o)?s.default=o:se(o)&&We(s,o),[r,s]}function Jh(e,t,n,o,s,r){return{locale:t,key:n,warnHtmlMessage:s,onError:a=>{throw r&&r(a),a},onCacheKey:a=>yf(t,n,a)}}function Zh(e,t,n,o){const{modifiers:s,pluralRules:r,messageResolver:a,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,h={locale:t,modifiers:s,pluralRules:r,messages:m=>{let w=a(n,m);if(w==null&&u){const[,,k]=cl(u,m,t,i,l,c);w=a(k,m)}if(q(w)||$t(w)){let k=!1;const O=ul(e,m,t,w,m,()=>{k=!0});return k?il:O}else return ot(w)?w:il}};return e.processor&&(h.processor=e.processor),o.list&&(h.list=o.list),o.named&&(h.named=o.named),Ae(o.plural)&&(h.pluralIndex=o.plural),h}function pl(e,...t){const{datetimeFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:a}=e,{__datetimeFormatters:i}=e,[l,c,u,f]=us(...t),h=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,w=os(e,u),k=a(e,s,w);if(!q(l)||l==="")return new Intl.DateTimeFormat(w,f).format(c);let A={},O,C=null;const _="datetime format";for(let E=0;E{dl.includes(l)?a[l]=n[l]:r[l]=n[l]}),q(o)?r.locale=o:se(o)&&(a=o),se(s)&&(a=s),[r.key||"",i,r,a]}function fl(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__datetimeFormatters.has(r)&&o.__datetimeFormatters.delete(r)}}function hl(e,...t){const{numberFormats:n,unresolving:o,fallbackLocale:s,onWarn:r,localeFallbacker:a}=e,{__numberFormatters:i}=e,[l,c,u,f]=ps(...t),h=ce(u.missingWarn)?u.missingWarn:e.missingWarn;ce(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,w=os(e,u),k=a(e,s,w);if(!q(l)||l==="")return new Intl.NumberFormat(w,f).format(c);let A={},O,C=null;const _="number format";for(let E=0;E{gl.includes(l)?a[l]=n[l]:r[l]=n[l]}),q(o)?r.locale=o:se(o)&&(a=o),se(s)&&(a=s),[r.key||"",i,r,a]}function ml(e,t,n){const o=e;for(const s in n){const r=`${t}__${s}`;o.__numberFormatters.has(r)&&o.__numberFormatters.delete(r)}}rh();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const Qh="9.14.5";function eg(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Bt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Bt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1)}const tg=Ih.__EXTEND_POINT__,Rt=er(tg);Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt();const _l=dt.__EXTEND_POINT__,Ke=er(_l),Ie={UNEXPECTED_RETURN_TYPE:_l,INVALID_ARGUMENT:Ke(),MUST_BE_CALL_SETUP_TOP:Ke(),NOT_INSTALLED:Ke(),NOT_AVAILABLE_IN_LEGACY_MODE:Ke(),REQUIRED_VALUE:Ke(),INVALID_VALUE:Ke(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ke(),NOT_INSTALLED_WITH_PROVIDE:Ke(),UNEXPECTED_ERROR:Ke(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ke(),BRIDGE_SUPPORT_VUE_2_ONLY:Ke(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ke(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ke(),__EXTEND_POINT__:Ke()};function Me(e,...t){return Tn(e,null,void 0)}const ds=Kt("__translateVNode"),fs=Kt("__datetimeParts"),hs=Kt("__numberParts"),bl=Kt("__setPluralRules"),yl=Kt("__injectWithOption"),gs=Kt("__dispose");function uo(e){if(!fe(e)||$t(e))return e;for(const t in e)if(ut(e,t))if(!t.includes("."))fe(e[t])&&uo(e[t]);else{const n=t.split("."),o=n.length-1;let s=e,r=!1;for(let i=0;i{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(i[l]=i[l]||me(),nr(c,i[l])):nr(c,i)}else q(a)&&nr(JSON.parse(a),i)}),s==null&&r)for(const a in i)ut(i,a)&&uo(i[a]);return i}function vl(e){return e.type}function wl(e,t,n){let o=fe(t.messages)?t.messages:me();"__i18nGlobal"in n&&(o=ir(e.locale.value,{messages:o,__i18n:n.__i18nGlobal}));const s=Object.keys(o);s.length&&s.forEach(r=>{e.mergeLocaleMessage(r,o[r])});{if(fe(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(fe(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function kl(e){return ve(Zn,null,e,0)}const $l="__INTLIFY_META__",Ol=()=>[],ng=()=>!1;let Nl=0;function Cl(e){return(t,n,o,s)=>e(n,o,Mt()||void 0,s)}const og=()=>{const e=Mt();let t=null;return e&&(t=vl(e)[$l])?{[$l]:t}:null};function ms(e={},t){const{__root:n,__injectWithOption:o}=e,s=n===void 0,r=e.flatJson,i=Zo?re:jn,a=!!e.translateExistCompatible;let l=ce(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:q(e.locale)?e.locale:In),u=i(n&&l?n.fallbackLocale.value:q(e.fallbackLocale)||Oe(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=i(ir(c.value,e)),h=i(se(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=i(se(e.numberFormats)?e.numberFormats:{[c.value]:{}});let w=n?n.missingWarn:ce(e.missingWarn)||Xt(e.missingWarn)?e.missingWarn:!0,k=n?n.fallbackWarn:ce(e.fallbackWarn)||Xt(e.fallbackWarn)?e.fallbackWarn:!0,A=n?n.fallbackRoot:ce(e.fallbackRoot)?e.fallbackRoot:!0,O=!!e.fallbackFormat,C=we(e.missing)?e.missing:null,_=we(e.missing)?Cl(e.missing):null,b=we(e.postTranslation)?e.postTranslation:null,v=n?n.warnHtmlMessage:ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,E=!!e.escapeParameter;const L=n?n.modifiers:se(e.modifiers)?e.modifiers:{};let I=e.pluralRules||n&&n.pluralRules,N;N=(()=>{s&&nl(null);const T={version:Qh,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:L,pluralRules:I,missing:_===null?void 0:_,missingWarn:w,fallbackWarn:k,fallbackFormat:O,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:v,escapeParameter:E,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=h.value,T.numberFormats=m.value,T.__datetimeFormatters=se(N)?N.__datetimeFormatters:void 0,T.__numberFormatters=se(N)?N.__numberFormatters:void 0;const P=Gh(T);return s&&nl(P),P})(),co(N,c.value,u.value);function j(){return[c.value,u.value,f.value,h.value,m.value]}const K=ie({get:()=>c.value,set:T=>{c.value=T,N.locale=c.value}}),ne=ie({get:()=>u.value,set:T=>{u.value=T,N.fallbackLocale=u.value,co(N,c.value,T)}}),ue=ie(()=>f.value),z=ie(()=>h.value),W=ie(()=>m.value);function X(){return we(b)?b:null}function le(T){b=T,N.postTranslation=T}function Ee(){return C}function Nt(T){T!==null&&(_=Cl(T)),C=T,N.missing=_}const xe=(T,P,Z,ae,ke,qe)=>{j();let Ue;try{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=n?jh():void 0),Ue=T(N)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=void 0)}if(Z!=="translate exists"&&Ae(Ue)&&Ue===sr||Z==="translate exists"&&!Ue){const[mn,ws]=P();return n&&A?ae(n):ke(mn)}else{if(qe(Ue))return Ue;throw Me(Ie.UNEXPECTED_RETURN_TYPE)}};function Pe(...T){return xe(P=>Reflect.apply(ll,null,[P,...T]),()=>cs(...T),"translate",P=>Reflect.apply(P.t,P,[...T]),P=>P,P=>q(P))}function nn(...T){const[P,Z,ae]=T;if(ae&&!fe(ae))throw Me(Ie.INVALID_ARGUMENT);return Pe(P,Z,We({resolvedMessage:!0},ae||{}))}function on(...T){return xe(P=>Reflect.apply(pl,null,[P,...T]),()=>us(...T),"datetime format",P=>Reflect.apply(P.d,P,[...T]),()=>za,P=>q(P))}function gn(...T){return xe(P=>Reflect.apply(hl,null,[P,...T]),()=>ps(...T),"number format",P=>Reflect.apply(P.n,P,[...T]),()=>za,P=>q(P))}function ft(T){return T.map(P=>q(P)||Ae(P)||ce(P)?kl(String(P)):P)}const jt={normalize:ft,interpolate:T=>T,type:"vnode"};function rn(...T){return xe(P=>{let Z;const ae=P;try{ae.processor=jt,Z=Reflect.apply(ll,null,[ae,...T])}finally{ae.processor=null}return Z},()=>cs(...T),"translate",P=>P[ds](...T),P=>[kl(P)],P=>Oe(P))}function rt(...T){return xe(P=>Reflect.apply(hl,null,[P,...T]),()=>ps(...T),"number format",P=>P[hs](...T),Ol,P=>q(P)||Oe(P))}function Fn(...T){return xe(P=>Reflect.apply(pl,null,[P,...T]),()=>us(...T),"datetime format",P=>P[fs](...T),Ol,P=>q(P)||Oe(P))}function g(T){I=T,N.pluralRules=I}function $(T,P){return xe(()=>{if(!T)return!1;const Z=q(P)?P:c.value,ae=D(Z),ke=N.messageResolver(ae,T);return a?ke!=null:$t(ke)||ot(ke)||q(ke)},()=>[T],"translate exists",Z=>Reflect.apply(Z.te,Z,[T,P]),ng,Z=>ce(Z))}function y(T){let P=null;const Z=Ha(N,u.value,c.value);for(let ae=0;ae{l&&(c.value=T,N.locale=T,co(N,c.value,u.value))}),lt(n.fallbackLocale,T=>{l&&(u.value=T,N.fallbackLocale=T,co(N,c.value,u.value))}));const U={id:Nl,locale:K,fallbackLocale:ne,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,co(N,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:ue,get modifiers(){return L},get pluralRules(){return I||{}},get isGlobal(){return s},get missingWarn(){return w},set missingWarn(T){w=T,N.missingWarn=w},get fallbackWarn(){return k},set fallbackWarn(T){k=T,N.fallbackWarn=k},get fallbackRoot(){return A},set fallbackRoot(T){A=T},get fallbackFormat(){return O},set fallbackFormat(T){O=T,N.fallbackFormat=O},get warnHtmlMessage(){return v},set warnHtmlMessage(T){v=T,N.warnHtmlMessage=T},get escapeParameter(){return E},set escapeParameter(T){E=T,N.escapeParameter=T},t:Pe,getLocaleMessage:D,setLocaleMessage:B,mergeLocaleMessage:Y,getPostTranslationHandler:X,setPostTranslationHandler:le,getMissingHandler:Ee,setMissingHandler:Nt,[bl]:g};return U.datetimeFormats=z,U.numberFormats=W,U.rt=nn,U.te=$,U.tm=x,U.d=on,U.n=gn,U.getDateTimeFormat=G,U.setDateTimeFormat=p,U.mergeDateTimeFormat=d,U.getNumberFormat=S,U.setNumberFormat=F,U.mergeNumberFormat=V,U[yl]=o,U[ds]=rn,U[fs]=Fn,U[hs]=rt,U}function rg(e){const t=q(e.locale)?e.locale:In,n=q(e.fallbackLocale)||Oe(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,o=we(e.missing)?e.missing:void 0,s=ce(e.silentTranslationWarn)||Xt(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=ce(e.silentFallbackWarn)||Xt(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=ce(e.fallbackRoot)?e.fallbackRoot:!0,a=!!e.formatFallbackMessages,l=se(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=we(e.postTranslation)?e.postTranslation:void 0,f=q(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,m=ce(e.sync)?e.sync:!0;let w=e.messages;if(se(e.sharedMessages)){const E=e.sharedMessages;w=Object.keys(E).reduce((I,N)=>{const R=I[N]||(I[N]={});return We(R,E[N]),I},w||{})}const{__i18n:k,__root:A,__injectWithOption:O}=e,C=e.datetimeFormats,_=e.numberFormats,b=e.flatJson,v=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:w,flatJson:b,datetimeFormats:C,numberFormats:_,missing:o,missingWarn:s,fallbackWarn:r,fallbackRoot:i,fallbackFormat:a,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:m,translateExistCompatible:v,__i18n:k,__root:A,__injectWithOption:O}}function _s(e={},t){{const n=ms(rg(e)),{__extender:o}=e,s={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 ce(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(r){n.missingWarn=ce(r)?!r:r},get silentFallbackWarn(){return ce(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(r){n.fallbackWarn=ce(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[i,a,l]=r,c={};let u=null,f=null;if(!q(i))throw Me(Ie.INVALID_ARGUMENT);const h=i;return q(a)?c.locale=a:Oe(a)?u=a:se(a)&&(f=a),Oe(l)?u=l:se(l)&&(f=l),Reflect.apply(n.t,n,[h,u||f||{},c])},rt(...r){return Reflect.apply(n.rt,n,[...r])},tc(...r){const[i,a,l]=r,c={plural:1};let u=null,f=null;if(!q(i))throw Me(Ie.INVALID_ARGUMENT);const h=i;return q(a)?c.locale=a:Ae(a)?c.plural=a:Oe(a)?u=a:se(a)&&(f=a),q(l)?c.locale=l:Oe(l)?u=l:se(l)&&(f=l),Reflect.apply(n.t,n,[h,u||f||{},c])},te(r,i){return n.te(r,i)},tm(r){return n.tm(r)},getLocaleMessage(r){return n.getLocaleMessage(r)},setLocaleMessage(r,i){n.setLocaleMessage(r,i)},mergeLocaleMessage(r,i){n.mergeLocaleMessage(r,i)},d(...r){return Reflect.apply(n.d,n,[...r])},getDateTimeFormat(r){return n.getDateTimeFormat(r)},setDateTimeFormat(r,i){n.setDateTimeFormat(r,i)},mergeDateTimeFormat(r,i){n.mergeDateTimeFormat(r,i)},n(...r){return Reflect.apply(n.n,n,[...r])},getNumberFormat(r){return n.getNumberFormat(r)},setNumberFormat(r,i){n.setNumberFormat(r,i)},mergeNumberFormat(r,i){n.mergeNumberFormat(r,i)},getChoiceIndex(r,i){return-1}};return s.__extender=o,s}}const bs={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function sg({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((o,s)=>[...o,...s.type===de?s.children:[s]],[]):t.reduce((n,o)=>{const s=e[o];return s&&(n[o]=s()),n},me())}function Al(e){return de}const El=zn({name:"i18n-t",props:We({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ae(e)||!isNaN(e)}},bs),setup(e,t){const{slots:n,attrs:o}=t,s=e.i18n||en({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(f=>f!=="_"),i=me();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=q(e.plural)?+e.plural:e.plural);const a=sg(t,r),l=s[ds](e.keypath,a,i),c=We(me(),o),u=q(e.tag)||fe(e.tag)?e.tag:Al();return ea(u,c,l)}}});function ig(e){return Oe(e)&&!q(e[0])}function Tl(e,t,n,o){const{slots:s,attrs:r}=t;return()=>{const i={part:!0};let a=me();e.locale&&(i.locale=e.locale),q(e.format)?i.key=e.format:fe(e.format)&&(q(e.format.key)&&(i.key=e.format.key),a=Object.keys(e.format).reduce((h,m)=>n.includes(m)?We(me(),h,{[m]:e.format[m]}):h,me()));const l=o(e.value,i,a);let c=[i.key];Oe(l)?c=l.map((h,m)=>{const w=s[h.type],k=w?w({[h.type]:h.value,index:m,parts:l}):[h.value];return ig(k)&&(k[0].key=`${h.type}-${m}`),k}):q(l)&&(c=[l]);const u=We(me(),r),f=q(e.tag)||fe(e.tag)?e.tag:Al();return ea(f,u,c)}}const Ll=zn({name:"i18n-n",props:We({value:{type:Number,required:!0},format:{type:[String,Object]}},bs),setup(e,t){const n=e.i18n||en({useScope:e.scope,__useComponent:!0});return Tl(e,t,gl,(...o)=>n[hs](...o))}}),Sl=zn({name:"i18n-d",props:We({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},bs),setup(e,t){const n=e.i18n||en({useScope:e.scope,__useComponent:!0});return Tl(e,t,dl,(...o)=>n[fs](...o))}});function ag(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 lg(e){const t=i=>{const{instance:a,modifiers:l,value:c}=i;if(!a||!a.$)throw Me(Ie.UNEXPECTED_ERROR);const u=ag(e,a.$),f=Il(c);return[Reflect.apply(u.t,u,[...xl(f)]),u]};return{created:(i,a)=>{const[l,c]=t(a);Zo&&e.global===c&&(i.__i18nWatcher=lt(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{Zo&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,c=Il(a);i.textContent=Reflect.apply(l.t,l,[...xl(c)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function Il(e){if(q(e))return{path:e};if(se(e)){if(!("path"in e))throw Me(Ie.REQUIRED_VALUE,"path");return e}else throw Me(Ie.INVALID_VALUE)}function xl(e){const{path:t,locale:n,args:o,choice:s,plural:r}=e,i={},a=o||{};return q(n)&&(i.locale=n),Ae(s)&&(i.plural=s),Ae(r)&&(i.plural=r),[t,a,i]}function cg(e,t,...n){const o=se(n[0])?n[0]:{},s=!!o.useI18nComponentName;(ce(o.globalInstall)?o.globalInstall:!0)&&([s?"i18n":El.name,"I18nT"].forEach(i=>e.component(i,El)),[Ll.name,"I18nN"].forEach(i=>e.component(i,Ll)),[Sl.name,"I18nD"].forEach(i=>e.component(i,Sl))),e.directive("t",lg(t))}function ug(e,t,n){return{beforeCreate(){const o=Mt();if(!o)throw Me(Ie.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const r=s.i18n;if(s.__i18n&&(r.__i18n=s.__i18n),r.__root=t,this===this.$root)this.$i18n=Fl(e,r);else{r.__injectWithOption=!0,r.__extender=n.__vueI18nExtend,this.$i18n=_s(r);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=Fl(e,s);else{this.$i18n=_s({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&wl(t,s,s),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,i)=>this.$i18n.te(r,i),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=Mt();if(!o)throw Me(Ie.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(o),delete this.$i18n}}}function Fl(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[bl](t.pluralizationRules||e.pluralizationRules);const n=ir(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 pg=Kt("global-vue-i18n");function dg(e={},t){const n=__VUE_I18N_LEGACY_API__&&ce(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=ce(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,r=new Map,[i,a]=fg(e,n),l=Kt("");function c(h){return r.get(h)||null}function u(h,m){r.set(h,m)}function f(h){r.delete(h)}{const h={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return s},async install(m,...w){if(m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,h),se(w[0])){const O=w[0];h.__composerExtend=O.__composerExtend,h.__vueI18nExtend=O.__vueI18nExtend}let k=null;!n&&o&&(k=kg(m,h.global)),__VUE_I18N_FULL_INSTALL__&&cg(m,h,...w),__VUE_I18N_LEGACY_API__&&n&&m.mixin(ug(a,a.__composer,h));const A=m.unmount;m.unmount=()=>{k&&k(),h.dispose(),A()}},get global(){return a},dispose(){i.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:f};return h}}function en(e={}){const t=Mt();if(t==null)throw Me(Ie.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Me(Ie.NOT_INSTALLED);const n=hg(t),o=mg(n),s=vl(t),r=gg(e,s);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw Me(Ie.NOT_AVAILABLE_IN_LEGACY_MODE);return vg(t,r,o,e)}if(r==="global")return wl(o,e,s),o;if(r==="parent"){let l=_g(n,t,e.__useComponent);return l==null&&(l=o),l}const i=n;let a=i.__getInstance(t);if(a==null){const l=We({},e);"__i18n"in s&&(l.__i18n=s.__i18n),o&&(l.__root=o),a=ms(l),i.__composerExtend&&(a[gs]=i.__composerExtend(a)),yg(i,t,a),i.__setInstance(t,a)}return a}function fg(e,t,n){const o=hr();{const s=__VUE_I18N_LEGACY_API__&&t?o.run(()=>_s(e)):o.run(()=>ms(e));if(s==null)throw Me(Ie.UNEXPECTED_ERROR);return[o,s]}}function hg(e){{const t=De(e.isCE?pg:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Me(e.isCE?Ie.NOT_INSTALLED_WITH_PROVIDE:Ie.UNEXPECTED_ERROR);return t}}function gg(e,t){return Qo(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function mg(e){return e.mode==="composition"?e.global:e.global.__composer}function _g(e,t,n=!1){let o=null;const s=t.root;let r=bg(t,n);for(;r!=null;){const i=e;if(e.mode==="composition")o=i.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const a=i.__getInstance(r);a!=null&&(o=a.__composer,n&&o&&!o[yl]&&(o=null))}if(o!=null||s===r)break;r=r.parent}return o}function bg(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function yg(e,t,n){qt(()=>{},t),Uo(()=>{const o=n;e.__deleteInstance(t);const s=o[gs];s&&(s(),delete o[gs])},t)}function vg(e,t,n,o={}){const s=t==="local",r=jn(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Me(Ie.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=ce(o.inheritLocale)?o.inheritLocale:!q(o.locale),a=re(!s||i?n.locale.value:q(o.locale)?o.locale:In),l=re(!s||i?n.fallbackLocale.value:q(o.fallbackLocale)||Oe(o.fallbackLocale)||se(o.fallbackLocale)||o.fallbackLocale===!1?o.fallbackLocale:a.value),c=re(ir(a.value,o)),u=re(se(o.datetimeFormats)?o.datetimeFormats:{[a.value]:{}}),f=re(se(o.numberFormats)?o.numberFormats:{[a.value]:{}}),h=s?n.missingWarn:ce(o.missingWarn)||Xt(o.missingWarn)?o.missingWarn:!0,m=s?n.fallbackWarn:ce(o.fallbackWarn)||Xt(o.fallbackWarn)?o.fallbackWarn:!0,w=s?n.fallbackRoot:ce(o.fallbackRoot)?o.fallbackRoot:!0,k=!!o.fallbackFormat,A=we(o.missing)?o.missing:null,O=we(o.postTranslation)?o.postTranslation:null,C=s?n.warnHtmlMessage:ce(o.warnHtmlMessage)?o.warnHtmlMessage:!0,_=!!o.escapeParameter,b=s?n.modifiers:se(o.modifiers)?o.modifiers:{},v=o.pluralRules||s&&n.pluralRules;function E(){return[a.value,l.value,c.value,u.value,f.value]}const L=ie({get:()=>r.value?r.value.locale.value:a.value,set:y=>{r.value&&(r.value.locale.value=y),a.value=y}}),I=ie({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:y=>{r.value&&(r.value.fallbackLocale.value=y),l.value=y}}),N=ie(()=>r.value?r.value.messages.value:c.value),R=ie(()=>u.value),j=ie(()=>f.value);function K(){return r.value?r.value.getPostTranslationHandler():O}function ne(y){r.value&&r.value.setPostTranslationHandler(y)}function ue(){return r.value?r.value.getMissingHandler():A}function z(y){r.value&&r.value.setMissingHandler(y)}function W(y){return E(),y()}function X(...y){return r.value?W(()=>Reflect.apply(r.value.t,null,[...y])):W(()=>"")}function le(...y){return r.value?Reflect.apply(r.value.rt,null,[...y]):""}function Ee(...y){return r.value?W(()=>Reflect.apply(r.value.d,null,[...y])):W(()=>"")}function Nt(...y){return r.value?W(()=>Reflect.apply(r.value.n,null,[...y])):W(()=>"")}function xe(y){return r.value?r.value.tm(y):{}}function Pe(y,x){return r.value?r.value.te(y,x):!1}function nn(y){return r.value?r.value.getLocaleMessage(y):{}}function on(y,x){r.value&&(r.value.setLocaleMessage(y,x),c.value[y]=x)}function gn(y,x){r.value&&r.value.mergeLocaleMessage(y,x)}function ft(y){return r.value?r.value.getDateTimeFormat(y):{}}function Ut(y,x){r.value&&(r.value.setDateTimeFormat(y,x),u.value[y]=x)}function jt(y,x){r.value&&r.value.mergeDateTimeFormat(y,x)}function rn(y){return r.value?r.value.getNumberFormat(y):{}}function rt(y,x){r.value&&(r.value.setNumberFormat(y,x),f.value[y]=x)}function Fn(y,x){r.value&&r.value.mergeNumberFormat(y,x)}const g={get id(){return r.value?r.value.id:-1},locale:L,fallbackLocale:I,messages:N,datetimeFormats:R,numberFormats:j,get inheritLocale(){return r.value?r.value.inheritLocale:i},set inheritLocale(y){r.value&&(r.value.inheritLocale=y)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:b},get pluralRules(){return r.value?r.value.pluralRules:v},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:h},set missingWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackWarn(){return r.value?r.value.fallbackWarn:m},set fallbackWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackRoot(){return r.value?r.value.fallbackRoot:w},set fallbackRoot(y){r.value&&(r.value.fallbackRoot=y)},get fallbackFormat(){return r.value?r.value.fallbackFormat:k},set fallbackFormat(y){r.value&&(r.value.fallbackFormat=y)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:C},set warnHtmlMessage(y){r.value&&(r.value.warnHtmlMessage=y)},get escapeParameter(){return r.value?r.value.escapeParameter:_},set escapeParameter(y){r.value&&(r.value.escapeParameter=y)},t:X,getPostTranslationHandler:K,setPostTranslationHandler:ne,getMissingHandler:ue,setMissingHandler:z,rt:le,d:Ee,n:Nt,tm:xe,te:Pe,getLocaleMessage:nn,setLocaleMessage:on,mergeLocaleMessage:gn,getDateTimeFormat:ft,setDateTimeFormat:Ut,mergeDateTimeFormat:jt,getNumberFormat:rn,setNumberFormat:rt,mergeNumberFormat:Fn};function $(y){y.locale.value=a.value,y.fallbackLocale.value=l.value,Object.keys(c.value).forEach(x=>{y.mergeLocaleMessage(x,c.value[x])}),Object.keys(u.value).forEach(x=>{y.mergeDateTimeFormat(x,u.value[x])}),Object.keys(f.value).forEach(x=>{y.mergeNumberFormat(x,f.value[x])}),y.escapeParameter=_,y.fallbackFormat=k,y.fallbackRoot=w,y.fallbackWarn=m,y.missingWarn=h,y.warnHtmlMessage=C}return _i(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Me(Ie.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const y=r.value=e.proxy.$i18n.__composer;t==="global"?(a.value=y.locale.value,l.value=y.fallbackLocale.value,c.value=y.messages.value,u.value=y.datetimeFormats.value,f.value=y.numberFormats.value):s&&$(y)}),g}const wg=["locale","fallbackLocale","availableLocales"],Ml=["t","rt","d","n","tm","te"];function kg(e,t){const n=Object.create(null);return wg.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r)throw Me(Ie.UNEXPECTED_ERROR);const i=Ne(r.value)?{get(){return r.value.value},set(a){r.value.value=a}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,Ml.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r||!r.value)throw Me(Ie.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,r)}),()=>{delete e.config.globalProperties.$i18n,Ml.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}if(eg(),__INTLIFY_JIT_COMPILATION__?Ja(zh):Ja(qh),Dh(bh),Rh(Ha),__INTLIFY_PROD_DEVTOOLS__){const e=Bt();e.__INTLIFY__=!0,Ah(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const $g=Object.assign({"./locales/ar/aria.json":Ep,"./locales/ar/buttons.json":Tp,"./locales/ar/detail.json":Lp,"./locales/ar/legend.json":Sp,"./locales/ar/messages.json":Ip,"./locales/ar/options.json":xp,"./locales/ar/prayerLaps.json":Fp,"./locales/ar/search.json":Mp,"./locales/ar/tabs.json":Pp,"./locales/de/aria.json":Bp,"./locales/de/buttons.json":Dp,"./locales/de/detail.json":Rp,"./locales/de/legend.json":Wp,"./locales/de/messages.json":Up,"./locales/de/options.json":jp,"./locales/de/prayerLaps.json":Gp,"./locales/de/search.json":Yp,"./locales/de/tabs.json":Vp,"./locales/en/aria.json":Hp,"./locales/en/buttons.json":qp,"./locales/en/detail.json":zp,"./locales/en/legend.json":Kp,"./locales/en/messages.json":Xp,"./locales/en/options.json":Jp,"./locales/en/popup.json":Zp,"./locales/en/prayerLaps.json":Qp,"./locales/en/search.json":ed,"./locales/en/tabs.json":td,"./locales/es/aria.json":nd,"./locales/es/buttons.json":od,"./locales/es/detail.json":rd,"./locales/es/legend.json":sd,"./locales/es/messages.json":id,"./locales/es/options.json":ad,"./locales/es/prayerLaps.json":ld,"./locales/es/search.json":cd,"./locales/es/tabs.json":ud,"./locales/fr/aria.json":pd,"./locales/fr/buttons.json":dd,"./locales/fr/detail.json":fd,"./locales/fr/legend.json":hd,"./locales/fr/messages.json":gd,"./locales/fr/options.json":md,"./locales/fr/popup.json":_d,"./locales/fr/prayerLaps.json":bd,"./locales/fr/search.json":yd,"./locales/fr/tabs.json":vd,"./locales/hi/aria.json":wd,"./locales/hi/buttons.json":kd,"./locales/hi/detail.json":$d,"./locales/hi/legend.json":Od,"./locales/hi/messages.json":Nd,"./locales/hi/options.json":Cd,"./locales/hi/prayerLaps.json":Ad,"./locales/hi/search.json":Ed,"./locales/it/aria.json":Td,"./locales/it/buttons.json":Ld,"./locales/it/detail.json":Sd,"./locales/it/legend.json":Id,"./locales/it/messages.json":xd,"./locales/it/options.json":Fd,"./locales/it/prayerLaps.json":Md,"./locales/it/search.json":Pd,"./locales/pt/aria.json":Bd,"./locales/pt/buttons.json":Dd,"./locales/pt/detail.json":Rd,"./locales/pt/legend.json":Wd,"./locales/pt/messages.json":Ud,"./locales/pt/options.json":jd,"./locales/pt/prayerLaps.json":Gd,"./locales/pt/search.json":Yd,"./locales/pt/tabs.json":Vd,"./locales/ro/aria.json":Hd,"./locales/ro/buttons.json":qd,"./locales/ro/detail.json":zd,"./locales/ro/legend.json":Kd,"./locales/ro/messages.json":Xd,"./locales/ro/options.json":Jd,"./locales/ro/prayerLaps.json":Zd,"./locales/ro/search.json":Qd,"./locales/ru/aria.json":ef,"./locales/ru/buttons.json":tf,"./locales/ru/detail.json":nf,"./locales/ru/legend.json":of,"./locales/ru/messages.json":rf,"./locales/ru/options.json":sf,"./locales/ru/prayerLaps.json":af,"./locales/ru/search.json":lf,"./locales/ru/tabs.json":cf,"./locales/zh/aria.json":uf,"./locales/zh/buttons.json":pf,"./locales/zh/detail.json":df,"./locales/zh/legend.json":ff,"./locales/zh/messages.json":hf,"./locales/zh/options.json":gf,"./locales/zh/prayerLaps.json":mf,"./locales/zh/search.json":_f}),po={};for(const[e,t]of Object.entries($g)){const n=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!n)continue;const[,o,s]=n;po[o]??(po[o]={}),po[o][s]=t}const Pl=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function Og(){var n;const t=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Pl.includes(t)?t:"en"}function Ng(){return dg({legacy:!1,globalInjection:!0,locale:Og(),fallbackLocale:"en",messages:po,missingWarn:!1,fallbackWarn:!1})}function Wt(e,t){const n=t||Cg(e);qt(()=>{var a;const o=Mt();if(!o)return;const s=(a=o.proxy)==null?void 0:a.$el;if(!s)return;const r=s.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${n}"]`))return;const i=document.createElement("style");i.setAttribute("data-shadow-styles",n),i.textContent=e,r.appendChild(i)})}function Cg(e){let t=0;for(let n=0;n(t==null?void 0:t.theme)==="dark"),s=ie(()=>{var A;return((A=n==null?void 0:n.value)==null?void 0:A.pinHintLabel)||"Tap a coloured dot — someone still needs prayer"}),r=re(!1),i=re(null);let a=null,l=null,c=null,u=null,f=null;function h(){r.value=!1}function m(A,O){var _;let C=A==null?void 0:A.parentElement;for(let b=0;C&&b<12;b++,C=C.parentElement){if(C===O||(_=C.classList)!=null&&_.contains("profile-loader"))return null;let v="";try{v=getComputedStyle(C).position}catch{}if(v&&v!=="static"){const E=C.getBoundingClientRect();if(E.height>=120&&E.width>=160)return C}}return null}function w(){const A=i.value;if(A)try{A.style.removeProperty("--pin-hint-lift");const O=A.getBoundingClientRect();if(!O.height)return;const C=Math.round(O.bottom-window.innerHeight);C>0&&A.style.setProperty("--pin-hint-lift",C+8+"px")}catch{}}function k(A){const O=i.value;if(!O||!(A!=null&&A.querySelector))return;let C=0;try{const b=A.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(b){const v=b.getBoundingClientRect(),E=O.parentElement,L=E?E.getBoundingClientRect():null;if(C=L?Math.max(v.height||0,L.bottom-v.top):v.height||0,f!==b&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}f=b,c=new ResizeObserver(()=>k(A)),c.observe(b)}}}catch{}const _=Math.min(Math.max(Math.ceil(C)||20,20),72);O.style.setProperty("--pin-hint-attrib-clear",_+"px"),w()}return qt(()=>{var _,b,v;const A=Mt(),O=(v=(b=(_=A==null?void 0:A.proxy)==null?void 0:_.$el)==null?void 0:b.getRootNode)==null?void 0:v.call(b);if(!O||typeof O.querySelector!="function")return;let C=0;a=setInterval(()=>{C++;const E=O.querySelector("canvas");E?(clearInterval(a),a=null,r.value=!0,Vn(()=>{const L=m(E,O),I=i.value;if(L&&I&&I.parentElement!==L)try{L.appendChild(I),l=L}catch{}k(O),w();try{const N=i.value&&i.value.offsetParent||null;if(N&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}u=new ResizeObserver(()=>w()),u.observe(N)}}catch{}})):C>40&&(clearInterval(a),a=null)},300)}),un(()=>{var A;if(a&&clearInterval(a),c){try{c.disconnect()}catch{}c=null}if(f=null,u){try{u.disconnect()}catch{}u=null}if(l&&((A=i.value)==null?void 0:A.parentElement)===l)try{l.removeChild(i.value)}catch{}l=null}),Wt(` + */const Qh="9.14.5";function eg(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Bt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Bt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1)}const tg=xh.__EXTEND_POINT__,Rt=er(tg);Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt(),Rt();const _l=dt.__EXTEND_POINT__,Ke=er(_l),xe={UNEXPECTED_RETURN_TYPE:_l,INVALID_ARGUMENT:Ke(),MUST_BE_CALL_SETUP_TOP:Ke(),NOT_INSTALLED:Ke(),NOT_AVAILABLE_IN_LEGACY_MODE:Ke(),REQUIRED_VALUE:Ke(),INVALID_VALUE:Ke(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ke(),NOT_INSTALLED_WITH_PROVIDE:Ke(),UNEXPECTED_ERROR:Ke(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ke(),BRIDGE_SUPPORT_VUE_2_ONLY:Ke(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ke(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ke(),__EXTEND_POINT__:Ke()};function Me(e,...t){return Tn(e,null,void 0)}const ds=Kt("__translateVNode"),fs=Kt("__datetimeParts"),hs=Kt("__numberParts"),bl=Kt("__setPluralRules"),yl=Kt("__injectWithOption"),gs=Kt("__dispose");function uo(e){if(!fe(e)||$t(e))return e;for(const t in e)if(ut(e,t))if(!t.includes("."))fe(e[t])&&uo(e[t]);else{const n=t.split("."),o=n.length-1;let s=e,r=!1;for(let a=0;a{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(a[l]=a[l]||me(),nr(c,a[l])):nr(c,a)}else q(i)&&nr(JSON.parse(i),a)}),s==null&&r)for(const i in a)ut(a,i)&&uo(a[i]);return a}function vl(e){return e.type}function wl(e,t,n){let o=fe(t.messages)?t.messages:me();"__i18nGlobal"in n&&(o=ar(e.locale.value,{messages:o,__i18n:n.__i18nGlobal}));const s=Object.keys(o);s.length&&s.forEach(r=>{e.mergeLocaleMessage(r,o[r])});{if(fe(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(a=>{e.mergeDateTimeFormat(a,t.datetimeFormats[a])})}if(fe(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(a=>{e.mergeNumberFormat(a,t.numberFormats[a])})}}}function kl(e){return ve(Zn,null,e,0)}const $l="__INTLIFY_META__",Ol=()=>[],ng=()=>!1;let Nl=0;function Cl(e){return(t,n,o,s)=>e(n,o,Mt()||void 0,s)}const og=()=>{const e=Mt();let t=null;return e&&(t=vl(e)[$l])?{[$l]:t}:null};function ms(e={},t){const{__root:n,__injectWithOption:o}=e,s=n===void 0,r=e.flatJson,a=Zo?re:jn,i=!!e.translateExistCompatible;let l=ce(e.inheritLocale)?e.inheritLocale:!0;const c=a(n&&l?n.locale.value:q(e.locale)?e.locale:xn),u=a(n&&l?n.fallbackLocale.value:q(e.fallbackLocale)||Oe(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=a(ar(c.value,e)),h=a(se(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=a(se(e.numberFormats)?e.numberFormats:{[c.value]:{}});let w=n?n.missingWarn:ce(e.missingWarn)||Xt(e.missingWarn)?e.missingWarn:!0,k=n?n.fallbackWarn:ce(e.fallbackWarn)||Xt(e.fallbackWarn)?e.fallbackWarn:!0,A=n?n.fallbackRoot:ce(e.fallbackRoot)?e.fallbackRoot:!0,O=!!e.fallbackFormat,C=we(e.missing)?e.missing:null,_=we(e.missing)?Cl(e.missing):null,b=we(e.postTranslation)?e.postTranslation:null,v=n?n.warnHtmlMessage:ce(e.warnHtmlMessage)?e.warnHtmlMessage:!0,E=!!e.escapeParameter;const L=n?n.modifiers:se(e.modifiers)?e.modifiers:{};let x=e.pluralRules||n&&n.pluralRules,N;N=(()=>{s&&nl(null);const T={version:Qh,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:L,pluralRules:x,missing:_===null?void 0:_,missingWarn:w,fallbackWarn:k,fallbackFormat:O,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:v,escapeParameter:E,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=h.value,T.numberFormats=m.value,T.__datetimeFormatters=se(N)?N.__datetimeFormatters:void 0,T.__numberFormatters=se(N)?N.__numberFormatters:void 0;const P=Gh(T);return s&&nl(P),P})(),co(N,c.value,u.value);function j(){return[c.value,u.value,f.value,h.value,m.value]}const K=ae({get:()=>c.value,set:T=>{c.value=T,N.locale=c.value}}),ne=ae({get:()=>u.value,set:T=>{u.value=T,N.fallbackLocale=u.value,co(N,c.value,T)}}),ue=ae(()=>f.value),z=ae(()=>h.value),W=ae(()=>m.value);function X(){return we(b)?b:null}function le(T){b=T,N.postTranslation=T}function Ee(){return C}function Nt(T){T!==null&&(_=Cl(T)),C=T,N.missing=_}const Ie=(T,P,Z,ie,ke,qe)=>{j();let Ue;try{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=n?jh():void 0),Ue=T(N)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(N.fallbackContext=void 0)}if(Z!=="translate exists"&&Ae(Ue)&&Ue===sr||Z==="translate exists"&&!Ue){const[mn,ws]=P();return n&&A?ie(n):ke(mn)}else{if(qe(Ue))return Ue;throw Me(xe.UNEXPECTED_RETURN_TYPE)}};function Pe(...T){return Ie(P=>Reflect.apply(ll,null,[P,...T]),()=>cs(...T),"translate",P=>Reflect.apply(P.t,P,[...T]),P=>P,P=>q(P))}function nn(...T){const[P,Z,ie]=T;if(ie&&!fe(ie))throw Me(xe.INVALID_ARGUMENT);return Pe(P,Z,We({resolvedMessage:!0},ie||{}))}function on(...T){return Ie(P=>Reflect.apply(pl,null,[P,...T]),()=>us(...T),"datetime format",P=>Reflect.apply(P.d,P,[...T]),()=>zi,P=>q(P))}function gn(...T){return Ie(P=>Reflect.apply(hl,null,[P,...T]),()=>ps(...T),"number format",P=>Reflect.apply(P.n,P,[...T]),()=>zi,P=>q(P))}function ft(T){return T.map(P=>q(P)||Ae(P)||ce(P)?kl(String(P)):P)}const jt={normalize:ft,interpolate:T=>T,type:"vnode"};function rn(...T){return Ie(P=>{let Z;const ie=P;try{ie.processor=jt,Z=Reflect.apply(ll,null,[ie,...T])}finally{ie.processor=null}return Z},()=>cs(...T),"translate",P=>P[ds](...T),P=>[kl(P)],P=>Oe(P))}function rt(...T){return Ie(P=>Reflect.apply(hl,null,[P,...T]),()=>ps(...T),"number format",P=>P[hs](...T),Ol,P=>q(P)||Oe(P))}function Fn(...T){return Ie(P=>Reflect.apply(pl,null,[P,...T]),()=>us(...T),"datetime format",P=>P[fs](...T),Ol,P=>q(P)||Oe(P))}function g(T){x=T,N.pluralRules=x}function $(T,P){return Ie(()=>{if(!T)return!1;const Z=q(P)?P:c.value,ie=D(Z),ke=N.messageResolver(ie,T);return i?ke!=null:$t(ke)||ot(ke)||q(ke)},()=>[T],"translate exists",Z=>Reflect.apply(Z.te,Z,[T,P]),ng,Z=>ce(Z))}function y(T){let P=null;const Z=Hi(N,u.value,c.value);for(let ie=0;ie{l&&(c.value=T,N.locale=T,co(N,c.value,u.value))}),lt(n.fallbackLocale,T=>{l&&(u.value=T,N.fallbackLocale=T,co(N,c.value,u.value))}));const U={id:Nl,locale:K,fallbackLocale:ne,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,co(N,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:ue,get modifiers(){return L},get pluralRules(){return x||{}},get isGlobal(){return s},get missingWarn(){return w},set missingWarn(T){w=T,N.missingWarn=w},get fallbackWarn(){return k},set fallbackWarn(T){k=T,N.fallbackWarn=k},get fallbackRoot(){return A},set fallbackRoot(T){A=T},get fallbackFormat(){return O},set fallbackFormat(T){O=T,N.fallbackFormat=O},get warnHtmlMessage(){return v},set warnHtmlMessage(T){v=T,N.warnHtmlMessage=T},get escapeParameter(){return E},set escapeParameter(T){E=T,N.escapeParameter=T},t:Pe,getLocaleMessage:D,setLocaleMessage:B,mergeLocaleMessage:Y,getPostTranslationHandler:X,setPostTranslationHandler:le,getMissingHandler:Ee,setMissingHandler:Nt,[bl]:g};return U.datetimeFormats=z,U.numberFormats=W,U.rt=nn,U.te=$,U.tm=I,U.d=on,U.n=gn,U.getDateTimeFormat=G,U.setDateTimeFormat=p,U.mergeDateTimeFormat=d,U.getNumberFormat=S,U.setNumberFormat=F,U.mergeNumberFormat=V,U[yl]=o,U[ds]=rn,U[fs]=Fn,U[hs]=rt,U}function rg(e){const t=q(e.locale)?e.locale:xn,n=q(e.fallbackLocale)||Oe(e.fallbackLocale)||se(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,o=we(e.missing)?e.missing:void 0,s=ce(e.silentTranslationWarn)||Xt(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=ce(e.silentFallbackWarn)||Xt(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,a=ce(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=se(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=we(e.postTranslation)?e.postTranslation:void 0,f=q(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,h=!!e.escapeParameterHtml,m=ce(e.sync)?e.sync:!0;let w=e.messages;if(se(e.sharedMessages)){const E=e.sharedMessages;w=Object.keys(E).reduce((x,N)=>{const R=x[N]||(x[N]={});return We(R,E[N]),x},w||{})}const{__i18n:k,__root:A,__injectWithOption:O}=e,C=e.datetimeFormats,_=e.numberFormats,b=e.flatJson,v=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:w,flatJson:b,datetimeFormats:C,numberFormats:_,missing:o,missingWarn:s,fallbackWarn:r,fallbackRoot:a,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:h,messageResolver:e.messageResolver,inheritLocale:m,translateExistCompatible:v,__i18n:k,__root:A,__injectWithOption:O}}function _s(e={},t){{const n=ms(rg(e)),{__extender:o}=e,s={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 ce(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(r){n.missingWarn=ce(r)?!r:r},get silentFallbackWarn(){return ce(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(r){n.fallbackWarn=ce(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[a,i,l]=r,c={};let u=null,f=null;if(!q(a))throw Me(xe.INVALID_ARGUMENT);const h=a;return q(i)?c.locale=i:Oe(i)?u=i:se(i)&&(f=i),Oe(l)?u=l:se(l)&&(f=l),Reflect.apply(n.t,n,[h,u||f||{},c])},rt(...r){return Reflect.apply(n.rt,n,[...r])},tc(...r){const[a,i,l]=r,c={plural:1};let u=null,f=null;if(!q(a))throw Me(xe.INVALID_ARGUMENT);const h=a;return q(i)?c.locale=i:Ae(i)?c.plural=i:Oe(i)?u=i:se(i)&&(f=i),q(l)?c.locale=l:Oe(l)?u=l:se(l)&&(f=l),Reflect.apply(n.t,n,[h,u||f||{},c])},te(r,a){return n.te(r,a)},tm(r){return n.tm(r)},getLocaleMessage(r){return n.getLocaleMessage(r)},setLocaleMessage(r,a){n.setLocaleMessage(r,a)},mergeLocaleMessage(r,a){n.mergeLocaleMessage(r,a)},d(...r){return Reflect.apply(n.d,n,[...r])},getDateTimeFormat(r){return n.getDateTimeFormat(r)},setDateTimeFormat(r,a){n.setDateTimeFormat(r,a)},mergeDateTimeFormat(r,a){n.mergeDateTimeFormat(r,a)},n(...r){return Reflect.apply(n.n,n,[...r])},getNumberFormat(r){return n.getNumberFormat(r)},setNumberFormat(r,a){n.setNumberFormat(r,a)},mergeNumberFormat(r,a){n.mergeNumberFormat(r,a)},getChoiceIndex(r,a){return-1}};return s.__extender=o,s}}const bs={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function sg({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((o,s)=>[...o,...s.type===de?s.children:[s]],[]):t.reduce((n,o)=>{const s=e[o];return s&&(n[o]=s()),n},me())}function Al(e){return de}const El=zn({name:"i18n-t",props:We({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ae(e)||!isNaN(e)}},bs),setup(e,t){const{slots:n,attrs:o}=t,s=e.i18n||en({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(f=>f!=="_"),a=me();e.locale&&(a.locale=e.locale),e.plural!==void 0&&(a.plural=q(e.plural)?+e.plural:e.plural);const i=sg(t,r),l=s[ds](e.keypath,i,a),c=We(me(),o),u=q(e.tag)||fe(e.tag)?e.tag:Al();return ei(u,c,l)}}});function ag(e){return Oe(e)&&!q(e[0])}function Tl(e,t,n,o){const{slots:s,attrs:r}=t;return()=>{const a={part:!0};let i=me();e.locale&&(a.locale=e.locale),q(e.format)?a.key=e.format:fe(e.format)&&(q(e.format.key)&&(a.key=e.format.key),i=Object.keys(e.format).reduce((h,m)=>n.includes(m)?We(me(),h,{[m]:e.format[m]}):h,me()));const l=o(e.value,a,i);let c=[a.key];Oe(l)?c=l.map((h,m)=>{const w=s[h.type],k=w?w({[h.type]:h.value,index:m,parts:l}):[h.value];return ag(k)&&(k[0].key=`${h.type}-${m}`),k}):q(l)&&(c=[l]);const u=We(me(),r),f=q(e.tag)||fe(e.tag)?e.tag:Al();return ei(f,u,c)}}const Ll=zn({name:"i18n-n",props:We({value:{type:Number,required:!0},format:{type:[String,Object]}},bs),setup(e,t){const n=e.i18n||en({useScope:e.scope,__useComponent:!0});return Tl(e,t,gl,(...o)=>n[hs](...o))}}),Sl=zn({name:"i18n-d",props:We({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},bs),setup(e,t){const n=e.i18n||en({useScope:e.scope,__useComponent:!0});return Tl(e,t,dl,(...o)=>n[fs](...o))}});function ig(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 lg(e){const t=a=>{const{instance:i,modifiers:l,value:c}=a;if(!i||!i.$)throw Me(xe.UNEXPECTED_ERROR);const u=ig(e,i.$),f=xl(c);return[Reflect.apply(u.t,u,[...Il(f)]),u]};return{created:(a,i)=>{const[l,c]=t(i);Zo&&e.global===c&&(a.__i18nWatcher=lt(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),a.__composer=c,a.textContent=l},unmounted:a=>{Zo&&a.__i18nWatcher&&(a.__i18nWatcher(),a.__i18nWatcher=void 0,delete a.__i18nWatcher),a.__composer&&(a.__composer=void 0,delete a.__composer)},beforeUpdate:(a,{value:i})=>{if(a.__composer){const l=a.__composer,c=xl(i);a.textContent=Reflect.apply(l.t,l,[...Il(c)])}},getSSRProps:a=>{const[i]=t(a);return{textContent:i}}}}function xl(e){if(q(e))return{path:e};if(se(e)){if(!("path"in e))throw Me(xe.REQUIRED_VALUE,"path");return e}else throw Me(xe.INVALID_VALUE)}function Il(e){const{path:t,locale:n,args:o,choice:s,plural:r}=e,a={},i=o||{};return q(n)&&(a.locale=n),Ae(s)&&(a.plural=s),Ae(r)&&(a.plural=r),[t,i,a]}function cg(e,t,...n){const o=se(n[0])?n[0]:{},s=!!o.useI18nComponentName;(ce(o.globalInstall)?o.globalInstall:!0)&&([s?"i18n":El.name,"I18nT"].forEach(a=>e.component(a,El)),[Ll.name,"I18nN"].forEach(a=>e.component(a,Ll)),[Sl.name,"I18nD"].forEach(a=>e.component(a,Sl))),e.directive("t",lg(t))}function ug(e,t,n){return{beforeCreate(){const o=Mt();if(!o)throw Me(xe.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const r=s.i18n;if(s.__i18n&&(r.__i18n=s.__i18n),r.__root=t,this===this.$root)this.$i18n=Fl(e,r);else{r.__injectWithOption=!0,r.__extender=n.__vueI18nExtend,this.$i18n=_s(r);const a=this.$i18n;a.__extender&&(a.__disposer=a.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=Fl(e,s);else{this.$i18n=_s({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&wl(t,s,s),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,a)=>this.$i18n.te(r,a),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=Mt();if(!o)throw Me(xe.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(o),delete this.$i18n}}}function Fl(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[bl](t.pluralizationRules||e.pluralizationRules);const n=ar(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 pg=Kt("global-vue-i18n");function dg(e={},t){const n=__VUE_I18N_LEGACY_API__&&ce(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=ce(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,r=new Map,[a,i]=fg(e,n),l=Kt("");function c(h){return r.get(h)||null}function u(h,m){r.set(h,m)}function f(h){r.delete(h)}{const h={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return s},async install(m,...w){if(m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,h),se(w[0])){const O=w[0];h.__composerExtend=O.__composerExtend,h.__vueI18nExtend=O.__vueI18nExtend}let k=null;!n&&o&&(k=kg(m,h.global)),__VUE_I18N_FULL_INSTALL__&&cg(m,h,...w),__VUE_I18N_LEGACY_API__&&n&&m.mixin(ug(i,i.__composer,h));const A=m.unmount;m.unmount=()=>{k&&k(),h.dispose(),A()}},get global(){return i},dispose(){a.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:f};return h}}function en(e={}){const t=Mt();if(t==null)throw Me(xe.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Me(xe.NOT_INSTALLED);const n=hg(t),o=mg(n),s=vl(t),r=gg(e,s);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw Me(xe.NOT_AVAILABLE_IN_LEGACY_MODE);return vg(t,r,o,e)}if(r==="global")return wl(o,e,s),o;if(r==="parent"){let l=_g(n,t,e.__useComponent);return l==null&&(l=o),l}const a=n;let i=a.__getInstance(t);if(i==null){const l=We({},e);"__i18n"in s&&(l.__i18n=s.__i18n),o&&(l.__root=o),i=ms(l),a.__composerExtend&&(i[gs]=a.__composerExtend(i)),yg(a,t,i),a.__setInstance(t,i)}return i}function fg(e,t,n){const o=hr();{const s=__VUE_I18N_LEGACY_API__&&t?o.run(()=>_s(e)):o.run(()=>ms(e));if(s==null)throw Me(xe.UNEXPECTED_ERROR);return[o,s]}}function hg(e){{const t=De(e.isCE?pg:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Me(e.isCE?xe.NOT_INSTALLED_WITH_PROVIDE:xe.UNEXPECTED_ERROR);return t}}function gg(e,t){return Qo(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function mg(e){return e.mode==="composition"?e.global:e.global.__composer}function _g(e,t,n=!1){let o=null;const s=t.root;let r=bg(t,n);for(;r!=null;){const a=e;if(e.mode==="composition")o=a.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=a.__getInstance(r);i!=null&&(o=i.__composer,n&&o&&!o[yl]&&(o=null))}if(o!=null||s===r)break;r=r.parent}return o}function bg(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function yg(e,t,n){qt(()=>{},t),Uo(()=>{const o=n;e.__deleteInstance(t);const s=o[gs];s&&(s(),delete o[gs])},t)}function vg(e,t,n,o={}){const s=t==="local",r=jn(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Me(xe.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const a=ce(o.inheritLocale)?o.inheritLocale:!q(o.locale),i=re(!s||a?n.locale.value:q(o.locale)?o.locale:xn),l=re(!s||a?n.fallbackLocale.value:q(o.fallbackLocale)||Oe(o.fallbackLocale)||se(o.fallbackLocale)||o.fallbackLocale===!1?o.fallbackLocale:i.value),c=re(ar(i.value,o)),u=re(se(o.datetimeFormats)?o.datetimeFormats:{[i.value]:{}}),f=re(se(o.numberFormats)?o.numberFormats:{[i.value]:{}}),h=s?n.missingWarn:ce(o.missingWarn)||Xt(o.missingWarn)?o.missingWarn:!0,m=s?n.fallbackWarn:ce(o.fallbackWarn)||Xt(o.fallbackWarn)?o.fallbackWarn:!0,w=s?n.fallbackRoot:ce(o.fallbackRoot)?o.fallbackRoot:!0,k=!!o.fallbackFormat,A=we(o.missing)?o.missing:null,O=we(o.postTranslation)?o.postTranslation:null,C=s?n.warnHtmlMessage:ce(o.warnHtmlMessage)?o.warnHtmlMessage:!0,_=!!o.escapeParameter,b=s?n.modifiers:se(o.modifiers)?o.modifiers:{},v=o.pluralRules||s&&n.pluralRules;function E(){return[i.value,l.value,c.value,u.value,f.value]}const L=ae({get:()=>r.value?r.value.locale.value:i.value,set:y=>{r.value&&(r.value.locale.value=y),i.value=y}}),x=ae({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:y=>{r.value&&(r.value.fallbackLocale.value=y),l.value=y}}),N=ae(()=>r.value?r.value.messages.value:c.value),R=ae(()=>u.value),j=ae(()=>f.value);function K(){return r.value?r.value.getPostTranslationHandler():O}function ne(y){r.value&&r.value.setPostTranslationHandler(y)}function ue(){return r.value?r.value.getMissingHandler():A}function z(y){r.value&&r.value.setMissingHandler(y)}function W(y){return E(),y()}function X(...y){return r.value?W(()=>Reflect.apply(r.value.t,null,[...y])):W(()=>"")}function le(...y){return r.value?Reflect.apply(r.value.rt,null,[...y]):""}function Ee(...y){return r.value?W(()=>Reflect.apply(r.value.d,null,[...y])):W(()=>"")}function Nt(...y){return r.value?W(()=>Reflect.apply(r.value.n,null,[...y])):W(()=>"")}function Ie(y){return r.value?r.value.tm(y):{}}function Pe(y,I){return r.value?r.value.te(y,I):!1}function nn(y){return r.value?r.value.getLocaleMessage(y):{}}function on(y,I){r.value&&(r.value.setLocaleMessage(y,I),c.value[y]=I)}function gn(y,I){r.value&&r.value.mergeLocaleMessage(y,I)}function ft(y){return r.value?r.value.getDateTimeFormat(y):{}}function Ut(y,I){r.value&&(r.value.setDateTimeFormat(y,I),u.value[y]=I)}function jt(y,I){r.value&&r.value.mergeDateTimeFormat(y,I)}function rn(y){return r.value?r.value.getNumberFormat(y):{}}function rt(y,I){r.value&&(r.value.setNumberFormat(y,I),f.value[y]=I)}function Fn(y,I){r.value&&r.value.mergeNumberFormat(y,I)}const g={get id(){return r.value?r.value.id:-1},locale:L,fallbackLocale:x,messages:N,datetimeFormats:R,numberFormats:j,get inheritLocale(){return r.value?r.value.inheritLocale:a},set inheritLocale(y){r.value&&(r.value.inheritLocale=y)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:b},get pluralRules(){return r.value?r.value.pluralRules:v},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:h},set missingWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackWarn(){return r.value?r.value.fallbackWarn:m},set fallbackWarn(y){r.value&&(r.value.missingWarn=y)},get fallbackRoot(){return r.value?r.value.fallbackRoot:w},set fallbackRoot(y){r.value&&(r.value.fallbackRoot=y)},get fallbackFormat(){return r.value?r.value.fallbackFormat:k},set fallbackFormat(y){r.value&&(r.value.fallbackFormat=y)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:C},set warnHtmlMessage(y){r.value&&(r.value.warnHtmlMessage=y)},get escapeParameter(){return r.value?r.value.escapeParameter:_},set escapeParameter(y){r.value&&(r.value.escapeParameter=y)},t:X,getPostTranslationHandler:K,setPostTranslationHandler:ne,getMissingHandler:ue,setMissingHandler:z,rt:le,d:Ee,n:Nt,tm:Ie,te:Pe,getLocaleMessage:nn,setLocaleMessage:on,mergeLocaleMessage:gn,getDateTimeFormat:ft,setDateTimeFormat:Ut,mergeDateTimeFormat:jt,getNumberFormat:rn,setNumberFormat:rt,mergeNumberFormat:Fn};function $(y){y.locale.value=i.value,y.fallbackLocale.value=l.value,Object.keys(c.value).forEach(I=>{y.mergeLocaleMessage(I,c.value[I])}),Object.keys(u.value).forEach(I=>{y.mergeDateTimeFormat(I,u.value[I])}),Object.keys(f.value).forEach(I=>{y.mergeNumberFormat(I,f.value[I])}),y.escapeParameter=_,y.fallbackFormat=k,y.fallbackRoot=w,y.fallbackWarn=m,y.missingWarn=h,y.warnHtmlMessage=C}return _a(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Me(xe.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const y=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=y.locale.value,l.value=y.fallbackLocale.value,c.value=y.messages.value,u.value=y.datetimeFormats.value,f.value=y.numberFormats.value):s&&$(y)}),g}const wg=["locale","fallbackLocale","availableLocales"],Ml=["t","rt","d","n","tm","te"];function kg(e,t){const n=Object.create(null);return wg.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r)throw Me(xe.UNEXPECTED_ERROR);const a=Ne(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,s,a)}),e.config.globalProperties.$i18n=n,Ml.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r||!r.value)throw Me(xe.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,r)}),()=>{delete e.config.globalProperties.$i18n,Ml.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}if(eg(),__INTLIFY_JIT_COMPILATION__?Ji(zh):Ji(qh),Dh(bh),Rh(Hi),__INTLIFY_PROD_DEVTOOLS__){const e=Bt();e.__INTLIFY__=!0,Ah(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const $g=Object.assign({"./locales/ar/aria.json":Ep,"./locales/ar/buttons.json":Tp,"./locales/ar/detail.json":Lp,"./locales/ar/legend.json":Sp,"./locales/ar/messages.json":xp,"./locales/ar/options.json":Ip,"./locales/ar/prayerLaps.json":Fp,"./locales/ar/search.json":Mp,"./locales/ar/tabs.json":Pp,"./locales/de/aria.json":Bp,"./locales/de/buttons.json":Dp,"./locales/de/detail.json":Rp,"./locales/de/legend.json":Wp,"./locales/de/messages.json":Up,"./locales/de/options.json":jp,"./locales/de/prayerLaps.json":Gp,"./locales/de/search.json":Yp,"./locales/de/tabs.json":Vp,"./locales/en/aria.json":Hp,"./locales/en/buttons.json":qp,"./locales/en/detail.json":zp,"./locales/en/legend.json":Kp,"./locales/en/messages.json":Xp,"./locales/en/options.json":Jp,"./locales/en/popup.json":Zp,"./locales/en/prayerLaps.json":Qp,"./locales/en/search.json":ed,"./locales/en/tabs.json":td,"./locales/es/aria.json":nd,"./locales/es/buttons.json":od,"./locales/es/detail.json":rd,"./locales/es/legend.json":sd,"./locales/es/messages.json":ad,"./locales/es/options.json":id,"./locales/es/prayerLaps.json":ld,"./locales/es/search.json":cd,"./locales/es/tabs.json":ud,"./locales/fr/aria.json":pd,"./locales/fr/buttons.json":dd,"./locales/fr/detail.json":fd,"./locales/fr/legend.json":hd,"./locales/fr/messages.json":gd,"./locales/fr/options.json":md,"./locales/fr/popup.json":_d,"./locales/fr/prayerLaps.json":bd,"./locales/fr/search.json":yd,"./locales/fr/tabs.json":vd,"./locales/hi/aria.json":wd,"./locales/hi/buttons.json":kd,"./locales/hi/detail.json":$d,"./locales/hi/legend.json":Od,"./locales/hi/messages.json":Nd,"./locales/hi/options.json":Cd,"./locales/hi/prayerLaps.json":Ad,"./locales/hi/search.json":Ed,"./locales/it/aria.json":Td,"./locales/it/buttons.json":Ld,"./locales/it/detail.json":Sd,"./locales/it/legend.json":xd,"./locales/it/messages.json":Id,"./locales/it/options.json":Fd,"./locales/it/prayerLaps.json":Md,"./locales/it/search.json":Pd,"./locales/pt/aria.json":Bd,"./locales/pt/buttons.json":Dd,"./locales/pt/detail.json":Rd,"./locales/pt/legend.json":Wd,"./locales/pt/messages.json":Ud,"./locales/pt/options.json":jd,"./locales/pt/prayerLaps.json":Gd,"./locales/pt/search.json":Yd,"./locales/pt/tabs.json":Vd,"./locales/ro/aria.json":Hd,"./locales/ro/buttons.json":qd,"./locales/ro/detail.json":zd,"./locales/ro/legend.json":Kd,"./locales/ro/messages.json":Xd,"./locales/ro/options.json":Jd,"./locales/ro/prayerLaps.json":Zd,"./locales/ro/search.json":Qd,"./locales/ru/aria.json":ef,"./locales/ru/buttons.json":tf,"./locales/ru/detail.json":nf,"./locales/ru/legend.json":of,"./locales/ru/messages.json":rf,"./locales/ru/options.json":sf,"./locales/ru/prayerLaps.json":af,"./locales/ru/search.json":lf,"./locales/ru/tabs.json":cf,"./locales/zh/aria.json":uf,"./locales/zh/buttons.json":pf,"./locales/zh/detail.json":df,"./locales/zh/legend.json":ff,"./locales/zh/messages.json":hf,"./locales/zh/options.json":gf,"./locales/zh/prayerLaps.json":mf,"./locales/zh/search.json":_f}),po={};for(const[e,t]of Object.entries($g)){const n=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!n)continue;const[,o,s]=n;po[o]??(po[o]={}),po[o][s]=t}const Pl=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function Og(){var n;const t=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Pl.includes(t)?t:"en"}function Ng(){return dg({legacy:!1,globalInjection:!0,locale:Og(),fallbackLocale:"en",messages:po,missingWarn:!1,fallbackWarn:!1})}function Wt(e,t){const n=t||Cg(e);qt(()=>{var i;const o=Mt();if(!o)return;const s=(i=o.proxy)==null?void 0:i.$el;if(!s)return;const r=s.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${n}"]`))return;const a=document.createElement("style");a.setAttribute("data-shadow-styles",n),a.textContent=e,r.appendChild(a)})}function Cg(e){let t=0;for(let n=0;n(t==null?void 0:t.theme)==="dark"),s=ae(()=>{var A;return((A=n==null?void 0:n.value)==null?void 0:A.pinHintLabel)||"Tap a coloured dot — someone still needs prayer"}),r=re(!1),a=re(null);let i=null,l=null,c=null,u=null,f=null;function h(){r.value=!1}function m(A,O){var _;let C=A==null?void 0:A.parentElement;for(let b=0;C&&b<12;b++,C=C.parentElement){if(C===O||(_=C.classList)!=null&&_.contains("profile-loader"))return null;let v="";try{v=getComputedStyle(C).position}catch{}if(v&&v!=="static"){const E=C.getBoundingClientRect();if(E.height>=120&&E.width>=160)return C}}return null}function w(){const A=a.value;if(A)try{A.style.removeProperty("--pin-hint-lift");const O=A.getBoundingClientRect();if(!O.height)return;const C=Math.round(O.bottom-window.innerHeight);C>0&&A.style.setProperty("--pin-hint-lift",C+8+"px")}catch{}}function k(A){const O=a.value;if(!O||!(A!=null&&A.querySelector))return;let C=0;try{const b=A.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(b){const v=b.getBoundingClientRect(),E=O.parentElement,L=E?E.getBoundingClientRect():null;if(C=L?Math.max(v.height||0,L.bottom-v.top):v.height||0,f!==b&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}f=b,c=new ResizeObserver(()=>k(A)),c.observe(b)}}}catch{}const _=Math.min(Math.max(Math.ceil(C)||20,20),72);O.style.setProperty("--pin-hint-attrib-clear",_+"px"),w()}return qt(()=>{var _,b,v;const A=Mt(),O=(v=(b=(_=A==null?void 0:A.proxy)==null?void 0:_.$el)==null?void 0:b.getRootNode)==null?void 0:v.call(b);if(!O||typeof O.querySelector!="function")return;let C=0;i=setInterval(()=>{C++;const E=O.querySelector("canvas");E?(clearInterval(i),i=null,r.value=!0,Vn(()=>{const L=m(E,O),x=a.value;if(L&&x&&x.parentElement!==L)try{L.appendChild(x),l=L}catch{}k(O),w();try{const N=a.value&&a.value.offsetParent||null;if(N&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}u=new ResizeObserver(()=>w()),u.observe(N)}}catch{}})):C>40&&(clearInterval(i),i=null)},300)}),un(()=>{var A;if(i&&clearInterval(i),c){try{c.disconnect()}catch{}c=null}if(f=null,u){try{u.disconnect()}catch{}u=null}if(l&&((A=a.value)==null?void 0:A.parentElement)===l)try{l.removeChild(a.value)}catch{}l=null}),Wt(` .pin-hint { position: absolute; left: 50%; bottom: calc(var(--pin-hint-attrib-clear, 20px) + 12px + var(--pin-hint-lift, 0px)); transform: translateX(-50%); z-index: 2147482000; pointer-events: none; @@ -68,7 +68,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(A,O)=>r.value?(H(),J("div",{key:0,ref_key:"hintEl",ref:i,class:Te(["pin-hint",{dark:o.value}]),role:"status"},[M("span",Ag,[O[0]||(O[0]=M("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),$e(" "+Q(s.value)+" ",1),M("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:h},"×")])],2)):Le("",!0)}};let Tg=0;const Lg=Qr("ui",{state:()=>({_storeInstanceId:++Tg,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){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:n="info",duration:o=this.toastDuration,action:s=null,persistent:r=!1}=e,i={id:this.nextToastId++,message:t,type:n,duration:o,action:s,persistent:r,createdAt:Date.now()};return this.toasts.push(i),!r&&o>0&&setTimeout(()=>{this.removeToast(i.id)},o),i.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)}))}}}),Sg=Qr("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",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 s=[0,0];if(n.center)s=n.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(s=[r.lng,r.lat])}this.maps[e]={instance:t,config:n,isReady:!1,zoom:o,center:s,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)},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()}}}),Ig=Qr("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]=vn({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]=vn({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}}}),xg={activeSource:"pray-tools"},Fg=".profile-loader[data-v-931b414b]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-931b414b]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Mg=(e,t)=>{const n=e.__vccOpts||e;for(const[o,s]of t)n[o]=s;return n},Pg={class:"profile-loader"},Bg={key:0,class:"profile-error"},Dg={key:1,class:"profile-error"},Rg=Mg({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var b;const n=e,o=De("profileConfig",null),s=ie(()=>{var E;if(!n.profileConfig)return null;let v;try{v=JSON.parse(n.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",n.profileConfig),null}if(v&&v.assetsBase===void 0){const L=(E=o==null?void 0:o.value)==null?void 0:E.assetsBase;typeof L=="string"&&L&&(v.assetsBase=L)}return v}),r=ie(()=>{var v;return((v=s.value)==null?void 0:v.profile)||null}),i=ie(()=>{var E;const v=(E=s.value)==null?void 0:E.tk;return typeof v=="string"&&v?v:typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN?window.MAP_TOKEN:""}),a=ie(()=>{var v;return((v=s.value)==null?void 0:v.dataSource)||xg.activeSource}),l=ie(()=>{var v;return((v=s.value)==null?void 0:v.colorSet)||"default"}),c=ie(()=>!1),u=ie(()=>{var v;return((v=s.value)==null?void 0:v.pinHint)!==!1}),f=ie(()=>{var E,L;const v=(((E=s.value)==null?void 0:E.locale)||((L=s.value)==null?void 0:L.lang)||"").split("-")[0].toLowerCase();return Pl.includes(v)?v:""}),h=De("appI18n",null);Dc(()=>{f.value&&h&&(h.global.locale.value=f.value)});const m=ie(()=>{var v,E;return f.value||((E=(v=h==null?void 0:h.global)==null?void 0:v.locale)==null?void 0:E.value)||"en"}),w=ie(()=>{var v;return((v=s.value)==null?void 0:v.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),k=De("profileModules",null);if(!k)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const A=ie(()=>{if(!r.value)return null;const v=`./${r.value}.vue`;return k[v]?Hc(k[v]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(k)),null)});nt("mapboxToken",i),nt("dataSource",a),nt("colorSet",l),nt("profileConfig",s),nt("instanceId",w),nt("lang",m);const O=Lg(),C=Sg(),_=Ig();try{const v=typeof localStorage<"u"?localStorage.getItem("theme"):null;v&&((b=O.setTheme)==null||b.call(O,v))}catch{}return nt("uiStore",O),nt("mapStore",C),nt("dataStore",_),(v,E)=>(H(),J("div",Pg,[s.value?A.value?(H(),Qe(yi(A.value),{key:2})):(H(),J("div",Dg,[M("p",null,[E[1]||(E[1]=$e("⚠️ Profile ",-1)),M("strong",null,'"'+Q(r.value)+'"',1),E[2]||(E[2]=$e(" not found.",-1))])])):(H(),J("div",Bg,[...E[0]||(E[0]=[M("p",null,[$e("⚠️ "),M("strong",null,"doxa-map"),$e(": missing or invalid "),M("code",null,"profile-config"),$e(" prop.")],-1),M("p",null,[$e("Example: "),M("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),A.value&&c.value?(H(),Qe(yi(ze(null)),{key:3})):Le("",!0),A.value&&u.value?(H(),Qe(Eg,{key:4})):Le("",!0)]))}},[["styles",[Fg]],["__scopeId","data-v-931b414b"]]),Wg=Object.assign({"./connectivity-list.vue":()=>lr(()=>Promise.resolve().then(()=>om),void 0),"./connectivity-map.vue":()=>lr(()=>Promise.resolve().then(()=>Jm),void 0),"./data-tables.vue":()=>lr(()=>Promise.resolve().then(()=>k_),void 0)});function Ug(){return fp(Rg,{configureApp(e){e.use(kp()),e.use(Ng()),e.provide("profileModules",Wg)}})}const jg=Ug();typeof customElements<"u"&&(customElements.get("cities-internet-map")||customElements.define("cities-internet-map",jg));const Gg={countries:[{iso3:"IND",country:"India",region:"Asia",clusters:541,people_groups:856,multi:164,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:79.4,mobile_year:"2024",national_population:1450935791,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CHN",country:"People's Republic of China",region:"Asia",clusters:130,people_groups:154,multi:19,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:131.8,mobile_year:"2024",national_population:1408975e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SDN",country:"Sudan",region:"Middle East",clusters:75,people_groups:105,multi:20,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:70.2,mobile_year:"2022",national_population:50448963,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRA",country:"Brazil",region:"Latin America & Caribbean",clusters:99,people_groups:104,multi:5,internet_access:"yes",internet_pct:84.5,internet_year:"2024",mobile_per_100:101.9,mobile_year:"2024",national_population:211998573,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LAO",country:"Lao People's Democratic Republic",region:"Asia",clusters:65,people_groups:95,multi:24,internet_access:"yes",internet_pct:65.6,internet_year:"2024",mobile_per_100:64.8,mobile_year:"2023",national_population:7769819,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCD",country:"Chad",region:"Africa",clusters:48,people_groups:54,multi:6,internet_access:"no",internet_pct:12.6,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:20299123,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NGA",country:"Nigeria",region:"Africa",clusters:35,people_groups:38,multi:3,internet_access:"partial",internet_pct:41.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:232679478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IDN",country:"Indonesia",region:"Asia",clusters:35,people_groups:36,multi:1,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:122.5,mobile_year:"2024",national_population:283487931,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NPL",country:"Nepal",region:"Asia",clusters:25,people_groups:33,multi:5,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:99.8,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ETH",country:"Ethiopia",region:"Africa",clusters:29,people_groups:29,multi:0,internet_access:"no",internet_pct:21.9,internet_year:"2024",mobile_per_100:65.1,mobile_year:"2024",national_population:132059767,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COL",country:"Colombia",region:"Latin America & Caribbean",clusters:26,people_groups:26,multi:0,internet_access:"yes",internet_pct:79.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:52886363,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAK",country:"Pakistan",region:"Asia",clusters:21,people_groups:24,multi:2,internet_access:"partial",internet_pct:57.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:251269164,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SSD",country:"South Sudan",region:"Africa",clusters:22,people_groups:22,multi:0,internet_access:"no",internet_pct:6.7,internet_year:"2019",mobile_per_100:46.6,mobile_year:"2023",national_population:11943408,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"RUS",country:"Russian Federation",region:"Europe",clusters:17,people_groups:21,multi:2,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:186.1,mobile_year:"2024",national_population:143669648,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AFG",country:"Afghanistan",region:"Asia",clusters:15,people_groups:21,multi:5,internet_access:"no",internet_pct:16.1,internet_year:"2024",mobile_per_100:60.1,mobile_year:"2024",national_population:42647492,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRN",country:"Islamic Republic of Iran",region:"Middle East",clusters:19,people_groups:20,multi:1,internet_access:"yes",internet_pct:85.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:91567738,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DZA",country:"Algeria",region:"Middle East",clusters:15,people_groups:17,multi:2,internet_access:"yes",internet_pct:77.4,internet_year:"2024",mobile_per_100:115.5,mobile_year:"2024",national_population:46814308,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VNM",country:"Vietnam",region:"Asia",clusters:15,people_groups:16,multi:1,internet_access:"yes",internet_pct:84.2,internet_year:"2024",mobile_per_100:127.6,mobile_year:"2024",national_population:100987686,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TZA",country:"United Republic of Tanzania",region:"Africa",clusters:16,people_groups:16,multi:0,internet_access:"partial",internet_pct:31.2,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:68560157,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBY",country:"Libya",region:"Middle East",clusters:13,people_groups:15,multi:2,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:193,mobile_year:"2022",national_population:7381023,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BTN",country:"Bhutan",region:"Asia",clusters:12,people_groups:13,multi:1,internet_access:"yes",internet_pct:91.3,internet_year:"2024",mobile_per_100:99.8,mobile_year:"2024",national_population:791524,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIN",country:"Guinea",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:33.3,internet_year:"2024",mobile_per_100:97.9,mobile_year:"2023",national_population:14754785,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLI",country:"Mali",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:36.8,internet_year:"2024",mobile_per_100:112.1,mobile_year:"2022",national_population:24478595,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYS",country:"Malaysia",region:"Asia",clusters:11,people_groups:12,multi:1,internet_access:"yes",internet_pct:98,internet_year:"2024",mobile_per_100:139.7,mobile_year:"2024",national_population:35557673,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AGO",country:"Angola",region:"Africa",clusters:9,people_groups:10,multi:1,internet_access:"partial",internet_pct:40.7,internet_year:"2024",mobile_per_100:69.7,mobile_year:"2024",national_population:37885849,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PER",country:"Peru",region:"Latin America & Caribbean",clusters:10,people_groups:10,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:124.6,mobile_year:"2024",national_population:34217848,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"YEM",country:"Yemen",region:"Middle East",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:17.5,internet_year:"2019",mobile_per_100:50.9,mobile_year:"2023",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COD",country:"Democratic Republic of the Congo",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:19.7,internet_year:"2024",mobile_per_100:58.5,mobile_year:"2024",national_population:109276265,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BEN",country:"Benin",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"partial",internet_pct:34,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:14462724,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SOM",country:"Somalia",region:"Africa",clusters:9,people_groups:9,multi:0,internet_access:"partial",internet_pct:27.9,internet_year:"2024",mobile_per_100:54,mobile_year:"2023",national_population:19009151,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ERI",country:"Eritrea",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"no",internet_pct:14.3,internet_year:"2020",mobile_per_100:59.1,mobile_year:"2022",national_population:3535603,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRQ",country:"Iraq",region:"Middle East",clusters:7,people_groups:8,multi:1,internet_access:"yes",internet_pct:81.5,internet_year:"2024",mobile_per_100:100.1,mobile_year:"2024",national_population:46042015,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BFA",country:"Burkina Faso",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"partial",internet_pct:28.3,internet_year:"2024",mobile_per_100:116.6,mobile_year:"2024",national_population:23548781,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"THA",country:"Thailand",region:"Asia",clusters:8,people_groups:8,multi:0,internet_access:"yes",internet_pct:90.9,internet_year:"2024",mobile_per_100:160.6,mobile_year:"2024",national_population:71668011,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PSE",country:"State of Palestine",region:"Middle East",clusters:3,people_groups:7,multi:1,internet_access:"yes",internet_pct:86.6,internet_year:"2023",mobile_per_100:76.7,mobile_year:"2023",national_population:5289152,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"OMN",country:"Oman",region:"Middle East",clusters:7,people_groups:7,multi:0,internet_access:"yes",internet_pct:95.3,internet_year:"2024",mobile_per_100:120.6,mobile_year:"2024",national_population:5281538,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MMR",country:"Myanmar",region:"Asia",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:45.4,internet_year:"2020",mobile_per_100:114.3,mobile_year:"2024",national_population:54500091,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CMR",country:"Cameroon",region:"Africa",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:46.3,internet_year:"2024",mobile_per_100:108.2,mobile_year:"2024",national_population:29123744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TGO",country:"Togo",region:"Africa",clusters:5,people_groups:6,multi:1,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:8406558,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JPN",country:"Japan",region:"Asia",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:85.5,internet_year:"2024",mobile_per_100:178.4,mobile_year:"2023",national_population:123975371,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UGA",country:"Uganda",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"no",internet_pct:8.9,internet_year:"2024",mobile_per_100:83.2,mobile_year:"2024",national_population:50015092,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZMB",country:"Zambia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:108.7,mobile_year:"2024",national_population:21314956,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VEN",country:"Venezuela",region:"Latin America & Caribbean",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:76.7,internet_year:"2024",mobile_per_100:71,mobile_year:"2024",national_population:28405543,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NAM",country:"Namibia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:3030131,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRN",country:"Brunei Darussalam",region:"Asia",clusters:4,people_groups:5,multi:1,internet_access:"yes",internet_pct:96.3,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:462721,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KEN",country:"Kenya",region:"Africa",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:35,internet_year:"2024",mobile_per_100:126.5,mobile_year:"2024",national_population:56432944,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SYR",country:"Syrian Arab Republic",region:"Middle East",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:33.8,internet_year:"2018",mobile_per_100:71.2,mobile_year:"2024",national_population:24672760,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBN",country:"Lebanon",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:80.6,internet_year:"2024",mobile_per_100:74,mobile_year:"2022",national_population:5805962,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MOZ",country:"Mozambique",region:"Africa",clusters:4,people_groups:4,multi:0,internet_access:"no",internet_pct:20.5,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2024",national_population:34631766,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAR",country:"Morocco",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:91.2,internet_year:"2024",mobile_per_100:153.1,mobile_year:"2024",national_population:38081173,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"QAT",country:"Qatar",region:"Middle East",clusters:1,people_groups:3,multi:1,internet_access:"yes",internet_pct:98.1,internet_year:"2024",mobile_per_100:153.6,mobile_year:"2024",national_population:2857822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SAU",country:"Saudi Arabia",region:"Middle East",clusters:2,people_groups:3,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:35300280,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUR",country:"Türkiye",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:87.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:85518661,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AZE",country:"Azerbaijan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:90.4,internet_year:"2024",mobile_per_100:109.5,mobile_year:"2024",national_population:10202830,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GMB",country:"Republic of The Gambia",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:49.5,internet_year:"2024",mobile_per_100:126.2,mobile_year:"2024",national_population:2759988,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JOR",country:"Jordan",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:95.6,internet_year:"2024",mobile_per_100:69.6,mobile_year:"2024",national_population:11552876,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZWE",country:"Zimbabwe",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:94.2,mobile_year:"2024",national_population:16634373,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COM",country:"Comoros",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:32.5,internet_year:"2024",mobile_per_100:109.9,mobile_year:"2023",national_population:866628,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"USA",country:"United States of America",region:"Other",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:94.7,internet_year:"2024",mobile_per_100:113.2,mobile_year:"2024",national_population:340003797,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGD",country:"Bangladesh",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:53.4,internet_year:"2024",mobile_per_100:108.1,mobile_year:"2024",national_population:173562364,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNB",country:"Guinea-Bissau",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:29.8,internet_year:"2024",mobile_per_100:147.2,mobile_year:"2024",national_population:2201352,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KOS",country:"KOS",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MRT",country:"Mauritania",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:45.8,internet_year:"2024",mobile_per_100:92.1,mobile_year:"2024",national_population:5169395,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESH",country:"Western Sahara",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TJK",country:"Tajikistan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:55.8,internet_year:"2024",mobile_per_100:76.2,mobile_year:"2023",national_population:10590927,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"EGY",country:"Egypt",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:74.6,internet_year:"2024",mobile_per_100:97.1,mobile_year:"2024",national_population:116538258,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNG",country:"Mongolia",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:85.1,internet_year:"2024",mobile_per_100:140.7,mobile_year:"2024",national_population:3524788,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHR",country:"Bahrain",region:"Middle East",clusters:1,people_groups:2,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:1588670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SUR",country:"Suriname",region:"North America & Non-Spanish Caribbean",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:142.1,mobile_year:"2024",national_population:634431,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NER",country:"Niger",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:60.6,mobile_year:"2024",national_population:27032412,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZAF",country:"South Africa",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:78.4,internet_year:"2024",mobile_per_100:179.3,mobile_year:"2024",national_population:64007187,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CCK",country:"Cocos (Keeling) Islands",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COG",country:"Republic of the Congo",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:47.3,internet_year:"2024",mobile_per_100:95.5,mobile_year:"2024",national_population:6332961,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARE",country:"United Arab Emirates",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:203.2,mobile_year:"2024",national_population:10986400,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GAB",country:"Gabon",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:68.7,internet_year:"2024",mobile_per_100:125.3,mobile_year:"2024",national_population:2538952,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUF",country:"French Guiana",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CIV",country:"Cote d'Ivoire",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:41.4,internet_year:"2024",mobile_per_100:183.9,mobile_year:"2024",national_population:31934230,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KGZ",country:"Kyrgyzstan",region:"Asia",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:107.5,mobile_year:"2024",national_population:7221868,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBR",country:"Liberia",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:32.2,internet_year:"2024",mobile_per_100:32.1,mobile_year:"2022",national_population:5612817,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWE",country:"Sweden",region:"Europe",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:140.7,mobile_year:"2024",national_population:10569709,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUN",country:"Tunisia",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:76.5,internet_year:"2024",mobile_per_100:117.6,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLE",country:"Sierra Leone",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:25.1,internet_year:"2024",mobile_per_100:107.9,mobile_year:"2022",national_population:8642022,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AND",country:"Andorra",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:155.7,mobile_year:"2024",national_population:81938,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SEN",country:"Senegal",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:60.1,internet_year:"2024",mobile_per_100:123.9,mobile_year:"2024",national_population:18501984,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNE",country:"Montenegro",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.9,internet_year:"2024",mobile_per_100:221.7,mobile_year:"2024",national_population:623525,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BOL",country:"Bolivia",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:79.7,internet_year:"2024",mobile_per_100:98,mobile_year:"2024",national_population:12413315,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ECU",country:"Ecuador",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:77.2,internet_year:"2024",mobile_per_100:101.6,mobile_year:"2024",national_population:18135478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VIR",country:"Virgin Islands, U.S.",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.5,mobile_year:"2022",national_population:104377,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ATG",country:"Antigua and Barbuda",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.7,internet_year:"2024",mobile_per_100:200.5,mobile_year:"2022",national_population:93772,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARM",country:"Armenia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.3,internet_year:"2024",mobile_per_100:134.9,mobile_year:"2024",national_population:3033500,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ABW",country:"Aruba",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.6,mobile_year:"2022",national_population:107995,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHS",country:"Bahamas",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:92.5,internet_year:"2024",mobile_per_100:96.7,mobile_year:"2024",national_population:401283,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRB",country:"Barbados",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.4,internet_year:"2024",mobile_per_100:114.6,mobile_year:"2022",national_population:282467,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLR",country:"Belarus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.3,internet_year:"2024",mobile_per_100:131.1,mobile_year:"2024",national_population:9132629,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BMU",country:"Bermuda",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:96.7,mobile_year:"2024",national_population:64636,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BIH",country:"Bosnia and Herzegovina",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.1,internet_year:"2024",mobile_per_100:121.2,mobile_year:"2024",national_population:3164253,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VGB",country:"Virgin Islands, British",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:39471,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGR",country:"Bulgaria",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82.4,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:6441421,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KHM",country:"Cambodia",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.5,internet_year:"2024",mobile_per_100:116.1,mobile_year:"2024",national_population:17638801,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYM",country:"Cayman Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:139.3,mobile_year:"2022",national_population:74457,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CAF",country:"Central African Republic",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:13.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2022",national_population:5330690,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CXR",country:"Christmas Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COK",country:"Cook Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUB",country:"Cuba",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.5,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:10979783,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUW",country:"Curaçao",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:93.8,mobile_year:"2023",national_population:155967,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYP",country:"Cyprus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.6,internet_year:"2024",mobile_per_100:156.2,mobile_year:"2024",national_population:1358282,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DJI",country:"Djibouti",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.3,internet_year:"2024",mobile_per_100:48.5,mobile_year:"2023",national_population:1168722,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DMA",country:"Dominica",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:85.2,mobile_year:"2022",national_population:66205,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNQ",country:"Equatorial Guinea",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.3,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2022",national_population:1892516,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FRO",country:"Faroe Islands",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:105.8,mobile_year:"2022",national_population:54640,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FJI",country:"Fiji",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:74.7,internet_year:"2024",mobile_per_100:574.2,mobile_year:"2024",national_population:928784,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PYF",country:"French Polynesia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:118.8,mobile_year:"2023",national_population:281807,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GEO",country:"Georgia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.8,internet_year:"2024",mobile_per_100:161.2,mobile_year:"2024",national_population:3812518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIB",country:"Gibraltar",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:97.6,mobile_year:"2022",national_population:39329,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRC",country:"Greece",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.3,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:10405134,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRD",country:"Grenada",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.2,internet_year:"2024",mobile_per_100:95.8,mobile_year:"2022",national_population:117207,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GLP",country:"Guadeloupe",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUM",country:"Guam",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:167777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GGY",country:"Guernsey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISL",country:"Iceland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.2,internet_year:"2024",mobile_per_100:120.9,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KIR",country:"Kiribati",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.4,internet_year:"2024",mobile_per_100:53.5,mobile_year:"2024",national_population:134518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JAM",country:"Jamaica",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:90.1,internet_year:"2024",mobile_per_100:117.7,mobile_year:"2024",national_population:2839175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JEY",country:"Jersey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KAZ",country:"Kazakhstan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.4,internet_year:"2024",mobile_per_100:127.1,mobile_year:"2024",national_population:20592571,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRK",country:"North Korea",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:24.1,mobile_year:"2022",national_population:26498823,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KWT",country:"Kuwait",region:"Middle East",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99.7,internet_year:"2024",mobile_per_100:167.7,mobile_year:"2023",national_population:4897263,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LIE",country:"Liechtenstein",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.3,internet_year:"2024",mobile_per_100:128.9,mobile_year:"2024",national_population:40450,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LUX",country:"Luxembourg",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.8,internet_year:"2024",mobile_per_100:144.5,mobile_year:"2023",national_population:677012,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYT",country:"Mayotte",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MDV",country:"Maldives",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.2,internet_year:"2024",mobile_per_100:148.1,mobile_year:"2024",national_population:527799,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLT",country:"Malta",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.9,internet_year:"2024",mobile_per_100:142.1,mobile_year:"2024",national_population:568847,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNP",country:"Northern Mariana Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:44278,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MHL",country:"Marshall Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.9,internet_year:"2024",mobile_per_100:39.7,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MUS",country:"Mauritius",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:73.3,internet_year:"2024",mobile_per_100:172.7,mobile_year:"2024",national_population:1245779,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FSM",country:"Micronesia, Federated States of",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:20,mobile_year:"2022",national_population:113160,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MCO",country:"Monaco",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99,internet_year:"2024",mobile_per_100:107.4,mobile_year:"2024",national_population:38631,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MSR",country:"Montserrat",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NCL",country:"New Caledonia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.7,mobile_year:"2022",national_population:292639,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NIU",country:"Niue",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VUT",country:"Vanuatu",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:89.3,mobile_year:"2023",national_population:327777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NFK",country:"Norfolk Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"HKG",country:"Hong Kong",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:364.8,mobile_year:"2024",national_population:7524100,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAC",country:"Macao",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.8,internet_year:"2024",mobile_per_100:201.1,mobile_year:"2024",national_population:687e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PLW",country:"Palau",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.9,internet_year:"2024",mobile_per_100:135.4,mobile_year:"2023",national_population:17695,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PNG",country:"Papua New Guinea",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:18.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2024",national_population:10576502,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLM",country:"Saint Barthélemy",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SHN",country:"Saint Helena",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LCA",country:"Saint Lucia",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.2,internet_year:"2024",mobile_per_100:98.7,mobile_year:"2022",national_population:179744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SMR",country:"San Marino",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:97.4,internet_year:"2024",mobile_per_100:120.3,mobile_year:"2022",national_population:33977,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ASM",country:"American Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46765,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WSM",country:"Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:62.4,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"STP",country:"Sao Tome and Principe",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:59.1,internet_year:"2024",mobile_per_100:62.4,mobile_year:"2024",national_population:235536,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SXM",country:"Sint Maarten (Dutch part)",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:205.4,mobile_year:"2022",national_population:43350,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLB",country:"Solomon Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:29,internet_year:"2024",mobile_per_100:62.1,mobile_year:"2022",national_population:819198,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LKA",country:"Sri Lanka",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:54.6,internet_year:"2024",mobile_per_100:132.5,mobile_year:"2024",national_population:21916e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SJM",country:"Svalbard and Jan Mayen",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWZ",country:"Eswatini",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.4,internet_year:"2024",mobile_per_100:139.8,mobile_year:"2024",national_population:1242822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TKL",country:"Tokelau",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TON",country:"Tonga",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.4,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:104175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCA",country:"Turks and Caicos Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46535,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VCT",country:"Saint Vincent and the Grenadines",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:76.2,internet_year:"2024",mobile_per_100:108.4,mobile_year:"2024",national_population:100616,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WLF",country:"Wallis and Futuna",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRY",country:"Paraguay",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.6,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2023",national_population:6929153,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FIN",country:"Finland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.7,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:5619911,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ALB",country:"Albania",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.9,internet_year:"2024",mobile_per_100:89.1,mobile_year:"2024",national_population:2377128,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAN",country:"Panama",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:156.6,mobile_year:"2023",national_population:4515577,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NZL",country:"New Zealand",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.1,mobile_year:"2024",national_population:529e4,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CZE",country:"Czech Republic",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:87.7,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:10905028,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GHA",country:"Ghana",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.2,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:34427414,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PHL",country:"Philippines",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.3,internet_year:"2024",mobile_per_100:115.3,mobile_year:"2024",national_population:115843670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISR",country:"Israel",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:10002200,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUY",country:"Guyana",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83,internet_year:"2024",mobile_per_100:112.6,mobile_year:"2022",national_population:831087,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UZB",country:"Uzbekistan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.5,internet_year:"2024",mobile_per_100:110.5,mobile_year:"2024",national_population:36361859,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESP",country:"Spain",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:130.3,mobile_year:"2024",national_population:48848840,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MWI",country:"Malawi",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:69.3,mobile_year:"2024",national_population:21655286,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}}]},Yg={class:"ci-tot"},Vg={class:"ci-chip"},Hg={class:"ci-chip"},qg={class:"ci-chip"},zg={class:"ci-chip"},Kg=["onClick"],Xg={class:"sec-name"},Jg={class:"sec-meta"},Zg={class:"r-name"},Qg={class:"r-sub"},em={class:"r-num"},tm={class:"r-sub"},nm={class:"r-num"},om=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-list",setup(e){const t=De("profileConfig",re(null)),n=ie(()=>{var f;return((f=t.value)==null?void 0:f.isDark)===!0}),o=ie(()=>Gg.countries||[]),s=ie(()=>{const f=new Map;for(const h of o.value){const m=h.region||"Other";f.has(m)||f.set(m,[]),f.get(m).push(h)}return[...f.entries()].map(([h,m])=>({name:h,items:m.slice().sort((w,k)=>k.people_groups-w.people_groups),groups:m.reduce((w,k)=>w+k.people_groups,0),unknown:m.filter(w=>w.internet_access==="unknown").length})).sort((h,m)=>m.groups-h.groups)}),r=re({}),i=f=>!!r.value[f],a=f=>{r.value={...r.value,[f]:!r.value[f]}},l=ie(()=>{const f=o.value;return{countries:f.length,resolved:f.filter(h=>h.internet_access!=="unknown").length,unknown:f.filter(h=>h.internet_access==="unknown").length,low:f.filter(h=>h.internet_access==="no").length}}),c=f=>f==="yes"?"ok":f==="partial"?"mid":f==="no"?"low":"unk",u=f=>f==="yes"?"connected":f==="partial"?"partial":f==="no"?"low":"unknown";return Wt(".ci{position:absolute;inset:0;overflow-y:auto;padding:20px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ci.is-dark{background:#0a1410;color:#e5e7eb}.ci-h{margin:0 0 4px;font-size:19px;font-weight:700;text-align:center}.ci-sub{margin:0 auto 18px;max-width:640px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.ci-tot{display:flex;gap:14px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.ci-chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:600}.is-dark .ci-chip{background:rgba(255,255,255,.10)}.sec{max-width:1080px;margin:0 auto;padding-bottom:34px}.sec-head{position:sticky;top:0;z-index:6;background:#f6f7f9;display:flex;align-items:baseline;gap:10px;padding:10px 10px 8px;margin:0 2px 10px;border-bottom:1px solid rgba(0,0,0,.10);cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{background:#0a1410;border-bottom-color:rgba(255,255,255,.12)}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s}.sec-caret.open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700}.sec-meta{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.is-dark .row{border-bottom-color:rgba(255,255,255,.07)}.r-name{font-size:13.5px;font-weight:600}.r-sub{font-size:11px;opacity:.6}.r-num{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;min-width:72px}.pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:rgba(16,185,129,.15);color:#0b7a5b}.pill.mid{background:rgba(245,158,11,.16);color:#8a6414}.pill.low{background:rgba(220,38,38,.13);color:#a12020}.pill.unk{background:rgba(0,0,0,.07);color:#6b7280}.is-dark .pill.unk{background:rgba(255,255,255,.10);color:#9ca3af}.src{max-width:1080px;margin:8px auto 0;font-size:11px;line-height:1.6;opacity:.6;text-align:center}","doxa-cities-internet"),(f,h)=>(H(),J("div",{class:Te(["ci",{"is-dark":n.value}])},[h[1]||(h[1]=M("h2",{class:"ci-h"},"Cities with Internet",-1)),h[2]||(h[2]=M("p",{class:"ci-sub"},[$e(" Connectivity where the unengaged people groups live. Every figure is a measured national statistic with its observation year — "),M("strong",null,"unknown means unmeasured, never assumed"),$e(". ")],-1)),M("div",Yg,[M("span",Vg,Q(l.value.countries)+" countries",1),M("span",Hg,Q(l.value.resolved)+" measured",1),M("span",qg,Q(l.value.unknown)+" unknown",1),M("span",zg,Q(l.value.low)+" low-connectivity",1)]),(H(!0),J(de,null,ct(s.value,m=>(H(),J("section",{key:m.name,class:"sec"},[M("button",{type:"button",class:"sec-head",onClick:w=>a(m.name)},[M("span",{class:Te(["sec-caret",{open:!i(m.name)}])},"▶",2),M("h3",Xg,Q(m.name),1),M("span",Jg,[$e(Q(m.items.length)+" countries · "+Q(m.groups.toLocaleString())+" people groups ",1),m.unknown?(H(),J(de,{key:0},[$e(" · "+Q(m.unknown)+" unmeasured",1)],64)):Le("",!0)])],8,Kg),Fc(M("div",null,[(H(!0),J(de,null,ct(m.items,w=>(H(),J("div",{key:w.iso3,class:"row"},[M("div",null,[M("div",Zg,Q(w.country),1),M("div",Qg,[$e(Q(w.people_groups)+" people groups · "+Q(w.clusters)+" locations ",1),w.multi?(H(),J(de,{key:0},[$e(" · "+Q(w.multi)+" population centres",1)],64)):Le("",!0)])]),M("div",em,[w.internet_pct!==null&&w.internet_pct!==void 0?(H(),J(de,{key:0},[$e(Q(w.internet_pct)+"% ",1),M("div",tm,Q(w.internet_year),1)],64)):(H(),J(de,{key:1},[$e("—")],64))]),M("div",nm,[w.mobile_per_100!==null&&w.mobile_per_100!==void 0?(H(),J(de,{key:0},[$e(Q(w.mobile_per_100)+" ",1),h[0]||(h[0]=M("div",{class:"r-sub"},"mob/100",-1))],64)):(H(),J(de,{key:1},[$e("—")],64))]),M("span",{class:Te(["pill",c(w.internet_access)])},Q(u(w.internet_access)),3)]))),128))],512),[[Ku,!i(m.name)]])]))),128)),h[3]||(h[3]=M("p",{class:"src"}," Internet and mobile figures: World Bank Open Data (CC BY 4.0), most recent observation 2018–2024. Banding: connected ≥60% · partial 25–59% · low <25% of population using the internet. Country-resolution — per-city measurements are not publicly available at this scale. ISP names, carrier names and censorship history require per-country cited reporting and are not shown. ",-1))],2))}}},Symbol.toStringTag,{value:"Module"})),ys={boundaries:{label:"geoBoundaries",href:"https://www.geoboundaries.org",title:"Country and administrative boundaries — geoBoundaries gbOpen (mixed upstream licences; see docs)"},mapbox:{label:"Mapbox",href:"https://www.mapbox.com/about/maps/"},osm:{label:"© OpenStreetMap",href:"https://www.openstreetmap.org/copyright"}};function rm(e,t={}){if(!e||typeof e.addControl!="function")return null;const{boundaries:n=!0,basemap:o=!0}=t,s=document.createElement("div");s.className="doxa-attribution mapboxgl-ctrl",s.style.cssText=["font:11px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif","background:rgba(255,255,255,.82)","color:#3a4048","padding:2px 6px","border-radius:3px 0 0 0","pointer-events:auto","max-width:min(92vw,420px)"].join(";");const r=[];n&&r.push(ys.boundaries),o&&(r.push(ys.mapbox),r.push(ys.osm)),s.innerHTML=r.map(a=>`${a.label}`).join(" · ");const i={onAdd:()=>s,onRemove:()=>{s.parentNode&&s.parentNode.removeChild(s)},getDefaultPosition:()=>"bottom-right"};return e.addControl(i,"bottom-right"),i}const sm={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=re(null);return nt("mapToolbar",{el:t}),Wt(` +`,"pin-hint"),(A,O)=>r.value?(H(),J("div",{key:0,ref_key:"hintEl",ref:a,class:Te(["pin-hint",{dark:o.value}]),role:"status"},[M("span",Ag,[O[0]||(O[0]=M("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),$e(" "+Q(s.value)+" ",1),M("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:h},"×")])],2)):Le("",!0)}};let Tg=0;const Lg=Qr("ui",{state:()=>({_storeInstanceId:++Tg,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){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:n="info",duration:o=this.toastDuration,action:s=null,persistent:r=!1}=e,a={id:this.nextToastId++,message:t,type:n,duration:o,action:s,persistent:r,createdAt:Date.now()};return this.toasts.push(a),!r&&o>0&&setTimeout(()=>{this.removeToast(a.id)},o),a.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)}))}}}),Sg=Qr("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",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 s=[0,0];if(n.center)s=n.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(s=[r.lng,r.lat])}this.maps[e]={instance:t,config:n,isReady:!1,zoom:o,center:s,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)},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()}}}),xg=Qr("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]=vn({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]=vn({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}}}),Ig={activeSource:"pray-tools"},Fg=".profile-loader[data-v-931b414b]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-931b414b]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Mg=(e,t)=>{const n=e.__vccOpts||e;for(const[o,s]of t)n[o]=s;return n},Pg={class:"profile-loader"},Bg={key:0,class:"profile-error"},Dg={key:1,class:"profile-error"},Rg=Mg({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var b;const n=e,o=De("profileConfig",null),s=ae(()=>{var E;if(!n.profileConfig)return null;let v;try{v=JSON.parse(n.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",n.profileConfig),null}if(v&&v.assetsBase===void 0){const L=(E=o==null?void 0:o.value)==null?void 0:E.assetsBase;typeof L=="string"&&L&&(v.assetsBase=L)}return v}),r=ae(()=>{var v;return((v=s.value)==null?void 0:v.profile)||null}),a=ae(()=>{var E;const v=(E=s.value)==null?void 0:E.tk;return typeof v=="string"&&v?v:typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN?window.MAP_TOKEN:""}),i=ae(()=>{var v;return((v=s.value)==null?void 0:v.dataSource)||Ig.activeSource}),l=ae(()=>{var v;return((v=s.value)==null?void 0:v.colorSet)||"default"}),c=ae(()=>!1),u=ae(()=>{var v;return((v=s.value)==null?void 0:v.pinHint)!==!1}),f=ae(()=>{var E,L;const v=(((E=s.value)==null?void 0:E.locale)||((L=s.value)==null?void 0:L.lang)||"").split("-")[0].toLowerCase();return Pl.includes(v)?v:""}),h=De("appI18n",null);Dc(()=>{f.value&&h&&(h.global.locale.value=f.value)});const m=ae(()=>{var v,E;return f.value||((E=(v=h==null?void 0:h.global)==null?void 0:v.locale)==null?void 0:E.value)||"en"}),w=ae(()=>{var v;return((v=s.value)==null?void 0:v.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),k=De("profileModules",null);if(!k)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const A=ae(()=>{if(!r.value)return null;const v=`./${r.value}.vue`;return k[v]?Hc(k[v]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(k)),null)});nt("mapboxToken",a),nt("dataSource",i),nt("colorSet",l),nt("profileConfig",s),nt("instanceId",w),nt("lang",m);const O=Lg(),C=Sg(),_=xg();try{const v=typeof localStorage<"u"?localStorage.getItem("theme"):null;v&&((b=O.setTheme)==null||b.call(O,v))}catch{}return nt("uiStore",O),nt("mapStore",C),nt("dataStore",_),(v,E)=>(H(),J("div",Pg,[s.value?A.value?(H(),Qe(ya(A.value),{key:2})):(H(),J("div",Dg,[M("p",null,[E[1]||(E[1]=$e("⚠️ Profile ",-1)),M("strong",null,'"'+Q(r.value)+'"',1),E[2]||(E[2]=$e(" not found.",-1))])])):(H(),J("div",Bg,[...E[0]||(E[0]=[M("p",null,[$e("⚠️ "),M("strong",null,"doxa-map"),$e(": missing or invalid "),M("code",null,"profile-config"),$e(" prop.")],-1),M("p",null,[$e("Example: "),M("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),A.value&&c.value?(H(),Qe(ya(ze(null)),{key:3})):Le("",!0),A.value&&u.value?(H(),Qe(Eg,{key:4})):Le("",!0)]))}},[["styles",[Fg]],["__scopeId","data-v-931b414b"]]),Wg=Object.assign({"./connectivity-list.vue":()=>lr(()=>Promise.resolve().then(()=>om),void 0),"./connectivity-map.vue":()=>lr(()=>Promise.resolve().then(()=>Jm),void 0),"./data-tables.vue":()=>lr(()=>Promise.resolve().then(()=>k_),void 0)});function Ug(){return fp(Rg,{configureApp(e){e.use(kp()),e.use(Ng()),e.provide("profileModules",Wg)}})}const jg=Ug();typeof customElements<"u"&&(customElements.get("cities-internet-map")||customElements.define("cities-internet-map",jg));const Gg={countries:[{iso3:"IND",country:"India",region:"Asia",clusters:541,people_groups:856,multi:164,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:79.4,mobile_year:"2024",national_population:1450935791,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CHN",country:"People's Republic of China",region:"Asia",clusters:130,people_groups:154,multi:19,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:131.8,mobile_year:"2024",national_population:1408975e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SDN",country:"Sudan",region:"Middle East",clusters:75,people_groups:105,multi:20,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:70.2,mobile_year:"2022",national_population:50448963,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRA",country:"Brazil",region:"Latin America & Caribbean",clusters:99,people_groups:104,multi:5,internet_access:"yes",internet_pct:84.5,internet_year:"2024",mobile_per_100:101.9,mobile_year:"2024",national_population:211998573,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LAO",country:"Lao People's Democratic Republic",region:"Asia",clusters:65,people_groups:95,multi:24,internet_access:"yes",internet_pct:65.6,internet_year:"2024",mobile_per_100:64.8,mobile_year:"2023",national_population:7769819,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCD",country:"Chad",region:"Africa",clusters:48,people_groups:54,multi:6,internet_access:"no",internet_pct:12.6,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:20299123,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NGA",country:"Nigeria",region:"Africa",clusters:35,people_groups:38,multi:3,internet_access:"partial",internet_pct:41.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:232679478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IDN",country:"Indonesia",region:"Asia",clusters:35,people_groups:36,multi:1,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:122.5,mobile_year:"2024",national_population:283487931,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NPL",country:"Nepal",region:"Asia",clusters:25,people_groups:33,multi:5,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:99.8,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ETH",country:"Ethiopia",region:"Africa",clusters:29,people_groups:29,multi:0,internet_access:"no",internet_pct:21.9,internet_year:"2024",mobile_per_100:65.1,mobile_year:"2024",national_population:132059767,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COL",country:"Colombia",region:"Latin America & Caribbean",clusters:26,people_groups:26,multi:0,internet_access:"yes",internet_pct:79.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:52886363,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAK",country:"Pakistan",region:"Asia",clusters:21,people_groups:24,multi:2,internet_access:"partial",internet_pct:57.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:251269164,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SSD",country:"South Sudan",region:"Africa",clusters:22,people_groups:22,multi:0,internet_access:"no",internet_pct:6.7,internet_year:"2019",mobile_per_100:46.6,mobile_year:"2023",national_population:11943408,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"RUS",country:"Russian Federation",region:"Europe",clusters:17,people_groups:21,multi:2,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:186.1,mobile_year:"2024",national_population:143669648,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AFG",country:"Afghanistan",region:"Asia",clusters:15,people_groups:21,multi:5,internet_access:"no",internet_pct:16.1,internet_year:"2024",mobile_per_100:60.1,mobile_year:"2024",national_population:42647492,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRN",country:"Islamic Republic of Iran",region:"Middle East",clusters:19,people_groups:20,multi:1,internet_access:"yes",internet_pct:85.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:91567738,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DZA",country:"Algeria",region:"Middle East",clusters:15,people_groups:17,multi:2,internet_access:"yes",internet_pct:77.4,internet_year:"2024",mobile_per_100:115.5,mobile_year:"2024",national_population:46814308,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VNM",country:"Vietnam",region:"Asia",clusters:15,people_groups:16,multi:1,internet_access:"yes",internet_pct:84.2,internet_year:"2024",mobile_per_100:127.6,mobile_year:"2024",national_population:100987686,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TZA",country:"United Republic of Tanzania",region:"Africa",clusters:16,people_groups:16,multi:0,internet_access:"partial",internet_pct:31.2,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:68560157,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBY",country:"Libya",region:"Middle East",clusters:13,people_groups:15,multi:2,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:193,mobile_year:"2022",national_population:7381023,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BTN",country:"Bhutan",region:"Asia",clusters:12,people_groups:13,multi:1,internet_access:"yes",internet_pct:91.3,internet_year:"2024",mobile_per_100:99.8,mobile_year:"2024",national_population:791524,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIN",country:"Guinea",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:33.3,internet_year:"2024",mobile_per_100:97.9,mobile_year:"2023",national_population:14754785,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLI",country:"Mali",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:36.8,internet_year:"2024",mobile_per_100:112.1,mobile_year:"2022",national_population:24478595,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYS",country:"Malaysia",region:"Asia",clusters:11,people_groups:12,multi:1,internet_access:"yes",internet_pct:98,internet_year:"2024",mobile_per_100:139.7,mobile_year:"2024",national_population:35557673,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AGO",country:"Angola",region:"Africa",clusters:9,people_groups:10,multi:1,internet_access:"partial",internet_pct:40.7,internet_year:"2024",mobile_per_100:69.7,mobile_year:"2024",national_population:37885849,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PER",country:"Peru",region:"Latin America & Caribbean",clusters:10,people_groups:10,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:124.6,mobile_year:"2024",national_population:34217848,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"YEM",country:"Yemen",region:"Middle East",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:17.5,internet_year:"2019",mobile_per_100:50.9,mobile_year:"2023",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COD",country:"Democratic Republic of the Congo",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:19.7,internet_year:"2024",mobile_per_100:58.5,mobile_year:"2024",national_population:109276265,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BEN",country:"Benin",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"partial",internet_pct:34,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:14462724,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SOM",country:"Somalia",region:"Africa",clusters:9,people_groups:9,multi:0,internet_access:"partial",internet_pct:27.9,internet_year:"2024",mobile_per_100:54,mobile_year:"2023",national_population:19009151,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ERI",country:"Eritrea",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"no",internet_pct:14.3,internet_year:"2020",mobile_per_100:59.1,mobile_year:"2022",national_population:3535603,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRQ",country:"Iraq",region:"Middle East",clusters:7,people_groups:8,multi:1,internet_access:"yes",internet_pct:81.5,internet_year:"2024",mobile_per_100:100.1,mobile_year:"2024",national_population:46042015,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BFA",country:"Burkina Faso",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"partial",internet_pct:28.3,internet_year:"2024",mobile_per_100:116.6,mobile_year:"2024",national_population:23548781,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"THA",country:"Thailand",region:"Asia",clusters:8,people_groups:8,multi:0,internet_access:"yes",internet_pct:90.9,internet_year:"2024",mobile_per_100:160.6,mobile_year:"2024",national_population:71668011,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PSE",country:"State of Palestine",region:"Middle East",clusters:3,people_groups:7,multi:1,internet_access:"yes",internet_pct:86.6,internet_year:"2023",mobile_per_100:76.7,mobile_year:"2023",national_population:5289152,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"OMN",country:"Oman",region:"Middle East",clusters:7,people_groups:7,multi:0,internet_access:"yes",internet_pct:95.3,internet_year:"2024",mobile_per_100:120.6,mobile_year:"2024",national_population:5281538,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MMR",country:"Myanmar",region:"Asia",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:45.4,internet_year:"2020",mobile_per_100:114.3,mobile_year:"2024",national_population:54500091,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CMR",country:"Cameroon",region:"Africa",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:46.3,internet_year:"2024",mobile_per_100:108.2,mobile_year:"2024",national_population:29123744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TGO",country:"Togo",region:"Africa",clusters:5,people_groups:6,multi:1,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:8406558,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JPN",country:"Japan",region:"Asia",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:85.5,internet_year:"2024",mobile_per_100:178.4,mobile_year:"2023",national_population:123975371,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UGA",country:"Uganda",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"no",internet_pct:8.9,internet_year:"2024",mobile_per_100:83.2,mobile_year:"2024",national_population:50015092,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZMB",country:"Zambia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:108.7,mobile_year:"2024",national_population:21314956,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VEN",country:"Venezuela",region:"Latin America & Caribbean",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:76.7,internet_year:"2024",mobile_per_100:71,mobile_year:"2024",national_population:28405543,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NAM",country:"Namibia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:3030131,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRN",country:"Brunei Darussalam",region:"Asia",clusters:4,people_groups:5,multi:1,internet_access:"yes",internet_pct:96.3,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:462721,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KEN",country:"Kenya",region:"Africa",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:35,internet_year:"2024",mobile_per_100:126.5,mobile_year:"2024",national_population:56432944,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SYR",country:"Syrian Arab Republic",region:"Middle East",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:33.8,internet_year:"2018",mobile_per_100:71.2,mobile_year:"2024",national_population:24672760,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBN",country:"Lebanon",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:80.6,internet_year:"2024",mobile_per_100:74,mobile_year:"2022",national_population:5805962,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MOZ",country:"Mozambique",region:"Africa",clusters:4,people_groups:4,multi:0,internet_access:"no",internet_pct:20.5,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2024",national_population:34631766,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAR",country:"Morocco",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:91.2,internet_year:"2024",mobile_per_100:153.1,mobile_year:"2024",national_population:38081173,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"QAT",country:"Qatar",region:"Middle East",clusters:1,people_groups:3,multi:1,internet_access:"yes",internet_pct:98.1,internet_year:"2024",mobile_per_100:153.6,mobile_year:"2024",national_population:2857822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SAU",country:"Saudi Arabia",region:"Middle East",clusters:2,people_groups:3,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:35300280,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUR",country:"Türkiye",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:87.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:85518661,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AZE",country:"Azerbaijan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:90.4,internet_year:"2024",mobile_per_100:109.5,mobile_year:"2024",national_population:10202830,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GMB",country:"Republic of The Gambia",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:49.5,internet_year:"2024",mobile_per_100:126.2,mobile_year:"2024",national_population:2759988,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JOR",country:"Jordan",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:95.6,internet_year:"2024",mobile_per_100:69.6,mobile_year:"2024",national_population:11552876,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZWE",country:"Zimbabwe",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:94.2,mobile_year:"2024",national_population:16634373,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COM",country:"Comoros",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:32.5,internet_year:"2024",mobile_per_100:109.9,mobile_year:"2023",national_population:866628,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"USA",country:"United States of America",region:"Other",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:94.7,internet_year:"2024",mobile_per_100:113.2,mobile_year:"2024",national_population:340003797,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGD",country:"Bangladesh",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:53.4,internet_year:"2024",mobile_per_100:108.1,mobile_year:"2024",national_population:173562364,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNB",country:"Guinea-Bissau",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:29.8,internet_year:"2024",mobile_per_100:147.2,mobile_year:"2024",national_population:2201352,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KOS",country:"KOS",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MRT",country:"Mauritania",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:45.8,internet_year:"2024",mobile_per_100:92.1,mobile_year:"2024",national_population:5169395,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESH",country:"Western Sahara",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TJK",country:"Tajikistan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:55.8,internet_year:"2024",mobile_per_100:76.2,mobile_year:"2023",national_population:10590927,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"EGY",country:"Egypt",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:74.6,internet_year:"2024",mobile_per_100:97.1,mobile_year:"2024",national_population:116538258,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNG",country:"Mongolia",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:85.1,internet_year:"2024",mobile_per_100:140.7,mobile_year:"2024",national_population:3524788,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHR",country:"Bahrain",region:"Middle East",clusters:1,people_groups:2,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:1588670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SUR",country:"Suriname",region:"North America & Non-Spanish Caribbean",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:142.1,mobile_year:"2024",national_population:634431,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NER",country:"Niger",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:60.6,mobile_year:"2024",national_population:27032412,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZAF",country:"South Africa",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:78.4,internet_year:"2024",mobile_per_100:179.3,mobile_year:"2024",national_population:64007187,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CCK",country:"Cocos (Keeling) Islands",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COG",country:"Republic of the Congo",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:47.3,internet_year:"2024",mobile_per_100:95.5,mobile_year:"2024",national_population:6332961,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARE",country:"United Arab Emirates",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:203.2,mobile_year:"2024",national_population:10986400,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GAB",country:"Gabon",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:68.7,internet_year:"2024",mobile_per_100:125.3,mobile_year:"2024",national_population:2538952,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUF",country:"French Guiana",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CIV",country:"Cote d'Ivoire",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:41.4,internet_year:"2024",mobile_per_100:183.9,mobile_year:"2024",national_population:31934230,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KGZ",country:"Kyrgyzstan",region:"Asia",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:107.5,mobile_year:"2024",national_population:7221868,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBR",country:"Liberia",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:32.2,internet_year:"2024",mobile_per_100:32.1,mobile_year:"2022",national_population:5612817,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWE",country:"Sweden",region:"Europe",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:140.7,mobile_year:"2024",national_population:10569709,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUN",country:"Tunisia",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:76.5,internet_year:"2024",mobile_per_100:117.6,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLE",country:"Sierra Leone",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:25.1,internet_year:"2024",mobile_per_100:107.9,mobile_year:"2022",national_population:8642022,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AND",country:"Andorra",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:155.7,mobile_year:"2024",national_population:81938,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SEN",country:"Senegal",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:60.1,internet_year:"2024",mobile_per_100:123.9,mobile_year:"2024",national_population:18501984,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNE",country:"Montenegro",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.9,internet_year:"2024",mobile_per_100:221.7,mobile_year:"2024",national_population:623525,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BOL",country:"Bolivia",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:79.7,internet_year:"2024",mobile_per_100:98,mobile_year:"2024",national_population:12413315,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ECU",country:"Ecuador",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:77.2,internet_year:"2024",mobile_per_100:101.6,mobile_year:"2024",national_population:18135478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VIR",country:"Virgin Islands, U.S.",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.5,mobile_year:"2022",national_population:104377,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ATG",country:"Antigua and Barbuda",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.7,internet_year:"2024",mobile_per_100:200.5,mobile_year:"2022",national_population:93772,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARM",country:"Armenia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.3,internet_year:"2024",mobile_per_100:134.9,mobile_year:"2024",national_population:3033500,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ABW",country:"Aruba",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.6,mobile_year:"2022",national_population:107995,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHS",country:"Bahamas",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:92.5,internet_year:"2024",mobile_per_100:96.7,mobile_year:"2024",national_population:401283,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRB",country:"Barbados",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.4,internet_year:"2024",mobile_per_100:114.6,mobile_year:"2022",national_population:282467,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLR",country:"Belarus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.3,internet_year:"2024",mobile_per_100:131.1,mobile_year:"2024",national_population:9132629,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BMU",country:"Bermuda",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:96.7,mobile_year:"2024",national_population:64636,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BIH",country:"Bosnia and Herzegovina",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.1,internet_year:"2024",mobile_per_100:121.2,mobile_year:"2024",national_population:3164253,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VGB",country:"Virgin Islands, British",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:39471,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGR",country:"Bulgaria",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82.4,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:6441421,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KHM",country:"Cambodia",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.5,internet_year:"2024",mobile_per_100:116.1,mobile_year:"2024",national_population:17638801,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYM",country:"Cayman Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:139.3,mobile_year:"2022",national_population:74457,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CAF",country:"Central African Republic",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:13.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2022",national_population:5330690,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CXR",country:"Christmas Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COK",country:"Cook Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUB",country:"Cuba",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.5,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:10979783,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUW",country:"Curaçao",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:93.8,mobile_year:"2023",national_population:155967,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYP",country:"Cyprus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.6,internet_year:"2024",mobile_per_100:156.2,mobile_year:"2024",national_population:1358282,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DJI",country:"Djibouti",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.3,internet_year:"2024",mobile_per_100:48.5,mobile_year:"2023",national_population:1168722,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DMA",country:"Dominica",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:85.2,mobile_year:"2022",national_population:66205,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNQ",country:"Equatorial Guinea",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.3,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2022",national_population:1892516,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FRO",country:"Faroe Islands",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:105.8,mobile_year:"2022",national_population:54640,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FJI",country:"Fiji",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:74.7,internet_year:"2024",mobile_per_100:574.2,mobile_year:"2024",national_population:928784,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PYF",country:"French Polynesia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:118.8,mobile_year:"2023",national_population:281807,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GEO",country:"Georgia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.8,internet_year:"2024",mobile_per_100:161.2,mobile_year:"2024",national_population:3812518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIB",country:"Gibraltar",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:97.6,mobile_year:"2022",national_population:39329,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRC",country:"Greece",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.3,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:10405134,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRD",country:"Grenada",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.2,internet_year:"2024",mobile_per_100:95.8,mobile_year:"2022",national_population:117207,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GLP",country:"Guadeloupe",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUM",country:"Guam",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:167777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GGY",country:"Guernsey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISL",country:"Iceland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.2,internet_year:"2024",mobile_per_100:120.9,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KIR",country:"Kiribati",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.4,internet_year:"2024",mobile_per_100:53.5,mobile_year:"2024",national_population:134518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JAM",country:"Jamaica",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:90.1,internet_year:"2024",mobile_per_100:117.7,mobile_year:"2024",national_population:2839175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JEY",country:"Jersey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KAZ",country:"Kazakhstan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.4,internet_year:"2024",mobile_per_100:127.1,mobile_year:"2024",national_population:20592571,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRK",country:"North Korea",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:24.1,mobile_year:"2022",national_population:26498823,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KWT",country:"Kuwait",region:"Middle East",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99.7,internet_year:"2024",mobile_per_100:167.7,mobile_year:"2023",national_population:4897263,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LIE",country:"Liechtenstein",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.3,internet_year:"2024",mobile_per_100:128.9,mobile_year:"2024",national_population:40450,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LUX",country:"Luxembourg",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.8,internet_year:"2024",mobile_per_100:144.5,mobile_year:"2023",national_population:677012,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYT",country:"Mayotte",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MDV",country:"Maldives",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.2,internet_year:"2024",mobile_per_100:148.1,mobile_year:"2024",national_population:527799,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLT",country:"Malta",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.9,internet_year:"2024",mobile_per_100:142.1,mobile_year:"2024",national_population:568847,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNP",country:"Northern Mariana Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:44278,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MHL",country:"Marshall Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.9,internet_year:"2024",mobile_per_100:39.7,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MUS",country:"Mauritius",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:73.3,internet_year:"2024",mobile_per_100:172.7,mobile_year:"2024",national_population:1245779,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FSM",country:"Micronesia, Federated States of",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:20,mobile_year:"2022",national_population:113160,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MCO",country:"Monaco",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99,internet_year:"2024",mobile_per_100:107.4,mobile_year:"2024",national_population:38631,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MSR",country:"Montserrat",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NCL",country:"New Caledonia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.7,mobile_year:"2022",national_population:292639,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NIU",country:"Niue",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VUT",country:"Vanuatu",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:89.3,mobile_year:"2023",national_population:327777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NFK",country:"Norfolk Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"HKG",country:"Hong Kong",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:364.8,mobile_year:"2024",national_population:7524100,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAC",country:"Macao",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.8,internet_year:"2024",mobile_per_100:201.1,mobile_year:"2024",national_population:687e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PLW",country:"Palau",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.9,internet_year:"2024",mobile_per_100:135.4,mobile_year:"2023",national_population:17695,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PNG",country:"Papua New Guinea",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:18.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2024",national_population:10576502,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLM",country:"Saint Barthélemy",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SHN",country:"Saint Helena",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LCA",country:"Saint Lucia",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.2,internet_year:"2024",mobile_per_100:98.7,mobile_year:"2022",national_population:179744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SMR",country:"San Marino",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:97.4,internet_year:"2024",mobile_per_100:120.3,mobile_year:"2022",national_population:33977,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ASM",country:"American Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46765,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WSM",country:"Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:62.4,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"STP",country:"Sao Tome and Principe",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:59.1,internet_year:"2024",mobile_per_100:62.4,mobile_year:"2024",national_population:235536,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SXM",country:"Sint Maarten (Dutch part)",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:205.4,mobile_year:"2022",national_population:43350,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLB",country:"Solomon Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:29,internet_year:"2024",mobile_per_100:62.1,mobile_year:"2022",national_population:819198,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LKA",country:"Sri Lanka",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:54.6,internet_year:"2024",mobile_per_100:132.5,mobile_year:"2024",national_population:21916e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SJM",country:"Svalbard and Jan Mayen",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWZ",country:"Eswatini",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.4,internet_year:"2024",mobile_per_100:139.8,mobile_year:"2024",national_population:1242822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TKL",country:"Tokelau",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TON",country:"Tonga",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.4,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:104175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCA",country:"Turks and Caicos Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46535,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VCT",country:"Saint Vincent and the Grenadines",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:76.2,internet_year:"2024",mobile_per_100:108.4,mobile_year:"2024",national_population:100616,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WLF",country:"Wallis and Futuna",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRY",country:"Paraguay",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.6,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2023",national_population:6929153,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FIN",country:"Finland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.7,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:5619911,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ALB",country:"Albania",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.9,internet_year:"2024",mobile_per_100:89.1,mobile_year:"2024",national_population:2377128,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAN",country:"Panama",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:156.6,mobile_year:"2023",national_population:4515577,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NZL",country:"New Zealand",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.1,mobile_year:"2024",national_population:529e4,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CZE",country:"Czech Republic",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:87.7,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:10905028,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GHA",country:"Ghana",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.2,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:34427414,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PHL",country:"Philippines",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.3,internet_year:"2024",mobile_per_100:115.3,mobile_year:"2024",national_population:115843670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISR",country:"Israel",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:10002200,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUY",country:"Guyana",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83,internet_year:"2024",mobile_per_100:112.6,mobile_year:"2022",national_population:831087,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UZB",country:"Uzbekistan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.5,internet_year:"2024",mobile_per_100:110.5,mobile_year:"2024",national_population:36361859,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESP",country:"Spain",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:130.3,mobile_year:"2024",national_population:48848840,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MWI",country:"Malawi",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:69.3,mobile_year:"2024",national_population:21655286,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}}]},Yg={class:"ci-tot"},Vg={class:"ci-chip"},Hg={class:"ci-chip"},qg={class:"ci-chip"},zg={class:"ci-chip"},Kg=["onClick"],Xg={class:"sec-name"},Jg={class:"sec-meta"},Zg={class:"r-name"},Qg={class:"r-sub"},em={class:"r-num"},tm={class:"r-sub"},nm={class:"r-num"},om=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-list",setup(e){const t=De("profileConfig",re(null)),n=ae(()=>{var f;return((f=t.value)==null?void 0:f.isDark)===!0}),o=ae(()=>Gg.countries||[]),s=ae(()=>{const f=new Map;for(const h of o.value){const m=h.region||"Other";f.has(m)||f.set(m,[]),f.get(m).push(h)}return[...f.entries()].map(([h,m])=>({name:h,items:m.slice().sort((w,k)=>k.people_groups-w.people_groups),groups:m.reduce((w,k)=>w+k.people_groups,0),unknown:m.filter(w=>w.internet_access==="unknown").length})).sort((h,m)=>m.groups-h.groups)}),r=re({}),a=f=>!!r.value[f],i=f=>{r.value={...r.value,[f]:!r.value[f]}},l=ae(()=>{const f=o.value;return{countries:f.length,resolved:f.filter(h=>h.internet_access!=="unknown").length,unknown:f.filter(h=>h.internet_access==="unknown").length,low:f.filter(h=>h.internet_access==="no").length}}),c=f=>f==="yes"?"ok":f==="partial"?"mid":f==="no"?"low":"unk",u=f=>f==="yes"?"connected":f==="partial"?"partial":f==="no"?"low":"unknown";return Wt(".ci{position:absolute;inset:0;overflow-y:auto;padding:20px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ci.is-dark{background:#0a1410;color:#e5e7eb}.ci-h{margin:0 0 4px;font-size:19px;font-weight:700;text-align:center}.ci-sub{margin:0 auto 18px;max-width:640px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.ci-tot{display:flex;gap:14px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.ci-chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:600}.is-dark .ci-chip{background:rgba(255,255,255,.10)}.sec{max-width:1080px;margin:0 auto;padding-bottom:34px}.sec-head{position:sticky;top:0;z-index:6;background:#f6f7f9;display:flex;align-items:baseline;gap:10px;padding:10px 10px 8px;margin:0 2px 10px;border-bottom:1px solid rgba(0,0,0,.10);cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{background:#0a1410;border-bottom-color:rgba(255,255,255,.12)}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s}.sec-caret.open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700}.sec-meta{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.is-dark .row{border-bottom-color:rgba(255,255,255,.07)}.r-name{font-size:13.5px;font-weight:600}.r-sub{font-size:11px;opacity:.6}.r-num{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;min-width:72px}.pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:rgba(16,185,129,.15);color:#0b7a5b}.pill.mid{background:rgba(245,158,11,.16);color:#8a6414}.pill.low{background:rgba(220,38,38,.13);color:#a12020}.pill.unk{background:rgba(0,0,0,.07);color:#6b7280}.is-dark .pill.unk{background:rgba(255,255,255,.10);color:#9ca3af}.src{max-width:1080px;margin:8px auto 0;font-size:11px;line-height:1.6;opacity:.6;text-align:center}","doxa-cities-internet"),(f,h)=>(H(),J("div",{class:Te(["ci",{"is-dark":n.value}])},[h[1]||(h[1]=M("h2",{class:"ci-h"},"Cities with Internet",-1)),h[2]||(h[2]=M("p",{class:"ci-sub"},[$e(" Connectivity where the unengaged people groups live. Every figure is a measured national statistic with its observation year — "),M("strong",null,"unknown means unmeasured, never assumed"),$e(". ")],-1)),M("div",Yg,[M("span",Vg,Q(l.value.countries)+" countries",1),M("span",Hg,Q(l.value.resolved)+" measured",1),M("span",qg,Q(l.value.unknown)+" unknown",1),M("span",zg,Q(l.value.low)+" low-connectivity",1)]),(H(!0),J(de,null,ct(s.value,m=>(H(),J("section",{key:m.name,class:"sec"},[M("button",{type:"button",class:"sec-head",onClick:w=>i(m.name)},[M("span",{class:Te(["sec-caret",{open:!a(m.name)}])},"▶",2),M("h3",Xg,Q(m.name),1),M("span",Jg,[$e(Q(m.items.length)+" countries · "+Q(m.groups.toLocaleString())+" people groups ",1),m.unknown?(H(),J(de,{key:0},[$e(" · "+Q(m.unknown)+" unmeasured",1)],64)):Le("",!0)])],8,Kg),Fc(M("div",null,[(H(!0),J(de,null,ct(m.items,w=>(H(),J("div",{key:w.iso3,class:"row"},[M("div",null,[M("div",Zg,Q(w.country),1),M("div",Qg,[$e(Q(w.people_groups)+" people groups · "+Q(w.clusters)+" locations ",1),w.multi?(H(),J(de,{key:0},[$e(" · "+Q(w.multi)+" population centres",1)],64)):Le("",!0)])]),M("div",em,[w.internet_pct!==null&&w.internet_pct!==void 0?(H(),J(de,{key:0},[$e(Q(w.internet_pct)+"% ",1),M("div",tm,Q(w.internet_year),1)],64)):(H(),J(de,{key:1},[$e("—")],64))]),M("div",nm,[w.mobile_per_100!==null&&w.mobile_per_100!==void 0?(H(),J(de,{key:0},[$e(Q(w.mobile_per_100)+" ",1),h[0]||(h[0]=M("div",{class:"r-sub"},"mob/100",-1))],64)):(H(),J(de,{key:1},[$e("—")],64))]),M("span",{class:Te(["pill",c(w.internet_access)])},Q(u(w.internet_access)),3)]))),128))],512),[[Ku,!a(m.name)]])]))),128)),h[3]||(h[3]=M("p",{class:"src"}," Internet and mobile figures: World Bank Open Data (CC BY 4.0), most recent observation 2018–2024. Banding: connected ≥60% · partial 25–59% · low <25% of population using the internet. Country-resolution — per-city measurements are not publicly available at this scale. ISP names, carrier names and censorship history require per-country cited reporting and are not shown. ",-1))],2))}}},Symbol.toStringTag,{value:"Module"})),ys={boundaries:{label:"geoBoundaries",href:"https://www.geoboundaries.org",title:"Country and administrative boundaries — geoBoundaries gbOpen (mixed upstream licences; see docs)"},mapbox:{label:"Mapbox",href:"https://www.mapbox.com/about/maps/"},osm:{label:"© OpenStreetMap",href:"https://www.openstreetmap.org/copyright"}};function rm(e,t={}){if(!e||typeof e.addControl!="function")return null;const{boundaries:n=!0,basemap:o=!0}=t,s=document.createElement("div");s.className="doxa-attribution mapboxgl-ctrl",s.style.cssText=["font:11px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif","background:rgba(255,255,255,.82)","color:#3a4048","padding:2px 6px","border-radius:3px 0 0 0","pointer-events:auto","max-width:min(92vw,420px)"].join(";");const r=[];n&&r.push(ys.boundaries),o&&(r.push(ys.mapbox),r.push(ys.osm)),s.innerHTML=r.map(i=>`${i.label}`).join(" · ");const a={onAdd:()=>s,onRemove:()=>{s.parentNode&&s.parentNode.removeChild(s)},getDefaultPosition:()=>"bottom-right"};return e.addControl(a,"bottom-right"),a}const sm={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=re(null);return nt("mapToolbar",{el:t}),Wt(` .map-toolbar { position: absolute; top: 6px; @@ -85,7 +85,7 @@ .map-toolbar { top: 72px; gap: 6px; } .map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; } } -`,"map-toolbar"),(n,o)=>(H(),J("div",{ref_key:"toolbarEl",ref:t,class:Te(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Fr(n.$slots,"default")],2))}},im=["title","aria-label","disabled"],fo={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return Wt(` +`,"map-toolbar"),(n,o)=>(H(),J("div",{ref_key:"toolbarEl",ref:t,class:Te(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Fr(n.$slots,"default")],2))}},am=["title","aria-label","disabled"],fo={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return Wt(` .mcb{ width:var(--map-btn-size,40px);height:var(--map-btn-size,40px); background:#fff; @@ -109,7 +109,7 @@ .mcb.dark:hover:not(:disabled){background:#4e594f;box-shadow:0 2px 8px rgba(0,0,0,0.5);} .mcb.dark.active{background:#4e594f;color:#92b195;} @media(max-width:767px){.mcb{width:36px;height:36px;}} -`,"map-control-button"),(t,n)=>(H(),J("button",{class:Te(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:n[0]||(n[0]=o=>t.$emit("click"))},[Fr(t.$slots,"default")],10,im))}},am={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomIn()}return(s,r)=>(H(),Qe(fo,{"is-dark":e.isDark,disabled:e.disabled,title:ze(t)("buttons.zoomIn"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[M("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},lm={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomOut()}return(s,r)=>(H(),Qe(fo,{"is-dark":e.isDark,disabled:e.disabled,title:ze(t)("buttons.zoomOut"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[M("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},cm={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=en(),n=e;function o(){var r;(r=n.map)==null||r.flyTo({center:n.center,zoom:n.zoom,duration:1200})}function s(){if(n.map){if(typeof navigator>"u"||!navigator.geolocation){o();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:i,latitude:a}=r.coords;Number.isFinite(i)&&Number.isFinite(a)?n.map.flyTo({center:[i,a],zoom:n.userZoom,duration:1500}):o()},()=>o(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,i)=>(H(),Qe(fo,{"is-dark":e.isDark,title:ze(t)("buttons.resetView"),onClick:s},{default:Vt(()=>[...i[0]||(i[0]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[M("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},um={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},pm={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},dm={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:n}=en(),o=e,s=t,r=re(!1);let i=null,a=null,l=null,c=null,u=null,f=null,h=null,m=null,w=null,k=null,A=null,O=0,C=0,_=null,b=null;function v(){if(typeof document>"u")return!1;const z=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(z)||z.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function E(){var z,W,X;return((X=(W=(z=o.mapContainer)==null?void 0:z.getRootNode)==null?void 0:W.call(z))==null?void 0:X.host)??null}function L(){var W,X;const z=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);return document.fullscreenElement||document.webkitFullscreenElement||(z&&z instanceof ShadowRoot?z.fullscreenElement:null)||null}function I(z){const W=z.requestFullscreen||z.webkitRequestFullscreen;if(!W)return Promise.reject(new Error("Fullscreen API unavailable"));const X=W.call(z);return X&&typeof X.then=="function"?X:Promise.resolve()}function N(){const z=document.exitFullscreen||document.webkitExitFullscreen;if(!z)return Promise.reject(new Error("Fullscreen API unavailable"));const W=z.call(document);return W&&typeof W.then=="function"?W:Promise.resolve()}function R(){const z=E();if(!z)return!1;if(l=z,a=z.style.cssText,z.style.position="fixed",z.style.top="0",z.style.left="0",z.style.right="0",z.style.bottom="0",z.style.width="100vw",z.style.height="100vh",z.style.height="100dvh",z.style.zIndex="2147483647",z.style.margin="0",z.style.borderRadius="0",z.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){O=window.scrollY||window.pageYOffset||0,C=window.scrollX||window.pageXOffset||0;const W=document.body,X=document.documentElement;c=W?W.style.overflow:null,u=X?X.style.overflow:null,f=W?W.style.position:null,h=W?W.style.top:null,m=W?W.style.left:null,w=W?W.style.width:null,k=W?W.style.touchAction:null,A=X?X.style.touchAction:null,X&&(X.style.overflow="hidden",X.style.touchAction="none"),W&&(W.style.overflow="hidden",W.style.position="fixed",W.style.top=`-${O}px`,W.style.left=`-${C}px`,W.style.width="100%",W.style.touchAction="none"),_=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},b=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},document.addEventListener("touchmove",_,{passive:!1,capture:!0}),document.addEventListener("wheel",b,{passive:!1,capture:!0})}return!0}function j(){if(l){if(l.style.cssText=a||"",l=null,a=null,typeof document<"u"){const z=document.body,W=document.documentElement;z&&(z.style.overflow=c??"",z.style.position=f??"",z.style.top=h??"",z.style.left=m??"",z.style.width=w??"",z.style.touchAction=k??""),W&&(W.style.overflow=u??"",W.style.touchAction=A??""),_&&(document.removeEventListener("touchmove",_,{capture:!0}),_=null),b&&(document.removeEventListener("wheel",b,{capture:!0}),b=null),typeof window<"u"&&(O||C)&&window.scrollTo(C,O)}c=null,u=null,f=null,h=null,m=null,w=null,k=null,A=null,O=0,C=0}}function K(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function ne(){if(!v()){r.value?(j(),r.value=!1,s("change",!1)):R()&&(r.value=!0,s("change",!0)),K();return}if(L())N().then(()=>{r.value=!1,s("change",!1)}).catch(()=>{});else{const W=E()??document.documentElement;I(W).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{I(document.documentElement).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{})})}}function ue(){r.value=!!L(),s("change",r.value)}return qt(()=>{var W,X;document.addEventListener("fullscreenchange",ue),document.addEventListener("webkitfullscreenchange",ue);const z=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);z instanceof ShadowRoot&&(i=z,z.addEventListener("fullscreenchange",ue),z.addEventListener("webkitfullscreenchange",ue))}),un(()=>{document.removeEventListener("fullscreenchange",ue),document.removeEventListener("webkitfullscreenchange",ue),i&&(i.removeEventListener("fullscreenchange",ue),i.removeEventListener("webkitfullscreenchange",ue),i=null),l&&j()}),(z,W)=>(H(),Qe(fo,{"is-dark":e.isDark,active:r.value,title:ze(n)("buttons.toggleFullscreen"),onClick:ne},{default:Vt(()=>[r.value?(H(),J("svg",pm,[...W[1]||(W[1]=[M("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(H(),J("svg",um,[...W[0]||(W[0]=[M("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},fm=ar&&ar.tagName.toUpperCase()==="SCRIPT"&&ar.src||new URL("cities-internet.js",document.baseURI).href,tn=e=>String(e||"").trim().replace(/\/+$/,"");function Bl(){try{const t=String(fm||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function hm(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return tn(t);if(typeof window<"u"){const n=window.MAP_EMBED_BASE_URL;if(typeof n=="string"&&n.trim())return tn(n)}return tn(Bl()||"")}function Dl(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const o=tn(t);if(/^https?:\/\//i.test(o)||o.startsWith("/"))return o}const n=tn((e==null?void 0:e.treeBase)||"")||tn(Bl()||"");if(n)try{const o=typeof document<"u"?document.baseURI:void 0;return tn(new URL(n+"/../assets",o).href)}catch{return tn(n.replace(/\/[^/]*$/,"")+"/assets")}return"./assets"}function gm({shareUrl:e,embedPath:t,profileConfig:n}={}){const o=n||null,s=typeof window<"u",r=e||(o==null?void 0:o.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const i=String(t||(o==null?void 0:o.shareEmbedPath)||"").trim();if(i){if(/^https?:\/\//i.test(i))return i;if(i.startsWith("/"))return s?window.location.origin+i:i;const a=hm(o),l=i.replace(/^\.\//,"");if(a)return a+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return s?window.location.origin+window.location.pathname:""}const mm=["aria-label"],_m={class:"mcm-header"},bm={class:"mcm-title"},ym={class:"mcm-body"},vm=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",vs="doxa-map-menu-open",wm={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){Wt(` +`,"map-control-button"),(t,n)=>(H(),J("button",{class:Te(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:n[0]||(n[0]=o=>t.$emit("click"))},[Fr(t.$slots,"default")],10,am))}},im={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomIn()}return(s,r)=>(H(),Qe(fo,{"is-dark":e.isDark,disabled:e.disabled,title:ze(t)("buttons.zoomIn"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[M("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},lm={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=en(),n=e;function o(){var s;n.disabled||(s=n.map)==null||s.zoomOut()}return(s,r)=>(H(),Qe(fo,{"is-dark":e.isDark,disabled:e.disabled,title:ze(t)("buttons.zoomOut"),onClick:o},{default:Vt(()=>[...r[0]||(r[0]=[M("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},cm={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=en(),n=e;function o(){var r;(r=n.map)==null||r.flyTo({center:n.center,zoom:n.zoom,duration:1200})}function s(){if(n.map){if(typeof navigator>"u"||!navigator.geolocation){o();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:a,latitude:i}=r.coords;Number.isFinite(a)&&Number.isFinite(i)?n.map.flyTo({center:[a,i],zoom:n.userZoom,duration:1500}):o()},()=>o(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,a)=>(H(),Qe(fo,{"is-dark":e.isDark,title:ze(t)("buttons.resetView"),onClick:s},{default:Vt(()=>[...a[0]||(a[0]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[M("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},um={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},pm={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},dm={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:n}=en(),o=e,s=t,r=re(!1);let a=null,i=null,l=null,c=null,u=null,f=null,h=null,m=null,w=null,k=null,A=null,O=0,C=0,_=null,b=null;function v(){if(typeof document>"u")return!1;const z=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(z)||z.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function E(){var z,W,X;return((X=(W=(z=o.mapContainer)==null?void 0:z.getRootNode)==null?void 0:W.call(z))==null?void 0:X.host)??null}function L(){var W,X;const z=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);return document.fullscreenElement||document.webkitFullscreenElement||(z&&z instanceof ShadowRoot?z.fullscreenElement:null)||null}function x(z){const W=z.requestFullscreen||z.webkitRequestFullscreen;if(!W)return Promise.reject(new Error("Fullscreen API unavailable"));const X=W.call(z);return X&&typeof X.then=="function"?X:Promise.resolve()}function N(){const z=document.exitFullscreen||document.webkitExitFullscreen;if(!z)return Promise.reject(new Error("Fullscreen API unavailable"));const W=z.call(document);return W&&typeof W.then=="function"?W:Promise.resolve()}function R(){const z=E();if(!z)return!1;if(l=z,i=z.style.cssText,z.style.position="fixed",z.style.top="0",z.style.left="0",z.style.right="0",z.style.bottom="0",z.style.width="100vw",z.style.height="100vh",z.style.height="100dvh",z.style.zIndex="2147483647",z.style.margin="0",z.style.borderRadius="0",z.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){O=window.scrollY||window.pageYOffset||0,C=window.scrollX||window.pageXOffset||0;const W=document.body,X=document.documentElement;c=W?W.style.overflow:null,u=X?X.style.overflow:null,f=W?W.style.position:null,h=W?W.style.top:null,m=W?W.style.left:null,w=W?W.style.width:null,k=W?W.style.touchAction:null,A=X?X.style.touchAction:null,X&&(X.style.overflow="hidden",X.style.touchAction="none"),W&&(W.style.overflow="hidden",W.style.position="fixed",W.style.top=`-${O}px`,W.style.left=`-${C}px`,W.style.width="100%",W.style.touchAction="none"),_=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},b=le=>{if(!l)return;const Ee=le.target;Ee&&(Ee===l||l.contains&&l.contains(Ee))||le.cancelable&&le.preventDefault()},document.addEventListener("touchmove",_,{passive:!1,capture:!0}),document.addEventListener("wheel",b,{passive:!1,capture:!0})}return!0}function j(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const z=document.body,W=document.documentElement;z&&(z.style.overflow=c??"",z.style.position=f??"",z.style.top=h??"",z.style.left=m??"",z.style.width=w??"",z.style.touchAction=k??""),W&&(W.style.overflow=u??"",W.style.touchAction=A??""),_&&(document.removeEventListener("touchmove",_,{capture:!0}),_=null),b&&(document.removeEventListener("wheel",b,{capture:!0}),b=null),typeof window<"u"&&(O||C)&&window.scrollTo(C,O)}c=null,u=null,f=null,h=null,m=null,w=null,k=null,A=null,O=0,C=0}}function K(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function ne(){if(!v()){r.value?(j(),r.value=!1,s("change",!1)):R()&&(r.value=!0,s("change",!0)),K();return}if(L())N().then(()=>{r.value=!1,s("change",!1)}).catch(()=>{});else{const W=E()??document.documentElement;x(W).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{x(document.documentElement).then(()=>{r.value=!0,s("change",!0)}).catch(()=>{})})}}function ue(){r.value=!!L(),s("change",r.value)}return qt(()=>{var W,X;document.addEventListener("fullscreenchange",ue),document.addEventListener("webkitfullscreenchange",ue);const z=(X=(W=o.mapContainer)==null?void 0:W.getRootNode)==null?void 0:X.call(W);z instanceof ShadowRoot&&(a=z,z.addEventListener("fullscreenchange",ue),z.addEventListener("webkitfullscreenchange",ue))}),un(()=>{document.removeEventListener("fullscreenchange",ue),document.removeEventListener("webkitfullscreenchange",ue),a&&(a.removeEventListener("fullscreenchange",ue),a.removeEventListener("webkitfullscreenchange",ue),a=null),l&&j()}),(z,W)=>(H(),Qe(fo,{"is-dark":e.isDark,active:r.value,title:ze(n)("buttons.toggleFullscreen"),onClick:ne},{default:Vt(()=>[r.value?(H(),J("svg",pm,[...W[1]||(W[1]=[M("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(H(),J("svg",um,[...W[0]||(W[0]=[M("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},fm=ir&&ir.tagName.toUpperCase()==="SCRIPT"&&ir.src||new URL("cities-internet.js",document.baseURI).href,tn=e=>String(e||"").trim().replace(/\/+$/,"");function Bl(){try{const t=String(fm||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function hm(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return tn(t);if(typeof window<"u"){const n=window.MAP_EMBED_BASE_URL;if(typeof n=="string"&&n.trim())return tn(n)}return tn(Bl()||"")}function Dl(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const o=tn(t);if(/^https?:\/\//i.test(o)||o.startsWith("/"))return o}const n=tn((e==null?void 0:e.treeBase)||"")||tn(Bl()||"");if(n)try{const o=typeof document<"u"?document.baseURI:void 0;return tn(new URL(n+"/../assets",o).href)}catch{return tn(n.replace(/\/[^/]*$/,"")+"/assets")}return"./assets"}function gm({shareUrl:e,embedPath:t,profileConfig:n}={}){const o=n||null,s=typeof window<"u",r=e||(o==null?void 0:o.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const a=String(t||(o==null?void 0:o.shareEmbedPath)||"").trim();if(a){if(/^https?:\/\//i.test(a))return a;if(a.startsWith("/"))return s?window.location.origin+a:a;const i=hm(o),l=a.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return s?window.location.origin+window.location.pathname:""}const mm=["aria-label"],_m={class:"mcm-header"},bm={class:"mcm-title"},ym={class:"mcm-body"},vm=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",vs="doxa-map-menu-open",wm={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){Wt(` .mcm{position:absolute;z-index:var(--z-menu,3000);display:flex;flex-direction:column;box-sizing:border-box; background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.45); color:#e6edf3;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:13px; @@ -125,7 +125,7 @@ .mcm.light .mcm-close{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;} .mcm.light .mcm-close:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;} .mcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;} -`,"map-control-menu");const n=e,o=t,s=De("mapToolbar",null),r=re(null),i=re(null),a=re({});function l(){var I;const m=(I=s==null?void 0:s.el)==null?void 0:I.value,w=r.value;if(!m||!w){a.value={};return}const k=w.getBoundingClientRect(),A=m.getBoundingClientRect(),O=(A.left+A.right)/2>(k.left+k.right)/2,C=8,_=12,b=O?k.right-A.left+C:A.right-k.left+C,v=Math.max(200,Math.min(n.width,k.width-b-_)),E=Math.max(0,A.top-k.top);let L=Math.max(120,k.height-E-_);n.matchToolbar&&(L=Math.max(120,Math.min(L,A.height))),n.maxHeight&&(L=Math.min(L,n.maxHeight)),a.value={top:`${Math.round(E)}px`,[O?"right":"left"]:`${Math.round(b)}px`,width:`${Math.round(v)}px`,maxHeight:`${Math.round(L)}px`,...n.height?{height:`${Math.round(Math.min(n.height,L))}px`}:{}}}function c(m){n.open&&m.detail!==i.value&&o("close")}lt(()=>n.open,async m=>{var w;if(m){await Vn(),l();try{(w=r.value)==null||w.dispatchEvent(new CustomEvent(vs,{detail:i.value}))}catch{}}});function u(){n.open&&l()}function f(m){m.key==="Escape"&&n.open&&o("close")}function h(m){var k;if(!n.open)return;const w=m.composedPath?m.composedPath():[m.target];i.value&&w.includes(i.value)||(k=s==null?void 0:s.el)!=null&&k.value&&w.includes(s.el.value)||w.some(A=>{var O,C,_,b;return((C=(O=A==null?void 0:A.classList)==null?void 0:O.contains)==null?void 0:C.call(O,"mapboxgl-canvas"))||((b=(_=A==null?void 0:A.classList)==null?void 0:_.contains)==null?void 0:b.call(_,"maplibregl-canvas"))})&&o("close")}return qt(()=>{var m,w,k;r.value=((w=(m=s==null?void 0:s.el)==null?void 0:m.value)==null?void 0:w.closest(vm))||null,(k=r.value)==null||k.addEventListener(vs,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",f)}),un(()=>{var m;(m=r.value)==null||m.removeEventListener(vs,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",f)}),(m,w)=>(H(),Qe(Gc,{to:r.value,disabled:!r.value},[e.open?(H(),J("div",{key:0,ref_key:"el",ref:i,class:Te(["mcm",{light:!e.isDark}]),style:bn(a.value),role:"dialog","aria-label":e.title},[M("div",_m,[M("span",bm,Q(e.title),1),M("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:w[0]||(w[0]=k=>o("close"))},[...w[1]||(w[1]=[M("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[M("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),M("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),M("div",ym,[Fr(m.$slots,"default")])],14,mm)):Le("",!0)],8,["to","disabled"]))}},km={class:"share-steps"},$m={class:"share-tabs"},Om={key:0,class:"share-body"},Nm={class:"share-url-box"},Cm={class:"share-url-text"},Am={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Em={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Tm={key:1,class:"share-body"},Lm={class:"share-size-pills"},Sm=["onClick"],Im={class:"share-code-box"},xm={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Fm={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Mm={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Wt(` +`,"map-control-menu");const n=e,o=t,s=De("mapToolbar",null),r=re(null),a=re(null),i=re({});function l(){var x;const m=(x=s==null?void 0:s.el)==null?void 0:x.value,w=r.value;if(!m||!w){i.value={};return}const k=w.getBoundingClientRect(),A=m.getBoundingClientRect(),O=(A.left+A.right)/2>(k.left+k.right)/2,C=8,_=12,b=O?k.right-A.left+C:A.right-k.left+C,v=Math.max(200,Math.min(n.width,k.width-b-_)),E=Math.max(0,A.top-k.top);let L=Math.max(120,k.height-E-_);n.matchToolbar&&(L=Math.max(120,Math.min(L,A.height))),n.maxHeight&&(L=Math.min(L,n.maxHeight)),i.value={top:`${Math.round(E)}px`,[O?"right":"left"]:`${Math.round(b)}px`,width:`${Math.round(v)}px`,maxHeight:`${Math.round(L)}px`,...n.height?{height:`${Math.round(Math.min(n.height,L))}px`}:{}}}function c(m){n.open&&m.detail!==a.value&&o("close")}lt(()=>n.open,async m=>{var w;if(m){await Vn(),l();try{(w=r.value)==null||w.dispatchEvent(new CustomEvent(vs,{detail:a.value}))}catch{}}});function u(){n.open&&l()}function f(m){m.key==="Escape"&&n.open&&o("close")}function h(m){var k;if(!n.open)return;const w=m.composedPath?m.composedPath():[m.target];a.value&&w.includes(a.value)||(k=s==null?void 0:s.el)!=null&&k.value&&w.includes(s.el.value)||w.some(A=>{var O,C,_,b;return((C=(O=A==null?void 0:A.classList)==null?void 0:O.contains)==null?void 0:C.call(O,"mapboxgl-canvas"))||((b=(_=A==null?void 0:A.classList)==null?void 0:_.contains)==null?void 0:b.call(_,"maplibregl-canvas"))})&&o("close")}return qt(()=>{var m,w,k;r.value=((w=(m=s==null?void 0:s.el)==null?void 0:m.value)==null?void 0:w.closest(vm))||null,(k=r.value)==null||k.addEventListener(vs,c),window.addEventListener("resize",u),document.addEventListener("click",h,!0),document.addEventListener("keydown",f)}),un(()=>{var m;(m=r.value)==null||m.removeEventListener(vs,c),window.removeEventListener("resize",u),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",f)}),(m,w)=>(H(),Qe(Gc,{to:r.value,disabled:!r.value},[e.open?(H(),J("div",{key:0,ref_key:"el",ref:a,class:Te(["mcm",{light:!e.isDark}]),style:bn(i.value),role:"dialog","aria-label":e.title},[M("div",_m,[M("span",bm,Q(e.title),1),M("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:w[0]||(w[0]=k=>o("close"))},[...w[1]||(w[1]=[M("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[M("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),M("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),M("div",ym,[Fr(m.$slots,"default")])],14,mm)):Le("",!0)],8,["to","disabled"]))}},km={class:"share-steps"},$m={class:"share-tabs"},Om={key:0,class:"share-body"},Nm={class:"share-url-box"},Cm={class:"share-url-text"},Am={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Em={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Tm={key:1,class:"share-body"},Lm={class:"share-size-pills"},Sm=["onClick"],xm={class:"share-code-box"},Im={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Fm={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Mm={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Wt(` .share-wrap{position:relative;display:inline-block;border-radius:50%;} .share-wrap::before{content:'';position:absolute;inset:-2px;border-radius:50%;padding:2px;pointer-events:none; background:conic-gradient(#ff6b6b,#ffd166,#6bd67b,#4dabf7,#9775fa,#f783ac,#ff6b6b); @@ -377,4 +377,4 @@ border-color:rgba(46,164,79,0.30); color:#2ea44f; } -`,"share-button");const{t,tm:n,rt:o}=en(),s=e,r=re(null),i=re(!1),a=re(null),l=re(null),c=re("link"),u=re(!1),f=re(!1),h=re("medium"),m={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},w=De("profileConfig",null),k=ie(()=>gm({embedPath:s.embedPath,profileConfig:ze(w)||null})),A=ie(()=>{const R=m[h.value].height;return''});function O(){i.value=!i.value,i.value&&(c.value="link",u.value=!1,f.value=!1)}function C(){i.value=!1}async function _(R){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(R),!0}catch{}try{const j=document.createElement("textarea");j.value=R,j.setAttribute("readonly",""),j.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(j),j.select();const K=document.execCommand("copy");return document.body.removeChild(j),K}catch{return!1}}async function b(){await _(k.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function v(){await _(A.value)&&(f.value=!0,setTimeout(()=>{f.value=!1},2e3))}const E=De("mapToolbar",null),L=re(null);nt("mapToolbar",E||{el:L});const I=!E;function N(R){if(r.value=R||null,!I||!R){R||(L.value=null);return}const j=R.offsetParent||R.parentElement;j&&!j.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&j.setAttribute("data-map-area","share-fallback"),L.value=R}return(R,j)=>(H(),J("div",{ref:N,class:"share-wrap","data-share-root":""},[ve(fo,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:i.value,title:ze(t)("buttons.share"),onClick:O},{default:Vt(()=>[...j[2]||(j[2]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[M("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),M("polyline",{points:"16 6 12 2 8 6"}),M("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),ve(wm,{open:i.value,title:ze(t)("buttons.share"),"is-dark":e.isDark,onClose:C},{default:Vt(()=>[M("div",{ref_key:"popoverEl",ref:a,class:Te(["share-pop",{light:!e.isDark}])},[M("ul",km,[(H(!0),J(de,null,ct(ze(n)("buttons.shareSteps"),(K,ne)=>(H(),J("li",{key:ne},Q(ze(o)(K)),1))),128))]),M("div",$m,[M("button",{class:Te(["share-tab",{active:c.value==="link"}]),onClick:j[0]||(j[0]=K=>c.value="link")},"Embed link",2),M("button",{class:Te(["share-tab",{active:c.value==="embed"}]),onClick:j[1]||(j[1]=K=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(H(),J("div",Om,[M("div",Nm,[M("div",Cm,Q(k.value),1)]),M("button",{class:Te(["share-primary-btn",{copied:u.value}]),onClick:b},[u.value?(H(),J("svg",Em,[...j[4]||(j[4]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",Am,[...j[3]||(j[3]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),$e(" "+Q(u.value?"Copied!":"Copy Link"),1)],2)])):Le("",!0),c.value==="embed"?(H(),J("div",Tm,[j[7]||(j[7]=M("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),M("div",Lm,[(H(),J(de,null,ct(m,(K,ne)=>M("button",{key:ne,class:Te(["share-size-pill",{active:h.value===ne}]),onClick:ue=>h.value=ne},Q(K.label),11,Sm)),64))]),M("div",Im,Q(A.value),1),M("button",{class:Te(["share-secondary-btn",{copied:f.value}]),onClick:v},[f.value?(H(),J("svg",Fm,[...j[6]||(j[6]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",xm,[...j[5]||(j[5]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),$e(" "+Q(f.value?"Copied!":"Copy Code"),1)],2)])):Le("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Pm={class:"gm-legend"},Bm={class:"gm-keys"},Dm={key:1,class:"gm-err"},Rm={key:2,class:"gm-sheet"},Wm={class:"gm-sh-head"},Um={class:"gm-sh-name"},jm={key:0,class:"gm-ai"},Gm={class:"gm-stat"},Ym={class:"gm-stat"},Vm={class:"gm-stat"},Hm={class:"gm-stat"},qm={class:"gm-stat"},zm={key:1,class:"gm-list"},Km={class:"gm-list-h"},Xm={key:2,class:"gm-list"},Jm=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-map",setup(e){const t=De("profileConfig",re(null)),n=ie(()=>{var O;return((O=t.value)==null?void 0:O.isDark)===!0}),o=ie(()=>{var O;return((O=t.value)==null?void 0:O.tk)||window.DOXA_TOKEN||""}),s=ie(()=>Dl(t.value)),r=re(null),i=jn(null),a=re([]),l=re(null),c=re(!0),u=re(null),f=[{id:"yes",label:"connected 60%+",color:"#10b981"},{id:"partial",label:"partial 25–59%",color:"#e8c15a"},{id:"no",label:"low, under 25%",color:"#b42318"},{id:"unknown",label:"not measured",color:"#9aa2ad"}],h=O=>(f.find(C=>C.id===O)||{}).color||"#9aa2ad",m=ie(()=>{const O={};for(const C of a.value)O[C.iso3]=C;return O});async function w(){const[O,C]=await Promise.all([fetch(`${s.value}/tables/internet-by-country.json`).then(_=>_.json()),fetch(`${s.value}/boundaries/world-adm0.geojson`).then(_=>_.json())]);return a.value=O.countries||[],C}function k(O,C){const _=m.value,v={type:"FeatureCollection",features:(C.features||[]).map(E=>{var N;const L=(N=E.properties)==null?void 0:N.iso3,I=_[L];return{type:"Feature",properties:{iso3:L,band:(I==null?void 0:I.band)||"none",color:I?h(I.band):"rgba(0,0,0,0)",hasData:!!I},geometry:E.geometry}})};if(O.getSource("ci-src")){O.getSource("ci-src").setData(v);return}O.addSource("ci-src",{type:"geojson",data:v}),O.addLayer({id:"ci-fill",type:"fill",source:"ci-src",paint:{"fill-color":["get","color"],"fill-opacity":["case",["get","hasData"],.72,0]}}),O.addLayer({id:"ci-line",type:"line",source:"ci-src",paint:{"line-color":"rgba(255,255,255,0.5)","line-width":.5}}),O.on("click","ci-fill",E=>{var I,N,R;const L=(R=(N=(I=E.features)==null?void 0:I[0])==null?void 0:N.properties)==null?void 0:R.iso3;L&&m.value[L]&&(l.value=m.value[L])}),O.on("mouseenter","ci-fill",()=>{O.getCanvas().style.cursor="pointer"}),O.on("mouseleave","ci-fill",()=>{O.getCanvas().style.cursor=""})}qt(async()=>{const O=window.mapboxgl;if(!O||!r.value){u.value="mapbox-gl not loaded";return}try{const C=await w(),_=new O.Map({container:r.value,style:n.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11",accessToken:o.value,center:[42,18],zoom:1.3,projection:"mercator",attributionControl:!1});i.value=vn(_),rm(_,{boundaries:!0}),_.once("load",()=>k(_,C))}catch(C){u.value=String(C.message||C)}}),un(()=>{var O;try{(O=i.value)==null||O.remove()}catch{}});const A=O=>(Number(O)||0).toLocaleString();return Wt(".gm{position:absolute;inset:0;overflow:hidden}.gm-map{position:absolute;inset:0}.gm-legend{position:absolute;top:8px;left:8px;width:var(--map-legend-width,380px);max-width:calc(100% - 16px);box-sizing:border-box;z-index:4;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.94);color:#0f1419;font:12px/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.16)}@media(max-width:480px){.gm-legend{width:auto;right:46px}}.is-dark .gm-legend{background:rgba(19,32,25,.95);color:#e5e7eb}.gm-title{font-weight:700;font-size:12.5px;margin-bottom:5px}.gm-keys{display:flex;flex-wrap:wrap;gap:5px 12px}.gm-key{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.gm-sw{width:12px;height:12px;border-radius:3px;flex:none}.gm-caveat{margin-top:5px;font-size:10.5px;opacity:.72;line-height:1.4}.gm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;max-height:62%;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:14px 16px 22px;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 -6px 26px rgba(0,0,0,.28)}@media(min-width:700px){.gm-sheet{left:auto;right:14px;bottom:14px;width:330px;border-radius:12px}}.is-dark .gm-sheet{background:#132019;color:#e5e7eb}.gm-sh-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.gm-sh-name{font-weight:800;font-size:15px}.gm-ai{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:7px 9px;border-radius:8px;font-size:11px;line-height:1.35;background:rgba(180,120,0,.12);color:#7a4f00;border:1px solid rgba(180,120,0,.25)}.is-dark .gm-ai{background:rgba(255,200,80,.10);color:#f0cf88;border-color:rgba(255,200,80,.22)}.gm-ai-x{margin-left:auto;flex:none;border:0;background:none;cursor:pointer;font-size:15px;line-height:1;color:inherit;opacity:.7;padding:0 2px}.gm-ai-x:hover{opacity:1}.gm-x{margin-left:auto;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit;font:600 12px inherit;padding:6px 12px;border-radius:8px;cursor:pointer;min-height:34px}.gm-stat{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.07);font-variant-numeric:tabular-nums}.is-dark .gm-stat{border-bottom-color:rgba(255,255,255,.09)}.gm-stat b{font-weight:700}.gm-list{margin-top:9px}.gm-list-h{font-weight:700;font-size:12px;margin-bottom:3px}.gm-list ul{margin:0;padding-left:17px;font-size:12px;line-height:1.5}.gm-note{margin-top:9px;font-size:11px;line-height:1.5;opacity:.75}.gm-err{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:13px;opacity:.7}","doxa-connectivity-map"),(O,C)=>(H(),J("div",{class:Te(["gm",{"is-dark":n.value}])},[M("div",{ref_key:"mapEl",ref:r,class:"gm-map"},null,512),i.value?(H(),Qe(sm,{key:0},{default:Vt(()=>[ve(am,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(lm,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(cm,{map:i.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(dm,{"map-container":r.value,"is-dark":n.value},null,8,["map-container","is-dark"]),ve(Mm,{"is-dark":n.value,"embed-path":"cities-internet/connectivity-map/index.html"},null,8,["is-dark"])]),_:1})):Le("",!0),M("div",Pm,[C[2]||(C[2]=M("div",{class:"gm-title"},"Internet access where unengaged people groups live",-1)),M("div",Bm,[(H(),J(de,null,ct(f,_=>M("span",{key:_.id,class:"gm-key"},[M("i",{class:"gm-sw",style:bn({background:_.color})},null,4),$e(Q(_.label),1)])),64))]),C[3]||(C[3]=M("div",{class:"gm-caveat"}," NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country. ",-1))]),u.value?(H(),J("div",Dm,Q(u.value),1)):Le("",!0),l.value?(H(),J("div",Rm,[M("div",Wm,[M("span",Um,Q(l.value.country),1),M("button",{type:"button",class:"gm-x",onClick:C[0]||(C[0]=_=>l.value=null)},"Close")]),c.value?(H(),J("div",jm,[C[4]||(C[4]=M("span",null,"Data was found by AI deep research — it is subject to false information.",-1)),M("button",{type:"button",class:"gm-ai-x",onClick:C[1]||(C[1]=_=>c.value=!1),"aria-label":"Dismiss"},"×")])):Le("",!0),M("div",Gm,[C[5]||(C[5]=M("span",null,"Internet users",-1)),M("b",null,Q(l.value.internet_pct!=null?l.value.internet_pct+"%":"unknown"),1)]),M("div",Ym,[C[6]||(C[6]=M("span",null,"Measured",-1)),M("b",null,Q(l.value.internet_year||"—"),1)]),M("div",Vm,[C[7]||(C[7]=M("span",null,"Mobile per 100",-1)),M("b",null,Q(l.value.mobile_per_100??"—"),1)]),M("div",Hm,[C[8]||(C[8]=M("span",null,"People groups",-1)),M("b",null,Q(A(l.value.people_groups)),1)]),M("div",qm,[C[9]||(C[9]=M("span",null,"Top platform",-1)),M("b",null,[$e(Q(l.value.top_platform||"unknown"),1),l.value.top_platform_pct?(H(),J(de,{key:0},[$e(" · "+Q(l.value.top_platform_pct)+"%",1)],64)):Le("",!0)])]),l.value.carriers&&l.value.carriers.length?(H(),J("div",zm,[M("div",Km,"Carriers & ISPs ("+Q(l.value.carrier_count)+")",1),M("ul",null,[(H(!0),J(de,null,ct(l.value.carriers,(_,b)=>(H(),J("li",{key:b},Q(_),1))),128))])])):Le("",!0),l.value.platforms&&l.value.platforms.length?(H(),J("div",Xm,[C[10]||(C[10]=M("div",{class:"gm-list-h"},"Social platforms",-1)),M("ul",null,[(H(!0),J(de,null,ct(l.value.platforms,(_,b)=>(H(),J("li",{key:b},Q(_.name)+" · "+Q(_.pct)+"%",1))),128))])])):Le("",!0),C[11]||(C[11]=M("p",{class:"gm-note"}," National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification. ",-1))])):Le("",!0)],2))}}},Symbol.toStringTag,{value:"Module"}));function Zm(e){const t=(e==null?void 0:e.parentElement)||e;if(!t||!t.ownerDocument)return{x:0,y:0};const n=t.ownerDocument.createElement("div");n.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",t.appendChild(n);const o=n.getBoundingClientRect();return n.remove(),{x:o.left,y:o.top}}function Qm(e){const t=re(null),n=jn({position:"fixed",inset:"0"}),o=()=>{var u,f;const r=t.value;if(!r)return;const i=Zm(r),a=r.ownerDocument||(typeof document<"u"?document:null),l=((u=a==null?void 0:a.documentElement)==null?void 0:u.clientWidth)||0,c=((f=a==null?void 0:a.documentElement)==null?void 0:f.clientHeight)||0;n.value={position:"fixed",top:`${-i.y}px`,left:`${-i.x}px`,right:"auto",bottom:"auto",width:`${l}px`,height:`${c}px`,boxSizing:"border-box"}};lt(e,r=>{r&&requestAnimationFrame(()=>{o(),requestAnimationFrame(o)})},{flush:"post"});const s=()=>{e.value&&o()};return typeof window<"u"&&window.addEventListener("resize",s),un(()=>{typeof window<"u"&&window.removeEventListener("resize",s)}),{scrimRef:t,scrimStyle:n}}const e_={class:"dt-head"},t_={class:"dt-title"},n_={class:"dt-count"},o_={key:0,class:"dt-grain"},r_={class:"dt-actions"},s_={key:0,class:"dt-err"},i_={class:"dt-wrap"},a_={class:"dt-hint"},l_={class:"dt-sheet",role:"dialog","aria-label":"Row detail"},c_={class:"dt-sheet-head"},u_={class:"dt-dl"},p_=["href"],d_={key:1},f_={key:2},h_={key:2,class:"dt-caveats"},g_={class:"dt-cav-k"},m_={__name:"DataTable",props:{table:{type:Object,required:!0},assetsBase:{type:String,default:"./assets"},isDark:{type:Boolean,default:!1},height:{type:String,default:"560px"},frozen:{type:Number,default:1},pageSize:{type:Number,default:50}},emits:["row-click"],setup(e,{emit:t}){const n=e,o=t,s=re(!1),r=re(null),{scrimRef:i,scrimStyle:a}=Qm(r),l=re(null),c=jn(null),u=re(null),f=re(!1),h=ie(()=>String(n.assetsBase||"./assets").replace(/\/+$/,"")),m=ie(()=>{var N;return((N=n.table)==null?void 0:N.meta)||{}}),w=ie(()=>{var N;return(((N=n.table)==null?void 0:N.rows)||[]).length}),k=ie(()=>Object.entries(m.value).filter(([N,R])=>typeof R=="string"&&/caveat|meaning|note|boundary|measures|does_not/i.test(N)).map(([N,R])=>({key:N.replace(/_/g," "),text:R})));let A=null;function O(){return window.Tabulator?Promise.resolve(window.Tabulator):A||(A=new Promise((N,R)=>{const j=document.createElement("script");j.src=`${h.value}/vendor/tabulator/tabulator.min.js`,j.onload=()=>N(window.Tabulator),j.onerror=()=>R(new Error("Tabulator failed to load — is public/assets/vendor/tabulator/ present?")),document.head.appendChild(j)}),A)}async function C(N){if(!(!N||N.querySelector("style[data-tabulator]")))try{const R=await fetch(`${h.value}/vendor/tabulator/tabulator.min.css`);if(!R.ok)return;const j=document.createElement("style");j.setAttribute("data-tabulator",""),j.textContent=await R.text(),N.appendChild(j)}catch{}}function _(N){var ne,ue;if(!l.value)return;s.value=typeof window<"u"&&window.innerWidth<700;const R=((ne=n.table)==null?void 0:ne.columns)||[],K=(s.value?R.slice(0,3):R).map((z,W)=>({title:z.title,field:z.field,headerFilter:z.type==="boolean"?"tickCross":"input",headerFilterPlaceholder:"filter…",sorter:z.type==="number"?"number":z.type==="boolean"?"boolean":"string",formatter:z.type==="boolean"?"tickCross":void 0,.../_url$/.test(z.field)?{formatter:"link",formatterParams:{target:"_blank",label:()=>"open"}}:{},frozen:!s.value&&W{r.value=W.getData(),o("row-click",W.getData())}),c.value.on("tableBuilt",()=>{f.value=!0})}const b=N=>{var R,j;return((j=(((R=n.table)==null?void 0:R.columns)||[]).find(K=>K.field===N))==null?void 0:j.title)||N.replace(/_/g," ")},v=N=>typeof N=="string"&&N.includes(", ")&&N.length>40?N.split(", "):null,E=N=>typeof N=="string"&&/^https?:\/\//.test(N),L=ie(()=>r.value?Object.entries(r.value).filter(([,N])=>N!==""&&N!==null&&N!==void 0):[]);function I(N){var R;try{(R=c.value)==null||R.download(N,`${(m.value.title||"table").replace(/\W+/g,"-").toLowerCase()}.${N}`)}catch(j){u.value=String(j.message||j)}}return qt(async()=>{var N,R;try{await C((R=(N=l.value)==null?void 0:N.getRootNode)==null?void 0:R.call(N)),_(await O())}catch(j){u.value=String(j.message||j)}}),un(()=>{var N;try{(N=c.value)==null||N.destroy()}catch{}}),lt(()=>n.table,()=>{var N,R;try{(R=c.value)==null||R.replaceData(((N=n.table)==null?void 0:N.rows)||[])}catch{}}),Wt(".dt,.dt *{box-sizing:border-box}.dt{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.dt-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.dt-title{font-size:15px;font-weight:700;margin:0}.dt-count{font-size:11.5px;opacity:.6;font-variant-numeric:tabular-nums}.dt-grain{font-size:11px;opacity:.55}.dt-actions{margin-left:auto;display:flex;gap:6px}.dt-btn{font:600 11.5px inherit;padding:5px 11px;border-radius:6px;cursor:pointer;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-btn:hover{background:rgba(0,0,0,.05)}.dt-err{padding:10px 12px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.dt-caveats{margin-top:10px;padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.04);font-size:11.5px;line-height:1.6;opacity:.85}.is-dark .dt-caveats{background:rgba(255,255,255,.06)}.dt-cav-k{font-weight:700;text-transform:capitalize}.dt-scrim{position:fixed;inset:0;z-index:1200;background:rgba(8,12,16,.55);display:flex;align-items:flex-end;justify-content:center}@media(min-width:700px){.dt-scrim{align-items:center}}.dt-sheet{width:100%;max-width:560px;max-height:82vh;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:16px 18px 26px;box-shadow:0 -6px 30px rgba(0,0,0,.3)}@media(min-width:700px){.dt-sheet{border-radius:14px}}.is-dark .dt-sheet{background:#132019;color:#e5e7eb}.dt-sheet-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid rgba(0,0,0,.10);font-size:15px}.dt-close{margin-left:auto;font:600 12px inherit;padding:7px 14px;border-radius:8px;cursor:pointer;min-height:36px;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-dl{display:grid;grid-template-columns:minmax(96px,34%) 1fr;gap:7px 12px;margin:0;font-size:12.5px}.dt-dl dt{font-weight:700;opacity:.72;text-transform:capitalize}.dt-dl dd{margin:0;word-break:break-word}.dt-dl ul{margin:0;padding-left:16px}.dt-dl a{color:#0b7a5b;font-weight:600}.dt-hint{font-size:11px;opacity:.6;margin:6px 0 0}.dt-wrap{width:100%;overflow:hidden;border:1px solid rgba(0,0,0,.10);border-radius:8px}.is-dark .dt-wrap{border-color:rgba(255,255,255,.12)}","doxa-data-table"),(N,R)=>{var j,K;return H(),J("div",{class:Te(["dt",{"is-dark":e.isDark}])},[M("div",e_,[M("h3",t_,Q(m.value.title||"Data"),1),M("span",n_,Q(w.value.toLocaleString())+" rows",1),m.value.grain?(H(),J("span",o_,"· "+Q(m.value.grain),1)):Le("",!0),M("span",r_,[M("button",{type:"button",class:"dt-btn",onClick:R[0]||(R[0]=ne=>I("csv"))},"CSV"),M("button",{type:"button",class:"dt-btn",onClick:R[1]||(R[1]=ne=>I("json"))},"JSON")])]),u.value?(H(),J("div",s_,Q(u.value),1)):Le("",!0),M("div",i_,[M("div",{ref_key:"host",ref:l},null,512)]),M("p",a_,"Tap any row for its full detail"+Q(s.value?"":" — every field, including the lists the table flattens")+".",1),r.value?(H(),J("div",{key:1,ref_key:"scrimRef",ref:i,style:bn(ze(a)),class:"dt-scrim",onClick:R[3]||(R[3]=_p(ne=>r.value=null,["self"]))},[M("div",l_,[M("div",c_,[M("strong",null,Q(r.value[(K=(((j=e.table)==null?void 0:j.columns)||[])[0])==null?void 0:K.field]||"Detail"),1),M("button",{type:"button",class:"dt-close",onClick:R[2]||(R[2]=ne=>r.value=null)},"Close")]),M("dl",u_,[(H(!0),J(de,null,ct(L.value,([ne,ue])=>(H(),J(de,{key:ne},[M("dt",null,Q(b(ne)),1),M("dd",null,[E(ue)?(H(),J("a",{key:0,href:ue,target:"_blank",rel:"noopener"},Q(ue),9,p_)):v(ue)?(H(),J("ul",d_,[(H(!0),J(de,null,ct(v(ue),(z,W)=>(H(),J("li",{key:W},Q(z),1))),128))])):(H(),J("span",f_,Q(ue===!0?"yes":ue===!1?"no":ue),1))])],64))),128))])])],4)):Le("",!0),k.value.length?(H(),J("div",h_,[(H(!0),J(de,null,ct(k.value,ne=>(H(),J("div",{key:ne.key},[M("span",g_,Q(ne.key)+":",1),$e(" "+Q(ne.text),1)]))),128))])):Le("",!0)],2)}}},__={class:"ct-tabs"},b_=["onClick"],y_={key:0,class:"ct-n"},v_={key:0,class:"ct-err"},w_={key:1,class:"ct-load"},k_=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"data-tables",setup(e){const t=De("profileConfig",re(null)),n=ie(()=>{var h;return((h=t.value)==null?void 0:h.isDark)===!0}),o=ie(()=>Dl(t.value)),s=[{id:"cities",label:"Key Cities",file:"key-cities"},{id:"internet",label:"Connectivity",file:"country-connectivity"},{id:"operators",label:"ISPs & Carriers",file:"network-operators"},{id:"social",label:"Social Platforms",file:"social-platforms"},{id:"messaging",label:"Messaging Apps",file:"messaging-channels"}],r=re("cities"),i=ie(()=>s.find(h=>h.id===r.value)||s[0]),a=re({}),l=re(!1),c=re(null);async function u(h){if(!a.value[h]){l.value=!0,c.value=null;try{const m=await fetch(`${o.value}/tables/${h}.json`);if(!m.ok)throw new Error(`table not found (${m.status})`);a.value={...a.value,[h]:await m.json()}}catch(m){c.value=String(m.message||m)}finally{l.value=!1}}}lt(i,h=>h&&u(h.file),{immediate:!0});const f=ie(()=>{var h;return a.value[(h=i.value)==null?void 0:h.file]||null});return Wt(".ct{position:absolute;inset:0;overflow-y:auto;padding:18px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ct.is-dark{background:#0a1410;color:#e5e7eb}.ct-h{margin:0 0 4px;font-size:18px;font-weight:700}.ct-sub{margin:0 0 14px;font-size:12.5px;opacity:.72;line-height:1.5}.ct-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.ct-tab{font:600 12px inherit;padding:7px 14px;border-radius:999px;cursor:pointer;border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit}.ct-tab.on{background:#10b981;border-color:#10b981;color:#04241a}.ct-load{padding:22px;text-align:center;font-size:12.5px;opacity:.6}.ct-err{padding:11px 13px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.ct-n{font-size:10.5px;opacity:.6;margin-left:5px;font-variant-numeric:tabular-nums}","doxa-cities-tables"),(h,m)=>(H(),J("div",{class:Te(["ct",{"is-dark":n.value}])},[m[0]||(m[0]=M("h2",{class:"ct-h"},"Cities Data",-1)),m[1]||(m[1]=M("p",{class:"ct-sub"}," Where the unengaged people groups live — and what reaches them. Sort, filter and export any table; each carries its own sources and limits. ",-1)),M("div",__,[(H(),J(de,null,ct(s,w=>M("button",{key:w.id,type:"button",class:Te(["ct-tab",{on:r.value===w.id}]),onClick:k=>r.value=w.id},[$e(Q(w.label),1),a.value[w.file]?(H(),J("span",y_,Q((a.value[w.file].rows||[]).length.toLocaleString()),1)):Le("",!0)],10,b_)),64))]),c.value?(H(),J("div",v_,Q(c.value),1)):f.value?(H(),Qe(m_,{key:i.value.id,table:f.value,"assets-base":o.value,"is-dark":n.value,height:"600px"},null,8,["table","assets-base","is-dark"])):(H(),J("div",w_,"Loading "+Q(i.value.label)+"…",1))],2))}}},Symbol.toStringTag,{value:"Module"}))})(); +`,"share-button");const{t,tm:n,rt:o}=en(),s=e,r=re(null),a=re(!1),i=re(null),l=re(null),c=re("link"),u=re(!1),f=re(!1),h=re("medium"),m={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},w=De("profileConfig",null),k=ae(()=>gm({embedPath:s.embedPath,profileConfig:ze(w)||null})),A=ae(()=>{const R=m[h.value].height;return''});function O(){a.value=!a.value,a.value&&(c.value="link",u.value=!1,f.value=!1)}function C(){a.value=!1}async function _(R){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(R),!0}catch{}try{const j=document.createElement("textarea");j.value=R,j.setAttribute("readonly",""),j.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(j),j.select();const K=document.execCommand("copy");return document.body.removeChild(j),K}catch{return!1}}async function b(){await _(k.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function v(){await _(A.value)&&(f.value=!0,setTimeout(()=>{f.value=!1},2e3))}const E=De("mapToolbar",null),L=re(null);nt("mapToolbar",E||{el:L});const x=!E;function N(R){if(r.value=R||null,!x||!R){R||(L.value=null);return}const j=R.offsetParent||R.parentElement;j&&!j.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&j.setAttribute("data-map-area","share-fallback"),L.value=R}return(R,j)=>(H(),J("div",{ref:N,class:"share-wrap","data-share-root":""},[ve(fo,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:a.value,title:ze(t)("buttons.share"),onClick:O},{default:Vt(()=>[...j[2]||(j[2]=[M("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[M("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),M("polyline",{points:"16 6 12 2 8 6"}),M("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),ve(wm,{open:a.value,title:ze(t)("buttons.share"),"is-dark":e.isDark,onClose:C},{default:Vt(()=>[M("div",{ref_key:"popoverEl",ref:i,class:Te(["share-pop",{light:!e.isDark}])},[M("ul",km,[(H(!0),J(de,null,ct(ze(n)("buttons.shareSteps"),(K,ne)=>(H(),J("li",{key:ne},Q(ze(o)(K)),1))),128))]),M("div",$m,[M("button",{class:Te(["share-tab",{active:c.value==="link"}]),onClick:j[0]||(j[0]=K=>c.value="link")},"Embed link",2),M("button",{class:Te(["share-tab",{active:c.value==="embed"}]),onClick:j[1]||(j[1]=K=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(H(),J("div",Om,[M("div",Nm,[M("div",Cm,Q(k.value),1)]),M("button",{class:Te(["share-primary-btn",{copied:u.value}]),onClick:b},[u.value?(H(),J("svg",Em,[...j[4]||(j[4]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",Am,[...j[3]||(j[3]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),$e(" "+Q(u.value?"Copied!":"Copy Link"),1)],2)])):Le("",!0),c.value==="embed"?(H(),J("div",Tm,[j[7]||(j[7]=M("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),M("div",Lm,[(H(),J(de,null,ct(m,(K,ne)=>M("button",{key:ne,class:Te(["share-size-pill",{active:h.value===ne}]),onClick:ue=>h.value=ne},Q(K.label),11,Sm)),64))]),M("div",xm,Q(A.value),1),M("button",{class:Te(["share-secondary-btn",{copied:f.value}]),onClick:v},[f.value?(H(),J("svg",Fm,[...j[6]||(j[6]=[M("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),J("svg",Im,[...j[5]||(j[5]=[M("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),M("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),$e(" "+Q(f.value?"Copied!":"Copy Code"),1)],2)])):Le("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Pm={class:"gm-legend"},Bm={class:"gm-keys"},Dm={key:1,class:"gm-err"},Rm={key:2,class:"gm-sheet"},Wm={class:"gm-sh-head"},Um={class:"gm-sh-name"},jm={key:0,class:"gm-ai"},Gm={class:"gm-stat"},Ym={class:"gm-stat"},Vm={class:"gm-stat"},Hm={class:"gm-stat"},qm={class:"gm-stat"},zm={key:1,class:"gm-list"},Km={class:"gm-list-h"},Xm={key:2,class:"gm-list"},Jm=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-map",setup(e){const t=De("profileConfig",re(null)),n=ae(()=>{var O;return((O=t.value)==null?void 0:O.isDark)===!0}),o=ae(()=>{var O;return((O=t.value)==null?void 0:O.tk)||window.DOXA_TOKEN||""}),s=ae(()=>Dl(t.value)),r=re(null),a=jn(null),i=re([]),l=re(null),c=re(!0),u=re(null),f=[{id:"yes",label:"connected 60%+",color:"#10b981"},{id:"partial",label:"partial 25–59%",color:"#e8c15a"},{id:"no",label:"low, under 25%",color:"#b42318"},{id:"unknown",label:"not measured",color:"#9aa2ad"}],h=O=>(f.find(C=>C.id===O)||{}).color||"#9aa2ad",m=ae(()=>{const O={};for(const C of i.value)O[C.iso3]=C;return O});async function w(){const[O,C]=await Promise.all([fetch(`${s.value}/tables/internet-by-country.json`).then(_=>_.json()),fetch(`${s.value}/boundaries/world-adm0.geojson`).then(_=>_.json())]);return i.value=O.countries||[],C}function k(O,C){const _=m.value,v={type:"FeatureCollection",features:(C.features||[]).map(E=>{var N;const L=(N=E.properties)==null?void 0:N.iso3,x=_[L];return{type:"Feature",properties:{iso3:L,band:(x==null?void 0:x.band)||"none",color:x?h(x.band):"rgba(0,0,0,0)",hasData:!!x},geometry:E.geometry}})};if(O.getSource("ci-src")){O.getSource("ci-src").setData(v);return}O.addSource("ci-src",{type:"geojson",data:v}),O.addLayer({id:"ci-fill",type:"fill",source:"ci-src",paint:{"fill-color":["get","color"],"fill-opacity":["case",["get","hasData"],.72,0]}}),O.addLayer({id:"ci-line",type:"line",source:"ci-src",paint:{"line-color":"rgba(255,255,255,0.5)","line-width":.5}}),O.on("click","ci-fill",E=>{var x,N,R;const L=(R=(N=(x=E.features)==null?void 0:x[0])==null?void 0:N.properties)==null?void 0:R.iso3;L&&m.value[L]&&(l.value=m.value[L])}),O.on("mouseenter","ci-fill",()=>{O.getCanvas().style.cursor="pointer"}),O.on("mouseleave","ci-fill",()=>{O.getCanvas().style.cursor=""})}qt(async()=>{const O=window.mapboxgl;if(!O||!r.value){u.value="mapbox-gl not loaded";return}try{const C=await w(),_=new O.Map({container:r.value,style:n.value?"mapbox://styles/mapbox/dark-v11":"mapbox://styles/mapbox/light-v11",accessToken:o.value,center:[42,18],zoom:1.3,projection:"mercator",attributionControl:!1});a.value=vn(_),rm(_,{boundaries:!0}),_.once("load",()=>k(_,C))}catch(C){u.value=String(C.message||C)}}),un(()=>{var O;try{(O=a.value)==null||O.remove()}catch{}});const A=O=>(Number(O)||0).toLocaleString();return Wt(".gm{position:absolute;inset:0;overflow:hidden}.gm-map{position:absolute;inset:0}.gm-legend{position:absolute;top:8px;left:8px;width:var(--map-legend-width,380px);max-width:calc(100% - 16px);box-sizing:border-box;z-index:4;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.94);color:#0f1419;font:12px/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.16)}@media(max-width:480px){.gm-legend{width:auto;right:46px}}.is-dark .gm-legend{background:rgba(19,32,25,.95);color:#e5e7eb}.gm-title{font-weight:700;font-size:12.5px;margin-bottom:5px}.gm-keys{display:flex;flex-wrap:wrap;gap:5px 12px}.gm-key{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.gm-sw{width:12px;height:12px;border-radius:3px;flex:none}.gm-caveat{margin-top:5px;font-size:10.5px;opacity:.72;line-height:1.4}.gm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;max-height:62%;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:14px 16px 22px;font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 -6px 26px rgba(0,0,0,.28)}@media(min-width:700px){.gm-sheet{left:auto;right:14px;bottom:14px;width:330px;border-radius:12px}}.is-dark .gm-sheet{background:#132019;color:#e5e7eb}.gm-sh-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.gm-sh-name{font-weight:800;font-size:15px}.gm-ai{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:7px 9px;border-radius:8px;font-size:11px;line-height:1.35;background:rgba(180,120,0,.12);color:#7a4f00;border:1px solid rgba(180,120,0,.25)}.is-dark .gm-ai{background:rgba(255,200,80,.10);color:#f0cf88;border-color:rgba(255,200,80,.22)}.gm-ai-x{margin-left:auto;flex:none;border:0;background:none;cursor:pointer;font-size:15px;line-height:1;color:inherit;opacity:.7;padding:0 2px}.gm-ai-x:hover{opacity:1}.gm-x{margin-left:auto;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit;font:600 12px inherit;padding:6px 12px;border-radius:8px;cursor:pointer;min-height:34px}.gm-stat{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.07);font-variant-numeric:tabular-nums}.is-dark .gm-stat{border-bottom-color:rgba(255,255,255,.09)}.gm-stat b{font-weight:700}.gm-list{margin-top:9px}.gm-list-h{font-weight:700;font-size:12px;margin-bottom:3px}.gm-list ul{margin:0;padding-left:17px;font-size:12px;line-height:1.5}.gm-note{margin-top:9px;font-size:11px;line-height:1.5;opacity:.75}.gm-err{position:absolute;top:50%;left:0;right:0;text-align:center;font-size:13px;opacity:.7}","doxa-connectivity-map"),(O,C)=>(H(),J("div",{class:Te(["gm",{"is-dark":n.value}])},[M("div",{ref_key:"mapEl",ref:r,class:"gm-map"},null,512),a.value?(H(),Qe(sm,{key:0},{default:Vt(()=>[ve(im,{map:a.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(lm,{map:a.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(cm,{map:a.value,"is-dark":n.value},null,8,["map","is-dark"]),ve(dm,{"map-container":r.value,"is-dark":n.value},null,8,["map-container","is-dark"]),ve(Mm,{"is-dark":n.value,"embed-path":"cities-internet/connectivity-map/index.html"},null,8,["is-dark"])]),_:1})):Le("",!0),M("div",Pm,[C[2]||(C[2]=M("div",{class:"gm-title"},"Internet access where unengaged people groups live",-1)),M("div",Bm,[(H(),J(de,null,ct(f,_=>M("span",{key:_.id,class:"gm-key"},[M("i",{class:"gm-sw",style:bn({background:_.color})},null,4),$e(Q(_.label),1)])),64))]),C[3]||(C[3]=M("div",{class:"gm-caveat"}," NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country. ",-1))]),u.value?(H(),J("div",Dm,Q(u.value),1)):Le("",!0),l.value?(H(),J("div",Rm,[M("div",Wm,[M("span",Um,Q(l.value.country),1),M("button",{type:"button",class:"gm-x",onClick:C[0]||(C[0]=_=>l.value=null)},"Close")]),c.value?(H(),J("div",jm,[C[4]||(C[4]=M("span",null,"Data was found by AI deep research — it is subject to false information.",-1)),M("button",{type:"button",class:"gm-ai-x",onClick:C[1]||(C[1]=_=>c.value=!1),"aria-label":"Dismiss"},"×")])):Le("",!0),M("div",Gm,[C[5]||(C[5]=M("span",null,"Internet users",-1)),M("b",null,Q(l.value.internet_pct!=null?l.value.internet_pct+"%":"unknown"),1)]),M("div",Ym,[C[6]||(C[6]=M("span",null,"Measured",-1)),M("b",null,Q(l.value.internet_year||"—"),1)]),M("div",Vm,[C[7]||(C[7]=M("span",null,"Mobile per 100",-1)),M("b",null,Q(l.value.mobile_per_100??"—"),1)]),M("div",Hm,[C[8]||(C[8]=M("span",null,"People groups",-1)),M("b",null,Q(A(l.value.people_groups)),1)]),M("div",qm,[C[9]||(C[9]=M("span",null,"Top platform",-1)),M("b",null,[$e(Q(l.value.top_platform||"unknown"),1),l.value.top_platform_pct?(H(),J(de,{key:0},[$e(" · "+Q(l.value.top_platform_pct)+"%",1)],64)):Le("",!0)])]),l.value.carriers&&l.value.carriers.length?(H(),J("div",zm,[M("div",Km,"Carriers & ISPs ("+Q(l.value.carrier_count)+")",1),M("ul",null,[(H(!0),J(de,null,ct(l.value.carriers,(_,b)=>(H(),J("li",{key:b},Q(_),1))),128))])])):Le("",!0),l.value.platforms&&l.value.platforms.length?(H(),J("div",Xm,[C[10]||(C[10]=M("div",{class:"gm-list-h"},"Social platforms",-1)),M("ul",null,[(H(!0),J(de,null,ct(l.value.platforms,(_,b)=>(H(),J("li",{key:b},Q(_.name)+" · "+Q(_.pct)+"%",1))),128))])])):Le("",!0),C[11]||(C[11]=M("p",{class:"gm-note"}," National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification. ",-1))])):Le("",!0)],2))}}},Symbol.toStringTag,{value:"Module"}));function Zm(e){const t=(e==null?void 0:e.parentElement)||e;if(!t||!t.ownerDocument)return{x:0,y:0};const n=t.ownerDocument.createElement("div");n.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",t.appendChild(n);const o=n.getBoundingClientRect();return n.remove(),{x:o.left,y:o.top}}function Qm(e){const t=re(null),n=jn({position:"fixed",inset:"0"}),o=()=>{var u,f;const r=t.value;if(!r)return;const a=Zm(r),i=r.ownerDocument||(typeof document<"u"?document:null),l=((u=i==null?void 0:i.documentElement)==null?void 0:u.clientWidth)||0,c=((f=i==null?void 0:i.documentElement)==null?void 0:f.clientHeight)||0;n.value={position:"fixed",top:`${-a.y}px`,left:`${-a.x}px`,right:"auto",bottom:"auto",width:`${l}px`,height:`${c}px`,boxSizing:"border-box"}};lt(e,r=>{r&&requestAnimationFrame(()=>{o(),requestAnimationFrame(o)})},{flush:"post"});const s=()=>{e.value&&o()};return typeof window<"u"&&window.addEventListener("resize",s),un(()=>{typeof window<"u"&&window.removeEventListener("resize",s)}),{scrimRef:t,scrimStyle:n}}const e_={class:"dt-head"},t_={class:"dt-title"},n_={class:"dt-count"},o_={key:0,class:"dt-grain"},r_={class:"dt-actions"},s_={key:0,class:"dt-err"},a_={class:"dt-wrap"},i_={class:"dt-hint"},l_={class:"dt-sheet",role:"dialog","aria-label":"Row detail"},c_={class:"dt-sheet-head"},u_={class:"dt-dl"},p_=["href"],d_={key:1},f_={key:2},h_={key:2,class:"dt-caveats"},g_={class:"dt-cav-k"},m_={__name:"DataTable",props:{table:{type:Object,required:!0},assetsBase:{type:String,default:"./assets"},isDark:{type:Boolean,default:!1},height:{type:String,default:"560px"},frozen:{type:Number,default:1},pageSize:{type:Number,default:50}},emits:["row-click"],setup(e,{emit:t}){const n=e,o=t,s=re(!1),r=re(null),{scrimRef:a,scrimStyle:i}=Qm(r),l=re(null),c=jn(null),u=re(null),f=re(!1),h=ae(()=>String(n.assetsBase||"./assets").replace(/\/+$/,"")),m=ae(()=>{var N;return((N=n.table)==null?void 0:N.meta)||{}}),w=ae(()=>{var N;return(((N=n.table)==null?void 0:N.rows)||[]).length}),k=ae(()=>Object.entries(m.value).filter(([N,R])=>typeof R=="string"&&/caveat|meaning|note|boundary|measures|does_not/i.test(N)).map(([N,R])=>({key:N.replace(/_/g," "),text:R})));let A=null;function O(){return window.Tabulator?Promise.resolve(window.Tabulator):A||(A=new Promise((N,R)=>{const j=document.createElement("script");j.src=`${h.value}/vendor/tabulator/tabulator.min.js`,j.onload=()=>N(window.Tabulator),j.onerror=()=>R(new Error("Tabulator failed to load — is public/assets/vendor/tabulator/ present?")),document.head.appendChild(j)}),A)}async function C(N){if(!(!N||N.querySelector("style[data-tabulator]")))try{const R=await fetch(`${h.value}/vendor/tabulator/tabulator.min.css`);if(!R.ok)return;const j=document.createElement("style");j.setAttribute("data-tabulator",""),j.textContent=await R.text(),N.appendChild(j)}catch{}}function _(N){var ne,ue;if(!l.value)return;s.value=typeof window<"u"&&window.innerWidth<700;const R=((ne=n.table)==null?void 0:ne.columns)||[],K=(s.value?R.slice(0,3):R).map((z,W)=>({title:z.title,field:z.field,headerFilter:z.type==="boolean"?"tickCross":"input",headerFilterPlaceholder:"filter…",sorter:z.type==="number"?"number":z.type==="boolean"?"boolean":"string",formatter:z.type==="boolean"?"tickCross":void 0,.../_url$/.test(z.field)?{formatter:"link",formatterParams:{target:"_blank",label:()=>"open"}}:{},frozen:!s.value&&W{r.value=W.getData(),o("row-click",W.getData())}),c.value.on("tableBuilt",()=>{f.value=!0})}const b=N=>{var R,j;return((j=(((R=n.table)==null?void 0:R.columns)||[]).find(K=>K.field===N))==null?void 0:j.title)||N.replace(/_/g," ")},v=N=>typeof N=="string"&&N.includes(", ")&&N.length>40?N.split(", "):null,E=N=>typeof N=="string"&&/^https?:\/\//.test(N),L=ae(()=>r.value?Object.entries(r.value).filter(([,N])=>N!==""&&N!==null&&N!==void 0):[]);function x(N){var R;try{(R=c.value)==null||R.download(N,`${(m.value.title||"table").replace(/\W+/g,"-").toLowerCase()}.${N}`)}catch(j){u.value=String(j.message||j)}}return qt(async()=>{var N,R;try{await C((R=(N=l.value)==null?void 0:N.getRootNode)==null?void 0:R.call(N)),_(await O())}catch(j){u.value=String(j.message||j)}}),un(()=>{var N;try{(N=c.value)==null||N.destroy()}catch{}}),lt(()=>n.table,()=>{var N,R;try{(R=c.value)==null||R.replaceData(((N=n.table)==null?void 0:N.rows)||[])}catch{}}),Wt(".dt .tabulator{border:1px solid #d1d4cd;background:#fff;font-size:14px}.dt .tabulator .tabulator-header{background:#f3f3f1;border-bottom:1px solid #d1d4cd;color:#3b463d}.dt .tabulator .tabulator-header .tabulator-col{background:#f3f3f1;border-right:1px solid #d1d4cd;color:#3b463d}.dt .tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{background:#e9ebe6}.dt .tabulator .tabulator-col-title{color:#3b463d;font-weight:700}.dt .tabulator .tabulator-header .tabulator-col .tabulator-header-filter input,.dt .tabulator .tabulator-header .tabulator-col .tabulator-header-filter select{background:#fff;border:1px solid #d1d4cd;border-radius:5px;color:#3b463d;padding:3px 6px}.dt .tabulator .tabulator-row{background:#fff;color:#3b463d;border-bottom:1px solid #e6e8e3}.dt .tabulator .tabulator-row.tabulator-row-even{background:#faf9f7}.dt .tabulator .tabulator-row:hover{background:#e9ebe6}.dt .tabulator .tabulator-row .tabulator-cell{border-right:1px solid #e6e8e3;color:#3b463d}.dt .tabulator .tabulator-row .tabulator-cell a{color:#4a7a52;font-weight:600}.dt .tabulator .tabulator-footer{background:#f3f3f1;border-top:1px solid #d1d4cd;color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-paginator{color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-paginator label{color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-paginator select{background:#fff;border:1px solid #d1d4cd;border-radius:5px;color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-page{border:1px solid #d1d4cd;background:#fff;color:#3b463d;border-radius:5px}.dt .tabulator .tabulator-footer .tabulator-page.active{background:#92b195;border-color:#92b195;color:#fff}.dt .tabulator .tabulator-footer .tabulator-page:not(disabled):hover{background:#e9ebe6;color:#3b463d}.dt .tabulator .tabulator-footer .tabulator-page:disabled{opacity:.45}.dt,.dt *{box-sizing:border-box}.dt{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.dt-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.dt-title{font-size:15px;font-weight:700;margin:0}.dt-count{font-size:11.5px;opacity:.6;font-variant-numeric:tabular-nums}.dt-grain{font-size:11px;opacity:.55}.dt-actions{margin-left:auto;display:flex;gap:6px}.dt-btn{font:600 11.5px inherit;padding:5px 11px;border-radius:6px;cursor:pointer;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-btn:hover{background:rgba(0,0,0,.05)}.dt-err{padding:10px 12px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.dt-caveats{margin-top:10px;padding:10px 12px;border-radius:8px;background:rgba(0,0,0,.04);font-size:11.5px;line-height:1.6;opacity:.85}.is-dark .dt-caveats{background:rgba(255,255,255,.06)}.dt-cav-k{font-weight:700;text-transform:capitalize}.dt-scrim{position:fixed;inset:0;z-index:1200;background:rgba(8,12,16,.55);display:flex;align-items:flex-end;justify-content:center}@media(min-width:700px){.dt-scrim{align-items:center}}.dt-sheet{width:100%;max-width:560px;max-height:82vh;overflow-y:auto;background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:16px 18px 26px;box-shadow:0 -6px 30px rgba(0,0,0,.3)}@media(min-width:700px){.dt-sheet{border-radius:14px}}.is-dark .dt-sheet{background:#132019;color:#e5e7eb}.dt-sheet-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid rgba(0,0,0,.10);font-size:15px}.dt-close{margin-left:auto;font:600 12px inherit;padding:7px 14px;border-radius:8px;cursor:pointer;min-height:36px;border:1px solid rgba(0,0,0,.16);background:transparent;color:inherit}.dt-dl{display:grid;grid-template-columns:minmax(96px,34%) 1fr;gap:7px 12px;margin:0;font-size:12.5px}.dt-dl dt{font-weight:700;opacity:.72;text-transform:capitalize}.dt-dl dd{margin:0;word-break:break-word}.dt-dl ul{margin:0;padding-left:16px}.dt-dl a{color:#0b7a5b;font-weight:600}.dt-hint{font-size:11px;opacity:.6;margin:6px 0 0}.dt-wrap{width:100%;overflow:hidden;border:1px solid rgba(0,0,0,.10);border-radius:8px}.is-dark .dt-wrap{border-color:rgba(255,255,255,.12)}","doxa-data-table"),(N,R)=>{var j,K;return H(),J("div",{class:Te(["dt",{"is-dark":e.isDark}])},[M("div",e_,[M("h3",t_,Q(m.value.title||"Data"),1),M("span",n_,Q(w.value.toLocaleString())+" rows",1),m.value.grain?(H(),J("span",o_,"· "+Q(m.value.grain),1)):Le("",!0),M("span",r_,[M("button",{type:"button",class:"dt-btn",onClick:R[0]||(R[0]=ne=>x("csv"))},"CSV"),M("button",{type:"button",class:"dt-btn",onClick:R[1]||(R[1]=ne=>x("json"))},"JSON")])]),u.value?(H(),J("div",s_,Q(u.value),1)):Le("",!0),M("div",a_,[M("div",{ref_key:"host",ref:l},null,512)]),M("p",i_,"Tap any row for its full detail"+Q(s.value?"":" — every field, including the lists the table flattens")+".",1),r.value?(H(),J("div",{key:1,ref_key:"scrimRef",ref:a,style:bn(ze(i)),class:"dt-scrim",onClick:R[3]||(R[3]=_p(ne=>r.value=null,["self"]))},[M("div",l_,[M("div",c_,[M("strong",null,Q(r.value[(K=(((j=e.table)==null?void 0:j.columns)||[])[0])==null?void 0:K.field]||"Detail"),1),M("button",{type:"button",class:"dt-close",onClick:R[2]||(R[2]=ne=>r.value=null)},"Close")]),M("dl",u_,[(H(!0),J(de,null,ct(L.value,([ne,ue])=>(H(),J(de,{key:ne},[M("dt",null,Q(b(ne)),1),M("dd",null,[E(ue)?(H(),J("a",{key:0,href:ue,target:"_blank",rel:"noopener"},Q(ue),9,p_)):v(ue)?(H(),J("ul",d_,[(H(!0),J(de,null,ct(v(ue),(z,W)=>(H(),J("li",{key:W},Q(z),1))),128))])):(H(),J("span",f_,Q(ue===!0?"yes":ue===!1?"no":ue),1))])],64))),128))])])],4)):Le("",!0),k.value.length?(H(),J("div",h_,[(H(!0),J(de,null,ct(k.value,ne=>(H(),J("div",{key:ne.key},[M("span",g_,Q(ne.key)+":",1),$e(" "+Q(ne.text),1)]))),128))])):Le("",!0)],2)}}},__={class:"ct-tabs"},b_=["onClick"],y_={key:0,class:"ct-n"},v_={key:0,class:"ct-err"},w_={key:1,class:"ct-load"},k_=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"data-tables",setup(e){const t=De("profileConfig",re(null)),n=ae(()=>{var h;return((h=t.value)==null?void 0:h.isDark)===!0}),o=ae(()=>Dl(t.value)),s=[{id:"cities",label:"Key Cities",file:"key-cities"},{id:"internet",label:"Connectivity",file:"country-connectivity"},{id:"operators",label:"ISPs & Carriers",file:"network-operators"},{id:"social",label:"Social Platforms",file:"social-platforms"},{id:"messaging",label:"Messaging Apps",file:"messaging-channels"}],r=re("cities"),a=ae(()=>s.find(h=>h.id===r.value)||s[0]),i=re({}),l=re(!1),c=re(null);async function u(h){if(!i.value[h]){l.value=!0,c.value=null;try{const m=await fetch(`${o.value}/tables/${h}.json`);if(!m.ok)throw new Error(`table not found (${m.status})`);i.value={...i.value,[h]:await m.json()}}catch(m){c.value=String(m.message||m)}finally{l.value=!1}}}lt(a,h=>h&&u(h.file),{immediate:!0});const f=ae(()=>{var h;return i.value[(h=a.value)==null?void 0:h.file]||null});return Wt(".ct{position:absolute;inset:0;overflow-y:auto;padding:18px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ct.is-dark{background:#0a1410;color:#e5e7eb}.ct-h{margin:0 0 4px;font-size:18px;font-weight:700}.ct-sub{margin:0 0 14px;font-size:12.5px;opacity:.72;line-height:1.5}.ct-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.ct-tab{font:600 12px inherit;padding:7px 14px;border-radius:999px;cursor:pointer;border:1px solid rgba(0,0,0,.14);background:transparent;color:inherit}.ct-tab.on{background:#10b981;border-color:#10b981;color:#04241a}.ct-load{padding:22px;text-align:center;font-size:12.5px;opacity:.6}.ct-err{padding:11px 13px;border-radius:8px;background:rgba(220,38,38,.10);color:#a12020;font-size:12.5px}.ct-n{font-size:10.5px;opacity:.6;margin-left:5px;font-variant-numeric:tabular-nums}","doxa-cities-tables"),(h,m)=>(H(),J("div",{class:Te(["ct",{"is-dark":n.value}])},[m[0]||(m[0]=M("h2",{class:"ct-h"},"Cities Data",-1)),m[1]||(m[1]=M("p",{class:"ct-sub"}," Where the unengaged people groups live — and what reaches them. Sort, filter and export any table; each carries its own sources and limits. ",-1)),M("div",__,[(H(),J(de,null,ct(s,w=>M("button",{key:w.id,type:"button",class:Te(["ct-tab",{on:r.value===w.id}]),onClick:k=>r.value=w.id},[$e(Q(w.label),1),i.value[w.file]?(H(),J("span",y_,Q((i.value[w.file].rows||[]).length.toLocaleString()),1)):Le("",!0)],10,b_)),64))]),c.value?(H(),J("div",v_,Q(c.value),1)):f.value?(H(),Qe(m_,{key:a.value.id,table:f.value,"assets-base":o.value,"is-dark":n.value,height:"600px"},null,8,["table","assets-base","is-dark"])):(H(),J("div",w_,"Loading "+Q(a.value.label)+"…",1))],2))}}},Symbol.toStringTag,{value:"Module"}))})(); diff --git a/public/doxa-maps/cities-internet/connectivity-list/index.html b/public/doxa-maps/cities-internet/connectivity-list/index.html index 56e0668f9..7cfa0d0a1 100644 --- a/public/doxa-maps/cities-internet/connectivity-list/index.html +++ b/public/doxa-maps/cities-internet/connectivity-list/index.html @@ -26,7 +26,7 @@ - + - + - + - + - + - + - + + window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":21,"profileCount":32,"bundles":[{"bundle":"all-people-groups","scriptUrl":"./all-people-groups/all-people-groups.js","output":"doxa-maps/all-people-groups/all-people-groups.js","integrity":"sha384-ajyiOLGnsr8AOhrZpwopjFXwKGNk56IbWkBMD+2oYA+DSDjdtATeoF5muZoXhcEF","elements":["all-people-groups"],"profiles":[{"profile":"all-people-groups","file":"all-people-groups.vue","description":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","element":"all-people-groups","type":"single","isMap":true,"iframeUrl":"./all-people-groups/all-people-groups/index.html","scriptUrl":"./all-people-groups/all-people-groups.js","embed":{"iframe":"\u003ciframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-ajyiOLGnsr8AOhrZpwopjFXwKGNk56IbWkBMD+2oYA+DSDjdtATeoF5muZoXhcEF\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/all-people-groups>"},"bundle":"all-people-groups"}]},{"bundle":"big-picture","scriptUrl":"./big-picture/big-picture.js","output":"doxa-maps/big-picture/big-picture.js","integrity":"sha384-a9W2VPCO3zJ+1pqWQadGso72rNPTfmZgO4aoGtZN7RDFQpVQbeTvy8JBsGi9VH43","elements":["bp-big-picture","bp-research-header","people-groups-grid"],"composes":["bp-research-header","people-groups-grid"],"profiles":[{"profile":"big-picture","file":"big-picture.vue","description":"The Cat-4 composite that PAIRS the two real capability elements of the","element":"bp-big-picture","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./big-picture/big-picture/index.html","scriptUrl":"./big-picture/big-picture.js","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./big-picture/big-picture.js\" integrity=\"sha384-a9W2VPCO3zJ+1pqWQadGso72rNPTfmZgO4aoGtZN7RDFQpVQbeTvy8JBsGi9VH43\" crossorigin=\"anonymous\">\u003c/script>\n\u003cbp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/bp-big-picture>"},"instances":[{"id":"big-picture","title":"Big Picture — research header ↔ people-groups grid (composite)","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/big-picture/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Big Picture — frontier accent","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"big-picture"}]},{"bundle":"cities-internet","scriptUrl":"./cities-internet/cities-internet.js","output":"doxa-maps/cities-internet/cities-internet.js","integrity":"sha384-2XeY3I8Ff77YyQjrUsSsINTvxoE7E6Bi6wX2E2d8GuDrEhMXBh+/u+YleUi3Oa7J","elements":["cities-internet-map"],"profiles":[{"profile":"connectivity-list","file":"connectivity-list.vue","description":"Countries where DX people groups live, grouped by region, showing measured internet penetration","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/connectivity-list/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-2XeY3I8Ff77YyQjrUsSsINTvxoE7E6Bi6wX2E2d8GuDrEhMXBh+/u+YleUi3Oa7J\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"connectivity-map","file":"connectivity-map.vue","description":"Every country shaded by measured internet penetration, with its named carriers and dominant","element":"cities-internet-map","type":"single","isMap":true,"iframeUrl":"./cities-internet/connectivity-map/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-2XeY3I8Ff77YyQjrUsSsINTvxoE7E6Bi6wX2E2d8GuDrEhMXBh+/u+YleUi3Oa7J\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/data-tables/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-2XeY3I8Ff77YyQjrUsSsINTvxoE7E6Bi6wX2E2d8GuDrEhMXBh+/u+YleUi3Oa7J\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}}]},{"bundle":"country-posters","scriptUrl":"./country-posters/country-posters.js","output":"doxa-maps/country-posters/country-posters.js","integrity":"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO","elements":["country-posters-map"],"profiles":[{"profile":"countries-map","file":"countries-map.vue","description":"The researcher's workbench retargeted from people groups to COUNTRIES — region","element":"country-posters-map","type":"single","isMap":true,"iframeUrl":"./country-posters/countries-map/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"profile":"country-poster-wall","file":"country-poster-wall.vue","description":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","element":"country-posters-map","type":"single","isMap":false,"iframeUrl":"./country-posters/country-poster-wall/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-11tC7IzM7DM66gTcAlLSb0bwA7TTkfKYmdrYdiGlBTy9eLVhYCjKgD+LmhZ+qLwO\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"bundle":"dashboard-plus-grid","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","output":"doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js","integrity":"sha384-w8aVTRyH8dlsHIjJMHrFe6QbnZaafEb3wGjykrVlqWvj+I0S5eMwXfyBHy/SS/X0","elements":["dashboard-plus-grid"],"composes":["research-dashboard","people-groups-grid"],"profiles":[{"profile":"dashboard-plus-grid","file":"dashboard-plus-grid.vue","description":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","element":"dashboard-plus-grid","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/index.html","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-w8aVTRyH8dlsHIjJMHrFe6QbnZaafEb3wGjykrVlqWvj+I0S5eMwXfyBHy/SS/X0\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/dashboard-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"dashboard-plus-grid"},"element":"dashboard-plus-grid","iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-yLc6o2sikAUcTgqEszWaO9whzFZnBAZoO4gPXJhG3tzvfKaDpK2mhAW3qXwrycDO","elements":["demo-map"],"profiles":[{"profile":"demo-map","file":"demo-map.vue","description":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","element":"demo-map","type":"parameterized","isMap":true,"iframeUrl":"./demo-map/demo-map/index.html","scriptUrl":"./demo-map/demo-map.js","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-yLc6o2sikAUcTgqEszWaO9whzFZnBAZoO4gPXJhG3tzvfKaDpK2mhAW3qXwrycDO\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/demo-map>"},"instances":[{"id":"maplibre","title":"Demo map — MapLibre (token-free)","apiBaseUrl":"","props":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"element":"demo-map","iframeUrl":"./demo-map/demo-map/maplibre/index.html","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/maplibre/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"demo-map"}]},{"bundle":"doxa-maps-spa","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","output":"doxa-maps/doxa-maps-spa/doxa-maps-spa.js","integrity":"sha384-GNqHiINJmPj5jwlIbFd3WQ2FfQy9VwJ6gZEjisE/TmS23X7RjCEz5YL81gKSVD5c","elements":["doxa-maps-spa"],"composes":["bp-big-picture","doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map"],"profiles":[{"profile":"doxa-maps-spa","file":"doxa-maps-spa.vue","description":"The DX-maps app itself: one element whose vertical-tab rail nests every other","element":"doxa-maps-spa","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./doxa-maps-spa/doxa-maps-spa/index.html","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-GNqHiINJmPj5jwlIbFd3WQ2FfQy9VwJ6gZEjisE/TmS23X7RjCEz5YL81gKSVD5c\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-maps-spa>"},"instances":[{"id":"app","title":"DX-Maps SPA — Big Picture + every research map (app-shell)","apiBaseUrl":"","props":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"},"element":"doxa-maps-spa","iframeUrl":"./doxa-maps-spa/doxa-maps-spa/app/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/app/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-research-map","scriptUrl":"./doxa-research-map/doxa-research-map.js","output":"doxa-maps/doxa-research-map/doxa-research-map.js","integrity":"sha384-ugm8PXu3KYQmGJoQnOUaICqt07r17kQa1bINkKsrUgt89uENqvd87rxT2NBeyC9/","elements":["doxa-research-map"],"profiles":[{"profile":"research-map","file":"research-map.vue","description":"The researcher's workbench: every piece a missiologist, demographer or","element":"doxa-research-map","type":"monolithic","isMap":true,"iframeUrl":"./doxa-research-map/research-map/index.html","scriptUrl":"./doxa-research-map/doxa-research-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-ugm8PXu3KYQmGJoQnOUaICqt07r17kQa1bINkKsrUgt89uENqvd87rxT2NBeyC9/\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-research-map>"}}]},{"bundle":"doxa-simple-map","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","output":"doxa-maps/doxa-simple-map/doxa-simple-map.js","integrity":"sha384-fl3Eh//QzBhOEpF3OJcfZDXOdpyb/yxiQ5aEroT23Onjya6wvBlx+F2dUB6FiBZu","elements":["doxa-map","doxa-simple-map"],"profiles":[{"profile":"doxa-simple-map","file":"doxa-simple-map.vue","description":"The simple world map, shipped as three presets off ONE prop table —","element":"doxa-map","type":"parameterized","isMap":true,"iframeUrl":"./doxa-simple-map/doxa-simple-map/index.html","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-fl3Eh//QzBhOEpF3OJcfZDXOdpyb/yxiQ5aEroT23Onjya6wvBlx+F2dUB6FiBZu\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-map>"},"instances":[{"id":"prayer","title":"Prayer Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/prayer/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/prayer/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"engagement","title":"Engagement Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/engagement/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/engagement/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"adoption","title":"Adoption Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/adoption/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/adoption/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-vision-card","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","output":"doxa-maps/doxa-vision-card/doxa-vision-card.js","integrity":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","elements":["doxa-vision-card"],"profiles":[{"profile":"doxa-vision-card","file":"doxa-vision-card.vue","description":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","element":"doxa-vision-card","type":"parameterized","isMap":false,"iframeUrl":"./doxa-vision-card/doxa-vision-card/index.html","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-vision-card/doxa-vision-card.js\" integrity=\"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-vision-card profile-config='{\"profile\":\"doxa-vision-card\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-vision-card>"},"instances":[{"id":"default","title":"Vision card — reach at a glance","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/default/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Vision card — frontier accent","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-frontier","accent":"#22d3ee","title":"The last frontier of the gospel.","tagline":"Frontier people groups — where fewer than one in a thousand follow Jesus.","stats":[{"value":"1,910","label":"Frontier groups","note":"under 0.1% believers"},{"value":"2.1B","label":"People","note":"living in frontier settings"},{"value":"0.1%","label":"Christian","note":"or fewer, in each group"}]},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"doxa-vision-card"}]},{"bundle":"golden-path-check","scriptUrl":"./golden-path-check/golden-path-check.js","output":"doxa-maps/golden-path-check/golden-path-check.js","integrity":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","elements":["golden-path-check"],"profiles":[{"profile":"golden-path-check","file":"golden-path-check.vue","description":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","element":"golden-path-check","type":"single","isMap":false,"iframeUrl":"./golden-path-check/golden-path-check/index.html","scriptUrl":"./golden-path-check/golden-path-check.js","embed":{"iframe":"\u003ciframe src=\"./golden-path-check/golden-path-check/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./golden-path-check/golden-path-check.js\" integrity=\"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgolden-path-check profile-config='{\"profile\":\"golden-path-check\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/golden-path-check>"}}]},{"bundle":"gospel-resources","scriptUrl":"./gospel-resources/gospel-resources.js","output":"doxa-maps/gospel-resources/gospel-resources.js","integrity":"sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t","elements":["gospel-resources-map"],"profiles":[{"profile":"charts","file":"charts.vue","description":"The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/charts/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Two validated tables: what resources exist per people group, and whether that access is keeping","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/data-tables/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-list","file":"resources-list.vue","description":"Which DX people groups have scripture in their own language, and which have none. The zero-resource","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/resources-list/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-map","file":"resources-map.vue","description":"Every country shaded by how much of its unengaged population has NO gospel resource in their own","element":"gospel-resources-map","type":"single","isMap":true,"iframeUrl":"./gospel-resources/resources-map/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}}]},{"bundle":"my-upg-100-list","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","output":"doxa-maps/my-upg-100-list/my-upg-100-list.js","integrity":"sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE","elements":["my-upg-100-list-map"],"composes":["my-upg-100-list/upg-100-list","my-upg-100-list/poster-wall"],"profiles":[{"profile":"poster-wall","file":"poster-wall.vue","description":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/poster-wall/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-list","file":"upg-100-list.vue","description":"A personal unreached-people-groups list painted as true boundary polygons —","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-list/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-mfe","file":"upg-100-mfe.vue","description":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","element":"my-upg-100-list-map","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-mfe/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}}]},{"bundle":"people-groups-grid","scriptUrl":"./people-groups-grid/people-groups-grid.js","output":"doxa-maps/people-groups-grid/people-groups-grid.js","integrity":"sha384-M3RVF4r+s9KJ2YznjQ+g3BR4XjsA4n8uhfCk97dwyiuN1BxRdeQmmMnQILV0CwJg","elements":["people-groups-grid"],"profiles":[{"profile":"people-groups-grid","file":"people-groups-grid.vue","description":"The people-groups grid as an owned custom element: card list, search and four","element":"people-groups-grid","type":"parameterized","isMap":false,"iframeUrl":"./people-groups-grid/people-groups-grid/index.html","scriptUrl":"./people-groups-grid/people-groups-grid.js","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-M3RVF4r+s9KJ2YznjQ+g3BR4XjsA4n8uhfCk97dwyiuN1BxRdeQmmMnQILV0CwJg\" crossorigin=\"anonymous\">\u003c/script>\n\u003cpeople-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/people-groups-grid>"},"instances":[{"id":"people-groups-grid","title":"People Groups Grid — standalone (own search + 4 dropdowns)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"driven","title":"People Groups Grid — externally driven (controls off, props/events)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/driven/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/driven/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"plugin-studio","scriptUrl":"./plugin-studio/plugin-studio.js","output":"doxa-maps/plugin-studio/plugin-studio.js","integrity":"sha384-VuTJ3Db517xAN7nyV6VKdM0YJH6ToDwxyCjjAEeK69x8KompgYFCHWs29Q0BkfJp","elements":["plugin-studio"],"composes":["bp-big-picture","people-groups-grid","doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-vision-card","all-people-groups","research-dashboard"],"profiles":[{"profile":"plugin-studio","file":"plugin-studio.vue","description":"The developer's viewing surface: a sidebar that is the composability ladder","element":"plugin-studio","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./plugin-studio/plugin-studio/index.html","scriptUrl":"./plugin-studio/plugin-studio.js","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-VuTJ3Db517xAN7nyV6VKdM0YJH6ToDwxyCjjAEeK69x8KompgYFCHWs29Q0BkfJp\" crossorigin=\"anonymous\">\u003c/script>\n\u003cplugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/plugin-studio>"},"instances":[{"id":"studio","title":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","apiBaseUrl":"","props":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"element":"plugin-studio","iframeUrl":"./plugin-studio/plugin-studio/studio/index.html","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"prayer-walk-planner","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","output":"doxa-maps/prayer-walk-planner/prayer-walk-planner.js","integrity":"sha384-+XBRYgeeX8JLpdYcc+oGtkQf+Zgc2JkFK6/tlMBh5qghF9rNAJLk1lwVxWkU0cKx","elements":["prayer-walk-planner"],"profiles":[{"profile":"prayer-walk-planner","file":"prayer-walk-planner.vue","description":"A simple polygon-drawing tool for planning prayer-walking routes.","element":"prayer-walk-planner","type":"single","isMap":true,"iframeUrl":"./prayer-walk-planner/prayer-walk-planner/index.html","scriptUrl":"./prayer-walk-planner/prayer-walk-planner.js","embed":{"iframe":"\u003ciframe src=\"./prayer-walk-planner/prayer-walk-planner/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-+XBRYgeeX8JLpdYcc+oGtkQf+Zgc2JkFK6/tlMBh5qghF9rNAJLk1lwVxWkU0cKx\" crossorigin=\"anonymous\">\u003c/script>\n\u003cprayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/prayer-walk-planner>"}}]},{"bundle":"regions-dashboard","scriptUrl":"./regions-dashboard/regions-dashboard.js","output":"doxa-maps/regions-dashboard/regions-dashboard.js","integrity":"sha384-5QpUDIMXiWozhCtGWtXmkcbZPjuqaGMDKU5RrudhFcbMMWxfTI+OhnNbbhHAlYxv","elements":["regions-dashboard"],"composes":["regions-dashboard/regions-list","regions-dashboard/region-dashboards"],"profiles":[{"profile":"region-dashboards","file":"region-dashboards.vue","description":"The dashboard half of the Driver's 2-tab Regions element: given a region (or a","element":"regions-dashboard","type":"single","isMap":false,"iframeUrl":"./regions-dashboard/region-dashboards/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/region-dashboards/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-5QpUDIMXiWozhCtGWtXmkcbZPjuqaGMDKU5RrudhFcbMMWxfTI+OhnNbbhHAlYxv\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}},{"profile":"regions-list","file":"regions-list.vue","description":"A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into","element":"regions-dashboard","type":"single","isMap":false,"iframeUrl":"./regions-dashboard/regions-list/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-5QpUDIMXiWozhCtGWtXmkcbZPjuqaGMDKU5RrudhFcbMMWxfTI+OhnNbbhHAlYxv\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}},{"profile":"regions-mfe","file":"regions-mfe.vue","description":"The composite the Driver asked for: ONE element carrying the SELECT VIEW switcher","element":"regions-dashboard","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./regions-dashboard/regions-mfe/index.html","scriptUrl":"./regions-dashboard/regions-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./regions-dashboard/regions-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-5QpUDIMXiWozhCtGWtXmkcbZPjuqaGMDKU5RrudhFcbMMWxfTI+OhnNbbhHAlYxv\" crossorigin=\"anonymous\">\u003c/script>\n\u003cregions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/regions-dashboard>"}}]},{"bundle":"research-dashboard","scriptUrl":"./research-dashboard/research-dashboard.js","output":"doxa-maps/research-dashboard/research-dashboard.js","integrity":"sha384-sQL0nI6tuJD+PpCrg4TbNH5QwazCgMmk/oLwCH7QVbtoh4uYdoPhIPdokF1WLTgT","elements":["research-dashboard-map"],"profiles":[{"profile":"research-dashboard","file":"research-dashboard.vue","description":"Coordinated-Multiple-Views research dashboard for 10/40-window UPGs (live pray.doxa.life): docked facet rail + map-as-hero + linked table/charts, brushing-and-linking over one in-memory store.","element":"research-dashboard-map","type":"monolithic","isMap":true,"iframeUrl":"./research-dashboard/research-dashboard/index.html","scriptUrl":"./research-dashboard/research-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-sQL0nI6tuJD+PpCrg4TbNH5QwazCgMmk/oLwCH7QVbtoh4uYdoPhIPdokF1WLTgT\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-dashboard-map>"},"bundle":"research-dashboard"}]},{"bundle":"research-map-plus-grid","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","output":"doxa-maps/research-map-plus-grid/research-map-plus-grid.js","integrity":"sha384-RD6XMWZvRaam/1XF9HAsXE+XutNjsboygfmxLMP9JJEnZ0LdIHqR+gYGWE1Y6Gzq","elements":["research-map-plus-grid"],"composes":["doxa-research-map","people-groups-grid"],"profiles":[{"profile":"research-map-plus-grid","file":"research-map-plus-grid.vue","description":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","element":"research-map-plus-grid","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./research-map-plus-grid/research-map-plus-grid/index.html","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-RD6XMWZvRaam/1XF9HAsXE+XutNjsboygfmxLMP9JJEnZ0LdIHqR+gYGWE1Y6Gzq\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-map-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"research-map-plus-grid"},"element":"research-map-plus-grid","iframeUrl":"./research-map-plus-grid/research-map-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"stack-demo","scriptUrl":"./stack-demo/stack-demo.js","output":"doxa-maps/stack-demo/stack-demo.js","integrity":"sha384-g9iK/zw5CvcyhNWdWHe8n2S/O22tv3PhQhoCe45ArdX5dL2YRBBRl/hFjktel1UU","elements":["stack-demo"],"composes":["research-dashboard-map","people-groups-grid"],"profiles":[{"profile":"stack-demo","file":"stack-demo.vue","description":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","element":"stack-demo","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./stack-demo/stack-demo/index.html","scriptUrl":"./stack-demo/stack-demo.js","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-g9iK/zw5CvcyhNWdWHe8n2S/O22tv3PhQhoCe45ArdX5dL2YRBBRl/hFjktel1UU\" crossorigin=\"anonymous\">\u003c/script>\n\u003cstack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/stack-demo>"},"instances":[{"id":"pair","title":"pair","apiBaseUrl":"","props":{"profile":"stack-demo"},"element":"stack-demo","iframeUrl":"./stack-demo/stack-demo/pair/index.html","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/pair/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"template-bundle","scriptUrl":"./template-bundle/template-bundle.js","output":"doxa-maps/template-bundle/template-bundle.js","integrity":"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28","elements":["template-bundle"],"profiles":[{"profile":"template-map-a","file":"template-map-a.vue","description":"Minimal example profile A — a colored placeholder, no Mapbox or data.","element":"template-bundle","type":"single","isMap":false,"iframeUrl":"./template-bundle/template-map-a/index.html","scriptUrl":"./template-bundle/template-bundle.js","embed":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-a/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-a\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"},"bundle":"template-bundle"},{"profile":"template-map-b","file":"template-map-b.vue","description":"Minimal example profile B — a second profile in the same bundle.","element":"template-bundle","type":"single","isMap":false,"iframeUrl":"./template-bundle/template-map-b/index.html","scriptUrl":"./template-bundle/template-bundle.js","embed":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-b/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-6BLnoGxxah2nBlYZe3+9dY5xquKg1exSyIUNazvQz7/0sJM4ROA4aHjRGjNMQL28\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-b\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"},"bundle":"template-bundle"}]}]}; \n\n" + "script": "\n\n" } }, { @@ -131,7 +131,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -145,7 +145,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ] @@ -556,7 +556,7 @@ "bundle": "gospel-resources", "scriptUrl": "./gospel-resources/gospel-resources.js", "output": "doxa-maps/gospel-resources/gospel-resources.js", - "integrity": "sha384-ghGJCWgzNE6CZFo6Txri3COKSOwM+LmqEj4p6tBo9B/eUoczfRH9p9Ogo+mT+4ci", + "integrity": "sha384-DJOPWgxv0aJTTqWf05/FWiCVqQURbKIlqPP+rlyMLFZmYm8UzzQBrMACWHOPDj5t", "elements": [ "gospel-resources-map" ], @@ -572,7 +572,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -586,7 +586,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -600,7 +600,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -614,7 +614,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ]