From d74700f9b083f19a87be97dcbe04ac4048fb4a4a Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 9 Sep 2026 03:09:46 +0200 Subject: [PATCH] =?UTF-8?q?Las=20fichas=20de=20g=C3=A9nero=20salen=20del?= =?UTF-8?q?=20taller=20y=20tienen=20su=20propia=20secci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Con lo que pediste: portada con mapa de Iberoamérica, buscador y un aside que empieza por Inicio, Los principios, Glosario y Letristas antes de la lista de géneros. El mapa es interactivo de verdad: cada país se pinta según lo que tenga —marcado si es cuna de algún género, tenue si solo lo adoptó, apagado si no hay nada—, y al pulsarlo la lista de abajo se parte en «nació aquí» y «también se canta ahí». Esa diferencia es lo que un mapa cuenta mejor que una lista. Los contornos son de `BlankMap-Americas.svg` de Wikimedia, en dominio público, recortados a los veinte países de Iberoamérica en América. De 640 KB a 36 KB comprimidos, y solo en esta ruta: coordenadas a un decimal y fuera los 134 islotes que a este tamaño miden menos de un píxel. Va por script y no pegado a mano, para poder rehacerlo. Cada país lleva además un punto de agarre calculado —el promedio de los vértices de su costa, no el centro de su rectángulo, que en Cuba cae en el mar—: sin él, Puerto Rico mide cuatro píxeles y una isla alargada no hay quien la acierte. «Letristas» es nueva: las mismas personas que salen repartidas en nueve fichas, aquí juntas, con su papel en cada género y sus obras. La página del capítulo pasa a `$lib/components/Capitulo.svelte` y la usan las dos secciones: son setecientas líneas, y copiarlas habría sido dos sitios donde arreglar cada cosa. Las direcciones viejas redirigen con 301 —`/taller/bolero` a `/generos/bolero`— resolviendo contra el catálogo de capítulos, no contra una lista escrita a mano que alguien tenga que ampliar. Un enlace compartido no puede empezar a dar 404 porque hayamos reordenado el menú. Co-Authored-By: Claude Opus 5 (1M context) --- e2e/responsive.e2e.ts | 4 +- e2e/sindicacion.e2e.ts | 2 +- e2e/taller.e2e.ts | 98 +- scripts/mapa/BlankMap-Americas.svg | 2880 +++++++++++++++++ scripts/mapa/generar.mjs | 190 ++ src/hooks.server.ts | 35 +- src/lib/components/Capitulo.svelte | 1211 +++++++ src/lib/components/GlobosDeGlosario.svelte | 74 +- src/lib/components/IndiceDeGeneros.svelte | 110 + src/lib/components/IndiceTaller.svelte | 41 +- src/lib/components/MapaDeGeneros.svelte | 181 ++ src/lib/mapa/iberoamerica.ts | 127 + src/lib/server/editorial.ts | 38 +- src/lib/server/taller.ts | 156 + src/routes/blog/+page.svelte | 458 ++- src/routes/generos/+layout.server.ts | 10 + src/routes/generos/+layout.svelte | 69 + src/routes/generos/+page.server.ts | 5 + src/routes/generos/+page.svelte | 279 ++ src/routes/generos/[slug]/+page.server.ts | 12 + src/routes/generos/[slug]/+page.svelte | 12 + .../glosario/+page.server.ts | 0 src/routes/generos/glosario/+page.svelte | 414 +++ src/routes/generos/letristas/+page.server.ts | 5 + src/routes/generos/letristas/+page.svelte | 241 ++ src/routes/sitemap.xml/+server.ts | 7 +- src/routes/taller/+layout.svelte | 2 +- src/routes/taller/+page.svelte | 66 +- src/routes/taller/[slug]/+page.svelte | 1194 +------ src/routes/taller/glosario/+page.svelte | 189 -- 30 files changed, 6538 insertions(+), 1572 deletions(-) create mode 100644 scripts/mapa/BlankMap-Americas.svg create mode 100644 scripts/mapa/generar.mjs create mode 100644 src/lib/components/Capitulo.svelte create mode 100644 src/lib/components/IndiceDeGeneros.svelte create mode 100644 src/lib/components/MapaDeGeneros.svelte create mode 100644 src/lib/mapa/iberoamerica.ts create mode 100644 src/routes/generos/+layout.server.ts create mode 100644 src/routes/generos/+layout.svelte create mode 100644 src/routes/generos/+page.server.ts create mode 100644 src/routes/generos/+page.svelte create mode 100644 src/routes/generos/[slug]/+page.server.ts create mode 100644 src/routes/generos/[slug]/+page.svelte rename src/routes/{taller => generos}/glosario/+page.server.ts (100%) create mode 100644 src/routes/generos/glosario/+page.svelte create mode 100644 src/routes/generos/letristas/+page.server.ts create mode 100644 src/routes/generos/letristas/+page.svelte delete mode 100644 src/routes/taller/glosario/+page.svelte diff --git a/e2e/responsive.e2e.ts b/e2e/responsive.e2e.ts index d8885fd..48a4af4 100644 --- a/e2e/responsive.e2e.ts +++ b/e2e/responsive.e2e.ts @@ -93,8 +93,8 @@ test.describe('Responsive', () => { await page.goto('/musica/baladas-romanticas'); await expect(page.getByRole('navigation', { name: 'Estilos' })).toBeVisible(); - await page.goto('/taller/bachata'); - await expect(page.getByRole('navigation', { name: 'Contenido del taller' })).toBeVisible(); + await page.goto('/generos/bachata'); + await expect(page.getByRole('navigation', { name: 'Contenido de géneros' })).toBeVisible(); }); test('la tabla se desplaza dentro de su marco, no arrastra la página', async ({ page }) => { diff --git a/e2e/sindicacion.e2e.ts b/e2e/sindicacion.e2e.ts index 8901dcc..2e40081 100644 --- a/e2e/sindicacion.e2e.ts +++ b/e2e/sindicacion.e2e.ts @@ -56,7 +56,7 @@ test.describe('Mapa del sitio', () => { expect(xml).toContain('/canciones/dorina'); expect(xml).toContain('/musica/baladas-romanticas'); expect(xml).toContain('/albumes/singles-baladas-romanticas'); - expect(xml).toContain('/taller/bachata'); + expect(xml).toContain('/generos/bachata'); expect(xml).toContain('/blog/lo-que-no-cabe-en-una-cancion'); expect(xml).toContain('/etiquetas/desamor'); }); diff --git a/e2e/taller.e2e.ts b/e2e/taller.e2e.ts index c2b7faa..0976dda 100644 --- a/e2e/taller.e2e.ts +++ b/e2e/taller.e2e.ts @@ -1,15 +1,16 @@ import { expect, test } from '@playwright/test'; test.describe('Taller de letras', () => { - test('el índice separa los principios de las fichas', async ({ page }) => { + test('la portada lleva a los principios y a los géneros', async ({ page }) => { await page.goto('/taller'); await expect(page.getByRole('heading', { level: 1 })).toHaveText('Taller de letras'); await expect(page.getByRole('heading', { level: 2, name: 'Los principios' })).toBeVisible(); - await expect(page.getByRole('heading', { level: 2, name: 'Fichas de creación' })).toBeVisible(); - // El índice lateral rotula sus bloques, pero no como encabezados: si no, - // el esquema de la página diría dos veces lo mismo. - await expect(page.getByRole('heading', { level: 2 })).toHaveCount(2); + + // Las fichas se fueron a su propia sección; aquí queda el paso a ella. + await expect(page.getByRole('heading', { level: 2, name: 'Fichas de género' })).toBeVisible(); + await page.getByRole('link', { name: 'Ver los géneros' }).click(); + await expect(page).toHaveURL('/generos'); }); test('se llega a un principio y se encadena con el siguiente', async ({ page }) => { @@ -31,7 +32,7 @@ test.describe('Taller de letras', () => { }); test('una ficha de género trae sus datos de creación', async ({ page }) => { - await page.goto('/taller/bolero'); + await page.goto('/generos/bolero'); await expect(page.getByRole('heading', { level: 1 })).toHaveText('Bolero'); await expect(page.getByText('Santiago de Cuba, 1883')).toBeVisible(); @@ -62,7 +63,7 @@ test.describe('Taller de letras', () => { // Es la diferencia con la barra lateral de antes, y lo que hace que los // datos se puedan comparar de un vistazo. await page.setViewportSize({ width: 1440, height: 900 }); - await page.goto('/taller/bolero'); + await page.goto('/generos/bolero'); const datos = (await page.locator('.datos').boundingBox())!; const texto = (await page.locator('.lectura .texto').boundingBox())!; @@ -80,7 +81,7 @@ test.describe('Taller de letras', () => { * que cubre ese ancho es lo que va a su lado, no el texto estirado. */ await page.setViewportSize({ width: 1440, height: 900 }); - await page.goto('/taller/bolero'); + await page.goto('/generos/bolero'); const derecha = async (selector: string) => { const caja = (await page.locator(selector).first().boundingBox())!; @@ -102,23 +103,23 @@ test.describe('Taller de letras', () => { const indice = page.getByRole('navigation', { name: 'Contenido del taller' }); await expect(indice).toBeVisible(); - await expect(indice.getByRole('link', { name: 'Bolero' })).toBeVisible(); + await expect(indice.getByRole('link', { name: 'El estribillo' })).toBeVisible(); // En la portada no hay capítulo abierto que marcar. await expect(indice.locator('a[aria-current="page"]')).toHaveCount(0); }); test('cada capítulo lleva el índice del taller al lado', async ({ page }) => { - await page.goto('/taller/bolero'); + await page.goto('/taller/el-estribillo'); const indice = page.getByRole('navigation', { name: 'Contenido del taller' }); await expect(indice).toBeVisible(); // Marca dónde estás dentro de la estructura. - await expect(indice.getByRole('link', { name: 'Bolero' })).toHaveAttribute( + await expect(indice.getByRole('link', { name: 'El estribillo' })).toHaveAttribute( 'aria-current', 'page' ); - // Y enseña los dos bloques enteros, no solo el actual. - await expect(indice.getByRole('link', { name: 'El estribillo' })).toBeVisible(); + // Y enseña el temario entero, no solo el capítulo actual. + await expect(indice.getByRole('link', { name: 'La imagen concreta' })).toBeVisible(); }); test('un principio no enseña ficha de creación', async ({ page }) => { @@ -137,7 +138,7 @@ test.describe('Taller de letras', () => { */ test('la ficha dice qué país es la cuna y cuáles lo adoptaron', async ({ page }) => { - await page.goto('/taller/bolero'); + await page.goto('/generos/bolero'); const paises = page.locator('.paises li'); await expect(paises).toHaveCount(6); @@ -148,7 +149,7 @@ test.describe('Taller de letras', () => { }); test('la instrumentación distingue lo esencial de lo ocasional', async ({ page }) => { - await page.goto('/taller/bolero'); + await page.goto('/generos/bolero'); const filas = page.locator('.instrumentos li'); await expect(filas.filter({ hasText: 'Guitarra' })).toContainText('esencial'); @@ -158,7 +159,7 @@ test.describe('Taller de letras', () => { }); test('los letristas traen país, años y papel', async ({ page }) => { - await page.goto('/taller/tango'); + await page.goto('/generos/tango'); const gardel = page.locator('.personas li').filter({ hasText: 'Carlos Gardel' }); await expect(gardel).toContainText('Argentina · 1890–1935'); @@ -167,7 +168,7 @@ test.describe('Taller de letras', () => { }); test('las obras de referencia se fechan y se acreditan', async ({ page }) => { - await page.goto('/taller/bolero'); + await page.goto('/generos/bolero'); const primera = page.locator('.obras li').first(); await expect(primera).toContainText('1883'); @@ -184,7 +185,7 @@ test.describe('Taller de letras', () => { * El bolero-son existe en la base porque el bolero y el son confluyen en * él, pero nadie ha escrito su ficha. Enlazarlo mandaba a un 404. */ - await page.goto('/taller/bolero'); + await page.goto('/generos/bolero'); const linaje = page.locator('.rama'); await expect(linaje.getByRole('link', { name: 'Bachata' })).toBeVisible(); @@ -198,7 +199,7 @@ test.describe('Taller de letras', () => { * ver nunca uno. Un taller que describe la métrica y no la enseña está * pidiendo que se la imaginen. */ - await page.goto('/taller/bolero'); + await page.goto('/generos/bolero'); const ejemplos = page.locator('.ejemplo'); await expect(ejemplos).toHaveCount(2); @@ -212,7 +213,7 @@ test.describe('Taller de letras', () => { }); test('la escansión marca la sinalefa y el acento', async ({ page }) => { - await page.goto('/taller/bolero'); + await page.goto('/generos/bolero'); // Dos palabras en una casilla, unidas por el arco: al cantarlas se dice // una sola sílaba. Es lo que en un texto corrido no se ve. @@ -227,7 +228,7 @@ test.describe('Taller de letras', () => { test('el octosílabo agudo mide ocho con siete casillas', async ({ page }) => { // La ley del acento final, que es la primera regla que hay que tener // automatizada para escribir sobre clave. - await page.goto('/taller/son-cubano'); + await page.goto('/generos/son-cubano'); const segundo = page.locator('.estrofa li').nth(1); await expect(segundo.locator('.verso')).toHaveText('yo respondo con el son;'); @@ -238,7 +239,7 @@ test.describe('Taller de letras', () => { test('los ejemplos van antes que la documentación del género', async ({ page }) => { // Es un taller: quien abre esta página viene a escribir una letra, no a // documentarse. Primero lo que se usa para escribir. - await page.goto('/taller/bolero'); + await page.goto('/generos/bolero'); const titulos = await page.getByRole('heading', { level: 2 }).allTextContents(); expect(titulos.indexOf('Ejemplos de versos')).toBeLessThan(titulos.indexOf('Instrumentación')); @@ -248,7 +249,7 @@ test.describe('Taller de letras', () => { }); test('cada obra de referencia dice dónde escucharla', async ({ page }) => { - await page.goto('/taller/tango'); + await page.goto('/generos/tango'); const cambalache = page.locator('.obras li').filter({ hasText: 'Cambalache' }); const spotify = cambalache.getByRole('link', { name: 'Spotify' }); @@ -263,7 +264,7 @@ test.describe('Taller de letras', () => { test('se avisa de lo que aún no ha revisado nadie', async ({ page }) => { // La musicología la reunió un modelo y la ficha se publica con el nombre // del titular. Callarlo sería lo cómodo. - await page.goto('/taller/bolero'); + await page.goto('/generos/bolero'); const aviso = page.locator('.sin-revisar'); await expect(aviso).toContainText('pendiente de revisión'); @@ -276,7 +277,7 @@ test.describe('Taller de letras', () => { test('los términos del glosario salen marcados en el texto', async ({ page }) => { // Lo que se pidió: «cada vez que aparezca un término del glosario en el // texto, estará marcado para visualizarse con un popup». - await page.goto('/taller/son-cubano'); + await page.goto('/generos/son-cubano'); const marcados = page.locator('.texto .termino'); await expect(marcados.first()).toBeVisible(); @@ -290,7 +291,7 @@ test.describe('Taller de letras', () => { }); test('al pulsar un término se abre su definición', async ({ page }) => { - await page.goto('/taller/son-cubano'); + await page.goto('/generos/son-cubano'); const montuno = page.locator('.texto .termino[data-termino="montuno"]').first(); await montuno.click(); @@ -307,7 +308,7 @@ test.describe('Taller de letras', () => { test('el globo no tapa el término que se acaba de pulsar', async ({ page }) => { await page.setViewportSize({ width: 1280, height: 900 }); - await page.goto('/taller/son-cubano'); + await page.goto('/generos/son-cubano'); const termino = page.locator('.texto .termino').first(); await termino.click(); @@ -321,35 +322,48 @@ test.describe('Taller de letras', () => { test('no se marca dentro de un encabezado', async ({ page }) => { // Ensuciaría el índice del capítulo, que sale de los encabezados. - await page.goto('/taller/son-cubano'); + await page.goto('/generos/son-cubano'); await expect(page.locator('.texto h2 .termino')).toHaveCount(0); }); - test('el glosario tiene su propia página, con las acepciones numeradas', async ({ page }) => { - await page.goto('/taller/glosario'); + test('el glosario se busca y sus acepciones van numeradas', async ({ page }) => { + await page.goto('/generos/glosario'); await expect(page.getByRole('heading', { level: 1 })).toHaveText('Glosario'); - await expect(page.getByRole('heading', { level: 2, name: 'sinalefa' })).toBeVisible(); + + // El buscador acota; con doscientas entradas es la única forma de llegar. + await page.getByLabel('Buscar un término').fill('clave'); + await expect(page.locator('.palabra')).toHaveCount(1); /* - * «Clave» tiene dos: patrón rítmico e instrumento. Con una sola - * definición por palabra, una de las dos sería falsa, y por eso las - * acepciones van numeradas. + * «Clave» tiene dos acepciones: patrón rítmico e instrumento. Con una sola + * definición por palabra, una de las dos sería falsa. */ - const clave = page.locator('#clave'); - await expect(clave.locator('.acepciones > li')).toHaveCount(2); - await expect(clave).toContainText('patrón rítmico'); - await expect(clave).toContainText('percusión'); + await page.locator('[data-termino="clave"]').click(); + const globo = page.getByRole('dialog', { name: /Definición de clave/ }); + await expect(globo.locator('.acepciones > li')).toHaveCount(2); + await expect(globo).toContainText('patrón rítmico'); + await expect(globo).toContainText('percusión'); }); - test('se llega al glosario desde el índice del taller', async ({ page }) => { - await page.goto('/taller/bolero'); + test('se llega al glosario desde el índice de géneros', async ({ page }) => { + await page.goto('/generos/bolero'); await page - .getByRole('navigation', { name: 'Contenido del taller' }) + .getByRole('navigation', { name: 'Contenido de géneros' }) .getByRole('link', { name: 'Glosario' }) .click(); - await expect(page).toHaveURL('/taller/glosario'); + await expect(page).toHaveURL('/generos/glosario'); + }); + + test('las direcciones viejas de las fichas siguen llevando a alguna parte', async ({ page }) => { + // Un enlace compartido no puede empezar a dar 404 porque hayamos + // reordenado el menú. + await page.goto('/generos/bolero'); + await expect(page).toHaveURL('/generos/bolero'); + + await page.goto('/taller/glosario'); + await expect(page).toHaveURL('/generos/glosario'); }); test('el taller está en la navegación principal', async ({ page }) => { diff --git a/scripts/mapa/BlankMap-Americas.svg b/scripts/mapa/BlankMap-Americas.svg new file mode 100644 index 0000000..f7e5cab --- /dev/null +++ b/scripts/mapa/BlankMap-Americas.svg @@ -0,0 +1,2880 @@ + + + + + + image/svg+xml + + + Blank World Map + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/scripts/mapa/generar.mjs b/scripts/mapa/generar.mjs new file mode 100644 index 0000000..ee996c2 --- /dev/null +++ b/scripts/mapa/generar.mjs @@ -0,0 +1,190 @@ +/** + * Genera `src/lib/mapa/iberoamerica.ts` a partir del mapa de Wikimedia. + * + * node scripts/mapa/generar.mjs [ruta al svg] + * + * El original es `BlankMap-Americas.svg`, de Lokal_Profil, en dominio público: + * https://commons.wikimedia.org/wiki/File:BlankMap-Americas.svg + * + * De sus cincuenta y cinco países se conservan los veinte de Iberoamérica en + * América, y de cada uno todos sus trazados unidos en uno. Dos recortes bajan + * el archivo de 640 KB a algo que puede viajar en una página: + * + * - **Las coordenadas, a un decimal.** El mapa mide dos mil setecientas + * unidades de ancho y se dibuja a setecientos píxeles: la décima de unidad no + * llega ni a la décima de píxel. + * - **Fuera los islotes.** Chile trae ciento cincuenta y cinco trazados, casi + * todos rocas del sur que a este tamaño ocupan menos de un píxel. Se + * descartan los que no llegan al umbral; las islas que sí se ven —Galápagos, + * Chiloé, las Malvinas— lo pasan de sobra. + * + * Se deja como script y no como un archivo pegado a mano para que se pueda + * rehacer: el día que haga falta añadir un país o cambiar el umbral, esto es + * una línea, y a mano sería volver a empezar. + */ + +import fs from 'node:fs'; + +const ORIGEN = process.argv[2] ?? 'scripts/mapa/BlankMap-Americas.svg'; +const DESTINO = 'src/lib/mapa/iberoamerica.ts'; + +/** Los veinte, en el orden en que se leen de norte a sur. */ +const PAISES = [ + 'mx', + 'gt', + 'sv', + 'hn', + 'ni', + 'cr', + 'pa', + 'cu', + 'do', + 'pr', + 've', + 'co', + 'ec', + 'pe', + 'bo', + 'py', + 'cl', + 'ar', + 'uy', + 'br' +]; + +/** Un trazado más pequeño que esto no se ve, y sí se nota en el peso. */ +const MINIMO = 2; + +const svg = fs.readFileSync(ORIGEN, 'utf8'); + +/* + * Se recorren las etiquetas con expresión regular y no con un analizador de + * XML: hace falta saber en qué grupo va cada trazado, y para eso basta con + * llevar la cuenta de los `` abiertos. + */ +const trozos = Object.fromEntries(PAISES.map((c) => [c, []])); +const pila = []; + +for (const [, cierre, etiqueta, atributos, suelta] of svg.matchAll( + /<(\/?)(g|path)\b([^>]*?)(\/?)>/g +)) { + if (etiqueta === 'g') { + if (cierre) pila.pop(); + else pila.push(atributos.match(/id="([^"]+)"/)?.[1] ?? null); + continue; + } + if (cierre) continue; + + const propio = atributos.match(/id="([^"]+)"/)?.[1] ?? null; + const codigo = [propio, ...[...pila].reverse()].find((c) => c && PAISES.includes(c)); + const d = atributos.match(/d="([^"]+)"/)?.[1]; + if (codigo && d) trozos[codigo].push(d); + void suelta; +} + +/** El rectángulo que ocupa un trazado, para saber si merece la pena. */ +function tamano(d) { + const numeros = [...d.matchAll(/-?\d+(?:\.\d+)?/g)].map((m) => Number(m[0])); + const xs = numeros.filter((_, i) => i % 2 === 0); + const ys = numeros.filter((_, i) => i % 2 === 1); + if (xs.length === 0) return { ancho: 0, alto: 0, xs, ys }; + return { + ancho: Math.max(...xs) - Math.min(...xs), + alto: Math.max(...ys) - Math.min(...ys), + xs, + ys + }; +} + +const unaDecimal = (d) => d.replace(/-?\d+\.\d+/g, (n) => String(Math.round(Number(n) * 10) / 10)); + +const contorno = {}; +const centro = {}; +let descartados = 0; + +for (const codigo of PAISES) { + const buenos = trozos[codigo].filter((d) => { + const { ancho, alto } = tamano(d); + const vale = ancho >= MINIMO || alto >= MINIMO; + if (!vale) descartados++; + return vale; + }); + contorno[codigo] = unaDecimal(buenos.join(' ')); + + /* + * Un punto donde agarrar el país. + * + * Es el promedio de los vértices del trazado más grande, no el centro de su + * rectángulo: el de Cuba cae en el mar, porque la isla es alargada y curva. + * Con el promedio de la costa el punto queda dentro, y además da algo que + * pulsar en Puerto Rico o El Salvador, que a esta escala miden cuatro + * píxeles. + */ + const mayor = buenos.reduce( + (a, b) => (tamano(b).ancho * tamano(b).alto > tamano(a).ancho * tamano(a).alto ? b : a), + buenos[0] ?? '' + ); + const { xs, ys } = tamano(mayor); + const medio = (ns) => ns.reduce((t, n) => t + n, 0) / ns.length; + centro[codigo] = [medio(xs), medio(ys)].map((n) => Math.round(n * 10) / 10); +} + +/* El encuadre sale de lo que queda, no del mapa entero. */ +const xs = []; +const ys = []; +for (const d of Object.values(contorno)) { + const t = tamano(d); + xs.push(...t.xs); + ys.push(...t.ys); +} + +const MARGEN = 10; +const x0 = Math.min(...xs) - MARGEN; +const y0 = Math.min(...ys) - MARGEN; +const encuadre = [x0, y0, Math.max(...xs) - x0 + MARGEN, Math.max(...ys) - y0 + MARGEN] + .map((n) => n.toFixed(1)) + .join(' '); + +const cuerpo = PAISES.map( + (c) => + `\t{ codigo: '${c.toUpperCase()}', centro: [${centro[c].join(', ')}], d: '${contorno[c]}' }` +).join(',\n'); + +fs.writeFileSync( + DESTINO, + `/** + * El mapa de Iberoamérica, país a país. + * + * **Generado. No se edita a mano:** \`node scripts/mapa/generar.mjs\`, que + * explica de dónde sale y qué se recorta. + * + * Los contornos son de \`BlankMap-Americas.svg\` de Wikimedia Commons, obra de + * Lokal_Profil, en dominio público. + * + * España y Portugal no están: el original es de las Américas. El día que hagan + * falta habrá que traerlos de otro mapa o enseñarlos aparte. + */ + +export interface PaisDelMapa { + /** ISO 3166-1 alfa-2, como en la tabla \`pais\`. */ + codigo: string; + /** Un punto dentro del país, para colgar de él lo que haya que pulsar. */ + centro: [number, number]; + /** El contorno, con todas sus islas en un solo trazado. */ + d: string; +} + +/** El encuadre justo de los veinte países, no el del mapa original. */ +export const ENCUADRE = '${encuadre}'; + +export const PAISES: PaisDelMapa[] = [ +${cuerpo} +]; +` +); + +const kb = (fs.statSync(DESTINO).size / 1024).toFixed(0); +console.log(` países ${PAISES.length}`); +console.log(` descartados ${descartados} trazados por debajo de ${MINIMO} unidades`); +console.log(` encuadre ${encuadre}`); +console.log(` tamaño ${kb} KB`); diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 8bb454e..4249d0c 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -7,6 +7,7 @@ import { establecerCookieSesion, validarSesion } from '$lib/server/auth'; +import { indiceDelTaller } from '$lib/server/taller'; import { esRutaLibre, porton, @@ -84,4 +85,36 @@ const sesion: Handle = async ({ event, resolve }) => { return resolve(event); }; -export const handle: Handle = sequence(esperar, sesion); +/** + * Las direcciones que cambiaron de sitio. + * + * Las fichas de género vivían en `/taller/` y ahora están en + * `/generos/`. Un enlace compartido no puede empezar a dar 404 porque + * hayamos reordenado el menú: **la dirección publicada es un compromiso**, y + * por eso el modelo tiene una tabla `redireccion`. + * + * Se resuelve consultando el catálogo de capítulos, que ya dice cuáles son + * fichas: así no hay una lista escrita a mano que alguien tenga que acordarse + * de ampliar cuando añada un género. + * + * 301 y no 302: el cambio es definitivo y conviene que los buscadores lo + * aprendan en vez de seguir pidiendo la vieja. + */ +const mudanzas: Handle = async ({ event, resolve }) => { + const camino = event.url.pathname; + + if (camino.startsWith('/taller/') && camino !== '/taller/') { + const slug = camino.slice('/taller/'.length); + const { fichas } = await indiceDelTaller(); + + if (fichas.some((f) => f.slug === slug)) { + redirect(301, `/generos/${slug}${event.url.search}`); + } + // El glosario también se mudó, y no es un capítulo. + if (slug === 'glosario') redirect(301, '/generos/glosario'); + } + + return resolve(event); +}; + +export const handle: Handle = sequence(esperar, mudanzas, sesion); diff --git a/src/lib/components/Capitulo.svelte b/src/lib/components/Capitulo.svelte new file mode 100644 index 0000000..7bdebd9 --- /dev/null +++ b/src/lib/components/Capitulo.svelte @@ -0,0 +1,1211 @@ + + + + + + + + + +
+ {#if esFicha} +

Género

+ {/if} + +

{capitulo.titulo}

+ + {#if alias.length > 0} +

o {alias.map((a) => `«${a.nombre}»`).join(', ')}

+ {/if} + + {#if capitulo.resumen} +

{capitulo.resumen}

+ {/if} + + {#if ficha?.origenLugar} +

+ {ficha.origenLugar}{#if anoAparte}, {anoAparte}{/if} +

+ {/if} + + + {#if paises.length > 0} +
    + {#each paises as pais (pais.codigo)} +
  • + {pais.nombre}{#if pais.relacion === 'cuna'}cuna{/if} +
  • + {/each} +
+ {/if} +
+ +{#if franja.length > 0} +
+ {#each franja as [etiqueta, valor] (etiqueta)} +
+

{etiqueta}

+

{valor}

+
+ {/each} +
+{/if} + +
+ +
+ + {@html capitulo.html} +
+ + + {#if capitulo.apartados.length > 1} + + {/if} +
+ +{#each secciones as seccion (seccion.clave)} +
+

{seccion.titulo}

+ +
{@html seccion.html}
+
+{/each} + + + + +{#if versos.length > 0} +
+

Ejemplos de versos

+ +
+ {#each versos as ejemplo (ejemplo.titulo)} + + {@const largos = ejemplo.lineas.some((l) => l.silabas.length > 9)} +
+
+

{ejemplo.titulo}

+

{ILUSTRA[ejemplo.ilustra] ?? ejemplo.ilustra}

+
+ +
    + {#each ejemplo.lineas as linea (linea.texto)} +
  1. +

    {linea.texto}

    + {#if linea.silabas.length > 0} + + {/if} + {linea.medida} + {#if linea.rima && linea.rima !== '-'} + {linea.rima} + {/if} +
  2. + {/each} +
+ +
+ {#if ejemplo.medida || ejemplo.rima} +
+ {#if ejemplo.medida} +
+
Medida
+
{ejemplo.medida}
+
+ {/if} + {#if ejemplo.rima} +
+
Rima
+
{ejemplo.rima}
+
+ {/if} +
+ {/if} + {#if ejemplo.analisis} +

{ejemplo.analisis}

+ {/if} +
+
+ {/each} +
+ + +

+ Los ejemplos están escritos para el taller, no son de ninguna canción. Sirven para enseñar la + cuenta y la rima del género; para oírlo de verdad, arriba están las obras de referencia. +

+
+{/if} + + +{#if temas.length > 0} +
+

De qué se habla

+
    + {#each temas as tema (tema.slug)} +
  • + {tema.nombre} +
  • + {/each} +
+
+{/if} + +{#if rasgos.length > 0} +
+

Rasgos de escritura

+
    + {#each rasgos as rasgo (rasgo)} +
  • {rasgo}
  • + {/each} +
+
+{/if} + +{#if instrumentos.length > 0} +
+

Instrumentación

+
    + {#each instrumentos as i (i.slug)} +
  • + {i.nombre} + {i.importancia} + + {i.papel ?? i.familia} + {#if i.afinacion}Afinación: {i.afinacion}{/if} + +
  • + {/each} +
+
+{/if} + +{#if personas.length > 0} +
+

Quién lo escribió

+
    + {#each personas as p (p.slug + p.papel)} +
  • + {p.nombre} + {procedencia(p)} + {PAPEL[p.papel] ?? p.papel} +
  • + {/each} +
+
+{/if} + +{#if obras.length > 0} +
+

Obras de referencia

+
    + {#each obras as obra (obra.titulo + obra.ano)} +
  • + {obra.ano ?? '—'} +
    +

    {obra.titulo}

    + {#if obra.autores.length > 0} +

    {obra.autores.join(' · ')}

    + {/if} + {#if obra.cita} +

    {obra.cita}

    + {/if} + {#if obra.nota} +

    {obra.nota}

    + {/if} + {#if obra.enlaces.length > 0} + + {/if} +
    +
  • + {/each} +
+ +

+ Los fragmentos se reproducen al amparo del derecho de cita, para ilustrar el estilo. Las + letras completas son de sus autores y no se alojan aquí. +

+
+{/if} + +{#if vieneDe.length > 0 || vieneDeEl.length > 0} +
+

Linaje

+
+ {#if vieneDe.length > 0} +
+

De dónde viene

+
    + {#each vieneDe as rama (rama.slug + rama.tipo)} +
  • + {#if rama.capitulo} + {rama.nombre} + {:else} + {rama.nombre} + {/if} + {rama.tipo} + {#if rama.nota}{rama.nota}{/if} +
  • + {/each} +
+
+ {/if} + + {#if vieneDeEl.length > 0} +
+

Qué viene de él

+
    + {#each vieneDeEl as rama (rama.slug + rama.tipo)} +
  • + {#if rama.capitulo} + {rama.nombre} + {:else} + {rama.nombre} + {/if} + {rama.tipo} + {#if rama.nota}{rama.nota}{/if} +
  • + {/each} +
+
+ {/if} +
+
+{/if} + + +{#if ficha?.sinRevisar} +

+ Esta ficha la reunió un modelo de lenguaje y está pendiente de revisión: los + datos —instrumentación, letristas, obras de referencia, linaje— y también los ejemplos de versos + y su escansión. Las fechas y las atribuciones no se han comprobado una a una. +

+{/if} + +{#if capitulo.anterior || capitulo.siguiente} + +{/if} + + diff --git a/src/lib/components/GlobosDeGlosario.svelte b/src/lib/components/GlobosDeGlosario.svelte index 7ac368f..34560a3 100644 --- a/src/lib/components/GlobosDeGlosario.svelte +++ b/src/lib/components/GlobosDeGlosario.svelte @@ -1,3 +1,20 @@ + + + + + + diff --git a/src/lib/components/IndiceTaller.svelte b/src/lib/components/IndiceTaller.svelte index 077266b..eaf98f5 100644 --- a/src/lib/components/IndiceTaller.svelte +++ b/src/lib/components/IndiceTaller.svelte @@ -2,9 +2,8 @@ /** * Índice del taller, para la barra lateral de un capítulo. * - * Enseña la estructura entera —los principios numerados y las fichas de - * estilo— con el capítulo abierto marcado. En un curso, saber dónde estás y - * qué queda es parte de poder seguirlo. + * Enseña los principios numerados con el capítulo abierto marcado. En un + * curso, saber dónde estás y qué queda es parte de poder seguirlo. * * En pantallas estrechas no se esconde: baja debajo del texto, antes de la * navegación de anterior y siguiente. Ocultar la estructura en móvil sería @@ -25,12 +24,11 @@ interface Props { principios: Entrada[]; - fichas: Entrada[]; /** Slug del capítulo abierto, si lo hay. */ actual?: string; } - let { principios, fichas, actual }: Props = $props(); + let { principios, actual }: Props = $props(); diff --git a/src/lib/components/MapaDeGeneros.svelte b/src/lib/components/MapaDeGeneros.svelte new file mode 100644 index 0000000..e2c5e84 --- /dev/null +++ b/src/lib/components/MapaDeGeneros.svelte @@ -0,0 +1,181 @@ + + +
+ + {#each PAISES as p (p.codigo)} + {@const suyo = porPais[p.codigo]} + {#if suyo} + + 0} + class:elegido={pais === p.codigo} + role="button" + tabindex="0" + aria-pressed={pais === p.codigo} + aria-label={resumen(p.codigo)} + onclick={() => alElegir(p.codigo)} + onkeydown={(e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + alElegir(p.codigo); + } + }} + > + {resumen(p.codigo)} + + + + {:else} + + + {/if} + {/each} + +
+ + diff --git a/src/lib/mapa/iberoamerica.ts b/src/lib/mapa/iberoamerica.ts new file mode 100644 index 0000000..b2542d3 --- /dev/null +++ b/src/lib/mapa/iberoamerica.ts @@ -0,0 +1,127 @@ +/** + * El mapa de Iberoamérica, país a país. + * + * **Generado. No se edita a mano:** `node scripts/mapa/generar.mjs`, que + * explica de dónde sale y qué se recorta. + * + * Los contornos son de `BlankMap-Americas.svg` de Wikimedia Commons, obra de + * Lokal_Profil, en dominio público. + * + * España y Portugal no están: el original es de las Américas. El día que hagan + * falta habrá que traerlos de otro mapa o enseñarlos aparte. + */ + +export interface PaisDelMapa { + /** ISO 3166-1 alfa-2, como en la tabla `pais`. */ + codigo: string; + /** Un punto dentro del país, para colgar de él lo que haya que pulsar. */ + centro: [number, number]; + /** El contorno, con todas sus islas en un solo trazado. */ + d: string; +} + +/** El encuadre justo de los veinte países, no el del mapa original. */ +export const ENCUADRE = '355.2 466.5 660.0 781.0'; + +export const PAISES: PaisDelMapa[] = [ + { + codigo: 'MX', + centro: [482, 552.7], + d: 'M 443.3,543.2 C 443.5,543.8 443.8,544.3 444.2,544.8 C 444,543.8 443.3,543 442.5,542.4 C 442.8,542.7 443,543 443.3,543.2 M 366,506.9 C 365.2,507.4 365.6,508.4 366.4,509.2 C 366.6,508.5 365.7,507.7 366,506.9 M 389.5,514 C 389.1,514.6 388.2,516.5 389.7,517 C 389.8,516.1 390.2,515 389.5,514 M 412.1,544.7 C 412.1,545.2 412.5,545.5 413,545.4 C 412.8,546 413.1,546.6 413.7,547 C 411.9,545.2 413.7,542.7 413.2,540.9 C 413.4,542.3 412.7,543.6 412.1,544.7 M 405.3,508.5 C 405.2,507.6 403.4,503.9 402.2,503.9 C 400.4,503.8 404.9,508.2 405.3,508.5 M 414.1,547.2 C 414.9,547.8 415.5,548.5 416.4,548.6 C 416,547.7 415.1,547.1 414.1,547.2 M 411.7,510.8 C 412.6,509.5 411.8,508 412.1,506.5 C 410,506.8 410.7,508.6 409.9,509.9 C 410.5,510.2 411.1,510.5 411.7,510.8 M 424.1,542.2 C 424.1,543 424.5,543.7 425,544.4 C 425.9,543.7 425,542.7 424.1,542.2 M 375,478.1 C 381.1,477.5 387.1,476.7 393.4,476.5 C 393.2,477.1 392.7,477.6 392.7,478.3 C 401.3,481.5 410,483.8 418.5,487.4 C 422.9,489.3 427.4,488.4 431.5,488.4 C 433.6,488.4 435.7,488.4 437.9,488.4 C 439.1,488.4 441.8,489 442.7,488.4 C 443.8,487.5 442.5,485.6 443.7,484.8 C 444.7,484.1 447.3,484.6 448.8,484.6 C 450.8,484.6 452.8,484.5 454.8,484.5 C 456.7,484.5 457.2,485.3 458.2,486.7 C 459,487.9 460.6,488.1 461.7,489.3 C 462.6,490.4 464.2,492.1 465.3,492.8 C 466.4,493.4 467.9,493.9 468.5,495.1 C 469.4,496.8 469.8,498.3 470.1,500 C 470.7,503.8 474.7,505.5 477.9,507.2 C 479.1,507.9 480.9,509.2 481.9,508.5 C 482.7,508 483.4,507.1 483.6,506.2 C 483.9,505 484.6,503.2 485.4,502.4 C 485.9,501.9 487.3,501.7 488,501.4 C 488.8,501 490.6,501.7 491.6,501.7 C 492.6,501.7 493.7,501.9 494.7,502.1 C 495.3,502.2 496.6,503.7 497.3,504.3 C 498.5,505.1 500.2,507.1 500.8,508.3 C 501.6,509.9 502.7,511.7 503.2,513.4 C 503.8,515.1 505.3,516.2 506.3,517.8 C 506.8,518.6 507.3,519.3 507.9,520 C 508.3,520.5 508.9,520.5 509.3,521 C 510.3,522.1 509.8,523.9 510.1,525.1 C 510.6,526.6 512.1,527.7 512.3,529.4 C 512.4,529.6 513,531 513,531 C 513.5,531.4 514.3,531.3 514.9,531.4 C 515.7,531.6 516.2,532.1 516.9,532.4 C 517.5,532.7 518.1,532.6 518.6,532.9 C 519.4,533.4 519.1,533.9 520.2,534 C 522,534 523.4,534.1 525.1,535.3 C 526.7,536.4 526.8,534.9 528.2,534.9 C 527.4,538.8 525.1,542.1 524.3,546 C 524.1,546.9 523.8,553.9 522.7,553.7 C 524,555.4 523,557.7 523.2,559.4 C 523.3,561.6 522.2,563.3 522.5,565.4 C 522.7,567.7 523.3,569.7 525,571.5 C 526.8,573.5 526.1,573.5 525.6,575.5 C 525.4,574.7 526.2,573.6 525.6,572.9 C 524.4,571.6 524,570.2 523,568.8 C 523.5,570.1 523.2,571.4 523.9,572.6 C 524.6,573.7 525.1,573.8 525.5,575.2 C 526.1,578 527.7,580.9 529.6,583.2 C 531.7,585.9 532.6,588.1 533.8,591.1 C 534.3,592.4 535.4,593.3 536.1,594.5 C 536.6,595.6 536.9,596.5 538.1,597 C 537.5,597 536.9,596.2 536.6,596.7 C 538,597 536.9,598.7 536.6,599.2 C 537.8,599.1 536.5,597.8 537.5,597.6 C 537.9,597.7 538.1,597.5 538.1,597.1 C 538.9,597.5 539.7,597.5 540.5,597.6 C 542.9,597.7 545.2,598.9 546.7,601 C 548,602.8 548.9,602.6 550.9,602.1 C 552.1,601.8 554.2,601.4 555,600.4 C 554.3,600.6 553.6,600.8 552.9,601.2 C 553.8,600.6 561.5,598.8 561.9,599.9 C 561.1,597.9 567,596.8 568,598.4 C 566.4,598.1 568.2,599.5 568.1,600.2 C 568.6,599.7 569,600 569.7,599.9 C 570.1,600 570.5,600 570.9,600 C 570.9,599.8 571,599.5 571.1,599.3 C 572,598.9 573.7,597 571.4,596.8 C 571.9,596.4 572.3,596 572.8,595.7 C 572.2,596.1 571.5,596.5 570.8,596.9 C 571.5,595.4 573.4,594.8 574.7,594 C 576.5,592.9 576.2,591.2 576.8,589.4 C 577.2,588.4 577.9,588 578.4,587.2 C 579,586.3 578.6,585.2 578.6,584.3 C 578.5,582 579.5,580.3 579.7,578.2 C 579.6,578.5 579.4,578.8 579.2,579 C 579.9,575.8 584.5,575.2 587.4,574.8 C 589.5,574.6 591.1,574 593,573.3 C 595.5,572.4 597.9,573.5 600.6,573.7 C 600.1,573.5 599.6,573.4 599.1,573.4 C 600.3,573.1 601.6,573.8 602.7,574.1 C 600.8,573.8 603.8,572.6 605.2,573.1 C 607.2,574 607,576.4 606.6,577.9 C 606.1,579.9 604.6,581 603.3,582.5 C 602.7,583.3 601.9,584.3 601.7,585.4 C 601.6,585.9 602.3,588.3 601.5,587 C 602,588.2 600.1,589.2 600.1,590.4 C 603.7,590 599.4,592.2 600.3,593.4 C 600.5,592.8 600.9,592.4 601.5,592.4 C 600.7,593.8 600.7,595.6 600.2,597.1 C 599.7,598.3 598.7,600.7 598.8,602.1 C 596.8,600.3 597.9,598.8 597.2,596.8 C 596.2,597.6 596.3,597.6 595.8,598.7 C 595.5,599.5 594.8,599.5 594.1,599.9 C 592.6,600.8 591.8,603.3 591.2,604.9 C 590.6,604.3 588.9,603.3 588.7,604.6 C 588.5,605.6 588.4,605.4 587,605.4 C 583.8,605.4 580.7,605.4 577.5,605.4 C 576.8,605.4 574.7,604.9 574.8,606 C 574.8,606.9 574.9,607.8 575,608.7 C 575.1,611 573.2,610.3 571.4,610.3 C 572.8,611.6 573.9,613.2 575.8,614.1 C 577.4,614.8 577.4,616.7 578.9,617.4 C 579.4,617.7 579.2,620.2 578.8,620.5 C 578.1,621 575.3,620.5 574.5,620.5 C 573,620.5 570.8,620.1 569.5,620.7 C 568.2,621.4 567.1,623.1 566.7,624.4 C 566.4,625.5 565.2,627.2 566.3,628.6 C 566.7,629.2 565.7,633 565.2,633.7 C 564.5,632.8 563.6,632 562.8,631.1 C 562.3,630.6 560,627.1 561.5,629 C 561.1,627.9 559.8,627.5 559,626.8 C 557.8,625.8 556.9,624.6 555.6,623.6 C 553.1,621.6 551.7,619.7 548.5,618.7 C 548.5,619.8 551.4,620.3 552.1,621.1 C 550.2,620.2 548.2,619.4 546.2,619.4 C 546.7,619.2 547.1,618.8 547.2,618.3 C 546.6,618.2 546.2,618.4 545.9,618.8 C 545.7,617.1 544.2,617.6 544.1,618.9 C 544.6,618.9 545.2,619 545.7,619.2 C 543,619.4 541.9,621 539.6,621.7 C 537.4,622.4 535.7,623.4 533.5,623.8 C 531.9,624.2 531.1,623.9 529.3,623.1 C 527.3,622.1 526.1,621.9 524,621.6 C 522.9,621.4 522.1,620.9 521.3,620.2 C 520.1,619.3 519.1,619.1 517.8,618.7 C 516.8,618.3 516.4,617.5 515.6,616.9 C 514.6,616.1 513,615.9 511.8,615.7 C 510.7,615.4 509.4,615.3 508.3,614.8 C 507.1,614.3 506.2,613.4 505,612.9 C 502.2,611.8 499.5,611.1 497,609.4 C 494.9,607.9 493.5,605.9 491.6,604.4 C 490.8,603.8 490,604 489.2,604.2 C 488.1,604.4 486,603.6 484.8,603.2 C 482.9,602.6 480.2,601.7 478.8,600.1 C 478,599.3 477.5,598.4 476.8,597.6 C 475.7,596.1 474.5,596.1 473.1,595.2 C 472.6,593.9 469.1,593.2 467.7,592.2 C 467,591.6 467,590.7 466.3,590.1 C 465.5,589.4 464.6,587.9 464,587 C 463.3,586 461.9,583.1 463.1,582.3 C 463.9,581.8 465,582.1 465.7,581.2 C 466.3,580.4 464.5,579.8 463.9,579.9 C 464.1,578.8 467.3,575.2 466,573.9 C 464.8,572.6 464.2,571.9 463.4,570.4 C 462.6,568.8 463.1,567.5 462.6,565.9 C 461.6,562.4 457.6,559.5 455.4,556.5 C 452.9,552.9 450.4,550.3 446.7,547.8 C 447.6,548.2 448.5,549.3 448.7,547.9 C 447.3,548.1 444.7,546.8 444.9,545.3 C 445.1,544.2 444.6,541.1 442.7,541.9 C 442.5,540.7 442.5,541.6 441.5,541.2 C 440.8,540.8 440.1,540.3 439.4,540.1 C 440.3,540.2 440.4,540.2 439.6,539.9 C 439.1,539.4 439.1,538.8 438.5,538.3 C 438.2,538.7 437.7,539 437.2,539.2 C 436.8,538.3 437.9,538.2 437.8,537.4 C 436.9,538.4 436.2,537.8 434.7,537.5 C 435,537.3 435.2,537.1 435.4,537 C 434.7,536.4 434.4,536.6 434.6,537.4 C 434.3,536.4 434.2,535.3 434.4,534.4 C 434.5,534.1 435.1,531.7 435.3,533 C 435.5,532.5 435.8,531.4 436.5,532.3 C 436.4,531.5 436.1,530.9 435.4,531.5 C 435.5,530.6 435,529.4 433.9,528.8 C 433,528.4 432.4,529.2 431.4,528.5 C 430.2,527.7 430.6,525.3 429.4,525 C 428.6,524.8 426,524.5 425.6,523.5 C 425.2,522.4 424,518.6 425.5,518.6 C 424.7,518.5 423,518.3 423,517.7 C 422.8,518 422.6,518.3 422.6,518.7 C 422.3,517.6 420.7,517.6 420,516.9 C 419.3,516.3 418.8,515.3 418.3,514.6 C 417.8,513.8 416.9,513.8 416.3,513.2 C 415.4,512.3 415.1,510.7 414.1,509.9 C 412.5,508.6 413,507.3 412.1,505.8 C 411.1,506.8 410.7,504 410.4,503.4 C 409.2,501.4 408.8,500.2 408.3,498.2 C 407.9,496.5 406.2,495 406.1,493.3 C 406,492.5 406.7,490.6 406.2,490 C 405.4,489 403.7,489 402.7,488.7 C 401.1,488.2 402.2,486.4 399.9,486.2 C 399.1,486.2 399.1,487 398.3,487 C 397.4,486.9 396.5,486.3 395.7,485.7 C 394.2,484.6 392.6,484.2 391,483 C 391.5,483.9 392.9,484.7 392.9,485.7 C 392.9,486.8 392.6,488.1 392.4,489.3 C 392.3,490.4 393.7,491.6 393.8,492.8 C 393.9,494.1 394.3,495.4 394.1,496.7 C 393.8,499.7 395.6,500.9 398.3,503.2 C 400.8,505.2 401.7,506.6 402.4,509.3 C 403.4,508.3 404.7,510.5 405.1,511.3 C 405.3,511.8 405.5,512.6 406,512.9 C 406.4,513.2 407.6,513.4 407.5,514 C 407.3,515.3 408.1,518.9 409.6,520 C 411.7,521.5 412.3,524.2 414.6,525.2 C 413.7,526 415.5,528.6 415.9,529.8 C 416.5,529.1 415.6,527.6 415.2,526.8 C 419.1,527.4 419.6,539.2 422,538.6 C 422,539.8 422.2,541.2 422.8,542.4 C 423.5,543.6 424.6,544.3 424,545.6 C 423.1,547.3 424.6,550.5 427.1,550.2 C 425.4,550.4 426.9,550.4 427.1,550.1 C 427.3,549.7 427.2,549.2 427.4,548.9 C 428,549.8 429.8,551.1 430.8,551.7 C 431.3,552.1 431.6,554.2 432,554.8 C 432.9,556.2 435.1,557.2 433.6,558.8 C 433,559.5 430.8,561.5 429.7,561.1 C 428.3,560.5 428.4,557.7 427.7,556.7 C 427.2,555.9 426.3,555.3 425.6,554.8 C 424.3,553.9 423.5,552.6 422.3,551.6 C 420.7,550.1 418.4,549.4 416.9,547.7 C 415.7,546.3 413.2,545.4 413.4,543.4 C 413.3,543.9 413.3,544.4 413.1,544.8 C 412.5,540.7 415.5,538 412.2,533.7 C 410.8,532.1 408.9,531.8 407.4,530.3 C 406.6,529.6 405.5,528.5 405.2,527.6 C 405,527 405.7,526.8 405.3,526.1 C 405,526.7 405.3,527.7 404.6,528 C 404,528.4 403.1,527.7 402.5,528.3 C 402,528.7 401.3,527.7 401,527.3 C 400.3,526.4 399.5,526.2 398.5,525.6 C 398.3,525.3 398,525 397.7,524.8 C 397.2,524.7 396.7,524.6 396.3,524.4 C 395.3,523.9 395.6,523.6 395.2,522.8 C 394.3,521.1 391.4,520.8 390.6,518.8 C 392.4,518.9 395,519.9 396.1,518.5 C 396.7,520.4 399.9,519.9 399.6,521.9 C 400.2,521.2 400,518.8 398.7,518 C 398.9,518.5 399,520.3 398,519.9 C 397.4,519.6 397.7,518.1 397.6,517.8 C 397.4,517.9 397.1,518.1 396.9,518.3 C 397.2,516.4 399.4,514.6 397.6,512.4 C 395.7,510 393.4,506.9 390.6,505.3 C 388.4,504 386.5,502.9 385.3,500.6 C 384.9,499.7 385.3,499.1 385.2,498.3 C 385.2,497.2 383.9,496.8 384.3,496.2 C 384.1,496.4 383.9,496.6 383.7,496.7 C 382.6,494.8 384.4,493.9 382.1,492.2 C 381.1,491.3 381.8,490.7 381.4,489.8 C 380.9,488.6 379.6,487.9 379,486.8 C 378.5,486 378.7,485.3 379.1,484.8 C 379.4,484.3 378.4,483.6 378,483.2 C 377.7,482.9 377.3,482.6 377,482.3 C 376.9,481.8 376.8,481.3 376.7,480.8 C 376.1,479.8 374.9,479.2 375,478.1 M 568.2,598.2 C 569.2,598.5 569.8,597.4 570.6,597.2 C 569.6,597 568.9,597.8 568.2,598.2 M 605.3,584.3 C 606.1,583.5 606.9,582.5 607.3,581.4 C 606.5,582.2 604.3,582.3 605.3,584.3' + }, + { + codigo: 'GT', + centro: [580.4, 623.9], + d: 'M 565.2,633.7 C 566,632.7 565.7,631.7 565.9,630.5 C 566,629.9 566.7,629.6 566.5,628.9 C 566,627.8 566,627.6 566.5,626.4 C 567.3,624.7 567.9,622.6 568.4,621.1 C 568.9,619.7 571.8,620.5 573.3,620.5 C 574.1,620.5 578.6,621 579,620.3 C 579.1,620.1 579.1,617.4 579,617.3 C 578.4,616.8 577.8,617 577.5,616.2 C 577.2,615.3 576.9,614.8 576,614.3 C 574.1,613.3 572.9,611.6 571.4,610.3 C 572.4,610.3 574.2,610.7 574.7,609.6 C 575.2,608.5 574.2,606.7 574.9,605.7 C 575.7,604.7 579.9,605.4 581.3,605.4 C 583.8,605.4 586.4,605.4 588.9,605.4 C 588.7,608.1 589,610.9 588.8,613.7 C 588.6,616.5 588.4,619.3 588.3,622.1 C 589.7,621.9 592.5,621.9 593,623.7 C 593.1,623.3 593.3,622.7 593.8,622.5 C 593.6,622.3 593.4,622 593.2,621.8 C 594.2,622.2 595,623 596,623.5 C 593.7,624.5 592.5,627 590.4,628.3 C 589.4,628.9 588.2,629.6 588.6,631.1 C 588.9,632.1 589.2,632.8 588.5,633.6 C 587.7,634.3 585.5,634.7 585.8,635.9 C 586,636.6 585.5,636.4 585.1,636.9 C 585,637 584.2,638.1 584.4,638 C 583.4,638.5 580.9,638.6 581.6,640.7 C 580.4,640.1 579.2,639.3 577.9,639.1 C 576.6,638.8 575.2,639.3 573.8,639.1 C 570.4,638.7 567.7,635.9 565.2,633.7' + }, + { + codigo: 'SV', + centro: [590, 640.5], + d: 'M 581.6,640.7 C 581.3,639.8 582,639.3 582.5,638.8 C 583.2,638 583.6,638.4 584.4,638 C 584.5,637.9 585.3,636.6 585.8,636.3 C 586.1,636.2 585.8,635.7 585.8,635.3 C 585.9,634.4 587.3,634.8 587.9,635 C 588.9,635.3 594.3,638.4 593.9,639.6 C 594.9,639.6 597,637.7 597.6,639.6 C 598.4,639 600,639.4 599.7,640.6 C 599.7,640.9 599.3,644.4 598.9,643.3 C 598.2,644.3 599.8,645.1 597.8,645.7 C 595.9,646.2 594.3,644.3 592.6,644.8 C 594.6,645.3 591.7,645 591.2,644.8 C 589.9,644.3 588.9,643.3 587.6,642.9 C 586.3,642.6 585,643.1 583.8,642.5 C 583.1,642.2 582.4,641.1 581.6,640.7' + }, + { + codigo: 'HN', + centro: [612.5, 632.1], + d: 'M 587.4,634.7 C 587.8,633.3 589.5,633 588.5,631.3 C 587.9,630.4 589.1,628.9 589.8,628.6 C 591.4,627.8 592.8,626.6 594.1,625.3 C 594.5,624.8 594.9,624.2 595.5,623.8 C 596.2,623.4 596.7,624 597.2,623.3 C 597.9,622.3 599.7,621.5 600.8,622.5 C 601.6,623.2 605.1,623.3 606.2,623.2 C 607.6,623 609.9,623.4 611.1,622.6 C 611.5,622.3 614.8,621.6 612.9,621 C 614.5,620.9 616.1,622 617.7,622 C 619.4,622 621.3,620.8 623,622.1 C 624.4,623.3 625,622.1 626.4,622.8 C 628,623.6 629,625.3 630.2,626.5 C 629.7,626.2 629.1,625.4 628.4,625.4 C 627.8,625.4 627.3,625.5 626.7,625 C 627.2,625.3 627.3,625.9 627.5,626.3 C 627.7,626.7 628.7,627.4 629,627.7 C 629.1,627.1 628.8,626.7 628.2,626.6 C 628.8,625.9 630.2,628 631.5,627.3 C 631.7,627.8 631.8,628 631.6,628.4 C 633,628 631.5,627.1 630.8,626.8 C 633.2,627.2 633,629.1 635,629.9 C 633.7,630.1 632.4,629.8 631.3,630.7 C 630.4,631.4 628.3,632.1 627.1,632 C 626.1,632 625.3,633 624.4,632.8 C 623.8,632.6 623.2,632.4 622.6,632.1 C 622.3,631.9 622.3,631.4 622,631.4 C 620.6,631.1 620.6,632.8 620.2,633.6 C 619.9,634.1 619.4,634.3 619.1,634.8 C 619,635.1 619.4,635.6 619.2,635.8 C 618.2,636.5 614.6,638.3 614.9,639.9 C 612.6,638.5 612.6,637.9 610.8,639.7 C 610,640.5 606.8,639.8 607.1,641.3 C 607.4,642.7 608.2,644.4 606.6,644.6 C 605.7,644.8 605.9,645.7 605.7,646.4 C 605.4,647.5 603.8,647.1 603,647.2 C 603.5,646.1 600.1,644.7 602.3,643.8 C 601.6,644.1 600.7,644 600.5,643.1 C 600.3,643.9 599.7,644.1 599,643.6 C 599.8,643.3 599.6,642.4 599.6,641.7 C 599.5,640.6 600.4,639.3 598.4,639.3 C 597.8,639.8 597.4,639.7 597.3,639 C 597.1,638.8 596.8,638.7 596.5,638.7 C 595.6,638.8 594.8,639.6 593.9,639.6 C 594.4,638 588.2,635.4 587.4,634.7 M 608.1,618.8 C 609,618.2 609.9,617.8 610.8,617.4 C 609.8,617.4 608.5,617.8 608.1,618.8' + }, + { + codigo: 'NI', + centro: [621.4, 647.8], + d: 'M 600.8,646.6 C 601.7,646.9 601.9,647.9 603,647.8 C 602.9,646.8 604.4,647.2 605.3,646.9 C 606.2,646.6 605.5,645.3 606.1,644.8 C 606.6,644.5 607.4,644.8 607.5,644 C 607.5,643.1 606.5,641.3 607,640.6 C 607.5,639.9 608.8,640.5 609.4,640.5 C 610.3,640.6 610.6,639.9 611,639.4 C 612.6,637.3 612.9,638.8 614.9,639.9 C 614.7,638.8 616,638.2 616.6,637.8 C 617.3,637.2 617.8,635.9 618.7,635.8 C 619.8,635.6 618.8,634.8 619.6,634.1 C 620.4,633.3 620.3,632.3 621.2,631.7 C 622.2,630.9 622.6,632.3 623.6,632.6 C 624.8,633 626.1,632.2 627.3,632 C 628.7,631.9 630,631.4 631.1,630.8 C 631.6,630.5 632,630 632.6,629.9 C 633.4,629.7 634.2,630 635,629.9 C 634.3,630.2 634.1,631.6 633.2,630.8 C 632.5,632.2 634.8,634.5 634.3,636.3 C 633.7,638.1 632.4,639.1 632,641 C 631.5,643.4 632,645.7 631.8,648.1 C 631.8,649.3 632.5,652.4 631.2,652.5 C 631.1,651.2 631.8,650.2 631.4,648.7 C 630.5,648.9 631.5,650.6 629.9,651.2 C 631.2,652.7 630.5,654.2 630.7,655.8 C 630.4,655.4 630.3,654.9 630.3,654.4 C 630.2,655.4 629.7,656.3 629.8,657.3 C 631.6,656.6 630.4,659.1 630,659.7 C 629.3,661.2 628.8,662.8 630.1,664.4 C 630.7,665.2 631.7,665.8 630.2,666.4 C 629.3,666.8 627.8,666.7 627,666.1 C 626.7,665.9 626.5,665.7 626.3,665.4 C 625.6,664.5 625.8,664.8 624.9,664.7 C 624.3,664.5 623.8,663.7 623,663.9 C 622.5,664 622,664.5 621.6,664.7 C 620.3,665.4 617.4,663 616.2,662.7 C 615.3,662.4 615.2,664.7 614.3,662.8 C 613.6,661.3 612,660.4 610.8,659.3 C 608.4,657.2 607.2,654.3 604.6,652.3 C 603,651 599.5,648.4 600.8,646.6' + }, + { + codigo: 'CR', + centro: [628.1, 675.6], + d: 'M 614.2,669.9 C 614.6,669.5 615.6,667.9 615.6,667.4 C 615.6,666.5 613.6,665.5 614.3,665 C 615.1,664.5 615.3,663.8 615.8,662.8 C 616,662.4 619,663.8 619.4,664 C 621.5,665 621.3,664.4 623.2,663.9 C 624,663.7 624.9,665.3 625.5,664.4 C 626.2,665.2 626.7,666.1 627.7,666.4 C 629,666.7 631,666.8 631,665.1 C 631.7,666.1 631,666.4 631.6,667.3 C 632.2,668 632.5,668.9 632.9,669.7 C 633.8,671.4 634.5,672 635.8,673.2 C 636.9,674.2 637.6,675.8 638.9,676.5 C 639.7,676.9 639.7,677.7 638.7,677.4 C 638,677.2 637.9,676.3 637.1,676.9 C 637.5,677.5 636.4,679.1 636.5,680.2 C 636.6,681.6 639,681.8 637.7,682.9 C 636.2,684.1 638.2,685.5 637.1,686.5 C 635.7,687.8 637.1,688.6 636.8,690.1 C 636.9,689.3 636.5,688.7 636,688.1 C 635.6,687.9 635.3,687.7 635,687.4 C 635.1,687.1 635.2,686.8 635.2,686.5 C 634.9,685.5 633.7,683.4 632.4,684.2 C 632.7,685.4 634.3,685.8 633.9,687.2 C 632.8,686.8 631.1,686.5 630.8,685.1 C 630.5,684.3 631.7,683.6 631.7,682.7 C 631.8,680.5 629.3,679.7 627.9,678.6 C 627,677.9 626.7,677.4 625.5,677.4 C 624.3,677.4 623.6,676.8 623.5,675.6 C 623.4,672.7 619.9,672.7 618.6,670.6 C 618.8,671.2 618.9,671.8 619.2,672.3 C 619.6,673.2 620.4,673.1 621.1,673.6 C 622,674.4 621.1,675.9 620.3,676.2 C 619.4,676.6 618.4,674.5 617.3,674.3 C 615.5,673.9 614,671.7 614.2,669.9' + }, + { + codigo: 'PA', + centro: [657.2, 686.2], + d: 'M 636.3,688 C 635.6,687.3 637.3,686.5 637.4,685.8 C 637.6,684.7 636.3,683.4 637.9,682.7 C 639.2,682.1 636.7,681.3 636.7,680.8 C 636.6,679.7 637.3,677.3 637.1,676.9 C 638,676.2 639,678.2 639.5,676.8 C 640.1,677.2 640.9,677.8 641.1,678.5 C 641.1,678.9 641.1,679.4 641.1,679.9 C 641.2,680.3 641.9,679.9 641.8,680.4 C 641.7,682.8 644,681.9 645.5,682.2 C 645.2,681.7 644.8,681.2 644.5,680.8 C 645.7,680.4 647.1,683.4 648.5,683.6 C 651.6,684 653.2,681.7 655.7,680.7 C 657.4,680.1 659.5,679.5 660.7,678.2 C 661.4,677.4 661.7,676.5 662.9,676.5 C 664.2,676.5 665.6,677.1 666.9,676.9 C 666.7,677.2 666.5,677.6 666.3,677.9 C 668.9,677.6 672.4,678.2 674.4,680.2 C 675.3,681.1 677.5,685 679.1,684.5 C 678,686.4 679.4,687.3 680.1,689.2 C 680.9,691.3 678.8,693.3 677.3,694.4 C 677.2,693.8 676.9,693.4 676.5,692.9 C 676,693.4 676.3,693.8 676.3,694.4 C 676.2,695.2 675.3,696.2 675.1,697 C 673.1,695.6 671.2,692.1 671,689.8 C 672.7,690.4 672,688.4 672.7,687.7 C 673.4,686.8 675.5,688.9 676.2,689.3 C 675.8,688.7 675.1,688.4 674.5,688 C 673.7,687.3 673.8,686.3 673.3,685.5 C 673.5,686.1 673.2,686.7 672.7,687 C 673,685.5 671.8,687 671.2,685.7 C 671.4,686.2 671.4,686.8 671.2,687.4 C 670.3,685.8 670.2,684.3 668.8,683.5 C 668.2,683.2 667.6,682.7 667,682.3 C 666,681.5 666.5,681.5 665.3,681.6 C 663.8,681.7 661.1,682 660.8,684 C 660.5,685.5 658.5,688.1 656.6,687.8 C 653.6,687.3 657,691.7 657.7,692.4 C 658.2,692.9 659.4,694.1 658.8,694.9 C 658.3,695.6 657,695.1 656.4,695.7 C 655.5,696.5 653.5,697.7 652.2,697 C 651.9,696.9 652,694.9 651.7,694.4 C 651.3,693.5 651.5,692 650.9,691.2 C 650.5,691.7 650.1,691.7 649.7,691.3 C 651,693.7 648.4,694.3 647.1,692.2 C 646.1,690.5 646.1,689.3 644,688.6 C 643.3,688.3 642.7,688.9 642.2,688.2 C 641.6,687.3 640.9,688 640.4,687.3 C 639.7,688.3 638.6,687.3 637.7,687.7 C 636.8,688.3 637.5,689.5 636.8,690.1 C 637,689.4 636.7,688.6 636.3,688 M 645.7,693.4 C 645.2,693.9 644.5,694.2 644.8,695 C 645,695.7 645.7,696.1 646.3,695.7 C 645.8,695 645.9,694.2 645.7,693.4' + }, + { + codigo: 'CU', + centro: [663.2, 571.4], + d: 'M 621.4,570.2 C 622.7,569.7 624,568.4 625.7,569.2 C 626.1,568.1 624.5,567.1 625.4,566 C 626.1,565.1 627.2,563.8 628.1,563.1 C 629.2,562.3 630.7,562 632,561.6 C 633.1,561.2 634.1,560.4 635.4,560.5 C 638,560.5 640,559.2 642.6,559 C 643.8,558.9 645.2,558.8 646.5,559.3 C 646.7,559.4 647.1,559.6 647.1,559.9 C 648,559.5 649.1,559.4 649.9,558.9 C 648.5,559.3 650.3,560.1 651,559.8 C 651.8,559.5 654.1,559.5 654.4,559.9 C 654.9,560.6 656.2,561.6 657,561.3 C 658,561 659.6,562.2 660.4,561.5 C 660.2,561.7 660.1,562 659.9,562.2 C 661.7,562.7 661.5,563.5 662.8,564.6 C 664.5,566 665.2,565.7 667.2,565.9 C 669.1,566 670,566.9 671.7,567.8 C 672.3,568.1 673.1,568.1 673.6,568.7 C 674.1,569.3 674.7,570.4 675.4,569.5 C 675.2,570.4 676,571 676.8,571.1 C 677.8,571.2 678.3,572 679.1,572.3 C 678.7,571.6 678.3,570.7 677.4,570.5 C 678.2,570.7 680.9,571.7 680.7,572.8 C 680.1,572.8 679.6,572.6 679.1,572.5 C 679.5,572.9 679.7,573.4 680.1,573.9 C 681,572 681.6,574.2 682.9,574.2 C 682.8,574.4 682.6,574.7 682.4,574.9 C 682.9,574.6 683.4,574.6 683.9,574.7 C 683.9,575 683.8,575.2 683.8,575.5 C 684.3,575.6 684.9,575.8 685.3,576.2 C 685,574.3 688.1,576.5 688.7,576.9 C 689.5,577.4 690.1,576.8 690.9,576.7 C 692.2,576.6 692.9,578.4 691.5,578.6 C 691.8,578.7 692.1,578.9 692.4,579 C 691.8,579.2 691.3,579.6 691,580.1 C 693.2,580.5 696.6,579.8 698.5,581.2 C 700,582.4 700.6,583.7 702.6,583.9 C 704.9,584.2 702.1,585.8 701.1,585.9 C 700.9,586 696,587.3 695.9,587.1 C 695.9,586.9 696,586.7 696.3,586.5 C 695.3,586.5 695.5,587.7 693.9,587.5 C 692.2,587.4 690.6,586.8 688.9,586.7 C 684.6,586.5 680.5,588.1 676.2,588 C 676,585.7 678.7,585.2 680,584.1 C 680.8,583.5 681.3,582.9 680.3,582.2 C 679.6,581.7 680.3,580 678.8,580.4 C 676,581.1 673,580.6 671,578 C 670.3,577 670.3,575.8 669.9,574.8 C 669.8,574.3 669.6,573.8 669.2,573.4 C 668.8,572.9 667.9,573.1 668.7,572.7 C 667.3,572.1 666.2,573 664.9,573.2 C 663.6,573.3 662.3,572.1 661.1,571.9 C 659.8,571.6 659.1,571.8 658.4,571.1 C 657.2,569.9 655.8,569.9 655.4,568 C 655.4,569.6 650.3,569.1 649.9,567 C 649.7,567.5 649.6,568 649.7,568.5 C 649.2,568.5 648.9,568.3 648.6,568 C 647.9,567.3 646.9,567.6 646.1,567.6 C 644.8,567.6 643.6,566.8 642.6,566 C 643.1,565.3 644.5,565.6 645.4,565.5 C 646.7,565.3 646.4,564 645.2,563.6 C 642.8,562.9 638.6,562.8 636.7,564.1 C 635.6,564.9 634.3,565.8 633.5,566.9 C 632.7,567.9 631.9,567.2 630.8,567.6 C 630.2,567.9 629.5,567.5 628.9,567.8 C 628.4,568.2 628.7,568.8 628.2,569.3 C 627.4,570.3 625.7,570.2 624.8,571.2 C 624.7,568.3 621.7,571.9 621.1,570 C 621.2,570.1 621.3,570.2 621.4,570.2 M 636.6,574.1 C 635.8,573.9 634.9,573.6 634.6,572.8 C 636.4,574.4 635.3,571.5 635.2,571 C 635.1,570 636.6,569.6 637.5,569.9 C 638.3,570.3 639.2,571.8 639.3,572.6 C 639.4,573.7 637.4,573.9 636.6,574.1 M 670.9,565.6 C 670.3,565.4 669.8,565.2 669.3,565 C 670.1,564.6 671.5,564 672,565.3 C 671.6,565.4 671.2,565.5 670.9,565.6 M 673.9,566.9 C 673.2,566.5 672.2,566.5 671.9,565.6 C 673,565 673.4,566.2 673.9,566.9 M 676.3,570 C 675.8,569.6 675.2,569.3 674.7,568.9 C 675.6,567.9 677.8,569 676.3,570' + }, + { + codigo: 'DO', + centro: [732.1, 596.9], + d: 'M 721.7,603.5 C 722,602.8 722.2,601.6 721.7,600.9 C 721.2,600.3 720.5,599.1 719.9,598.6 C 720.9,598.7 723,597.1 721.8,596 C 720.6,595 723.6,594.4 722.2,593 C 721.7,592.5 722.1,591.5 722.2,591 C 722.3,590.1 721.4,589.2 721.7,588.3 C 722.5,586.4 724.7,588.2 725.9,587.7 C 726.9,587.3 727.9,587.1 728.9,587.6 C 730,588.2 731,588.2 732.1,588.7 C 733,589.2 733.5,589.6 734.6,589.6 C 735.6,589.6 735.7,589.4 736,590.6 C 736.5,592.7 737.5,593 739.3,592.5 C 740,592.3 740.9,592 741.6,592.6 C 741.4,593.5 740.5,593.5 739.7,593.4 C 738.8,593.2 737.1,593.8 738.7,594.3 C 739.4,594.5 742.2,595.5 742.8,595.2 C 744.4,594.4 745.8,596.6 747,597.6 C 749.4,599.5 746.1,600.5 745.8,601.2 C 745.2,602.6 744.8,601.3 744.1,600.7 C 743.4,600.1 742.8,600.5 742.1,600.3 C 741.5,600.1 741,600 740.4,600 C 739.8,600 739.3,600.5 738.6,600.1 C 735.8,598.5 735.5,601.5 733.6,601.9 C 733.1,602 731.6,602.3 731.1,601.9 C 730.5,601.5 731,600.4 730.1,600 C 729.8,600.9 728.8,600.8 728.4,601.4 C 728,601.9 727.2,601.1 727,601.7 C 726.5,604 725.8,605.4 724.5,607.2 C 724.1,606.6 723.2,606.3 722.9,605.5 C 722.7,604.8 722.5,603.9 721.7,603.5' + }, + { + codigo: 'PR', + centro: [762, 602.5], + d: 'M 766.2,604.1 C 763.8,604 760.7,604.8 758.2,604.1 C 757.7,604 756.6,604.4 756.8,603.1 C 757,602.8 757,602.4 757.1,602.1 C 757,601.5 756.2,601.2 756.2,600.5 C 756.2,598.2 763.9,599.6 765.2,600 C 766.2,600.4 768.4,599.7 768.6,601.3 C 768.7,602.3 767,603.8 766.2,604.1 M 762.6,607.7 C 770.5,607.7 769.1,595.7 761.2,595.7 C 753.4,595.7 754.8,607.7 762.6,607.7' + }, + { + codigo: 'VE', + centro: [767, 693.8], + d: 'M 709.7,680.2 C 711.6,677.9 712.4,675.4 712.8,672.4 C 713.1,669.6 713.9,667.6 715.2,665.1 C 716.2,663.1 718.3,662.5 719.2,660.4 C 720.4,658.1 723,658.3 725.1,657 C 724.4,659.1 721.5,657.6 720.4,659.2 C 719.4,660.4 721.2,663.5 722.6,664.1 C 721.4,664 722.8,666.7 722.9,667.3 C 723.4,668.9 722,670.5 721,671.5 C 719.7,672.8 719.2,674.4 720.2,676.1 C 720.6,676.8 720.8,677.6 721.4,678.1 C 722.2,678.6 722.3,678.4 722.2,679.3 C 722,681.3 723.6,681.8 725.2,680.9 C 726.8,679.9 727.4,678.5 727.5,676.7 C 727.6,674.3 726.4,673 725,671.1 C 724.5,670.3 724,669.5 723.7,668.6 C 723.4,667.8 723.9,666.8 723.3,666.1 C 724.2,666.2 724.9,664.9 725.5,664.5 C 726.8,663.8 727.9,662.8 729.3,662.5 C 730.6,662.3 731.6,662.1 732.7,661.5 C 733.1,661.2 734.3,660.2 734.8,660.5 C 734.7,660.1 734.5,659.7 734.2,659.4 C 734.8,659.7 736.6,661.1 737.1,660.4 C 737.4,660 737,658.9 736.4,658.6 C 735.5,658.3 734.5,659.1 733.6,659.2 C 733.7,658.2 732.4,652.9 735.5,654.1 C 736.9,654.7 736.8,657.6 737.1,658.7 C 737.8,661.2 740.4,659.6 742.2,660.2 C 744.3,660.9 746.9,661.4 747.9,663.8 C 748.6,665.2 747.4,668.4 749.9,668.9 C 752.8,669.5 756.3,668.2 759,667.8 C 761.4,667.5 763.9,667 765.6,669.1 C 766.2,670 767.2,670.7 768.2,671.1 C 769.1,671.4 769.9,671.6 770.8,671.8 C 770.7,671.8 773.7,672.4 772.3,672.4 C 774.7,673.6 775.6,671 777.4,670.8 C 778.4,670.7 778.6,669.6 779.5,669.2 C 780.7,668.6 782.2,669.7 783.4,669 C 782.2,667.8 779.7,669 778.9,667.6 C 779.5,667.6 780.2,667.6 780.8,667.6 C 781.7,667.6 781.9,667 782.6,667 C 782.9,667.1 783.2,667.3 783.5,667.4 C 784.4,667.6 785.3,667.5 786.2,667.3 C 789.9,666.7 793.8,667.4 797.5,666.6 C 797,667.8 795.1,667.6 794.1,668.1 C 792.5,669 790.4,667.6 788.9,669 C 789.4,668.5 789.9,668.5 790.2,669.2 C 789.6,669.2 789.1,669.6 789.1,670.2 C 790.4,669.4 791.5,670.2 791.6,671.8 C 791.7,673.1 789.5,672.2 788.8,672.2 C 789.4,674 792.3,672.7 791.8,671.1 C 792.6,671.2 793,672.1 793.2,672.8 C 793.3,673.7 794.2,674.7 794.2,675.6 C 794.7,675 794.9,674.1 794.6,673.3 C 795.4,674.1 795.6,675.4 795,676.2 C 795.7,675.7 795.3,674.6 795.2,673.8 C 795.6,673.9 796,674.1 796.4,674.2 C 796.3,674.1 793.8,672.9 795.2,673 C 796.6,673.2 798.4,674.6 797.8,676.1 C 798.1,675.5 798.6,675.6 798.2,675 C 798.7,674.7 799.3,674.7 799.8,674.9 C 798.5,673.5 800.6,674.7 801.1,675.4 C 802,676.8 803.4,676.2 804.5,677 C 807.5,679.2 804.1,679.2 803.5,681.3 C 803.7,681 804,680.8 804.2,680.5 C 804.4,681.6 803.4,683.4 802.9,684.2 C 802.6,684.8 802.7,685.2 802.1,685.2 C 801.4,685.2 799.6,684.7 799.2,685.2 C 800.1,685.7 801.5,685.9 802.1,686.9 C 802.6,686.1 803.4,685.6 803.6,686.8 C 804.4,685.9 805,685.5 806.2,685.2 C 807.3,685 807.8,686.2 808.8,685.2 C 810.6,683.4 814,687.8 813,688.3 C 812,688.8 811.5,689.6 810.7,690.4 C 809.9,691.1 808.6,691.5 808,692.1 C 807.6,692.6 807.2,693.2 806.8,693.7 C 806.1,694.8 807.3,695.4 807.2,696.6 C 807.2,697.3 807.5,698 808.3,697.6 C 809.2,697.1 810,698.3 809.3,699 C 808.5,699.8 807.3,700.1 806.5,700.9 C 806.2,701.3 805.5,700.7 805.1,700.7 C 804.8,700.6 804.6,701.3 804.3,701.4 C 801.3,702.6 804.4,704.5 802.8,706.3 C 802.4,706.7 800.8,707.8 801.4,708.5 C 802.5,709.9 803.5,711.2 804.6,712.5 C 805.9,714 808.5,716.5 806.2,718.2 C 805.4,718.8 804.9,719.7 804.1,720.3 C 803.6,720.6 802,720.4 801.9,720.6 C 801.5,721.3 800.2,721.1 800.2,721.9 C 800.2,722.8 798.6,722.8 798,723.1 C 796.8,723.6 795.4,724.4 794.1,723.7 C 793.2,723.3 792.4,724.4 791.5,724.6 C 790.4,724.8 790.4,726 790.7,726.9 C 791.1,728.2 790,729.2 788.9,728.2 C 788.1,727.5 787.7,726.6 787,725.9 C 786,724.9 785.5,726.2 784.6,725.9 C 783.3,725.5 782.9,725.8 781.6,725.7 C 780.7,725.6 780.9,726 780.5,724.8 C 780.1,723.6 778.6,723.6 777.7,723.7 C 776.4,724 776.4,722.9 775.4,722.4 C 774.6,723.3 776.2,725.2 776.7,725.8 C 778.2,727.5 779.4,727.9 779.5,730.4 C 779.6,731.2 779.6,732 779.9,732.8 C 780.2,733.8 781.3,734.9 781.1,735.9 C 780.9,737.7 781,738.5 783.2,738.6 C 783.8,738.6 786.3,738.1 786.1,739.3 C 785.8,741.4 784.8,740.6 783.6,741.9 C 783,742.6 781.2,742.4 780.9,743.1 C 780.6,744 780.9,744.8 780.3,745.6 C 779.8,746.3 779.1,746.9 778.7,747.6 C 778.7,745.7 776.1,748.5 775.2,748.8 C 773.9,749.3 773,749.8 772.2,751 C 771.6,751.7 770.5,753.7 769.6,754 C 769,753.3 769.8,752.4 769.6,751.6 C 769.3,750.2 767.3,751.5 766.8,751.9 C 763.9,754 762,752 760,749.5 C 759.1,748.4 758.8,746.7 758.4,745.3 C 757.9,743.7 756.7,741.5 756.7,739.9 C 756.7,738.6 753.3,734.2 751.8,735.4 C 751.7,733.9 753.8,732.5 754.8,731.7 C 756.5,730.3 755.3,728.8 754,727.4 C 751.1,724.2 751.9,718.3 751.8,714.5 C 751.8,713.2 752.4,712.9 753.2,712 C 753.8,711.4 753.2,710.3 753.5,709.6 C 753.8,708.8 755,708.3 754.8,707.4 C 754.7,706.1 754.8,705.8 753.4,705.3 C 751.8,704.7 749.1,706 747.4,706.1 C 746.3,706.2 745.1,706.2 744,706.1 C 742.3,705.8 742.6,706.6 741.2,706.9 C 741.5,706.8 739.5,706.5 739.7,706.6 C 738.9,706.1 738.2,704.5 737.7,703.7 C 736.9,702.6 736.2,701.6 735.5,700.4 C 735.1,699.9 734.6,699 733.8,699.2 C 732.3,699.7 731.6,698.3 730.1,698.2 C 729.2,698.1 728.5,698.9 727.7,699.1 C 726.4,699.4 725.2,698.6 724,698.8 C 723.2,698.9 722.7,698.4 721.8,698.8 C 721,699.3 719.9,698.8 719.4,698 C 719,697.4 718.9,696.8 718.7,696.1 C 718.4,695.2 717.1,695.6 716.6,694.9 C 715.7,693.7 716.7,691.1 717.4,690.1 C 718.7,688.1 715.8,686.3 715.1,684.9 C 714.4,683.4 715,680 712.8,680.5 C 712.9,680 712.8,679.5 712.6,679 C 711.7,679.8 710.9,680.2 709.7,680.2 M 802.3,686.2 C 801.6,686.1 800.8,686 800.1,685.7 C 800.8,685.3 802.2,685.1 802.3,686.2 M 780.7,665.6 C 780.5,665.1 777,664.3 778.8,663.8 C 779.7,663.5 779.8,664.5 780.4,664.4 C 781.3,664.3 781.3,663.2 782.1,662.9 C 782.8,664.8 782.5,664.6 780.7,665.6' + }, + { + codigo: 'CO', + centro: [712.1, 722.1], + d: 'M 667.1,745.8 C 666.8,745.8 666.6,745.7 666.3,745.6 C 666.5,743.9 668.4,743.4 669.8,744.2 C 670.5,742.7 668.6,741.3 669.3,739.8 C 670.2,737.9 672.3,738 674.1,737.7 C 674.4,737.7 674.3,736.8 674.8,737.1 C 675.1,737.3 675.9,737.5 675.9,736.9 C 675.9,735.7 677.4,734.2 676.4,733.4 C 678.1,733.3 678.4,731.1 678.8,730 C 679.2,729 680,728.4 680.8,727.8 C 679.7,727 680.9,726.9 681.2,726 C 680.5,726.1 679.6,726.7 679.3,725.6 C 679.9,725.5 680.3,725.1 680.2,724.5 C 679.7,724.3 678.6,725.7 678.5,724.6 C 678.3,723.4 679,723.2 679.9,722.7 C 678.4,722.7 679,720.8 679.2,720 C 679.6,718.5 679.1,716.4 678.9,714.8 C 678.8,713.6 678.2,712.5 678.1,711.3 C 678,710.6 680.1,710.4 679.7,708.8 C 679.5,707.9 677.3,705.8 678.7,705.3 C 679.9,704.8 678.8,702.2 678.2,701.5 C 677,700.3 676.8,698.5 675.6,697.4 C 674.8,696.8 675.5,695.9 675.9,695.3 C 676.4,694.5 675.9,693.6 676.5,692.9 C 676.9,693.4 677.2,693.8 677.3,694.4 C 678.8,693.3 680.9,691.2 680.1,689.1 C 679.3,687 677.9,686.5 679.1,684.5 C 679.9,685.5 680.8,686.8 681.5,687.8 C 682.2,688.9 683.8,689.3 682.4,690.6 C 684.5,692.9 683.2,686.4 682.9,685.8 C 682.5,684.8 687,682.5 687.5,681.7 C 688.2,680.7 688.7,679 689.9,678.5 C 690.5,678.2 692.2,678.3 692.5,677.5 C 693,676.4 691.9,676 692.1,675.4 C 692.4,674.1 692.4,672.6 693,671.5 C 692,671.4 692.2,671.1 692.9,670.7 C 693.5,670.4 693.2,669.5 693.1,668.9 C 693,667.6 695.2,667.2 695.2,666.8 C 695.1,666.1 697.6,663.4 698.3,663.4 C 699.5,663.4 700.7,664.5 701.9,664.6 C 700.9,664.4 701.1,665.6 700.1,665.6 C 701.1,668.3 702.4,664.7 702.7,663.7 C 703.4,661.2 704.5,661.4 707.2,661.8 C 710.7,662.4 711.7,660.1 714.3,658.5 C 715.8,657.6 720.2,656.5 718.6,653.8 C 719.2,653.7 720.8,653.1 719.9,654.3 C 721,654.2 720.2,653.1 721.4,652.6 C 722.8,651.9 724,651.9 725.4,652.9 C 729.8,656.4 720.9,657.8 719.7,659.5 C 719.1,660.4 718.9,661.8 718.1,662.6 C 717.6,663.1 716.6,663 716.1,663.6 C 715.2,664.7 714.3,666.4 713.8,667.8 C 713,669.8 713.1,671.9 712.7,674 C 712.4,676.1 711,678.6 709.7,680.2 C 710.9,680.2 711.7,679.8 712.6,679 C 712.8,679.5 712.9,680 712.8,680.5 C 715,680 714.4,683.8 715.6,685.3 C 717.3,687.3 717.8,688.4 717,690.9 C 716.5,692.1 715.9,694.8 717.6,695.4 C 719.6,696.1 718.7,698.4 720.6,698.9 C 721.4,699.1 722.2,698.6 723,698.5 C 724.2,698.3 725.4,699.2 726.7,699.1 C 727.8,699 728.7,698.2 729.9,698.2 C 730.9,698.2 731.7,699.2 732.7,699.4 C 733.4,699.6 734,699 734.7,699.6 C 735.6,700.3 736.2,701.7 736.9,702.6 C 737.5,703.5 738.1,704.3 738.6,705.2 C 739.3,706.4 739.6,706.1 740.7,706.4 C 742.2,706.8 743.5,705.6 745.5,706.4 C 746.1,706.6 747.4,706 748,706 C 749.4,705.9 750.6,706 751.9,705.3 C 753.2,704.4 755.6,706.1 754.9,707.6 C 754.5,708.4 753.5,709.1 753.4,710 C 753.2,711.2 753.7,711.8 752.6,712.5 C 751.1,713.5 751.8,717.6 751.7,719.2 C 751.6,721.1 752.5,723.2 752.9,725.2 C 753.2,726.8 756.2,728.8 755.8,730.4 C 755.3,732.3 751.6,733.1 751.8,735.4 C 753.1,734.4 756.4,738 756.9,739.2 C 756.8,739.5 756.7,739.8 756.7,740.1 C 756.8,740.6 757.4,741.2 757.4,741.8 C 757.4,743 758.2,744.3 758.6,745.6 C 758.8,746.6 759.9,749 758.7,749.2 C 757.5,749.3 757.7,748 757.8,747.3 C 757.9,746.1 756.4,740.6 754.7,741.2 C 753.8,741.6 751.2,746.4 750.4,743.5 C 750,742.5 748.7,742 748.9,743.5 C 749.1,745.2 746.9,744.6 745.8,744.6 C 744,744.6 742.3,744.6 740.5,744.6 C 739.4,744.6 738.1,743.9 737,744.4 C 735.3,745.2 736.8,749 736.6,750.4 C 738,749.5 741.2,750.3 741.8,751.8 C 742.1,752.3 742.2,754.2 741.1,754.1 C 740.5,754.1 740.1,753.2 739.4,753.3 C 737.8,753.6 735.1,754 734.9,755.8 C 734.8,758.1 734.6,761.2 736.5,762.7 C 737.5,763.4 738.7,764 738.6,765.4 C 738.6,766.7 739.2,767.3 739.8,768.4 C 741,770.9 739.4,774.4 738.9,777 C 737.8,783.3 737.7,790.2 735.6,796.3 C 735.1,795.1 734.3,794 733.5,793.1 C 732.6,792.1 731.4,793.1 730.3,792.5 C 729.3,791.9 732.1,788 732.5,787.4 C 733.2,786.2 735.6,783.8 734.6,782.7 C 734.1,782.2 733.4,780.9 732.6,781.2 C 731.4,781.7 730.4,779.8 729.6,779.3 C 728.2,778.5 728,779.2 726.6,779.8 C 725.4,780.4 724.1,779.4 723.2,778.7 C 722,778 719.9,780.4 718.6,780.9 C 717.8,781.2 716.2,780.8 715.2,780.9 C 713.8,781.1 713.1,780.8 712,779.9 C 711.2,779.3 712.1,777.6 711.8,776.6 C 711.5,775.2 709.2,776 709,774.6 C 708.9,773.6 708.7,772.4 708.3,771.4 C 707.9,770.5 706.4,770.7 705.8,769.8 C 705.1,768.9 704.6,768.9 703.8,768.6 C 702.7,768.2 702.3,766.5 702.2,765.5 C 702,763.6 698.3,760.8 696.5,760.3 C 696.1,760.2 695.8,759.5 695.5,760 C 695.1,760.5 695.2,760.8 694.5,760.4 C 693.4,760 691.8,759.4 690.9,758.7 C 690.3,758.2 686.8,754.1 686.4,756.9 C 686.2,758.4 681,756.6 679.8,756.4 C 677.9,756.1 679.3,754.5 677.9,753.9 C 676.7,753.4 677.3,752.4 675.7,752.4 C 674.5,752.4 672.3,750.7 671.4,750 C 669.8,748.7 668.3,747.4 667.1,745.8' + }, + { + codigo: 'EC', + centro: [667.5, 774.7], + d: 'M 571.1,763.8 C 572,763.7 572.2,762.2 571.3,761.9 C 569.5,761.5 570.2,763.4 571.1,763.8 M 570.3,759.5 C 571.6,759.8 571.6,760.5 572,761.5 C 572.4,762.8 573.6,763.7 574,765 C 572.6,765.4 569.9,767.3 572.4,768.4 C 573.7,769 576.4,767.9 576.6,766.4 C 576.8,765.3 575.2,765.3 575.3,764.4 C 575.5,763.1 574.4,762.6 573.8,761.6 C 572.7,759.9 572.8,758.1 570.3,759.5 M 578,762.8 C 578.8,761.8 577.5,761 576.6,761 C 574.5,761 577.9,762.8 578,762.8 M 580.1,766.3 C 581.6,765.9 581.5,763.7 579.8,763.9 C 578,764.2 578.4,766.3 580.1,766.3 M 586.2,767.9 C 587,767.8 588.5,766.4 587.8,765.5 C 587.1,765.6 585.4,767 586.2,767.9 M 658.9,782.6 C 658.1,782.7 657.2,783.3 656.9,784.1 C 656.8,784.3 657,786.2 657.6,785.7 C 657.8,785.6 658.2,784.6 658.2,784.4 C 658.2,783.9 659.4,783.5 659.7,783.1 C 659.4,782.9 659.2,782.8 658.9,782.6 M 651.7,778.5 C 653.3,779 653.4,776.7 653.3,775.8 C 653.3,775 653,774.5 652.8,773.8 C 652.3,772.6 653.7,771.7 653.2,770.6 C 652.7,769.4 651.3,767.7 653.6,767.5 C 654.5,767.4 654.9,767 655.1,766.1 C 655.3,764.9 656,765.1 657,765 C 655.3,764.8 655.1,762.7 656.1,761.7 C 657.7,760.1 658.7,759 658.8,756.7 C 658.8,756.1 657.9,753.1 658.5,752.7 C 659.2,752.3 661.9,750.3 661.9,752.3 C 661.5,751.1 662.9,750.5 663.8,750.2 C 664.7,749.9 666.6,748.7 666.8,749.9 C 667.1,748.9 667.5,747.9 668.1,747.1 C 670.2,749 673.3,752.4 676.3,752.4 C 677.2,752.4 677.3,753.5 678.2,753.8 C 679.3,754.2 678.3,756.6 680.4,756.5 C 681.9,756.5 683.2,757.3 684.8,757.3 C 685.3,757.3 686.5,758 686.8,757 C 686.8,756.7 686.3,756.4 686.7,756.2 C 688.2,755.5 689.3,756.8 690.2,757.8 C 691.6,759.5 693.4,759.5 695,760.6 C 694.2,760.8 693.3,760.7 692.4,760.5 C 692.3,761.1 694.2,762.9 694.6,763.4 C 695.7,764.9 694.9,766.3 695.6,768 C 695.1,768.1 694.6,767.9 694.2,767.5 C 693.1,773.3 689.6,778.3 684.6,781.6 C 682.2,783.3 679.2,783.7 676.6,784.8 C 675.3,785.4 674.5,786.3 673.7,787.4 C 673.3,787.7 673,788 672.8,788.4 C 672.6,789 672.9,789.3 672.4,789.9 C 672,787.6 670.8,792.1 670.7,792.3 C 669.9,793.7 669,795.7 669,797.3 C 669.1,799.3 667.6,799.2 667.1,800.7 C 666.5,802.3 666.6,802.6 665.1,802.5 C 663.3,802.5 663,800.5 662.5,799.2 C 661.8,797.5 660.9,798.8 659.8,798.2 C 659.1,797.8 658.3,796.2 657.3,797.1 C 655.9,798.5 654.5,798.1 656,796.2 C 654.9,796.1 654.8,794.8 655.6,794.2 C 656,793.8 656.8,794 657.3,793.6 C 658.1,793 657.2,789.1 656.3,788.8 C 657.4,788.2 658.3,788.5 659.1,787.2 C 659.7,786.1 659.9,784.8 660.3,783.6 C 660.8,782.1 660.9,782.1 660.4,780.7 C 660,779.4 659.9,778.1 660.9,776.9 C 659.2,777.7 660.2,779.5 659.9,780.9 C 659.4,783 658,781.1 659.6,781 C 658.8,780.9 658.7,780.3 659,779.7 C 658.5,780.2 656.6,782.4 656.9,783.2 C 655.8,782.4 655,781.1 653.7,780.4 C 652.9,780 651.9,779.7 651.7,778.5' + }, + { + codigo: 'PE', + centro: [703.2, 830.7], + d: 'M 648.7,798.4 C 649.7,796.3 650.4,794.9 652,793.2 C 652.7,792.4 653.3,791.5 654.2,790.8 C 654.8,790.4 656.2,789.7 656.3,788.8 C 657.3,789.1 658.1,793.2 657.2,793.7 C 656.6,794.1 655.9,793.7 655.4,794.4 C 654.9,795.1 654.9,796.1 656,796.2 C 655.1,797.4 655.4,799.1 656.8,797.6 C 658,796.4 658.4,797 659.5,797.9 C 660.4,798.7 661.5,797.5 662.3,798.7 C 663,800 662.9,802 664.7,802.4 C 666.2,802.7 666.3,802.9 666.9,801.2 C 667.4,799.9 668.8,799.6 669,798.2 C 669.1,796.4 669.5,794.8 670.3,793.1 C 670.7,792.2 671.3,791.6 671.3,790.6 C 671.3,790 672.2,788.2 672.4,789.9 C 672.7,789.5 672.8,789.1 672.6,788.7 C 672.6,788.1 673.4,787.5 673.7,787.1 C 674.6,786.1 675.5,785.4 676.7,784.8 C 679.3,783.7 682.3,783.2 684.6,781.6 C 689.6,778.3 693.2,773.3 694.2,767.5 C 694.6,767.9 695.1,768.1 695.6,768 C 694.9,766.4 695.7,764.9 694.7,763.5 C 694.3,762.9 692.3,761.2 692.4,760.5 C 693.3,760.7 694.2,760.9 695,760.5 C 695.8,760 695.5,759.9 696.4,760.2 C 697.9,760.8 699,761.4 700,762.6 C 701.4,764.2 702.1,764.8 702.8,766.9 C 703,767.7 702.7,768.4 703.9,768.5 C 705,768.6 704.7,769.1 705.5,769.8 C 707.1,771.2 708.2,770.5 708.8,772.8 C 709.1,774.6 709,775.1 711,775.7 C 713,776.3 711,778.7 712,780 C 712.5,780.6 713.4,780.8 714.3,780.8 C 714.8,780.7 715.4,780.7 715.9,780.7 C 716.6,780.7 717.4,781.1 718,781.1 C 719.5,781 721.2,780 721.9,778.7 C 722.6,777.4 724.4,779.9 725.1,780 C 726.3,780.1 728.2,778.3 729.1,779 C 729.7,779.5 730.3,780.2 730.9,780.7 C 731.5,781.1 733,781 733.4,781.4 C 734.9,783.1 734.9,783.7 733.6,785.6 C 732.5,787.2 730.5,789.8 730.2,791.6 C 729.8,793.8 732.3,792.1 733.3,792.9 C 734,793.6 734.6,794.5 735.1,795.3 C 735.6,796.3 735.2,797.8 734.3,796.4 C 734.1,796.6 733.9,796.9 733.7,797.1 C 732.7,795.6 730.2,794.6 728.7,796.4 C 727,798.4 723.5,797.9 721.2,798.5 C 720,798.8 719.3,800.2 718.1,800.5 C 716.8,800.9 717.2,801.4 716.3,802.2 C 714.2,804 712.9,803.5 712.7,806.6 C 712.7,807.7 712.7,808.6 712,809.5 C 711.4,810.4 710.6,811.3 710.8,812.5 C 711,813.7 712,815.4 710.6,816.3 C 709.5,817.1 708.4,817.4 707.4,818.5 C 706.7,819.3 706.4,820.2 706.5,821.2 C 706.6,821.7 706.8,822.2 707,822.7 C 706.4,822.9 705.8,823.2 705.4,823.7 C 703.7,825.4 708.4,826.9 706.4,828.1 C 707.4,828.8 708,830 708.2,831.2 C 708.2,831.8 708.7,832.1 709.2,832.5 C 709.8,833 709.7,833.7 710.1,834.3 C 710.7,835.4 712.1,835.9 712.5,837.2 C 713.1,838.7 711.9,839.6 711,840.7 C 712.7,841.6 715.4,840.8 717.1,841.9 C 718.2,842.7 719.2,844.7 718.7,846.1 C 721.1,846.4 724.1,846.9 726.3,845.4 C 727.7,844.5 729.6,841.2 731.5,841.2 C 731.2,842 730.5,842.1 731,843 C 731.5,843.9 730.6,844.9 730.6,846 C 730.5,848.8 730.4,851.7 730.5,854.5 C 731.5,853.7 732,855.3 733,855.3 C 734.3,855.1 735.4,854.1 736.7,854.1 C 738,854.1 738.7,854.1 739.3,855.2 C 740.1,857 741,858.8 741.8,860.6 C 742.7,862.4 743.6,864.2 744.5,866 C 745.2,867.3 745.7,868.6 744.2,869.8 C 742.9,870.9 743.1,872.3 743.1,873.7 C 743.1,875.3 742.4,877.7 742.9,879.2 C 743.1,880 743.9,880.9 743.9,881.8 C 743.9,881.9 742.9,884.2 742.8,884.3 C 741.8,885 741.1,886.3 740.6,887.4 C 739.7,889.5 741.8,889.8 741.7,891.3 C 741.6,892.5 740.5,893.4 740.2,894.5 C 739.9,895.4 740.5,896.6 740.7,897.5 C 740.9,898.3 741.3,899.8 742.3,900 C 742.8,900.1 745.3,900.3 743.7,901.2 C 742.5,901.9 743.3,903.5 742.6,903.9 C 741.3,904.6 740.8,906.4 739.7,907.4 C 739.3,907.8 738.7,908 738.3,908.5 C 737.5,909.5 738.5,909.2 738.9,909.8 C 740,911.4 737.4,911.8 736.8,912.8 C 736.2,913.9 737.2,915.3 736.3,916.6 C 735.5,917.7 734.1,918.1 732.9,918.1 C 731.5,918.1 730.5,917 729.7,916.2 C 728.7,915.1 727.5,914.7 726.4,913.8 C 724.5,912.3 725,909.7 722.6,908.6 C 719.7,907.4 718,904.5 714.9,903.7 C 713.5,903.4 712.1,902.3 710.9,901.5 C 709.4,900.6 707.8,900.3 706.3,899.4 C 704.9,898.6 703.7,897.4 702.3,896.5 C 700.7,895.5 699,894.5 697.4,893.6 C 695.9,892.8 695.2,890.9 694.1,889.7 C 692.7,888.2 690.6,887.3 689.7,885.4 C 689.2,884.3 688.5,883 687.5,882.3 C 686.6,881.7 688,879.5 686.4,879.8 C 686.4,879.5 686.5,879.2 686.7,879 C 686.9,879.1 687.1,879.3 687.3,879.4 C 688.3,876.2 687,874.5 685.6,871.9 C 684.4,869.5 683.6,867 681.7,865.1 C 681.1,864.5 680.5,864.2 680.7,863.4 C 681,862.5 680.6,861.5 680.2,860.7 C 679.8,860 679.4,859.2 678.7,858.6 C 678.2,858.1 677.1,857.8 676.8,857.1 C 676.8,856.7 676.9,856.3 677,855.9 C 677,855 676.5,854 676.2,853.3 C 675.6,851.8 674.6,850.5 673.9,849.1 C 673.2,847.8 672.9,846.2 672.4,844.7 C 671.3,841.4 669.3,838.8 668.5,835.5 C 667.4,831.1 663.8,828.4 662.3,824 C 660.6,819 656.7,815.5 651.8,813.4 C 651.4,813.2 649.8,812.8 649.8,812.2 C 649.7,811.4 649.6,810 650.8,810.2 C 652.9,810.4 652.2,808.4 651.6,807.4 C 650.7,805.9 649.7,805.3 649.7,803.4 C 650,803.2 650.2,803 650.4,802.7 C 650.3,802.4 649.5,801.7 649.3,801.5 C 648.4,800.3 649,799.7 648.7,798.4' + }, + { + codigo: 'BO', + centro: [774.5, 901.3], + d: 'M 738.6,854.3 C 740.5,854.4 742.5,854.6 744.4,854.7 C 745.2,854.8 744.8,854.9 744.9,855.4 C 745,856.4 746.5,855.4 746.9,855.3 C 747.3,855.1 748.2,854.9 748.5,854.4 C 749,853.7 749.2,852.8 749.9,852.2 C 751.5,851.1 752.5,853 753.4,851.1 C 754.2,849.4 756.4,849.3 757.8,848.4 C 759.1,847.5 759.8,845.7 761.3,845.3 C 763.2,844.8 765.2,843.9 767.1,844.2 C 769.3,844.5 768.8,844.7 770.3,843.3 C 773.2,845.5 769.7,849.5 770.4,852.2 C 770.6,852.9 771.1,853.3 771.3,853.9 C 771.5,854.5 770.8,855.2 770.6,855.8 C 770,857.7 771.7,858.6 772,860 C 772.2,861 772.1,860.9 772.9,861.6 C 773.4,862 773.2,863.2 773.7,863.4 C 774.3,863.8 774.8,863.3 775.4,864 C 776,864.9 776.6,864.9 777.3,865.5 C 777.4,865.6 777.7,866.6 777.9,866.8 C 778.3,867.3 779,867.4 779.7,867.6 C 780.6,867.8 781.1,868.2 782.1,867.7 C 783,867.3 783.8,867.5 784.4,868 C 785,868.4 785.4,868.9 786,869.3 C 786.8,869.8 787,868.7 787.7,868.9 C 788.9,869.3 788.8,871.6 790.4,871.8 C 791.8,871.9 792.7,873.1 794.1,873.1 C 796.1,873.2 796.2,876.1 797.8,876.5 C 799.1,876.9 800.4,876.6 801.7,876.4 C 803.6,876.2 805.4,877.6 806.9,878.5 C 809.4,880 807.7,881.3 808.4,883.4 C 809.3,885.7 809.5,887.7 809.9,890.1 C 809.3,890.1 808.6,890.1 808,890.2 C 807.9,892 810.2,893 810.3,894.9 C 810.4,896.3 810.1,898 810.6,899.3 C 811.2,901 814.4,900.4 815.9,900.6 C 818.7,900.9 821.7,901.3 824.6,900.6 C 824.5,901.9 823.7,902.7 823.5,903.8 C 823.3,904.8 823.6,906 823.8,906.9 C 824,908.3 825.5,910.6 827,910.9 C 827.8,911 828.3,910.5 828.6,911.5 C 828.8,912.3 829.1,913 829.3,913.7 C 829.9,915.7 830.9,916.8 830.2,919 C 829.9,920 828.7,921.9 829,923 C 829.4,924.6 828.1,925.9 827.3,927.4 C 826.3,929.4 826.1,930.4 827.7,931.8 C 828.8,932.8 826.7,933.4 825.8,934.1 C 826.6,932.1 825.4,930.8 824,929.8 C 822.5,928.8 820.5,926.9 818.7,926.5 C 813.6,925.3 807.2,928 802,928.9 C 799.6,929.3 798.2,929.3 797.6,931.9 C 797,934 795,935.4 794.4,937.5 C 793.8,939.5 794.7,941.3 794.1,943.3 C 793.1,946.2 792.6,949.1 791.6,952 C 790.2,950.8 790.6,949.7 788.5,949.8 C 787,949.9 785.2,949.7 783.6,950.3 C 781.8,951 782.1,949.2 780.9,951.6 C 779.8,953.6 779.2,955.4 778.8,957.5 C 776.9,954.4 777.6,951.5 773.4,950.8 C 771.7,950.5 769,951.3 767.5,950.6 C 766.2,949.9 765.6,948.3 764.1,948 C 763.6,950.2 763.7,950.9 761.4,951.7 C 760.2,952.1 758.8,954.2 758,955.2 C 756.8,956.7 756.3,957.5 754.3,957.7 C 753.5,957.8 752.7,957.8 752.1,957.5 C 751,956.9 751.9,955.6 751.7,954.7 C 751.3,953.6 751.5,952.3 751,951.3 C 750.6,950.4 750,949.8 749.8,948.7 C 749.5,946.8 749.4,944.4 748.5,942.8 C 748,941.8 747.1,941.4 746.5,940.6 C 745.9,939.7 746.9,938.8 746.5,937.8 C 746.2,937 745.1,937 744.8,936.2 C 744.5,935.3 745.6,934.7 744.5,933.6 C 746.9,932.3 746.6,932.5 745.4,930.4 C 745.2,930.1 746.2,928.9 746.4,928.6 C 747.3,927.3 746.5,926.9 745.6,926.1 C 743.8,924.5 743.1,923 742.7,920.6 C 742.6,919.5 741.2,916.6 742.4,915.6 C 739.1,915 740.6,909.7 737.9,909.1 C 738.1,908.5 738.7,908.1 739.2,907.8 C 740.1,907.2 740.5,906.3 741.1,905.5 C 741.6,904.9 742.1,904.3 742.8,903.8 C 742.9,903.7 742.9,902.5 743,902.3 C 743.2,901.6 745.2,899.9 743.2,899.9 C 741.8,899.8 741.4,899.5 740.9,898 C 740.6,897.1 739.9,895.6 740.2,894.5 C 740.5,893.4 742.1,892 741.6,890.9 C 740.9,889.2 739.7,888.9 740.9,886.8 C 741.7,885.5 742.5,884.5 743,883.1 C 743.7,881.6 744,881.6 743.2,879.9 C 742.5,878.4 743.2,877.2 743.2,875.5 C 743.2,874.2 742.5,871.4 743.7,870.3 C 744.7,869.2 745.7,868.4 745,866.9 C 742.8,862.8 740.6,858.5 738.6,854.3' + }, + { + codigo: 'PY', + centro: [829.4, 966.6], + d: 'M 791.5,952 C 792.6,949.1 793.3,946.1 794,943.2 C 794.4,941.6 794.3,940.1 794.4,938.5 C 794.5,936.9 795.5,935.6 796.3,934.2 C 797.5,932.3 797.7,929.6 800.2,929.2 C 803.3,928.7 806.5,928.1 809.6,927.2 C 814.6,925.7 818.1,926.1 822.2,928.5 C 823.8,929.4 826,930.7 825.9,932.9 C 825.9,934.2 826.5,938.3 827.9,938.7 C 826.9,939.8 828.3,940.2 828.4,941 C 828.6,941.6 828.2,943.5 828,944.1 C 827.8,944.6 827.6,945.1 827.6,945.6 C 827.6,946.3 828,946.9 827.7,947.6 C 827.3,948.5 826.7,949.5 826.7,950.4 C 826.7,950.9 832,952.4 832.8,952.5 C 834,952.5 835.3,952.9 836.4,952.9 C 837.5,952.8 837.7,950.4 838.7,951.1 C 839.7,951.9 841.4,952.8 842.7,953 C 843.7,953.1 843.8,953.4 843.9,954.4 C 844,955.5 844.6,956.5 844.7,957.7 C 844.7,959.4 846.1,960.2 846.1,961.9 C 846.2,963.7 846.2,967.5 848.9,967.3 C 850.3,967.1 851.4,966.1 852.8,965.8 C 854.2,965.6 855,967.1 855.8,967.7 C 855.2,968.1 855.1,968.6 855.3,969.2 C 855.8,970.3 854.1,970.9 854.3,972 C 854.5,973.1 853.9,974.3 853.6,975.4 C 853.3,976.5 853.6,977.5 852.9,978.4 C 851.7,980.1 853.1,983.8 853.1,985.7 C 853.1,986.3 852.6,989.9 851.7,990.1 C 851.2,990.1 849.3,992 849.4,992.4 C 849.5,992.8 847.9,992.8 847.6,992.9 C 847.1,993.1 846.7,993.8 846.5,994.3 C 846.2,994.7 844.7,997.4 844.1,996.7 C 842.4,995 841,996.5 839.7,998.3 C 839.2,998.1 838.9,997.1 838.3,997.1 C 837.4,997.1 836.9,997.6 836.1,997.1 C 835.4,996.6 834.7,997.4 833.9,997.4 C 833.2,997.4 832.5,997 831.8,996.8 C 829.5,996.2 827.3,995.2 824.7,995.5 C 823.5,995.6 822.6,996.4 822.4,995 C 822.4,994.7 823.8,992.7 824.1,992.5 C 827,990.9 824.9,986.4 827.4,985.3 C 828.6,984.8 829.1,982.5 829.9,981.4 C 831.2,979.4 829.7,977.9 828.2,976.8 C 826.9,975.9 825,976 824,975.1 C 823.3,974.5 822.5,974.3 821.6,974.1 C 820.6,973.9 819.9,973.1 819.1,972.6 C 817.2,971.5 815.6,970.5 813.9,969 C 812.1,967.5 810.1,967.8 808,966.9 C 806.6,966.4 803.6,966 803.4,964.3 C 803.1,962.6 799.2,961.3 798.1,960.1 C 796.8,958.9 796.1,957.4 795.3,955.9 C 794.4,954.1 792.6,953.6 791.5,952' + }, + { + codigo: 'CL', + centro: [718, 1125.5], + d: 'M 757.8,1232.7 C 757.3,1231.2 750.9,1229.9 748.1,1231.8 C 749.7,1231.3 749.1,1232.8 749.5,1233.3 C 749.8,1233.8 753.8,1233.7 751.6,1233.9 C 752.1,1234 752.7,1234 753.4,1234 C 753.9,1233.9 753.5,1233.5 753.9,1233.4 C 754.9,1232.9 754.7,1234.2 755.1,1234.3 C 755.9,1234.8 757.6,1233.5 757.8,1232.7 M 709.2,1218.7 C 708.8,1218.7 708.3,1218.7 707.8,1218.8 C 707.9,1219.1 708,1219.3 708.1,1219.5 C 707.6,1219.4 707.1,1219.3 706.5,1219.2 C 707.1,1219.4 709.4,1220.2 709.2,1218.7 M 713.7,1224.8 C 714.9,1224.3 716.3,1223.8 717.5,1223.6 C 716.7,1223.4 717.4,1222.1 718.3,1222.6 C 719,1221.1 716.7,1221.8 716.6,1220.9 C 716.5,1220.2 715.4,1219.6 714.7,1220.8 C 714.7,1220.2 714.1,1219.1 713.1,1220.5 C 713,1220 712.6,1218.2 711.1,1218.9 C 711.1,1219.1 711.1,1219.4 711.2,1219.6 C 710.6,1219.5 710,1219.5 709.4,1219.6 C 710.2,1220.1 710.8,1220.7 712,1221 C 710.7,1221 709.5,1219.4 707.7,1220.9 C 708.5,1220.7 708.8,1221 708.4,1221.6 C 711.1,1220.8 709.7,1222 709.9,1223.1 C 709.9,1223.7 710.7,1223.9 711.5,1223.2 C 712.7,1222.3 714.1,1222.2 715,1222.6 C 714.5,1222.9 714.1,1223.1 713.7,1223.3 C 713.8,1223.5 714,1223.7 714.2,1223.9 C 713.5,1224.2 712.8,1224.3 712.1,1224.4 C 712.7,1224.4 713.3,1224.5 713.7,1224.8 M 710.2,1224.8 C 710.9,1223.9 709.7,1223.8 708.8,1224.3 C 709.6,1224.1 710.1,1224.3 710.2,1224.8 M 717.8,1224.3 C 717.6,1224.3 717.4,1224.3 717.2,1224.4 C 717.3,1224.9 716.9,1225.3 716,1225.4 C 716.6,1226.4 719.3,1224.7 717.8,1224.3 M 722.5,1223.2 C 721.9,1223 721,1223.6 721.1,1222.9 C 721.1,1222.3 718.8,1223.5 718.2,1223.6 C 717.9,1224.8 721.6,1224.8 720.1,1226.4 C 722.4,1226.4 721.1,1224.9 720.9,1224.4 C 721.1,1224.8 721.5,1224.9 722.4,1224.7 C 722.2,1224.3 722.3,1223.8 722.5,1223.2 M 725.5,1223.8 C 724.9,1223.4 723.7,1223.3 722.6,1223.5 C 722.7,1223.6 722.8,1227.5 724.5,1224.6 C 723.4,1226.3 726.8,1224.7 725.3,1226.4 C 726.1,1226.3 726.8,1226.1 727.6,1225.8 C 727.5,1225.3 726.7,1223.2 725.9,1225.1 C 725.4,1224.9 725.2,1224.4 725.5,1223.8 M 731.2,1225.6 C 731.5,1224.7 730.7,1224.2 730.8,1223.3 C 731,1223.8 731.6,1223.8 732.4,1223.4 C 731.4,1222.9 732.6,1221.2 731.6,1220.7 C 730.3,1219.9 729.8,1222.1 730.3,1222.6 C 729.8,1222.4 729.2,1222.4 728.5,1222.6 C 728.6,1224.1 729.4,1225.2 731.2,1225.6 M 727.2,1231.5 C 727.4,1231.3 727.6,1231.1 727.8,1230.9 C 726.5,1231 725.9,1230.4 724.5,1230.7 C 724.4,1231 724.5,1231.2 724.6,1231.4 C 725.8,1230.6 726.8,1230.9 727.2,1231.5 M 731.2,1233.6 C 731.9,1232.9 732.5,1232.4 733.1,1232.8 C 733.3,1231.8 731.3,1232.1 730.4,1231.9 C 731,1231.9 731.9,1231.6 732.5,1231.1 C 731.7,1231 730.7,1231.7 730.1,1231.6 C 729.3,1231.5 728.6,1231.3 727.6,1231.5 C 727.4,1233.2 731.4,1231.8 731.2,1233.6 M 733.1,1225.9 C 733.8,1225 732.4,1225.2 731.6,1225.5 C 732.1,1225.7 732.6,1225.8 733.1,1225.9 M 731.7,1230.5 C 731.1,1230.5 730.4,1230.6 729.7,1231 C 730.3,1231.1 731,1231 731.7,1230.5 M 736,1232.2 C 737.6,1232 739.2,1232.3 741.1,1231.3 C 739.9,1231.1 737.2,1230.7 735.6,1231.5 C 735.7,1231.8 735.8,1232 736,1232.2 M 735.3,1232.9 C 735.2,1233.6 737.4,1233.9 738.2,1233.7 C 736.6,1235.1 740.1,1235.9 741.4,1235.4 C 741,1235.1 740.6,1234.7 740.2,1234.4 C 738.7,1233.1 742.3,1233.8 740.1,1233.1 C 741.3,1232.8 742,1233.9 743.2,1234 C 744.3,1234 744.4,1235.1 743.6,1235.7 C 744.9,1235.1 747.2,1235.7 748.1,1236 C 749.2,1236.2 748.7,1237.5 750.4,1237.2 C 750,1236.2 749.7,1235.4 748.5,1235 C 747.6,1234.7 745.7,1234.9 745.5,1234 C 746,1234.7 747.7,1234.4 748.9,1234.1 C 747.5,1232.9 743.7,1234 742.9,1232.2 C 744.2,1232.8 744.9,1232.6 746.6,1232.6 C 747.9,1232.6 747.8,1231.5 747,1231.4 C 745.7,1231.2 744.1,1231.5 742.7,1231.9 C 741.9,1232 738.2,1231.5 738.6,1233 C 738.8,1231.8 736.5,1232.2 735.3,1232.9 M 697.8,1208.2 C 698.9,1207.2 700.4,1204.3 698.5,1204.6 C 698.5,1205.1 698.5,1205.5 698.6,1206 C 697.2,1205.7 697.3,1207.7 697.8,1208.2 M 698.5,1208.3 C 699.4,1207.7 701.1,1205.7 699.4,1206.1 C 698.9,1206.9 698.9,1207.5 698.5,1208.3 M 699.4,1209.8 C 700.9,1208.9 698.6,1209.1 698.1,1209 C 698.6,1209.3 699,1209.5 699.4,1209.8 M 704,1206.8 C 704.6,1205.8 702.5,1204.9 701.6,1204.9 C 702.2,1205.7 703,1206.3 704,1206.8 M 705.1,1205.5 C 705.4,1205.4 705.6,1205.3 705.9,1205.1 C 705.2,1204.7 705.1,1203.8 704.4,1203.4 C 704.2,1204.6 703.9,1205 705.1,1205.5 M 704,1210.4 C 704.5,1210.3 705,1210.1 705.5,1209.7 C 704.8,1209.3 704,1207.3 702.1,1208.4 C 703.3,1208.2 703.7,1208.9 704.2,1209.2 C 702.5,1208.7 703.6,1210.2 704,1210.4 M 709,1218 C 709.7,1218.2 710.4,1218.2 711.3,1218.1 C 710.1,1217.8 709.8,1216.9 708.7,1216.6 C 709.9,1218.8 706.4,1214.4 707.8,1216.6 C 706.7,1215.5 704.9,1215.4 703.1,1215 C 701.7,1214.6 701.3,1213.1 699.2,1213.5 C 700.9,1214.3 701.6,1215.5 703.6,1216.1 C 704.5,1216.4 705.9,1216.3 706.8,1216.7 C 707.6,1217 707.6,1218.4 709,1218 M 707.3,1209 C 707.9,1207.6 706,1206.7 704.5,1206.6 C 704.6,1207.9 706.6,1208.1 707.3,1209 M 706.3,1210.4 C 706.5,1210.3 706.7,1210.3 707,1210.2 C 707,1209.3 706,1208.7 704.7,1208.8 C 705.2,1209.4 706,1209.7 706.3,1210.4 M 705.6,1213.2 C 707.1,1212.6 708,1210.5 706.3,1210.7 C 705,1210.9 705.8,1212.8 705.6,1213.2 M 709.4,1215.1 C 709.8,1214.1 708.1,1214.2 707.1,1214.6 C 708.2,1214.3 709,1214.5 709.4,1215.1 M 695.7,1189.7 C 695.9,1188.2 694.5,1187.5 692.8,1187.3 C 692.7,1188.1 692.9,1189.2 694.4,1188.4 C 693.9,1189.4 695.4,1189.1 695.7,1189.7 M 696.7,1193 C 697.3,1192.5 697.9,1192 698.7,1191.7 C 697.4,1192.2 696.6,1192.2 697.4,1191.1 C 696.9,1191.3 696.5,1191.2 696.4,1190.9 C 695.9,1190.5 694.8,1191 694.1,1190.9 C 694.5,1191.4 696.5,1191.6 695.8,1192.6 C 694.6,1192.8 695.4,1191.6 694.2,1191.7 C 694,1192.2 693.8,1192.7 694,1193.1 C 694.4,1193.6 696.2,1192.9 694.7,1194.1 C 695.4,1194 696.2,1193.6 696.7,1193 M 694.8,1197.1 C 695.4,1196.4 695,1195.8 694.9,1195.3 C 695.4,1195.6 696.1,1195.3 696.5,1194.7 C 695.5,1194.9 695,1194.2 693.8,1194.8 C 694.5,1195.1 694.3,1195.6 693.4,1196.1 C 694.5,1196 693.7,1197.1 694.8,1197.1 M 699.6,1197.9 C 699.9,1197.4 699,1195.7 698,1196.2 C 696.3,1197.2 698.9,1197.9 699.6,1197.9 M 699.5,1199.8 C 700.3,1199.1 701.5,1198.7 702.2,1199.1 C 701.2,1198.3 702,1196.5 699.7,1196.8 C 700,1197.3 700.1,1197.8 700.3,1198.3 C 699.4,1198.2 698.7,1198 697.8,1197.9 C 697.4,1198.8 698.6,1199.7 699.8,1199 C 699.7,1199.3 699.6,1199.5 699.5,1199.8 M 695.3,1204.1 C 696.6,1203.8 696.8,1202.3 697.3,1201.6 C 696.5,1202 696.1,1201.8 696.1,1201.2 C 695.7,1202.1 694.9,1203.4 695.3,1204.1 M 703.3,1197.6 C 703.8,1196.7 702.6,1196.3 702,1196 C 703.6,1196 702.6,1195.7 702.3,1195.2 C 702,1194.6 701.5,1194.3 700.3,1194.7 C 700.8,1195.1 700.7,1195.7 700.9,1196.2 C 701.2,1197.1 702.6,1197 703.3,1197.6 M 697.6,1202.8 C 698.7,1202.6 699.7,1201.7 699.5,1202.6 C 699.6,1202.3 699.8,1202 700,1201.7 C 700.2,1201.8 700.4,1202 700.6,1202.2 C 700.4,1201 700.1,1199.7 697.8,1201.6 C 698.4,1201.8 698.4,1202.3 697.6,1202.8 M 701.7,1200.6 C 702.3,1199.8 701.1,1199.7 701.2,1199.1 C 699.9,1200 701.2,1200.3 701.7,1200.6 M 702.9,1200.7 C 703.1,1200.6 703.3,1200.6 703.5,1200.5 C 703.2,1199.8 703,1199 702.3,1198.4 C 702.5,1199.2 702.6,1199.9 702.9,1200.7 M 695.6,1179.6 C 697.7,1178.2 695.1,1173.5 692.7,1174.5 C 692.8,1174.9 693.8,1175.4 693.6,1175.9 C 693.3,1176.7 694.6,1176.6 692.9,1177.1 C 693.5,1177.3 694.8,1176.5 694.8,1177.3 C 694.7,1178 695,1179.2 695.6,1179.6 M 692.5,1179.5 C 693.5,1179.7 694.6,1179 694.5,1178.1 C 694.3,1177 693.2,1177.7 692,1178 C 691.8,1178.9 692.8,1178.9 693.5,1179.1 C 693.2,1179.3 692.8,1179.4 692.5,1179.5 M 692.5,1180.4 C 693.3,1180.2 694.1,1179.8 694.9,1179.4 C 694,1179.1 692.9,1180 692.1,1179.6 C 692.2,1179.9 692.3,1180.1 692.5,1180.4 M 698,1174.2 C 698.7,1173.5 698.8,1172.6 698.2,1172.2 C 697.6,1172.6 697.3,1173.1 697.5,1173.6 C 697.1,1173.1 695.8,1172.9 695.5,1174 C 696.8,1173.3 697.2,1174.1 698,1174.2 M 697,1177.4 C 700.4,1175.7 697.3,1174.4 695.4,1174.7 C 695.6,1175.7 696.2,1176.7 697,1177.4 M 695.1,1182.8 C 695.7,1181.6 693.7,1180.5 692.2,1181.2 C 691.7,1182.6 695,1181.6 695.1,1182.8 M 693.1,1184.4 C 693.4,1183.4 695.8,1182.7 694.1,1182.2 C 693.7,1183.1 691.1,1184.1 693.1,1184.4 M 700,1179.5 C 701.6,1179.2 699.3,1175.5 699,1174.9 C 698.8,1175.4 698.7,1175.9 698.5,1176.4 C 698.5,1177 699,1177.3 698.9,1177.8 C 698.9,1176.5 696.8,1177.3 697,1178.5 C 697.1,1179.4 699.2,1179.1 700,1179.5 M 698,1190.5 C 698.7,1190.8 699.7,1190.9 700.5,1190.5 C 700.4,1190.3 700.3,1190.1 700.2,1189.9 C 701.2,1190.8 701.8,1188.5 700.7,1188.4 C 702.7,1188.7 700.8,1186.2 700.2,1188.2 C 700.8,1186.5 702,1184.1 701.1,1182.9 C 700.7,1182.4 701.4,1181.7 700.7,1181.4 C 700.2,1181.3 700.9,1178.6 699.9,1180.5 C 700.7,1177.4 695.2,1181.8 698,1180.9 C 695.9,1181.3 697.2,1182.3 698.4,1181.6 C 697.5,1182.3 697.9,1184.3 697.7,1185 C 697.4,1184.6 697,1184.3 696.5,1184.1 C 696.6,1186.1 694.9,1183.2 695.9,1185.3 C 695.7,1184.9 695.3,1184.6 694.6,1184.7 C 694.9,1185.1 695.2,1185.6 695.5,1186.1 C 694.8,1185.6 694.6,1184.9 693.8,1184.5 C 693,1185.8 694.5,1186.1 694.8,1187 C 695,1187.9 695.5,1189.4 697,1189.5 C 697.6,1188.5 696.6,1188.2 696.9,1187.3 C 697.3,1186.4 698.4,1186.3 698.9,1185.5 C 699.9,1185.6 699.6,1186.6 698.3,1186.3 C 698,1186.9 698.3,1187.3 698.8,1187.5 C 698.4,1187.6 698.1,1187.8 697.7,1187.9 C 697.7,1188.5 698.5,1188.6 698.9,1188.9 C 699.7,1189.5 697.3,1190.2 699.3,1189.9 C 698.9,1190.1 698.5,1190.3 698,1190.5 M 697.4,1184.5 C 698.4,1183.2 696.9,1181.5 695.7,1182.9 C 695.2,1183.4 697.2,1184.2 697.4,1184.5 M 700.8,1176.5 C 702.4,1175.8 701.2,1175 700.3,1175 C 700.5,1175.5 700.6,1176 700.8,1176.5 M 702.4,1173.5 C 703.5,1173.3 704.6,1173.5 705.7,1172.7 C 704.6,1172.1 703,1172.6 701.7,1172.4 C 701.5,1173 701.8,1173.5 702.4,1173.5 M 702.7,1177.6 C 703.2,1176.9 702.2,1176.6 701.9,1176.3 C 700.9,1177.2 702.2,1177.3 702.7,1177.6 M 705.5,1156.7 C 706,1156.2 706.5,1155.9 707.1,1155.7 C 706.7,1154.9 704.9,1155.9 705.5,1156.7 M 706.5,1158.5 C 707.4,1157.5 706.8,1156.6 705.3,1157.5 C 705.9,1157.7 706.3,1158.1 706.5,1158.5 M 708.4,1121.3 C 707.9,1120.7 707.5,1121.1 706.9,1121.7 C 706.1,1122.4 705.2,1120.9 704.5,1120.9 C 705.3,1122.2 703.4,1123.9 703.6,1124.9 C 704,1126.7 702.7,1129.2 702.9,1131 C 703,1131.7 701.9,1132.2 701.9,1133 C 701.9,1133.8 702.9,1134 703.7,1134.2 C 704.3,1134.4 704.9,1134.6 705.6,1134.6 C 707.1,1134.8 706.7,1132.8 706.7,1132.4 C 709.2,1132.2 707.5,1130.7 707,1130.1 C 707.5,1130.2 708.1,1130.2 708.6,1130.1 C 708.5,1129.6 705.3,1127.1 707.7,1127.1 C 706.3,1126.1 708.4,1125.6 709.6,1124.9 C 708.9,1123.9 708.3,1122.7 708.4,1121.3 M 704.8,1139.3 C 704.9,1138.7 705.4,1138.2 706.1,1138.2 C 705.1,1138.4 704.3,1138 703.3,1138.7 C 703.9,1138.8 704.4,1139 704.8,1139.3 M 702.8,1146.7 C 703.8,1146.4 704.7,1145.6 705.7,1145.6 C 705.2,1144.9 704.1,1144.7 702.9,1144.9 C 700.9,1145.4 701.8,1146.4 702.8,1146.7 M 702.1,1148.3 C 702.9,1148.6 704.4,1148.1 705.4,1147.8 C 704.7,1147.1 703.2,1147.1 702.1,1148.3 M 701.3,1154.9 C 702.6,1154.4 703.9,1152.4 702.4,1152.3 C 700.7,1152.2 701.4,1154.3 701.3,1154.9 M 705.5,1148.3 C 704.6,1148.6 703.8,1148.6 703,1148.9 C 702.6,1150.4 705.8,1150.3 707,1150.1 C 707.2,1149.2 706.6,1148.2 705.5,1148.3 M 704.8,1151.3 C 705.4,1151.3 705.9,1151.3 706.4,1151.2 C 706.3,1150.4 704.6,1150 703.6,1150.4 C 703.8,1150.9 704.3,1151.2 704.8,1151.3 M 706.7,1146.1 C 707.1,1146 707.5,1146 707.9,1145.9 C 707.6,1143.8 705,1145.4 706.7,1146.1 M 703.8,1153.2 C 704.5,1152.5 705.4,1152.8 705.9,1153 C 706,1151.9 703.7,1151.9 703.8,1153.2 M 704.9,1154.4 C 706.4,1153.8 705.1,1152.8 704,1153.3 C 704,1153.8 704.3,1154.3 704.9,1154.4 M 713.4,1146 C 713.4,1145.7 713.3,1145.5 713.1,1145.2 C 714.4,1144.9 714.6,1143.9 713.6,1143.8 C 713.2,1143.8 712.9,1143.7 712.6,1143.6 C 712,1142.9 711.7,1143.9 710.8,1143.3 C 710.2,1143.9 710.5,1144.3 711,1144.5 C 710.4,1144.9 709.7,1145 709.1,1145 C 708.9,1145.7 709.1,1146.7 710.2,1146.5 C 708.3,1146.8 709.9,1147.5 710.5,1147.6 C 711.4,1147.7 712.6,1146.6 713.4,1146 M 707.5,1154.7 C 707.7,1154.4 708.4,1152 707.6,1152.2 C 705.2,1152.9 707,1154.2 707.5,1154.7 M 732.2,918.3 C 733.9,917.4 735.7,918.2 736.6,916 C 737.1,915 735.8,913.5 736.7,912.6 C 736.9,912.5 737.1,912.4 737.4,912.5 C 738,912.5 738.7,911.4 739.1,911 C 739,912.3 740.3,912.8 740.5,913.9 C 740.7,915 741.3,915.4 742.4,915.6 C 741.3,916.6 742.4,919.2 742.6,920.2 C 743.2,922.8 743.6,924.3 745.6,926.1 C 747.4,927.7 746.5,928.2 745.3,930.2 C 745.1,930.6 746.7,931.6 746.6,932.3 C 746.5,933.1 745.1,933.2 744.5,933.5 C 745.5,934.5 744.5,935.6 745,936.7 C 745.3,937.3 746.2,937.1 746.4,937.6 C 746.8,938.4 746.3,938.4 746.3,939.2 C 746.2,941.4 749.2,942.4 749.1,944.9 C 749,948 750.8,950.5 751.3,953.4 C 751.7,955.6 751.4,958.4 754.7,957.4 C 758.1,956.4 758.1,958.4 757.4,961.1 C 756.9,963.1 757.1,966.4 755.1,967.9 C 753.1,969.4 750,969 748.5,971.3 C 747.9,972.1 746.7,972.5 746.4,973.6 C 746.2,974.5 747.6,976.1 747.9,977 C 745.5,977.1 746.6,980.7 747,981.8 C 747.3,982.7 747.7,983.6 747.9,984.6 C 748.3,986 746.8,986.4 746.7,987.7 C 746.5,989.6 749.2,991.6 748.4,993.2 C 747.9,994.2 746.1,994.7 745.4,994.3 C 744.5,993.8 743.7,996.7 743.5,997.2 C 742.1,1000 740.8,1002 738.7,1004.4 C 736.9,1006.5 737.9,1009 736.6,1011.2 C 736,1012.3 734.9,1012.4 735.1,1013.8 C 735.2,1015 735.9,1016 736,1017.1 C 736,1017.8 735.9,1018.5 736,1019.2 C 736,1019.8 736.6,1020.1 736.6,1020.6 C 736.8,1021.7 735.1,1022.9 734.2,1022.3 C 734.9,1023.2 733.4,1025.1 733.1,1026.2 C 733,1027 733.5,1028.1 732.6,1028.7 C 732,1029.2 731.6,1029.1 731.3,1030.1 C 730.9,1031.8 731.7,1033.5 732.1,1034.8 C 732.4,1035.5 733.3,1035.3 733.6,1035.9 C 733.9,1036.5 733.5,1037.1 732.8,1036.7 C 732.9,1038.6 734.7,1039.8 734.5,1041.8 C 734.5,1042.5 734.3,1043.3 735,1043.7 C 736,1044.2 734.8,1045.3 734.8,1046.2 C 734.8,1048.4 737.6,1046.4 736.9,1048.9 C 736.4,1051 736,1052.6 736.6,1054.4 C 736.7,1054.6 736.9,1056.5 735.9,1056.2 C 735,1056 735,1056.4 734.8,1057.2 C 734.6,1058 733.9,1058.8 733.5,1059.7 C 733,1060.7 733,1061.7 732.7,1062.7 C 732.5,1063.7 731.7,1063.5 731.4,1064.2 C 730.9,1065 731.5,1064.7 731.7,1065.3 C 732.1,1067.3 732,1069.3 732.3,1071.3 C 732.4,1071.9 731.9,1072.3 731.2,1072.4 C 730.6,1072.5 730.2,1073.4 729.9,1073.9 C 729.2,1074.9 727.2,1074.6 727.2,1076 C 727.2,1076.9 726.3,1077.6 726.3,1078.5 C 726.4,1079.4 726.9,1080.1 726.7,1081 C 726.4,1082.5 726.4,1083.9 726.3,1085.3 C 726.1,1087 727.6,1087.9 727.9,1089.3 C 728.1,1090.2 727.9,1091.3 728.3,1092.1 C 728.5,1092.5 729.4,1093.3 728.9,1093.9 C 727.8,1095.3 725,1095.2 724.8,1097.1 C 724.7,1098.3 723.5,1101.2 724.1,1102 C 723,1102.1 722.3,1102.2 722.5,1103.3 C 722.6,1103.8 723.8,1107 721.8,1106.3 C 721.6,1107.4 722.8,1107.4 722.8,1108.2 C 722.8,1108.9 721.8,1109.6 721.5,1110.2 C 720.4,1112.1 721.7,1113.3 721.5,1115.1 C 721.4,1116.5 720.8,1118.4 720.9,1119.8 C 721,1121.1 721.8,1122.2 722.2,1123.4 C 721.3,1124 720,1123.7 719.3,1124.7 C 718.8,1125.5 719.5,1126.8 719.3,1127.8 C 718.9,1128.9 718.6,1131.2 719.4,1131.8 C 720.1,1132.4 722.6,1132 722,1133.5 C 721.5,1134.8 719.8,1133.8 721.2,1135.4 C 721.5,1135.7 722,1136.2 722.2,1136.6 C 722.7,1137.4 721.4,1137.1 721.5,1137.7 C 721.5,1138.3 722.3,1138.5 722.5,1139.1 C 722.7,1139.9 721.1,1140.4 721.3,1141.1 C 721.4,1142.1 721.2,1143 722.2,1143.2 C 723.7,1143.4 726,1142.9 726.7,1144 C 726.9,1144.3 726.2,1145.9 725.8,1146.1 C 724.2,1147 722.6,1146.1 721.3,1146.1 C 718.5,1146.2 720.8,1147.8 722,1147.9 C 724.6,1148.1 726.5,1150.5 723.6,1152.8 C 723.2,1153.1 722.7,1152.7 722.3,1153.1 C 721.6,1153.7 722.1,1154.7 722,1155.2 C 721.9,1155.8 722.8,1155.7 723,1156.1 C 723.2,1156.7 721.9,1157.9 721.1,1157.9 C 721.9,1158.6 723.9,1161.2 722.3,1162.7 C 721.5,1163.4 720.5,1163.5 720.6,1164.5 C 720.6,1164.8 720.1,1165.7 720.3,1165.8 C 720.8,1166.1 721.2,1166.4 721.2,1167 C 720.1,1166.8 717.7,1169.7 717.3,1170.5 C 716.9,1171.5 716.1,1172.4 716.4,1173.2 C 716.7,1173.9 718.6,1175.5 717.7,1176.5 C 717.2,1177.2 716,1177.1 715.5,1177.7 C 714.7,1178.7 716.8,1179.5 715.1,1180.9 C 714.2,1181.7 712.9,1181.5 712.1,1182.3 C 711.2,1183.3 711.1,1185 709.1,1184.7 C 708.8,1185.7 708.2,1186.7 708.4,1187.6 C 708.6,1188.4 708.7,1190 708.4,1190.8 C 707.9,1192 710.1,1192.8 710.4,1193.7 C 710.7,1194.6 710.3,1196.2 711.3,1196.7 C 712,1197 712.4,1196.5 713.3,1196.1 C 714.3,1195.7 714.8,1196 715.6,1196 C 717.4,1196 717.7,1195.7 718.1,1197.2 C 718.4,1198.3 717,1199.7 717.9,1200.2 C 718.6,1200.7 718.2,1202.6 717.2,1203.5 C 718.8,1203.7 720.6,1205.6 720.9,1206.8 C 721.3,1208.1 726.9,1207.1 728.6,1207.1 C 735.5,1207.1 741.2,1208.4 747,1209.8 C 745.2,1209.8 744,1209.2 742.5,1209 C 739.8,1208.5 740.5,1209.9 738.9,1211 C 737.4,1211.9 736.3,1211 734.8,1211.9 C 732.9,1213.1 730.9,1212.8 729.1,1213.3 C 729.4,1214.4 728.6,1215.9 728.1,1217.2 C 727.6,1218.6 728.1,1219.3 728.1,1220.4 C 728.2,1223.5 724.2,1222.4 722.6,1222.1 C 720.7,1221.8 716.5,1220.6 716.9,1218.6 C 717.4,1216.6 721.2,1217.8 718.5,1219.1 C 719.6,1219.1 719.9,1218 720.7,1217.5 C 721.2,1217.2 722.5,1218.9 720.7,1219.9 C 722.9,1219.4 721,1216.9 724.8,1216.4 C 725.5,1216.3 726.5,1214.9 726.7,1214.6 C 727.4,1213.5 725.2,1213.8 724.9,1213.2 C 724.3,1214.3 721.8,1215.2 720.6,1215.8 C 718.6,1216.7 718.2,1215.3 716.2,1216.1 C 717.4,1215.9 717.7,1216.7 718.2,1217.2 C 717.5,1217.3 716.9,1217.2 716.5,1217 C 716.4,1217.6 715.9,1218.1 715.2,1218.5 C 716.2,1218.7 716.7,1219.3 717,1219.9 C 714.1,1220.5 711.2,1218.1 710.3,1216.7 C 711.2,1217.2 713,1217.2 714.4,1217.2 C 714.8,1216.2 712.2,1216.1 713.3,1214.2 C 713.9,1213.1 716.5,1212.6 715.2,1214.1 C 716.9,1213.7 717.1,1213.8 718.8,1212.7 C 720.5,1211.7 722.3,1213.3 724.3,1212.4 C 724,1211.4 718.3,1210.6 716.8,1212.4 C 716.2,1212.2 715.7,1211.9 717.4,1211.4 C 716.6,1211.4 713.3,1211.5 713.2,1212.8 C 714.1,1212.3 714.7,1212.3 715,1212.7 C 714.4,1213.3 713.6,1213.7 712.9,1213.9 C 712.9,1214.5 713.3,1216 711.5,1216.1 C 710.4,1216.2 708.7,1215.1 711.1,1214.6 C 709.9,1214.9 709.6,1214.1 709.1,1213.6 C 709.7,1213.7 710.3,1213.7 710.9,1213.6 C 710.7,1213.5 710.4,1213.4 710.2,1213.2 C 711.8,1212.6 711.2,1211.4 712.6,1211.8 C 711.6,1211.4 711.7,1211.2 712.9,1211.3 C 712.4,1211.1 711.8,1211.1 711.1,1211.3 C 711.5,1211.6 711.3,1212.2 710.5,1212.8 C 710.5,1212.3 710.2,1211.9 709.6,1211.8 C 709.2,1212.4 708.5,1213 707.7,1213.2 C 708.5,1212.5 708.4,1212.2 707.4,1212.4 C 710.2,1211.1 707.2,1208.6 707.6,1207.4 C 707.9,1208.1 708.9,1208.9 710.2,1208.9 C 710.7,1208.8 714.1,1207.1 712.2,1209.1 C 713.4,1208.7 714.5,1209.4 714.1,1208.1 C 713.5,1209.8 713.7,1207.6 714.2,1206.7 C 715.1,1206.8 715.5,1207.7 715.9,1208.2 C 716.6,1209.1 715.3,1209.9 713.9,1210.8 C 715,1210.4 715.7,1210.7 716.5,1210.8 C 715.7,1210.3 717.3,1209.1 716.6,1208.6 C 716.2,1208.2 714.9,1206.9 716.9,1206.7 C 716.3,1205.9 716.4,1204.7 715.5,1204 C 714.5,1203.3 712.8,1203.3 712.1,1202.3 C 711.8,1202.5 711.5,1202.8 711.2,1203.1 C 712.4,1203 716.9,1204.1 716.2,1205.4 C 715.5,1206.4 711.4,1204 710.6,1204.1 C 710.9,1204.7 711.7,1204.6 712.1,1205 C 712.6,1205.5 711.6,1206.4 712.8,1206.4 C 712.1,1206.8 711.5,1207.3 711,1207.8 C 710.8,1206.8 711,1205.6 710.2,1204.9 C 710.6,1205.8 711.1,1207.2 710.2,1208.5 C 709.5,1207.5 708.1,1207.1 708.3,1205.6 C 708.7,1206 709,1206.4 709.4,1206.7 C 709.4,1206 708.3,1205.6 709,1204.6 C 708.5,1204.6 707.6,1205.1 707.1,1205 C 706.7,1204.9 707.1,1204.2 706.5,1204.1 C 705.9,1204 705.7,1202.4 705.9,1201.9 C 707.2,1202.2 707.5,1203.3 708.3,1204.1 C 707.7,1202.9 707.8,1201.5 706.9,1200.5 C 708,1201.9 707.6,1200.2 706.8,1200 C 706.6,1200.3 706.4,1200.5 706.2,1200.7 C 705.5,1200.6 705.1,1200.3 704.8,1199.9 C 705.1,1201.5 703.7,1198.8 703.4,1198.5 C 703.1,1198.1 704.6,1197.9 704.8,1197.8 C 705.2,1197.8 705.6,1197.8 705.9,1197.8 C 707.3,1197.9 705.3,1196.4 706.9,1197.4 C 706.4,1196.9 707.1,1195.8 708.2,1195.8 C 707.3,1195.8 706.6,1195 707.8,1194.1 C 706.5,1194.8 706.5,1196.4 705.5,1197.2 C 704.2,1198.2 703.1,1194.8 702.7,1194.5 C 703.2,1194.7 703.7,1194.9 704,1195.3 C 703,1193.9 704.3,1194.9 705.2,1194.8 C 704.6,1194 702.2,1194.1 702.3,1192.9 C 701.5,1194.6 700.6,1192.1 699.5,1192 C 701.7,1190 703.8,1193.1 705.8,1192.9 C 704.4,1192.6 701.4,1191.7 702.1,1189.9 C 703.5,1189.9 703.8,1191.1 705.4,1190.7 C 704.5,1190.7 704.6,1190.1 705.3,1189.5 C 703.6,1191.2 701,1188.6 704,1188.1 C 703.3,1188.3 701.3,1187.7 703,1187 C 705.2,1186.1 705.6,1187.7 706.9,1188.1 C 706.1,1187.6 705.2,1186.9 704.6,1186.4 C 704.2,1186.2 703.5,1186.1 703.9,1185.4 C 704.2,1184.8 705.1,1184.6 705.5,1184.9 C 704.8,1184.5 704.7,1181.6 706.1,1182.5 C 705.7,1182.1 705.1,1182.2 704.3,1182.6 C 704.6,1183 703.1,1185.9 702.6,1186.3 C 701.8,1185.3 700.8,1183.3 701.8,1181.7 C 702,1181.3 700.8,1180.6 701.8,1180.1 C 702.5,1179.8 703.8,1179.8 704.3,1179.9 C 704.1,1179.8 700.1,1179.4 702.3,1178.1 C 703.2,1177.6 704.4,1178.4 705,1178.6 C 704.5,1178.3 704.5,1177.7 705.3,1177.1 C 704.7,1177.1 701.6,1176.9 703.9,1176.3 C 701.5,1177.1 702.1,1173.8 699.9,1174.3 C 700.6,1172.4 702.7,1174.7 703,1175.1 C 702.9,1174.6 702.7,1174.1 702.5,1173.7 C 704.2,1173.5 704.9,1174.1 706.1,1174.5 C 706.6,1174.7 707.4,1174.5 707.7,1174.9 C 708.3,1175.3 709.3,1175.1 709.7,1175.5 C 710.2,1175.1 710.4,1174.7 710.2,1174.3 C 709,1175.9 707.4,1173.7 707.7,1172.9 C 708.4,1173.6 709.7,1173.4 710.8,1173.7 C 710.4,1173.5 710,1173.5 709.5,1173.5 C 708.6,1173.4 708.6,1172.5 708.1,1172.1 C 707.7,1171.7 707.1,1171.9 706.8,1171.3 C 706.7,1170.8 707.3,1170.2 707,1169.8 C 707.3,1170.6 706.5,1172.6 704.8,1172.2 C 703.4,1171.9 699.9,1172.2 699.3,1171.2 C 700.1,1171 700.6,1170.5 700.4,1170 C 702.2,1169.6 702.1,1171.3 703.3,1171.6 C 702.2,1171.4 703.5,1170.2 704.4,1170.6 C 704.8,1169.3 703.3,1170.5 702.7,1170.1 C 702.2,1169.8 702.2,1169.1 701.4,1169.1 C 700.6,1169.1 703.4,1165.7 703.8,1167.6 C 703.9,1167 704.3,1166.7 705,1166.7 C 705.1,1166.3 705.1,1166 705,1165.7 C 704.4,1166.6 703.3,1166.9 703.2,1166 C 703.8,1165.8 704.4,1165.7 705,1165.6 C 704.8,1165 703.7,1164.8 703.2,1164.4 C 702.1,1163.5 701.9,1163.1 699.7,1164 C 700.4,1163.8 701,1164 701.2,1164.5 C 699.9,1164.2 698.6,1163.9 697.7,1163.3 C 696,1162.3 697.8,1161.8 697.6,1160.6 C 696.1,1162 692.9,1162.1 692.2,1163.4 C 694.6,1161.3 694.5,1166.6 692.3,1164.2 C 690.8,1162.7 694.7,1158.7 696.8,1159.7 C 696.1,1159.6 696.1,1159.1 696.8,1158.6 C 697.7,1159.5 698.1,1157.3 698.8,1158.6 C 698.1,1157.8 700,1156.9 699,1156.3 C 698.5,1159 695.7,1156.7 698,1156.8 C 697.2,1156.7 696.3,1156.5 696.5,1155.7 C 697.4,1156 698.9,1155.1 700,1155.3 C 700.9,1155.4 700.6,1156.4 701.6,1156.5 C 700.6,1155.6 702.3,1155.2 703.2,1155.1 C 704.2,1155 703.4,1156.1 704.4,1156.2 C 703.5,1156.9 704.1,1158.2 704.5,1156.7 C 706.4,1157.7 702.2,1159.1 701.1,1158.5 C 701.7,1159 704.5,1159.4 705.7,1159.3 C 705.2,1159.1 705,1158.6 705.3,1158 C 705.8,1158.4 706.6,1158.6 706.6,1159.4 C 706.5,1160.2 705.2,1160.9 705.3,1161.7 C 707,1161.5 709.1,1158.1 709.3,1157 C 708.6,1157.8 708,1158.6 707.2,1159.3 C 708,1157.7 707.4,1153.9 710.8,1153.9 C 710,1153.5 708.8,1154.1 708,1154.8 C 708.1,1154.1 708,1153.2 708.6,1152.5 C 709.2,1151.7 710.2,1151.7 710.9,1150.9 C 711.2,1151.5 712,1151.8 712.6,1152.1 C 713.5,1152.6 714.2,1151.6 713.3,1151.7 C 712.6,1151.7 712.3,1151.4 711.9,1151.1 C 711.1,1150.5 709.8,1151 709,1150.6 C 711.2,1149.4 707.6,1148.2 711,1147.8 C 713.5,1147.6 715.8,1144.6 715.3,1142.9 C 714,1144.2 709.9,1141.7 710.6,1140.5 C 710.9,1140.3 711.2,1140.3 711.4,1140.5 C 710.6,1139.1 713.9,1138.2 713.5,1137 C 712.8,1137.9 712,1137.9 712.3,1137 C 712.8,1135.8 711.7,1136.2 711.6,1135.1 C 711.6,1134.2 712.3,1133.8 712.9,1133 C 713.2,1132.5 712.7,1131.1 714.2,1131.4 C 714.6,1130.5 714,1130.4 713.7,1129.8 C 713.5,1129.4 713.9,1128.7 713.8,1128.2 C 713.3,1126.3 714.4,1127.4 715.8,1127.2 C 714.7,1127 713.9,1125.8 714,1124.7 C 716,1124.1 716.3,1125.5 716.7,1126.7 C 717.1,1125.1 716.6,1123.6 716.4,1122.3 C 714.2,1123.7 712.7,1121.7 715.2,1120.5 C 716.8,1119.8 718.7,1119.2 717.7,1117.8 C 717,1121.7 714.8,1118.9 713.1,1118.4 C 711.7,1118.1 711.8,1120.3 710.8,1120.8 C 709.3,1121.5 705.3,1120.3 708.2,1119.2 C 703.9,1119.2 706,1113 706.5,1110.3 C 706.7,1109.1 706.8,1106.3 707.9,1105.1 C 708.9,1103.9 709.4,1105 709.7,1103.4 C 709.9,1102.4 710.7,1101.4 710.8,1100.3 C 711,1098.7 710.8,1097.8 710.2,1096.1 C 709.5,1094.4 708.5,1092.9 708.6,1090.8 C 708.6,1089.6 709.2,1088.7 708.5,1087.6 C 708.1,1086.9 707.6,1086.3 707.4,1085.4 C 707.2,1084.7 707.9,1084.3 707.8,1083.8 C 707.6,1082.8 707.3,1082.1 707.8,1081 C 708.5,1081.6 709.9,1082 710.8,1080.7 C 711.9,1079.1 710.5,1077.9 711.6,1076.3 C 711.5,1076.9 711.8,1077.2 712.4,1077.2 C 712.5,1076.8 712.5,1076.4 712.5,1076 C 712.5,1075.3 713.4,1074.5 713.6,1073.7 C 714.1,1072.2 713.5,1071.2 714.9,1069.8 C 716.1,1068.6 714.8,1067.9 715.9,1066.6 C 716.6,1065.5 718.1,1063.7 718.5,1062.7 C 719.7,1060 719.4,1057.2 720.4,1054.6 C 720.9,1053.1 722.7,1051.9 722.9,1050.6 C 723.2,1049.5 722.6,1048.2 722.4,1047.1 C 722.3,1046.2 723.2,1045.1 723.8,1044.3 C 724.4,1043.4 724.1,1042 724.3,1041.1 C 724.4,1040.5 724.9,1040 724.6,1039.4 C 724.3,1038.8 724,1038.2 723.9,1037.5 C 723.8,1035.9 723.9,1034.4 723.7,1032.9 C 723,1030 722.3,1026.8 722.4,1023.7 C 722.4,1022.1 722.8,1022 724.1,1021.2 C 725.1,1020.6 724.5,1019.2 725.3,1018.4 C 726,1017.6 725.1,1013.4 724.5,1012.9 C 723.8,1012.2 723.2,1010.4 724,1009.4 C 725.1,1007.9 725.5,1006.7 726.4,1005.1 C 726.9,1004.2 726.5,1002.4 726.8,1001.4 C 727.2,999.6 728.8,998.6 728.5,996.8 C 728.1,994.2 730.2,990.9 730.9,988.1 C 731.2,985.7 729.9,983.7 730.4,981.4 C 730.6,980 732.1,979.8 732.2,978.5 C 732.4,976.8 731.3,975.2 731.2,973.5 C 731.1,971.7 731.6,970 731.6,968.2 C 731.6,967.4 731.3,966.8 731.7,965.9 C 732,965.1 732.4,964.4 732.3,963.6 C 732.2,962.6 730.7,963.2 730.6,962.2 C 730.5,961.1 731,959.9 731.3,958.8 C 732.8,960.3 733.4,955.4 733.4,954.7 C 733.9,950.4 735.4,945.6 734.3,941.6 C 733.1,937.4 734.8,932.7 733.7,928.4 C 733.3,926.6 732.8,924.4 732.7,922.5 C 732.6,921.3 733.5,918.9 732.2,918.3 M 731.8,1217.9 C 731.6,1217.3 731.5,1215.8 732.7,1215 C 732.4,1216 734.2,1215.9 734.6,1214.8 C 734.9,1214.3 733.2,1213.7 732.8,1213.6 C 734.2,1212.8 734.9,1213.7 735.8,1213.9 C 737.7,1214.4 738.1,1212.2 739.2,1211.4 C 740.4,1210.5 741.2,1212.5 741.9,1212.6 C 743,1212.9 744.9,1211.6 745.7,1212.2 C 746.6,1212.9 745.8,1214.5 746,1215.5 C 746.3,1217 746.1,1218.6 746,1220.1 C 745.6,1223.8 746.3,1227.2 745.6,1231 C 745,1230.6 744.1,1230.5 743.5,1230 C 743.7,1230.5 744.1,1230.7 744.7,1230.9 C 742.8,1232 740.2,1231.3 739,1230.9 C 738.4,1230.7 738.2,1229.6 737.3,1229.8 C 736,1230.1 735.7,1230.4 735.2,1229.6 C 735.3,1229.9 735.3,1230.2 735.3,1230.5 C 735,1230 731.4,1231.1 733.4,1229.5 C 732.8,1230.3 729.5,1230.7 728.9,1230.4 C 729.7,1230 730.5,1229.7 731.3,1229.3 C 730.6,1228.8 728.4,1229.9 727.3,1230 C 727.6,1229.5 727.6,1229 727.4,1228.6 C 725.8,1230.4 725.6,1228.3 725.1,1228 C 725.4,1229.3 723.3,1228.8 722.6,1228.7 C 722,1228.6 720.9,1229.2 720.4,1229 C 719.9,1228.9 720.3,1227.9 719.9,1227.6 C 721,1227.5 721.3,1228.2 722.2,1228.4 C 722.5,1227.8 722.3,1227.4 721.5,1227.5 C 722.3,1227.3 722.9,1227.4 723.1,1227.9 C 722.1,1226.3 726.8,1228 727.8,1227.4 C 728.6,1226.8 728.6,1226 729.9,1226.3 C 730.8,1226.6 728.2,1229 730.2,1228.6 C 729.8,1228.3 729.8,1227.8 730.3,1227.2 C 731.8,1227.1 732.3,1228.7 734.2,1228.2 C 733.1,1227.5 731.8,1227.2 731,1226.3 C 730.3,1225.6 728.4,1226.1 728.3,1224.9 C 730.5,1225.3 732.8,1225.9 734.1,1227.1 C 733.5,1226.7 733.8,1225.8 735,1226 C 736,1226.1 736.2,1227.1 736.8,1227.6 C 736.8,1227 736.6,1226.6 736.2,1226.3 C 737.5,1226 737.9,1227.2 739,1226.8 C 740.6,1226.1 741.3,1227.7 739.7,1228.7 C 740.4,1228.2 741.2,1227.9 741.6,1228.3 C 741.2,1227.4 742.1,1227.4 742.9,1227.5 C 741.2,1225.2 734.3,1226 733.9,1222.8 C 733.6,1220.5 739.8,1221 740.3,1218.9 C 740.9,1216.3 732.1,1220.6 731.8,1217.9' + }, + { + codigo: 'AR', + centro: [770.6, 1081.4], + d: 'M 735.3,1012.7 C 735.6,1012 736.5,1011.9 736.8,1011.2 C 737.2,1010.3 737,1008.9 737.2,1007.9 C 738,1005.1 739.8,1004 741.4,1001.6 C 742.4,1000.1 742.8,998.5 743.5,996.9 C 743.8,996.1 744.2,995.2 744.8,994.5 C 745.4,993.8 746.2,994.4 747,994.1 C 750.4,992.7 747.6,990.9 746.9,989.3 C 746,987.5 748.3,986.4 747.8,984.7 C 747.5,983.5 744.7,977.1 747.9,977 C 747.6,976.3 746.2,974.4 746.6,973.7 C 747.4,971.8 748.8,970.6 750.6,969.8 C 752.3,969.1 754.8,968.5 755.8,966.9 C 756.8,965.2 756.9,962.9 757.4,961.1 C 757.6,960.4 758.3,959.3 758.1,958.5 C 757.9,958.1 756.7,957.3 756.9,956.8 C 757.1,956.2 758.5,954.4 759,954.2 C 760.3,953.7 760,952.3 761.3,951.7 C 763.4,950.6 763.6,950.4 764.1,948 C 765.7,948.3 766.4,950 767.8,950.6 C 769.4,951.4 771.5,950.4 773.3,950.7 C 777.5,951.3 776.9,954.5 778.8,957.5 C 779.1,956.1 779.2,954.9 779.9,953.6 C 780.2,952.9 781,950.5 781.8,950.2 C 782.3,950 783.3,950.1 784,950 C 785.2,949.7 786.5,949.9 787.7,949.9 C 788.4,949.9 790,949.5 790.1,950.3 C 790.3,951.4 792.3,952.6 793,953.4 C 793.9,954.3 794.5,954.4 794.9,955.6 C 795.3,956.5 795.7,957.4 796.3,958.2 C 797.6,960 799.9,961.3 801.7,962.7 C 802.7,963.5 803.1,964.6 804,965.4 C 804.9,966.1 806.2,966.1 807.2,966.5 C 808.6,967.1 809.5,967.5 811.2,967.5 C 812.4,967.5 813.2,968.6 814.1,969.1 C 816.6,970.4 818.4,972.9 821.2,973.8 C 822.1,974.1 823.1,974.2 823.7,974.8 C 824.6,975.7 825.1,975.2 826,975.8 C 827,976.4 828.3,976.4 828.9,977.4 C 829.4,978 829.9,978.6 830.3,979.3 C 831.2,980.5 829.1,981.9 828.7,983.4 C 828,985.6 825.9,986.2 826.1,988.8 C 826,991.2 824.1,992 823.1,994 C 822.7,995 822.4,994.7 822.7,995.9 C 824.3,995.3 826,995.3 827.5,995.6 C 830.2,996.1 832.5,997.7 835.4,996.9 C 836.3,996.6 836.5,997.9 837.5,997.3 C 838.4,996.7 839.1,998 839.7,998.3 C 840.4,997.3 840.7,995.9 842.1,995.8 C 843.2,995.6 843.6,996.8 844.5,996.7 C 846,996.5 846,994.8 846.6,993.9 C 847.2,992.8 849.5,992.9 849.5,992.3 C 849.5,992.1 851.2,990.1 851.4,990.2 C 852.4,990.3 852.6,988 852.8,987.2 C 853.2,985.5 853.4,983.8 853.1,982.2 C 852.8,980.5 853.8,981.1 854.7,981.6 C 855,980.3 856.8,980.5 857.7,980.8 C 859.3,981.4 859.4,983 859.8,984.4 C 860.3,986.4 860.4,987.5 860.2,989.7 C 860,990.8 860.1,991.8 859.7,993 C 859.5,993.5 859.3,994.1 859.2,994.7 C 858.8,994.5 858.4,994.6 858.1,994.8 C 856.7,995.5 855.8,996.4 854.3,996.9 C 853.6,997.2 851.3,997.9 851,998.8 C 850.7,1000.1 849.1,1000.2 848.1,1000.8 C 847.5,1001.1 847.3,1001.8 846.7,1002.3 C 846,1002.9 845,1003.4 844.3,1004.1 C 844.9,1004.3 845,1004.8 844.6,1005.4 C 843.5,1004 839.8,1009.5 838.8,1010.5 C 837.2,1012.4 836.2,1016.2 833.5,1017.1 C 832.3,1017.6 832.1,1019.1 831.4,1019.9 C 831,1020.4 830.5,1020.6 830,1020.7 C 830.1,1021.5 829.8,1022 829.1,1022.5 C 827.1,1024 828.9,1024.5 828.8,1026 C 828.7,1026.8 828.1,1026.6 827.9,1027.2 C 827.8,1027.9 828.1,1028.6 828.1,1029.3 C 828,1030 827.8,1030.8 827.3,1031.4 C 826.4,1032.7 827.9,1031.9 827.5,1033.1 C 827,1034.7 826,1035 825.9,1036.7 C 825.9,1038.1 826.7,1038.7 825.8,1040.2 C 825.1,1041.5 825.6,1043.1 826.1,1044.2 C 826.9,1046.2 824.3,1045.5 824.1,1046.6 C 823.9,1048.1 822.7,1049.6 823.1,1051.1 C 823.3,1051.9 825.4,1056.4 822.8,1056.2 C 823.8,1057.2 823.6,1058.4 824.8,1059.2 C 826.2,1060.1 827.5,1060.9 829,1061.6 C 831.5,1062.8 834.8,1064.8 832.5,1068 C 830.8,1070.3 832.9,1075 836.1,1073.8 C 837.4,1073.4 837.1,1076.6 837.2,1077.2 C 837.5,1079 835.7,1080.9 834.5,1082.5 C 833.5,1084 831.1,1086 830.7,1087.6 C 830.2,1089.3 830.2,1089.8 828.3,1090.9 C 824.7,1092.9 820.9,1093.9 817.1,1094.6 C 812.4,1095.4 807.8,1096.6 803.3,1096.8 C 801.5,1096.9 800.1,1096.9 798.4,1096.7 C 796.5,1096.6 795.6,1095.4 793.8,1095.2 C 793.9,1095.7 794.1,1096.1 794.4,1096.4 C 794.8,1096.8 794,1097.7 794.1,1098.2 C 794.2,1098.5 797,1100.9 795,1100.1 C 795.8,1100.8 796.1,1101.3 796,1102.5 C 795.9,1103.3 795.6,1104.8 794.4,1104 C 794.3,1104.9 794.3,1105.8 794,1106.7 C 793.7,1107.4 792.7,1108.1 793.1,1108.7 C 793.4,1109.2 793.9,1109.5 794.2,1109.9 C 794.8,1110.5 794.1,1111.5 795.3,1111 C 793.5,1114.6 789.4,1115.1 786,1115.4 C 781.6,1115.7 779.1,1113.1 775,1112.5 C 776.9,1112.2 775.2,1111.6 774.6,1111.8 C 773.7,1112.2 773,1113.1 772.7,1113.8 C 771.8,1115.9 774,1117.4 773.6,1119.5 C 773.3,1121.2 772.6,1123.3 774.3,1124 C 775.2,1124.4 778.1,1124.6 776.6,1126.2 C 777,1126.3 780.9,1126.7 781,1125.8 C 781.1,1125 779.2,1125 778.7,1124.6 C 780,1124.8 781.2,1123.6 782.5,1123.5 C 783.8,1123.4 784.5,1125.1 784.3,1126.1 C 784.2,1127 785,1128.4 783.9,1129.4 C 783.1,1130.1 781.2,1130.3 780.4,1130.2 C 779.1,1130 779.9,1128.7 779.5,1128.1 C 778.7,1127.1 777.4,1126.7 775.8,1127.5 C 771.5,1129.6 776.6,1131.4 778.8,1130.9 C 778.2,1131.9 776.9,1132.2 775.9,1132.6 C 773.9,1133.2 773.7,1133.9 772.4,1135.4 C 771.1,1136.8 770.8,1137.3 771.4,1138.7 C 771.6,1139.2 771.9,1139.8 771.7,1140.4 C 771.4,1140.8 771.3,1141.3 771.2,1141.7 C 771.5,1142.1 771.6,1142.6 771.4,1143.1 C 771.2,1143.4 771,1144.4 770.5,1144.5 C 769.8,1144.6 768.9,1144.9 768.5,1145.6 C 767.9,1146.8 769.8,1147 769.2,1147.9 C 768.6,1148.9 761.2,1147.5 761.9,1150.1 C 758.7,1149.4 756.2,1153.1 754.7,1155.4 C 752.3,1159.1 754.4,1160.6 756.8,1162.6 C 758,1163.5 758.8,1164.8 760.3,1165.4 C 762.2,1166.3 765.4,1165.1 767.1,1166.3 C 769.4,1167.8 767.5,1173.1 763.1,1172.5 C 763.8,1172.8 764.7,1172.2 765.5,1172.1 C 766.8,1172 767,1172.7 767.4,1173.5 C 766.6,1173.5 766.2,1173.9 766.3,1174.5 C 765.1,1174.2 760.9,1177.3 759.7,1178 C 758.2,1179 756.9,1179.9 755.5,1181.1 C 754.6,1181.8 753.9,1182.3 753.4,1183.3 C 753.1,1184.1 752.9,1184.8 751.8,1185.3 C 752.4,1185.4 753.1,1185.1 753.5,1184.5 C 752.6,1186.7 753.5,1190.4 749.3,1191.4 C 746.2,1192.2 747.1,1188.6 745,1188.2 C 745.5,1188.4 746.5,1189.5 745.7,1190.2 C 745,1190.7 743.7,1190.2 742.9,1190.7 C 745.5,1189.9 745.8,1191.2 747.7,1191.5 C 746.8,1192.9 744.4,1192.8 743.1,1194.3 C 741.4,1196.2 742.4,1197.5 740.1,1199.5 C 742.7,1197.7 743.2,1201.7 743.3,1202.7 C 743.4,1204.3 740,1203.4 738.8,1204.1 C 739.9,1203.8 741.9,1204.6 742.4,1204.4 C 744.1,1203.7 744.4,1205.3 745.1,1206 C 746.3,1207.4 747.8,1208.4 747.6,1210.4 C 747.5,1209.7 746.3,1209.7 745.6,1209.6 C 744.1,1209.5 743.2,1208.8 742,1208.4 C 738.9,1207.5 735.3,1207.2 731.5,1207.2 C 729.9,1207.2 728.2,1207.2 726.5,1207.2 C 725.1,1207.2 721.9,1207.6 721.1,1207 C 719.9,1206 719.5,1203.7 717.2,1203.5 C 718.4,1202.5 718.5,1200.9 717.9,1200.3 C 717,1199.5 718.5,1198.5 718.3,1197.5 C 718.2,1196.9 717.7,1195.3 716.5,1195.7 C 715.5,1196 715,1195.6 714.1,1195.8 C 713.4,1195.9 712.8,1196.5 712.1,1196.8 C 710.7,1197.3 710.5,1194.8 710.4,1194.2 C 710.4,1193 708.1,1192.2 708.5,1191 C 708.7,1190.4 708.3,1190.4 708.3,1189.8 C 708.2,1189.4 708.7,1188.9 708.8,1188.4 C 708.8,1187.8 708.1,1187.6 708.1,1186.9 C 708.2,1186.2 708.8,1185.4 709.1,1184.7 C 710.4,1184.9 710.8,1184.2 711.6,1183.3 C 712.1,1182.7 712,1182.3 712.7,1181.8 C 713.3,1181.4 714.1,1181.7 714.7,1181.2 C 716.1,1180.3 715.9,1178.9 715.6,1178.1 C 715.3,1177.2 717.4,1177.1 717.9,1176.3 C 718.4,1175.5 717.5,1174.5 717.1,1174.1 C 716.2,1173.2 716.2,1172.7 717,1171.2 C 717.5,1170.2 719.4,1166.7 721.2,1167 C 721.2,1166.2 720.1,1166.1 720.6,1165.3 C 720.8,1164.7 720.4,1164.3 720.9,1163.8 C 721.3,1163.4 721.9,1163.2 722.3,1162.8 C 723.9,1161.2 722,1158.7 721.1,1157.9 C 722.2,1157.9 723.7,1156 722.6,1155.7 C 721.9,1155.5 721.3,1153.7 722.6,1153 C 723.6,1152.3 723.7,1152.7 724.7,1151.7 C 725.6,1150.8 725.7,1150.8 725.2,1150 C 724.7,1149.4 724.1,1148.7 723.5,1148.2 C 722.5,1147.4 720.4,1148.2 719.8,1147.1 C 719.2,1146.2 725.3,1146.6 726,1146 C 725.6,1146.3 726.9,1144.1 726.8,1144.4 C 726.9,1142.1 721.6,1144.5 721.6,1142.2 C 721.5,1141.8 721.4,1141.4 721.3,1141 C 721.4,1140.4 722.7,1139.8 722.5,1139.3 C 722.2,1138.5 720.9,1138.1 722.1,1137.2 C 723.6,1136.2 718.9,1135.4 721.3,1133.9 C 722.7,1133.1 721.7,1132.5 720.9,1132.3 C 719.3,1132.1 718.9,1131.5 719,1130 C 719.1,1128.9 719.6,1127.5 719.6,1126.4 C 719.6,1125.6 718.6,1124.9 720.2,1124.1 C 721.2,1123.6 722.4,1124 721.9,1122.8 C 721.5,1121.7 720.3,1120.3 721.1,1118.9 C 722.4,1116.4 720.6,1114.1 721,1111.9 C 721.1,1111 721.6,1109.8 722.3,1109 C 723.5,1107.7 721.6,1107.4 721.8,1106.3 C 723.4,1106.9 723.1,1104.4 722.8,1103.8 C 722.1,1102.7 722.6,1102.1 724.1,1102 C 723.5,1101.2 724.8,1098.7 724.8,1097.5 C 724.8,1095.7 726.9,1095.3 728.4,1094.3 C 730.1,1093.2 727.8,1091.5 727.8,1090.1 C 727.9,1088.4 725.7,1086.4 726.5,1084.7 C 727,1083.5 726.7,1080.8 726.4,1079.7 C 726.2,1078.6 726.7,1076 728,1075 C 728.7,1074.5 729,1075.1 729.5,1074.4 C 729.9,1073.9 730,1073.2 730.6,1072.8 C 731,1072.4 731.9,1072.2 732.1,1071.7 C 732.5,1070.6 732.5,1069.3 732.3,1068.3 C 732.2,1067.4 731.9,1066.5 731.7,1065.6 C 731.7,1065.4 730.9,1064.8 731,1064.7 C 731.2,1064 732.1,1064.3 732.5,1063.4 C 732.9,1062.5 733,1061.7 733.1,1060.8 C 733.3,1059.9 734.7,1056 736,1056.2 C 737.3,1056.4 736.4,1053.3 736.3,1053.1 C 736.1,1051.9 737.9,1047.9 736.5,1047.4 C 735.8,1047.2 735.9,1048.4 735.2,1047.1 C 734.6,1046.1 735,1045.7 735.4,1044.6 C 735.8,1043.7 735.2,1043.4 734.7,1043 C 734.1,1042.5 734.5,1041.9 734.4,1041.2 C 734.4,1039.5 732.8,1038.4 732.8,1036.7 C 734.3,1037.5 733,1035.3 732.4,1035 C 731.1,1034.2 731.2,1031.8 731.5,1030.3 C 731.7,1028.6 733,1029.2 733,1027.3 C 733,1025.9 735,1023.4 734.2,1022.3 C 736.4,1023.9 736.3,1019.7 736.1,1018.8 C 735.9,1017.5 734.2,1014 735.3,1012.7 M 746.1,1212.5 C 747.1,1213.8 748.7,1214.7 749,1216.4 C 748.9,1214.5 744.2,1217.7 748.7,1217.8 C 750.4,1217.8 750,1219.4 750.6,1220.2 C 751.3,1221.2 753.1,1221.5 753.8,1222.4 C 755.6,1224.9 759.7,1226 762.8,1227.6 C 764.2,1228.3 766.3,1229.1 768.4,1229.1 C 769.4,1229.1 770.5,1228.9 771.5,1228.9 C 772.9,1229 771.8,1230.2 770.9,1231.2 C 770.1,1230.7 768.2,1231.6 767.1,1231.2 C 765.9,1230.7 763,1232.2 761.3,1231.9 C 759.5,1231.6 757.9,1231.1 755.8,1231.1 C 753.5,1231 750.4,1231.1 748.6,1230.3 C 747.5,1229.8 745.9,1231.1 745.6,1229.5 C 745.3,1228.1 745.7,1226.4 745.7,1224.9 C 745.8,1220.8 745.6,1216.7 746.1,1212.5 M 775.9,1231.1 C 777.8,1229.9 780.2,1230.2 782.1,1229.8 C 780.2,1229.3 777.8,1229.9 775.4,1230.5 C 775.5,1230.8 775.7,1231 775.9,1231.1' + }, + { + codigo: 'UY', + centro: [841.1, 1041.1], + d: 'M 828,1023.8 C 828.9,1022.9 830.3,1022 830,1020.7 C 830.8,1021.4 831.8,1022 833.1,1021.4 C 833.9,1021 834.1,1020 835,1019.9 C 836.6,1019.7 837.9,1021.6 838.8,1022.5 C 840.1,1023.7 842.6,1024.7 842.5,1026.7 C 842.5,1027.4 842.1,1028.6 843.3,1028.4 C 844.1,1028.2 845.6,1027.5 845.3,1026.5 C 846.6,1026.8 848.5,1030.8 849.6,1030.4 C 850.7,1030.1 850.7,1030.9 851.5,1031.3 C 852.4,1032 853.5,1032 854.3,1032.9 C 854.8,1033.6 855.2,1034.5 856,1035 C 856.9,1035.7 858.3,1035.8 859.1,1036.6 C 860.7,1038.2 860.8,1040.2 863,1041.3 C 865.4,1042.6 863.9,1043.3 862.3,1045.2 C 861,1046.6 860.9,1050.2 862.2,1051.1 C 863,1051.7 860.7,1055 859.8,1056 C 859.1,1056.9 856.5,1060.4 855.2,1059.1 C 855.8,1060.1 853.9,1060.6 853.1,1060.9 C 851.1,1061.6 850.4,1061.6 848.5,1061.2 C 846.9,1060.9 845.4,1060.1 843.6,1060.9 C 842.8,1061.2 842,1061.6 841.2,1061.7 C 840,1061.8 840.3,1061 839.6,1060.6 C 838.4,1060 836.7,1060.2 835.6,1059.5 C 834.1,1058.5 833.7,1057.4 831.4,1057.5 C 829.9,1057.6 828.6,1058.2 827.9,1057.1 C 826.8,1055.6 824.9,1054.6 824.2,1052.9 C 823.7,1051.7 823.6,1046.6 825.5,1046.1 C 827.5,1045.6 826.6,1043.5 826.3,1042.6 C 826,1041.9 825.9,1041.2 825.8,1040.5 C 825.6,1039.9 826.6,1039.4 826.5,1038.6 C 826.4,1037.9 825.5,1035.8 826.3,1035.1 C 828.1,1033.5 826.5,1032.5 827.3,1031.4 C 827.9,1030.7 827.9,1027.2 828.1,1027.1 C 829.6,1026.2 828.1,1025 828,1023.8' + }, + { + codigo: 'BR', + centro: [859.9, 853.3], + d: 'M 972.7,877 C 974,874.1 970.9,876.4 972.7,877 M 871.6,773.8 C 872.2,773.1 873.1,773.3 873.8,772.7 C 873.1,771.6 871.2,772.6 871.6,773.8 M 885.2,743.3 C 886.3,742.8 885.7,741.8 885.1,741.1 C 884.1,741.6 884.7,742.6 885.2,743.3 M 873.8,772.3 C 875.8,771.9 880.6,767.2 879.4,764.9 C 878.3,762.6 876,765.7 875.7,766.9 C 875.5,767.8 875.9,768.8 875,769.4 C 874.1,770 873.3,771.1 873.8,772.3 M 877.7,763.8 C 878.5,763.3 880.5,761.9 879.5,760.8 C 878.5,761.4 878.1,762.8 877.7,763.8 M 877.8,770.1 C 878.9,769.7 879.7,768.2 879,767.2 C 879,768.3 877.8,769 877.8,770.1 M 880.9,767.1 C 880.1,767.4 879.5,768.1 879.3,769 C 880.3,768.7 880.5,767.6 881.3,767.1 C 881.2,767.1 881,767.1 880.9,767.1 M 879.8,764.3 C 880.1,763.6 880.3,762.8 881.1,762.5 C 880,761.4 879.5,763.5 879.8,764.3 M 879.7,767.9 C 880.3,767.2 880.7,766.2 881.5,765.6 C 882,765.3 882.2,764.4 881.3,764.7 C 880.4,765 879.6,766.9 879.7,767.9 M 881.7,762 C 882.3,761.5 883,761.1 883.5,760.5 C 884.2,759.8 883,759.5 882.5,759.8 C 881.5,760.2 879.5,761.6 881.7,762 M 882.4,772.3 C 882.9,773.1 883.3,774.1 884,774.9 C 884.5,775.4 886.8,775.6 885.6,774.9 C 886.6,775.1 887.9,774.4 888.9,774.7 C 889.5,774.9 890.5,775.5 890.3,774.2 C 890.5,774.5 890.6,774.8 890.8,775 C 891.5,774.5 892.3,773.8 892.3,772.9 C 892.7,774.4 895.2,773.3 896.1,772.9 C 897.6,772.1 897.5,770.6 898.4,769.3 C 899.2,768 899.5,766.8 899.8,765.4 C 900,764 901.6,761.7 899.2,761.5 C 897.4,761.4 895,760.3 893.3,761 C 892.5,761.4 893.4,761.7 892.1,761.7 C 891,761.6 890.1,761.5 889.1,761.2 C 887.2,760.7 884.6,759.8 883.4,762 C 882.7,763.2 882.6,765 884.2,765.5 C 883.6,765.4 883,765.2 882.5,765.1 C 882.2,765.7 882.7,766 882.7,766.7 C 882.6,767.4 882.1,767.9 882.5,768.7 C 882.9,769.5 884.1,768.4 884.7,768.6 C 883.7,770.3 883.9,769.1 882.2,769.3 C 882.6,770.2 882.4,771.3 882.4,772.3 M 884,759.5 C 884.9,760.2 884.9,759.2 884.6,758.6 C 883.9,757.1 883.1,758.7 884,759.5 M 884.9,758.1 C 885.6,757 886.2,755.7 885.2,754.6 C 884.7,755.5 883.9,757.8 884.9,758.1 M 887.7,759.5 C 888.4,760.9 889.8,758.7 890.4,758.1 C 891.9,756.5 889.2,756.8 888.3,757.1 C 887.5,757.3 885.6,757.4 885.3,758.4 C 885.1,759.3 887.2,759.5 887.7,759.5 M 886.3,756.6 C 886.7,756.3 888.7,754.8 887.9,754.1 C 886.8,753.1 885.5,755.7 886.3,756.6 M 890.1,759.5 C 889.1,761.1 891.6,760.8 892.4,760.5 C 893.8,760.1 891.3,758.3 890.1,759.5 M 900.1,769.6 C 902.1,771.5 900.5,767.3 900.1,769.6 M 929.6,786.1 C 930.1,785.2 930.5,784.2 930.5,783.1 C 929.3,783.6 929.7,785.1 929.6,786.1 M 704.8,824.7 C 705.5,824 705.2,823.5 706.3,823 C 707.5,822.4 706.2,821.2 706.6,819.9 C 707.2,817.5 709.8,817.8 710.9,816.2 C 711.6,815 711.1,813.9 710.9,812.7 C 710.6,811.6 711.2,810.6 711.9,809.7 C 713.2,808 712,805.5 713.3,803.9 C 714,803.2 715.4,803.1 716.1,802.4 C 716.8,801.7 716.9,801 717.9,800.6 C 719.1,800.2 719.8,799 721,798.5 C 722.1,798.1 723.7,798.1 724.9,797.9 C 726.3,797.6 727.4,797.7 728.5,796.6 C 728.7,796.4 730.2,794.8 730.5,795.4 C 730.8,795.9 731.4,795.7 732,795.6 C 732.7,795.6 733.4,796.6 733.7,797.1 C 733.9,796.9 734.1,796.6 734.3,796.4 C 735.3,798.1 736,794.7 736.1,794.1 C 736.6,791.3 737.1,788.5 737.5,785.7 C 738,781.9 738.8,778.2 739.5,774.4 C 739.7,772.8 740.6,771.4 740.2,769.7 C 739.8,768.2 738.8,767.2 738.8,765.5 C 738.7,763.8 737.7,763.3 736.4,762.5 C 734.7,761.4 735.1,759.7 735.1,758 C 735.1,757 734.7,755.8 735.3,754.8 C 735.6,754.3 737.5,753.7 738,753.9 C 738.9,754.2 739.2,753.1 740.4,753.7 C 741.6,754.3 742,754 741.9,752.6 C 741.7,750.5 738.5,749.1 736.6,750.4 C 736.8,748.9 736,746.5 736.7,745.1 C 737.3,743.8 739.6,744.6 740.5,744.6 C 742.7,744.6 744.9,744.6 747.1,744.7 C 747.5,744.7 748.8,744.9 748.9,744.3 C 748.9,743.9 749.1,742.4 749.6,742.4 C 750.4,742.5 750.1,745.3 751.6,744.3 C 752.6,743.6 753.1,742.5 753.9,741.6 C 755.1,740.5 756.3,742.4 756.9,743.3 C 757.8,745 757.7,746.1 757.6,748 C 757.6,748.4 757.4,749.4 758.2,749.3 C 759.3,749.1 759.5,749 760.4,749.9 C 761.4,751 762.4,752.3 763.9,752.9 C 765.8,753.8 766.4,752 767.8,751.2 C 770.6,749.8 769,753.2 769.6,754 C 770.3,753.7 771.6,751.9 772,751.3 C 772.7,750.2 773.1,749.6 774.3,749.1 C 775.4,748.7 776.2,748.5 777,747.7 C 777.5,747.1 778.7,746.1 778.7,747.6 C 779.5,746.2 780.5,745.7 780.8,744 C 781.1,742.7 781.7,742.7 782.9,742.4 C 783.3,742.2 785.4,741.1 785.7,740.8 C 787.1,738.8 784.9,738.2 783.3,738.3 C 782.5,738.4 781.7,738.3 781.1,737.7 C 780.7,737.4 781.3,736.3 781.2,735.9 C 780.7,733.7 779,732.3 779.4,729.8 C 779.7,728 778.4,727.4 777.2,726.3 C 776.6,725.7 774.5,723.4 775.4,722.4 C 776.1,722.7 776.4,723.7 777.1,723.8 C 778,723.9 779.9,723.2 780.4,724.6 C 780.7,725.7 781.1,726 782.2,725.4 C 783.2,724.9 784.5,726.6 785.4,725.8 C 786.9,724.3 788.1,729.2 790.2,728.6 C 791.5,728.3 790.2,725.7 790.7,724.9 C 791.1,724.2 792.2,724.6 792.7,723.8 C 793.6,722.8 794.5,724.1 795.4,724 C 796.9,723.8 799.8,723 800.3,721.6 C 800.2,721.7 802.3,720.5 802.1,720.5 C 803.1,720.7 803.7,720.6 804.4,719.8 C 805.5,718.3 808.9,716.4 806.1,714.5 C 807.2,714.4 808.2,714.6 809.3,714.3 C 810.1,714 811.1,714.1 811.6,715.1 C 812.5,716.9 810.9,718.3 811,720 C 811.1,720.9 813.4,721 814,721.5 C 814.3,721.8 813.7,722.5 813.9,723 C 814.3,723.8 814.7,724.6 815.2,725.3 C 815.7,726.1 813.2,728.1 813,728.8 C 812.9,729.5 813.1,730.3 813,731 C 812.7,732.3 811.9,733.6 811.8,734.9 C 811.6,736.9 812.5,738.2 813.4,739.9 C 813.8,740.6 813.3,743.7 814.6,743.6 C 814.5,743.9 814.4,744.1 814.3,744.3 C 815.8,744.5 816.8,746.3 817.6,747.3 C 818.3,748.1 819.6,747.7 820.1,748.6 C 820.7,749.4 820.9,749.3 821.7,748.9 C 822.1,748.7 823.9,748.3 823.5,747.5 C 822.7,746.1 826.3,746.4 826.7,746.2 C 827.4,746 827.9,745.2 828.6,744.9 C 829.5,744.4 830.1,745.2 830.9,744.2 C 832,742.9 833.1,741.6 834.7,742.7 C 836.3,743.9 837.6,742.4 839.2,742.8 C 840.2,743.1 842.7,744.5 843,742.7 C 843.4,741.1 840.7,740.7 841.7,739.2 C 842.9,737.4 843.5,738.6 845.3,738.5 C 846.4,738.4 847.3,738.3 848.2,737.9 C 850.2,737 849.8,737.3 851.3,738.5 C 851.6,738.7 851.5,737.9 851.8,738.5 C 852.3,739.2 853,739.5 853.6,740 C 854.5,740.6 855.3,740.6 856.2,741.1 C 857.2,741.7 856.8,740.7 857.6,740.5 C 858.3,740.4 858.5,739.6 859,739.3 C 859.5,739.1 860.2,739.7 860.7,739.8 C 861.3,739.8 863.7,739.3 863.3,740.6 C 864,740.3 865.1,741.1 865.7,740.6 C 866.5,739.8 867.5,739.3 868.1,738.4 C 869,737 869.7,735.4 870,733.9 C 871,729.8 873.8,726.8 876.4,723.5 C 876.5,724.1 876.7,724.6 877.1,725 C 876.8,724.1 876,722.9 876.8,722 C 879,723.4 879.3,725.5 879.1,727.9 C 879.3,727.2 879.3,726.5 879.9,726 C 879.9,729.1 880.3,732.4 881.5,735.3 C 881.9,736.5 883.9,740.2 882.5,741.3 C 883.6,741 883.8,742.1 884.1,742.8 C 884.8,744.1 886.3,743.6 887.4,744 C 890,745.1 889.6,748.1 887.4,749.1 C 888,748.9 888.6,749 889.1,749.4 C 888.1,750.4 886.4,751.3 886,752.7 C 885.8,753.4 885,753.7 884.6,754.3 C 884,755.2 883.8,756.2 883,757.1 C 882.1,758.2 880.8,759 879.7,760 C 878.4,761.2 877.7,762.9 876.5,764.3 C 875.5,765.6 875.1,766.6 875.3,768.3 C 875.3,769.2 873.6,769.4 873.6,770.6 C 873.5,772.4 872.2,771.4 871.3,771.4 C 870.5,771.4 868,772.6 867.7,773.4 C 868.4,773.3 872.3,772.5 871.2,774.3 C 871.9,773.5 873.1,773.6 873.9,773 C 875,772.4 875.8,771.8 876.9,771.3 C 878.4,770.6 880.5,768.8 881.3,767.5 C 883.2,768.5 881.4,771.4 882.7,772.9 C 883.1,773.5 882.6,775.1 883.4,775.4 C 884.1,775.6 885.3,775.2 884.9,776.4 C 886.4,776.7 889.4,773.8 889.6,777.1 C 889.5,776.1 890.5,775.9 891.3,775.7 C 891.6,775.8 891.9,775.6 892.1,775.2 C 892.4,774.4 893.2,774.7 893.9,774.6 C 893,777.3 892.1,779 892.2,781.8 C 893.5,780.2 892.8,776.8 894.9,775.8 C 896.3,775.2 896.5,775 897.4,773.7 C 898.7,771.5 899,773.1 900.4,773.9 C 900.4,773.5 900.3,773 900.1,772.6 C 900.8,772.6 901.5,772.4 902.3,772.3 C 901.5,771.9 900.7,772.2 899.9,772.3 C 899.7,771.3 900.4,771.2 901,770.7 C 901.9,769.8 901,767.9 902.1,766.8 C 903.4,765.6 903,766.6 903.9,766.3 C 904.5,766.1 905.7,764.5 905.9,766.1 C 907.1,764.9 907.1,766.5 908.2,766.2 C 907.8,765.7 907.7,765.1 907.9,764.6 C 908.6,764.8 910.3,765.2 909.9,766.2 C 910.1,766.1 910.4,766 910.6,765.9 C 910.7,766.1 910.8,766.4 910.9,766.7 C 911.5,766.2 911.6,766.2 911.6,767 C 912.2,766.8 912.6,766.3 912.6,765.7 C 912.3,766.7 913.6,766.8 913.2,767.7 C 913.3,767.2 913.7,766.8 914.3,767 C 914.3,767.6 913.9,768.1 913.3,768.2 C 914.3,767.6 915.2,769.1 916.2,768.2 C 916.1,769.5 917.1,768.7 917.4,768 C 917,769.7 918.4,769 918.3,770 C 918.6,769.9 918.9,769.6 919.1,769.3 C 919,770.2 920.2,769.8 920.3,770.7 C 920.6,770.5 920.8,770.2 921.1,770 C 921.1,770.5 921.3,771 921.6,771.4 C 921.9,771.2 922.1,771 922.4,770.8 C 922.5,771.6 922.8,771.9 923.4,771.2 C 922.9,771.6 922.8,772.2 923.2,772.7 C 923.3,772.1 923.7,771.7 924.3,771.6 C 923.5,772.4 923.8,773.9 924.5,774.6 C 924.8,774 924.5,772.9 925.3,772.6 C 926.8,772 926.1,773.1 926.8,773.4 C 926.8,772.8 927.1,772.3 927.7,772.1 C 927.4,772.5 927.3,773 927.3,773.6 C 929,772.5 927.1,775.6 928.9,774.5 C 928.6,774.7 928.4,775 928.2,775.2 C 928.7,775.4 929.3,775.1 929.6,774.7 C 929.1,775.7 930.8,775.1 930.1,776.6 C 929.4,777.8 929.6,778.9 928,779.4 C 928.6,779 929,779.4 929.2,780 C 929.3,779.1 930.3,777.7 931.1,778.8 C 932,780.1 930.4,780.5 929.9,781.5 C 929.4,782.3 928.6,784.8 928.9,785.7 C 929.2,786.6 927.6,787.5 928.3,788.2 C 928.4,786.8 930,786.4 930.6,785.3 C 931.2,784.2 930.9,782.4 931.6,781.5 C 931.9,781.1 933.4,780 933.8,780.8 C 934.6,782.1 932.1,782.8 931.9,783.9 C 932.6,783.4 932.9,783.6 932.6,784.4 C 933.5,784 934.7,780.7 935.1,782.4 C 935.2,781.2 937.5,780.6 938.3,781.1 C 938.3,778.8 942.9,781.3 943.7,781.8 C 944.3,782.1 947.6,783.5 947.6,784.1 C 948.3,783.6 950.2,784.8 949.9,783.3 C 950.8,783.5 951.4,784.2 952.3,784.6 C 953.3,785 954.3,785 955.1,785.7 C 955.1,784.4 956,784.5 957.1,784.5 C 959.2,784.4 961.2,783.5 963.3,784 C 967.4,784.9 971,788.3 974.1,790.7 C 975.1,791.6 976.3,791.7 977.1,792.7 C 978,793.7 978.6,794.8 979.3,795.8 C 980.2,797 981.4,797.5 982.2,798.6 C 983,799.8 984.6,800 985.5,801.2 C 986.5,802.4 987.9,801.9 988.9,803 C 990.2,804.2 992.4,803.7 994,803.6 C 997.6,803.1 1000.2,804.4 1001.1,808 C 1001.5,809.4 1002.1,810.7 1002.1,812.2 C 1002.1,812.6 1001.7,813.3 1002,813.5 C 1002.4,813.7 1002.6,814.2 1002.8,814.6 C 1003.4,816.1 1004.4,819.6 1003.5,821.2 C 1003.8,820.9 1004,820.5 1004.2,820.2 C 1004,821.8 1005.2,823.8 1003.4,825 C 1003.7,825 1004,825.1 1004.2,825.2 C 1003.5,826.5 1004.5,828.2 1003.7,829.4 C 1002.8,830.7 1003.4,832.4 1002.7,833.7 C 1001.9,835.3 1001.6,837 1000.8,838.6 C 1000,840.3 998.2,841.5 997.5,843.3 C 997.2,843.1 997,842.9 996.8,842.7 C 996.8,843.4 996.6,844.3 995.9,843.1 C 996,843.6 996.3,843.8 996.8,843.8 C 995.7,845.9 994,848.6 992.2,850.2 C 991.4,850.8 990.4,851.1 989.7,851.7 C 988.9,852.4 988.2,853.3 987.3,853.8 C 987.5,853.2 987.1,852.7 986.6,852.6 C 986.5,853.2 987.3,853.4 987.2,854.1 C 987,854.9 986.2,855.9 985.5,854.9 C 985.8,855.4 986.7,855.9 986.1,856.7 C 985.8,857.2 984.4,858.7 985,857 C 984.5,857.7 984.5,858.6 983.9,859.3 C 984.2,859.2 984.5,859.1 984.8,859 C 983.1,861.2 980,872.6 975.9,871.9 C 976.7,870.2 975,869.9 974.5,868.5 C 974.4,869.3 973.5,871.5 972.9,869.8 C 973,870.5 974.1,870.8 974.1,871.6 C 973.9,872.9 972.2,873.9 972.6,875.3 C 971.5,874.5 971.6,876.5 971.6,877.3 C 971.7,877 971.8,876.6 972,876.2 C 972.3,877.3 972.3,878.1 972.2,879.2 C 971.9,879 971.7,878.7 971.4,878.5 C 972,879 972.5,880.7 972.2,881.5 C 972.5,881 972.7,880.5 972.9,880 C 972.8,883 971.7,885.8 972,888.8 C 972.3,891.5 973.3,894.2 973.3,896.9 C 973.2,901.5 969.9,905.9 970.8,910.7 C 971.4,913.3 969.7,913.7 968.3,915.7 C 966.8,918 966.4,920.9 966.5,923.4 C 966.6,925.3 967.5,929 965.2,930 C 963,930.9 964.4,934.9 961.8,935.3 C 963.5,936.8 960.3,938.8 959.2,939.7 C 958.3,940.5 958.5,941.1 958.1,942.2 C 957.5,943.8 956.7,945.3 956.8,947 C 956.8,947.9 957.4,949.3 956.6,950.1 C 955.4,951.5 953.7,951.4 952.2,952.2 C 951.2,952.8 950.1,953.9 949.6,954.9 C 949.3,955.5 949.5,956.1 949.7,956.8 C 949.8,957.4 948.9,957.7 949.2,958.5 C 948.3,957.4 945.4,957.9 944.1,958.2 C 943.3,958.3 942.1,958.7 941.4,958.3 C 940.4,957.7 941.2,956.7 941.3,955.8 C 938.9,956.1 940.7,957 940.3,958.2 C 939.9,959.4 935.2,958.9 934.1,959.5 C 934.9,958.7 936.1,959.1 937,958.8 C 936.1,957.9 935.1,957.4 933.8,958.2 C 932.7,958.8 932.3,958.3 931.2,958.4 C 930.3,958.5 929,958.6 928.6,959.5 C 928.3,960.4 929.6,960.8 930.1,961.1 C 928.9,962.1 927.4,961.1 926.6,962.2 C 925.8,963.1 924.8,963.2 923.8,963.9 C 922.9,964.4 923.9,965.2 923,965.7 C 921.8,966.5 920.1,964.4 918.4,965.7 C 918.2,965.9 917,967.8 916.6,967.4 C 916.3,966.9 916.6,966.3 915.8,966.5 C 916.1,967.8 914.3,967.9 913.3,968.5 C 912.1,969.3 911.4,970.4 910.4,971.4 C 909.3,972.5 907.7,972.8 906.5,973.7 C 905.4,974.6 904.8,975.8 903.6,976.5 C 903.9,976.7 904.1,976.8 904.3,977 C 903.4,977.8 902.5,978.8 901.9,979.9 C 901.9,979.3 902.1,978.8 902.5,978.4 C 901.7,978.7 900.9,978.5 900.2,978.2 C 900.4,979.7 899.5,980.6 898.1,979.3 C 898,980.2 900,981.1 900.8,981 C 900.2,981.5 900,982.2 899.8,982.9 C 899.6,983.4 898.5,983.3 898.1,983.5 C 898.6,983.5 899.1,983.5 899.5,983.6 C 899.3,984.3 899.5,985 899.2,985.6 C 898.9,986.4 898,986.6 897.9,985.7 C 898.1,986.3 897.9,987.1 898.5,987.4 C 899.4,987.7 898.6,989.5 898.7,990.2 C 898.8,991.3 900,992.9 899.1,994.3 C 900.3,994.1 900,995.3 899,995.5 C 899.9,996.2 898.6,999.3 899.2,1000.5 C 899.8,1001.7 898,1004.7 897.7,1005.9 C 897.4,1005.6 897.1,1005.3 896.9,1004.9 C 897.1,1005.5 896.9,1006.3 897.7,1006.5 C 896.7,1007.6 895.2,1008.3 894,1009.2 C 892.7,1010.2 891.7,1011.4 890.8,1012.7 C 888.6,1015.8 887.6,1019.1 886.2,1022.4 C 884.9,1025.6 882.8,1028.4 880.5,1031.1 C 878.2,1033.6 875.2,1035.5 872.5,1037.8 C 873.1,1036.9 872.8,1035.8 872.8,1034.9 C 873.8,1035.1 874.2,1035.2 875.4,1034.6 C 876.4,1034 877.1,1032.7 878,1032.2 C 879.2,1031.7 879.5,1031.2 879.6,1030 C 879.8,1029.2 880.1,1027.8 880.9,1029 C 880.7,1027.8 881.4,1027.4 882.2,1026.6 C 882.9,1025.9 883.1,1025.2 883.1,1024.3 C 883.1,1023.7 882.8,1021.7 884,1023 C 884,1022.7 883.9,1020.7 883.3,1020.9 C 883,1021 881,1022.3 880.9,1022.7 C 880.5,1022.2 880.3,1021.5 879.6,1021.3 C 878.8,1021 879.2,1019.8 878.4,1019.4 C 878.1,1021.4 879,1021.3 879.6,1022.7 C 877.8,1023.1 878.8,1025 878.5,1026.1 C 878.5,1025.5 878.3,1025.1 878.1,1024.6 C 877.7,1025.3 878.2,1026.2 877.8,1026.8 C 877.6,1027 877,1027 877.1,1027.4 C 877.1,1029 875.5,1029.9 874.2,1030.5 C 873.2,1031.1 873.4,1032.2 872.9,1033.1 C 872.5,1033.8 870.3,1035.5 872.1,1035.7 C 871,1036.3 871.4,1037.6 872.5,1036.9 C 872.5,1037.8 871.6,1038.6 871,1039.4 C 870.1,1040.7 869.9,1042.2 869.4,1043.6 C 868.4,1046.3 866.3,1047.9 864.4,1050 C 862.8,1051.8 861.2,1051.4 861.4,1049.4 C 861.5,1048.5 861.4,1047.5 861.6,1046.6 C 861.8,1045.5 863.4,1044.5 864.1,1043.6 C 865.1,1042 863.2,1041.5 862.3,1041 C 861.2,1040.4 860.8,1039.5 860.4,1038.4 C 859.5,1036 857.1,1036 855.4,1034.4 C 854.5,1033.6 854.2,1032.3 853,1031.8 C 852.5,1031.7 852,1031.6 851.4,1031.5 C 850.9,1031.2 850.8,1030.5 850.2,1030.3 C 849.4,1029.8 848.8,1030.3 848.1,1029.3 C 847.4,1028.1 846.8,1026.9 845.3,1026.5 C 845.7,1027.7 842.3,1029.7 842.6,1027.2 C 842.8,1025.1 840.4,1023.8 839.1,1022.7 C 838.1,1021.9 836.2,1019 834.2,1020.2 C 833.6,1020.6 833.6,1021.6 832.7,1021.5 C 831.6,1021.4 830.7,1021.7 830.1,1020.7 C 831.8,1020.1 832.3,1018 833.8,1017 C 835.5,1015.9 836.5,1014.2 837.4,1012.5 C 838.3,1010.6 840.3,1009.2 841.5,1007.5 C 842.2,1006.6 843.6,1004.1 844.6,1005.4 C 845,1004.8 844.8,1004.3 844.3,1004.1 C 845.5,1002.9 846.9,1001.8 848.4,1001 C 850,1000.2 850.3,999.4 851.5,998.4 C 852.6,997.4 853.9,997.2 855.2,996.6 C 856.2,996.1 858.1,994.2 859.1,994.7 C 859.7,992.9 859.9,991.5 860.2,989.7 C 860.4,987.5 860.3,986.4 859.8,984.4 C 859.4,983 859.3,981.4 857.7,980.8 C 856.8,980.5 855,980.3 854.7,981.6 C 853.9,981.1 852.8,980.6 853.3,979.4 C 854,977.7 854,976.5 854.3,974.7 C 854.6,973.5 854.8,972 855.4,970.9 C 856.1,969.7 854.4,968.6 855.8,967.7 C 855,967.1 854.4,965.9 853.2,965.7 C 852,965.6 851,966.7 849.9,967.1 C 846.8,968.1 846.4,965.2 846,962.9 C 845.7,961.6 845.1,960.1 845,958.7 C 844.9,957.4 845.4,956.2 844.5,955.3 C 843.6,954.4 844.1,953.1 842.5,952.7 C 841.3,952.4 840.4,952.1 839.5,951.2 C 838.6,950.3 837.7,950.5 837.8,951.6 C 838.4,955.2 835.3,952.6 834.3,952.5 C 832.9,952.3 831.4,952.2 830.2,951.5 C 829.6,951.1 827,950.9 826.8,950 C 826.7,949.2 827.5,948.8 827.5,947.9 C 827.6,947.1 827.1,946 827.5,945.2 C 828.2,943.9 827.8,942.6 828.2,941.3 C 828.5,940.3 826.8,939.9 827.9,938.7 C 827,938.7 826.9,937.8 826.9,937.2 C 826.9,936.1 826.4,935.8 825.9,935 C 824.7,933.2 829.4,933.1 827.7,931.7 C 825.6,930 826.5,928.6 827.8,926.2 C 828.2,925.5 829.4,924.3 829.1,923.6 C 828.6,922.6 829.1,921.6 829.5,920.4 C 829.9,919.5 830.7,918 830.7,917.1 C 830.7,916.1 829.7,915.3 829.4,914.5 C 829.1,913.4 829.2,911.1 827.9,911 C 826.2,910.8 824.3,909.6 823.9,907.9 C 823.7,906.7 823.3,905.4 823.4,904.1 C 823.5,902.9 824.5,901.9 824.6,900.6 C 822.1,901.2 819.6,900.9 817.1,900.7 C 815.5,900.5 811.9,901 810.8,899.8 C 809.9,898.6 810.4,896.3 810.3,894.9 C 810.1,893 807.9,891.9 808,890.2 C 808.6,890.1 809.2,890.1 809.9,890.1 C 809.6,888.1 809.6,885.9 808.8,884 C 808.5,883.2 808,882.7 808.3,881.8 C 808.5,880.8 808.7,880.2 808,879.4 C 805.6,876.7 801.8,876 798.3,876.7 C 797.3,877 795.8,874.4 795.4,873.8 C 794.9,873.1 794.5,873.4 793.8,873.4 C 793.2,873.3 791.9,872.5 791.5,872 C 791.1,871.7 790.4,872 790,871.7 C 789.3,871.2 789,870.3 788.6,869.6 C 788,868.7 787.7,868.9 786.8,869.3 C 785.8,869.7 785.4,868.6 784.8,868.2 C 783,867 782.3,868.3 780.5,867.9 C 778.4,867.4 778.2,867.2 777.2,865.6 C 776.7,864.9 774.9,863.6 774,863.5 C 773.2,863.5 773.5,862.2 773,861.6 C 772.7,861.2 771.8,861.3 771.9,860.7 C 772,859.2 770.7,858.4 770.7,856.8 C 770.6,855.9 771.4,855 771.3,854.2 C 771.2,853.5 770.4,853.3 770.3,852.5 C 770.3,851.9 770.4,851.2 770.3,850.5 C 770.1,849.7 771.1,849.1 771.3,848.3 C 771.7,846.8 771.6,844.3 770.2,843.3 C 769.9,843.6 769.6,844.5 769,844.4 C 767.6,844.3 766.6,844.3 765.2,844.5 C 763.6,844.6 761,844.7 760,846.2 C 758.5,848.3 756.5,848.3 754.7,849.7 C 754.1,850.2 753.2,850.8 753.1,851.5 C 752.8,852.6 751.7,851.7 751.1,851.7 C 750.1,851.6 749.5,852.7 749.2,853.4 C 748.6,854.5 747.7,855 746.6,855.5 C 746.4,855.6 744.5,856.2 744.7,855.3 C 745,854.3 743.7,854.5 742.9,854.5 C 740.9,854.4 737.9,853.5 735.9,854.1 C 734.9,854.4 733.9,855.5 732.8,855.2 C 732.1,854.9 731.3,853.9 730.5,854.5 C 730.4,851.9 730.7,849.2 730.6,846.6 C 730.5,845.3 730.8,844.9 731.2,843.8 C 731.2,843.5 731.1,843.1 730.9,842.9 C 730.6,842.1 731.2,841.8 731.4,841.2 C 729.5,841.2 727.6,844.2 726.3,845.3 C 724.3,847.1 721,846.4 718.7,846.1 C 719.2,844.8 718.2,842.8 717.4,842 C 715.8,840.5 712.8,841.6 711,840.7 C 713.2,837.9 712.6,837.1 710.4,834.8 C 709.9,834.3 709.9,833.8 709.7,833.2 C 709.6,832.5 708.8,832.3 708.4,831.8 C 707.5,830.6 707.8,829.1 706.4,828.1 C 707.9,827.2 705.2,825.4 704.8,824.7 M 898.9,987.5 C 899.1,987.8 899.3,988 899.5,988.2 C 899.8,987.5 900.2,986.7 899.6,986.1 C 899.1,986.5 898.9,987 898.9,987.5 M 899.4,1000.3 C 900.2,999.4 901.1,997.6 900.4,996.6 C 899.2,997.2 899.4,999.3 899.4,1000.3 M 973.9,873.2 C 974.5,872.7 975.9,871.8 974.8,871.1 C 975,871.9 973.9,872.4 973.9,873.2' + } +]; diff --git a/src/lib/server/editorial.ts b/src/lib/server/editorial.ts index d792264..be354cb 100644 --- a/src/lib/server/editorial.ts +++ b/src/lib/server/editorial.ts @@ -9,24 +9,41 @@ import { and, asc, desc, eq, inArray } from 'drizzle-orm'; import { db } from './db'; -import { cancion, entrada, entradaCancion, entradaEtiqueta, etiqueta, pagina } from './db/schema'; +import { + cancion, + entrada, + entradaCancion, + entradaEtiqueta, + etiqueta, + medio, + pagina +} from './db/schema'; import { componer } from './markdown'; import { leerCatalogo } from './catalogo'; import * as q from '$lib/catalogo/consultas'; +import { PORTADA_POR_DEFECTO } from '$lib/content/schema'; import type { Cancion, EntradaDeBlog } from '$lib/types'; -/** Una entrada, con lo que necesita el listado. */ +/** + * Una entrada, con lo que necesita el listado. + * + * La portada tiene respaldo: una entrada sin imagen propia sale con la de + * reserva en lugar de con un hueco, porque el listado la enseña siempre y una + * tarjeta a medias descoloca la rejilla entera. + */ function comoEntrada(fila: { slug: string; titulo: string; fecha: string; resumen: string; -}): Omit { + imagenClave?: string | null; +}): Omit { return { slug: fila.slug, titulo: fila.titulo, fecha: fila.fecha, resumen: fila.resumen, + imagen: fila.imagenClave ? `/${fila.imagenClave}` : PORTADA_POR_DEFECTO, borrador: false }; } @@ -39,9 +56,11 @@ export async function entradasPublicadas(): Promise { slug: entrada.slug, titulo: entrada.titulo, fecha: entrada.fecha, - resumen: entrada.resumen + resumen: entrada.resumen, + imagenClave: medio.clave }) .from(entrada) + .leftJoin(medio, eq(medio.id, entrada.imagenId)) .where(eq(entrada.estado, 'publicado')) .orderBy(desc(entrada.fecha)); @@ -81,8 +100,9 @@ export interface EntradaCompleta extends EntradaDeBlog { export async function obtenerEntrada(slug: string): Promise { const [fila] = await db - .select() + .select({ entrada, imagenClave: medio.clave }) .from(entrada) + .leftJoin(medio, eq(medio.id, entrada.imagenId)) .where(and(eq(entrada.slug, slug), eq(entrada.estado, 'publicado'))) .limit(1); @@ -93,14 +113,14 @@ export async function obtenerEntrada(slug: string): Promise e.slug === slug); return { - ...comoEntrada(fila), + ...comoEntrada({ ...fila.entrada, imagenClave: fila.imagenClave }), etiquetas: etiquetas.map((e) => e.nombre), canciones: temas.map((t) => t.slug), - html: componer(fila.cuerpo), + html: componer(fila.entrada.cuerpo), temas: temas .map((t) => q.obtenerCancion(catalogo, t.slug)) .filter((c): c is Cancion => c !== undefined), diff --git a/src/lib/server/taller.ts b/src/lib/server/taller.ts index 57fb90d..afec9bd 100644 --- a/src/lib/server/taller.ts +++ b/src/lib/server/taller.ts @@ -496,3 +496,159 @@ async function fichaDeGenero(generoId: string): Promise { })) }; } + +/* ------------------------------------------------------------------------- + * La portada de géneros + * ---------------------------------------------------------------------- */ + +/** Un género, con lo que hace falta para buscarlo y para pintarlo en el mapa. */ +export interface GeneroEnElMapa { + slug: string; + nombre: string; + resumen: string; + origenLugar: string | null; + origenAno: number | null; + /** Su relación con cada país: dónde nació y quién lo adoptó. */ + paises: { codigo: string; nombre: string; relacion: string }[]; + alias: string[]; + temas: string[]; +} + +/** + * Todos los géneros con sus países, alias y temática. + * + * Es una sola consulta por tabla y el cruce se hace aquí: son nueve géneros y + * unas decenas de filas en cada auxiliar. Con una consulta por género serían + * treinta viajes para pintar una página que se ve entera de un vistazo. + */ +export async function generosParaLaPortada(): Promise { + const [generos, paises, alias, temas] = await Promise.all([ + db + .select({ + id: genero.id, + slug: genero.slug, + nombre: genero.nombre, + resumen: genero.resumen, + origenLugar: genero.origenLugar, + origenAno: genero.origenAno + }) + .from(genero) + .innerJoin(capitulo, eq(capitulo.generoId, genero.id)) + // Solo los que tienen ficha publicada: el bolero-son existe como fila + // del linaje y no tiene página a la que llevar. + .where(eq(capitulo.estado, 'publicado')) + .orderBy(asc(genero.nombre)), + + db + .select({ + generoId: generoPais.generoId, + codigo: pais.codigo, + nombre: pais.nombre, + relacion: generoPais.relacion + }) + .from(generoPais) + .innerJoin(pais, eq(pais.codigo, generoPais.paisCodigo)), + + db.select({ generoId: generoAlias.generoId, nombre: generoAlias.nombre }).from(generoAlias), + + db + .select({ generoId: generoTema.generoId, nombre: etiqueta.nombre }) + .from(generoTema) + .innerJoin(etiqueta, eq(etiqueta.id, generoTema.etiquetaId)) + .orderBy(asc(generoTema.orden)) + ]); + + return generos.map((g) => ({ + slug: g.slug, + nombre: g.nombre, + resumen: g.resumen, + origenLugar: g.origenLugar, + origenAno: g.origenAno, + paises: paises + .filter((p) => p.generoId === g.id) + // La cuna primero: es el dato que se lee, los demás acompañan. + .sort((a, b) => (a.relacion === 'cuna' ? -1 : 1) - (b.relacion === 'cuna' ? -1 : 1)) + .map(({ codigo, nombre, relacion }) => ({ codigo, nombre, relacion })), + alias: alias.filter((a) => a.generoId === g.id).map((a) => a.nombre), + temas: temas.filter((t) => t.generoId === g.id).map((t) => t.nombre) + })); +} + +/* ------------------------------------------------------------------------- + * Letristas + * ---------------------------------------------------------------------- */ + +/** Quien escribió en un género, con lo que hace falta para situarlo. */ +export interface Letrista { + slug: string; + nombre: string; + nacimiento: number | null; + defuncion: number | null; + pais: string | null; + semblanza: string | null; + /** En qué géneros aparece y con qué papel. */ + generos: { slug: string; nombre: string; papel: string }[]; + /** Las obras suyas que están en las fichas. */ + obras: { titulo: string; ano: number | null }[]; +} + +/** + * Las personas que aparecen en las fichas de género. + * + * Salen de `genero_persona`, así que la lista es la de quien está acreditado en + * alguna ficha y no la tabla `persona` entera —que tiene también a quien firma + * las canciones del catálogo—. + */ +export async function letristas(): Promise { + const [gente, enGeneros, obras] = await Promise.all([ + db + .selectDistinctOn([persona.id], { + id: persona.id, + slug: persona.slug, + nombre: persona.nombre, + nacimiento: persona.nacimiento, + defuncion: persona.defuncion, + semblanza: persona.semblanza, + pais: pais.nombre + }) + .from(persona) + .innerJoin(generoPersona, eq(generoPersona.personaId, persona.id)) + .leftJoin(pais, eq(pais.codigo, persona.paisCodigo)), + + db + .select({ + personaId: generoPersona.personaId, + papel: generoPersona.papel, + slug: genero.slug, + nombre: genero.nombre + }) + .from(generoPersona) + .innerJoin(genero, eq(genero.id, generoPersona.generoId)) + .orderBy(asc(generoPersona.orden)), + + db + .select({ + personaId: obraReferenciaPersona.personaId, + titulo: obraReferencia.titulo, + ano: obraReferencia.ano + }) + .from(obraReferenciaPersona) + .innerJoin(obraReferencia, eq(obraReferencia.id, obraReferenciaPersona.obraId)) + .orderBy(asc(obraReferencia.ano)) + ]); + + return gente + .map((p) => ({ + slug: p.slug, + nombre: p.nombre, + nacimiento: p.nacimiento, + defuncion: p.defuncion, + pais: p.pais, + semblanza: p.semblanza, + generos: enGeneros + .filter((g) => g.personaId === p.id) + .map(({ slug, nombre, papel }) => ({ slug, nombre, papel })), + obras: obras.filter((o) => o.personaId === p.id).map(({ titulo, ano }) => ({ titulo, ano })) + })) + .sort((a, b) => a.nombre.localeCompare(b.nombre, 'es')); +} diff --git a/src/routes/blog/+page.svelte b/src/routes/blog/+page.svelte index 78d2e84..fc25bd7 100644 --- a/src/routes/blog/+page.svelte +++ b/src/routes/blog/+page.svelte @@ -1,11 +1,59 @@ - {#if data.entradas.length > 0} + +
+ + + +
+ + +
+
+ + {#if etiquetas.length > 0} +
+ + {#each etiquetas as etiqueta (etiqueta.nombre)} + + {/each} +
+ {/if} + +

+ {#if buscando} + {encontradas.length} + {encontradas.length === 1 ? 'entrada' : 'entradas'} + {:else} + {data.entradas.length} + {data.entradas.length === 1 ? 'entrada' : 'entradas'} en total + {/if} +

+ + {#if encontradas.length === 0} +

+ {#if data.entradas.length === 0} + Todavía no hay ninguna entrada. + {:else} + Nada con eso. Prueba con otra palabra o quita el filtro de etiqueta. + {/if} +

+ {:else if vista === 'tabla'} +
+ + + + + + + + + + + {#each encontradas as entrada (entrada.slug)} + + + + + + + {/each} + +
FechaTítuloDe qué vaEtiquetas
+ + + {entrada.titulo} + {entrada.resumen}{entrada.etiquetas.join(', ')}
+
+ {:else}
    - {#each data.entradas as entrada, i (entrada.slug)} -
  • + {#each encontradas as entrada, i (entrada.slug)} +
  • -

    - -

    -

    - {entrada.titulo} -

    - {#if entrada.resumen} -

    {entrada.resumen}

    - {/if} - {#if entrada.etiquetas.length > 0} -
      - {#each entrada.etiquetas as etiqueta (etiqueta)} -
    • - - {etiqueta} - -
    • - {/each} -
    - {/if} + + + + +
    +

    + +

    +

    + {entrada.titulo} +

    + {#if entrada.resumen} +

    {entrada.resumen}

    + {/if} + {#if entrada.etiquetas.length > 0} +
      + {#each entrada.etiquetas as etiqueta (etiqueta)} +
    • + + {etiqueta} + +
    • + {/each} +
    + {/if} +
  • {/each}
- {:else} -

Todavía no hay ninguna entrada.

{/if} @@ -86,24 +243,164 @@ font-size: var(--fs-sm); } - .chips { - margin-top: var(--sp-3); + /* --- La barra de consulta ------------------------------------------------ */ + + .barra { + display: flex; + align-items: stretch; + border: 1px solid var(--c-border); + border-radius: var(--radius-boton); + background: var(--c-bg-sunken); + overflow: hidden; + } + + .barra:focus-within { + border-color: var(--c-accent); + box-shadow: 0 0 0 2px color-mix(in oklab, var(--c-accent) 30%, transparent); + } + + input[type='search'] { + flex: 1 1 12rem; + min-width: 0; + padding: var(--boton-relleno); + border: 0; + background: transparent; + color: inherit; + font: inherit; + font-size: var(--boton-texto); + } + + input[type='search']:focus-visible { + outline: none; + } + + .vistas { + display: flex; + border-left: 1px solid var(--c-border); } + .vista { + padding: var(--boton-relleno); + border: 0; + background-color: transparent; + font: inherit; + font-size: var(--boton-texto); + white-space: nowrap; + cursor: pointer; + transition: + background-color 0.2s var(--suave), + color 0.2s var(--suave); + } + + /* Ver el comentario de la misma barra en la página de música. */ + .vista:not(.oro) { + color: var(--c-text-muted); + } + + .vista + .vista { + border-left: 1px solid var(--c-border); + } + + .vista:hover:not(.oro) { + background-color: var(--c-bg-raised); + color: var(--c-text); + } + + .etiquetas { + display: flex; + flex-wrap: wrap; + gap: var(--sp-2); + padding-top: var(--sp-3); + } + + .filtro { + display: inline-flex; + align-items: baseline; + gap: var(--sp-2); + padding: 0.25rem 0.7rem; + border: 1px solid var(--c-border); + border-radius: var(--radius-boton); + background: transparent; + color: var(--c-text-muted); + font: inherit; + font-size: var(--fs-xs); + cursor: pointer; + } + + .filtro:hover { + color: var(--c-text); + border-color: var(--c-text-muted); + } + + .filtro[aria-pressed='true'] { + color: var(--c-accent); + border-color: color-mix(in oklab, var(--c-accent) 45%, transparent); + background: color-mix(in oklab, var(--c-accent) 10%, transparent); + } + + .cuantas { + font-family: var(--font-mono); + opacity: 0.7; + } + + .resultado { + padding-block: var(--sp-3); + font-size: var(--fs-sm); + } + + .vacio { + padding-block: var(--sp-6); + } + + /* --- Tarjetas ------------------------------------------------------------ */ + + /* + * `auto-fit` y no `auto-fill`: con dos entradas, `auto-fill` crea las cuatro + * columnas que caben y deja dos vacías a la derecha. `auto-fit` colapsa las + * que sobran y lo que hay se reparte el ancho entero. + */ .entradas { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr)); + gap: var(--sp-4); list-style: none; margin: 0; padding: 0 0 var(--sp-7); - border-top: 1px solid var(--c-border); } - .entradas > li { - padding-block: var(--sp-5); - border-bottom: 1px solid var(--c-border); + .entradas article { + display: grid; + grid-template-rows: auto 1fr; + height: 100%; + } + + /* + * La portada, con proporción fija. Sin ella, dos imágenes de distinto alto + * descuadran la fila entera y las tarjetas dejan de alinearse. + */ + .portada { + display: block; + aspect-ratio: 16 / 9; + overflow: hidden; + background: var(--c-bg-sunken); + } + + .portada img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; + } + + .cuerpo { + display: flex; + flex-direction: column; + gap: var(--sp-2); + padding: var(--sp-4); } .fecha { - margin: 0 0 var(--sp-2); + margin: 0; font-family: var(--font-mono); font-size: var(--fs-xs); text-transform: uppercase; @@ -112,8 +409,7 @@ h2 { margin: 0; - font-size: var(--fs-2xl); - max-width: 24ch; + font-size: var(--fs-xl); } h2 a { @@ -127,11 +423,89 @@ } .resumen { - max-width: 62ch; - margin-top: var(--sp-2); + margin: 0; + font-size: var(--fs-sm); + } + + .chips { + margin-top: auto; + padding-top: var(--sp-2); + } + + /* --- Tabla --------------------------------------------------------------- */ + + /* Que la tabla se desplace dentro de su caja y no arrastre la página. */ + .tabla-envoltura { + overflow-x: auto; + padding-bottom: var(--sp-7); + } + + .tabla { + width: 100%; + border-collapse: collapse; + font-size: var(--fs-sm); + } + + .tabla th { + text-align: left; + padding: var(--sp-2) var(--sp-3); + border-bottom: 1px solid var(--c-border); + font-size: var(--fs-xs); + text-transform: uppercase; + letter-spacing: 0.1em; + color: var(--c-text-muted); + white-space: nowrap; + } + + .tabla td { + padding: var(--sp-3); + border-bottom: 1px solid var(--c-border); + vertical-align: baseline; + } + + .tabla td a { + font-family: var(--font-display); + font-size: var(--fs-lg); + text-decoration: none; } + + .celda-fecha { + white-space: nowrap; + font-family: var(--font-mono); + font-size: var(--fs-xs); + color: var(--c-text-muted); + } + + .celda-resumen { + min-width: 24ch; + } + + .celda-etiquetas { + white-space: nowrap; + } + + @media (max-width: 30rem) { + .barra { + flex-direction: column; + } + + input[type='search'] { + flex: 0 0 auto; + } + + .vistas { + border-left: 0; + border-top: 1px solid var(--c-border); + } + + .vista { + flex: 1; + } + } + @media (prefers-reduced-motion: reduce) { - h2 a { + h2 a, + .vista { transition: none; } } diff --git a/src/routes/generos/+layout.server.ts b/src/routes/generos/+layout.server.ts new file mode 100644 index 0000000..035865a --- /dev/null +++ b/src/routes/generos/+layout.server.ts @@ -0,0 +1,10 @@ +import { indiceDelTaller } from '$lib/server/taller'; + +/** + * El índice de géneros vive en el layout, así que se carga una vez y lo tienen + * la portada de la sección y cada ficha. + */ +export async function load() { + const { fichas } = await indiceDelTaller(); + return { fichas }; +} diff --git a/src/routes/generos/+layout.svelte b/src/routes/generos/+layout.svelte new file mode 100644 index 0000000..be96fa1 --- /dev/null +++ b/src/routes/generos/+layout.svelte @@ -0,0 +1,69 @@ + + +
+ + +
+ {@render children()} +
+
+ + diff --git a/src/routes/generos/+page.server.ts b/src/routes/generos/+page.server.ts new file mode 100644 index 0000000..c901726 --- /dev/null +++ b/src/routes/generos/+page.server.ts @@ -0,0 +1,5 @@ +import { generosParaLaPortada } from '$lib/server/taller'; + +export async function load() { + return { generos: await generosParaLaPortada() }; +} diff --git a/src/routes/generos/+page.svelte b/src/routes/generos/+page.svelte new file mode 100644 index 0000000..2856ce0 --- /dev/null +++ b/src/routes/generos/+page.svelte @@ -0,0 +1,279 @@ + + + + +
+

Géneros

+

+ Una ficha por estilo, con lo que hace falta para escribir una letra en él y que suene a lo que + es. Pulsa un país para ver lo suyo, o busca por nombre, por tema o por cómo se llama en otro + sitio. +

+
+ + (pais = pais === codigo ? '' : codigo)} +/> + +
+ + + + {#if pais} + + {/if} +
+ +

+ {#if filtrando} + {encontrados.length} + {encontrados.length === 1 ? 'género' : 'géneros'} + {:else} + {data.generos.length} géneros + {/if} +

+ +{#if encontrados.length === 0} +

+ Nada con eso. Prueba con otra palabra, o quita el país si lo tienes puesto. +

+{:else if pais} + {#if nacidos.length > 0} +
+

Nació en {paisElegido?.nombre}

+ {@render lista(nacidos)} +
+ {/if} + + {#if adoptados.length > 0} +
+

También se canta ahí

+ {@render lista(adoptados)} +
+ {/if} +{:else} + {@render lista(encontrados)} +{/if} + +{#snippet lista(generos: typeof data.generos)} + +{/snippet} + + diff --git a/src/routes/generos/[slug]/+page.server.ts b/src/routes/generos/[slug]/+page.server.ts new file mode 100644 index 0000000..d87c9bb --- /dev/null +++ b/src/routes/generos/[slug]/+page.server.ts @@ -0,0 +1,12 @@ +import { error } from '@sveltejs/kit'; +import { obtenerCapitulo } from '$lib/server/taller'; + +export async function load({ params }) { + const capitulo = await obtenerCapitulo(params.slug); + if (!capitulo) error(404, 'Ese género no existe.'); + + // Los principios viven en `/taller`; aquí solo las fichas. + if (capitulo.tipo !== 'ficha') error(404, 'Ese género no existe.'); + + return { capitulo }; +} diff --git a/src/routes/generos/[slug]/+page.svelte b/src/routes/generos/[slug]/+page.svelte new file mode 100644 index 0000000..f94ab50 --- /dev/null +++ b/src/routes/generos/[slug]/+page.svelte @@ -0,0 +1,12 @@ + + + resolve('/generos/[slug]', { slug })} +/> diff --git a/src/routes/taller/glosario/+page.server.ts b/src/routes/generos/glosario/+page.server.ts similarity index 100% rename from src/routes/taller/glosario/+page.server.ts rename to src/routes/generos/glosario/+page.server.ts diff --git a/src/routes/generos/glosario/+page.svelte b/src/routes/generos/glosario/+page.svelte new file mode 100644 index 0000000..b454d86 --- /dev/null +++ b/src/routes/generos/glosario/+page.svelte @@ -0,0 +1,414 @@ + + + + + + + + + +
+

Taller de letras

+

Glosario

+

+ Las palabras que hacen falta para hablar de una letra. Pulsa una para leer su definición; las + mismas salen marcadas dentro de los capítulos. +

+
+ + +
+
+ + +

+ {encontrados.length} de {data.glosario.length} +

+
+ +
+ + {#each materias as m (m.clave)} + + {/each} +
+ + +
+ +{#if grupos.length === 0} +

+ Nada con «{consulta.trim()}». Prueba con una palabra suelta: «rima», «verso», «acento». +

+{:else} +
+ {#each grupos as [letra, terminos] (letra)} +
+

{letra}

+ +
    + {#each terminos as termino (termino.slug)} +
  • + +
  • + {/each} +
+
+ {/each} +
+{/if} + + diff --git a/src/routes/generos/letristas/+page.server.ts b/src/routes/generos/letristas/+page.server.ts new file mode 100644 index 0000000..b6b90c7 --- /dev/null +++ b/src/routes/generos/letristas/+page.server.ts @@ -0,0 +1,5 @@ +import { letristas } from '$lib/server/taller'; + +export async function load() { + return { letristas: await letristas() }; +} diff --git a/src/routes/generos/letristas/+page.svelte b/src/routes/generos/letristas/+page.svelte new file mode 100644 index 0000000..41204b1 --- /dev/null +++ b/src/routes/generos/letristas/+page.svelte @@ -0,0 +1,241 @@ + + + + + + +
+

Letristas

+

+ Quién fijó cada estilo. Salen de las fichas de género, donde cada uno está acreditado con su + papel: quien lo fundó, quien lo escribió y quien lo cantó. +

+
+ +
+ + +

+ {encontrados.length} de {data.letristas.length} +

+
+ +{#if encontrados.length === 0} +

Nada con «{consulta.trim()}».

+{:else} +
    + {#each encontrados as persona (persona.slug)} +
  • +
    +

    {persona.nombre}

    +

    + {persona.pais ?? ''}{#if persona.pais && vida(persona.nacimiento, persona.defuncion)} + · + {/if}{vida(persona.nacimiento, persona.defuncion)} +

    +
    + +
    + {#if persona.semblanza} +

    {persona.semblanza}

    + {/if} + +

    + {#each persona.generos as genero, i (genero.slug + genero.papel)} + {#if i > 0}{/if} + {genero.nombre} + {PAPEL[genero.papel] ?? genero.papel} + {/each} +

    + + {#if persona.obras.length > 0} +

    + {persona.obras.map((o) => (o.ano ? `${o.titulo} (${o.ano})` : o.titulo)).join(' · ')} +

    + {/if} +
    +
  • + {/each} +
+{/if} + + diff --git a/src/routes/sitemap.xml/+server.ts b/src/routes/sitemap.xml/+server.ts index 944cb60..601bfac 100644 --- a/src/routes/sitemap.xml/+server.ts +++ b/src/routes/sitemap.xml/+server.ts @@ -68,7 +68,12 @@ export const GET: RequestHandler = async () => { // Incluye los álbumes de singles, que son sintéticos pero tienen página. ...discos.map((slug) => url(`/albumes/${slug}`, PRIORIDAD.obra)), ...canciones.map((c) => url(`/canciones/${c.slug}`, PRIORIDAD.obra)), - ...[...principios, ...fichas].map((c) => url(`/taller/${c.slug}`, PRIORIDAD.obra)), + url('/generos', PRIORIDAD.seccion), + url('/generos/glosario', PRIORIDAD.resto), + url('/generos/letristas', PRIORIDAD.resto), + ...principios.map((c) => url(`/taller/${c.slug}`, PRIORIDAD.obra)), + // Las fichas viven en su sección desde que tienen portada propia. + ...fichas.map((c) => url(`/generos/${c.slug}`, PRIORIDAD.obra)), ...entradas.map((e) => url(`/blog/${e.slug}`, PRIORIDAD.obra, e.fecha)), ...temas.map((e) => url(`/etiquetas/${e.slug}`, PRIORIDAD.resto)), ...paginas.map((p) => url(`/${p.slug}`, PRIORIDAD.resto)), diff --git a/src/routes/taller/+layout.svelte b/src/routes/taller/+layout.svelte index 2225052..b7cc5d6 100644 --- a/src/routes/taller/+layout.svelte +++ b/src/routes/taller/+layout.svelte @@ -22,7 +22,7 @@
diff --git a/src/routes/taller/+page.svelte b/src/routes/taller/+page.svelte index 74aaf97..06c2274 100644 --- a/src/routes/taller/+page.svelte +++ b/src/routes/taller/+page.svelte @@ -1,7 +1,6 @@ - - - - - - - -
- {#if esFicha} -

Género

- {/if} - -

{capitulo.titulo}

- - {#if alias.length > 0} -

o {alias.map((a) => `«${a.nombre}»`).join(', ')}

- {/if} - - {#if capitulo.resumen} -

{capitulo.resumen}

- {/if} - - {#if ficha?.origenLugar} -

- {ficha.origenLugar}{#if anoAparte}, {anoAparte}{/if} -

- {/if} - - - {#if paises.length > 0} -
    - {#each paises as pais (pais.codigo)} -
  • - {pais.nombre}{#if pais.relacion === 'cuna'}cuna{/if} -
  • - {/each} -
- {/if} -
- -{#if franja.length > 0} -
- {#each franja as [etiqueta, valor] (etiqueta)} -
-

{etiqueta}

-

{valor}

-
- {/each} -
-{/if} - -
- -
- - {@html capitulo.html} -
- - - {#if capitulo.apartados.length > 1} - - {/if} -
- -{#each secciones as seccion (seccion.clave)} -
-

{seccion.titulo}

- -
{@html seccion.html}
-
-{/each} - - - - -{#if versos.length > 0} -
-

Ejemplos de versos

- -
- {#each versos as ejemplo (ejemplo.titulo)} - - {@const largos = ejemplo.lineas.some((l) => l.silabas.length > 9)} -
-
-

{ejemplo.titulo}

-

{ILUSTRA[ejemplo.ilustra] ?? ejemplo.ilustra}

-
- -
    - {#each ejemplo.lineas as linea (linea.texto)} -
  1. -

    {linea.texto}

    - {#if linea.silabas.length > 0} - - {/if} - {linea.medida} - {#if linea.rima && linea.rima !== '-'} - {linea.rima} - {/if} -
  2. - {/each} -
- -
- {#if ejemplo.medida || ejemplo.rima} -
- {#if ejemplo.medida} -
-
Medida
-
{ejemplo.medida}
-
- {/if} - {#if ejemplo.rima} -
-
Rima
-
{ejemplo.rima}
-
- {/if} -
- {/if} - {#if ejemplo.analisis} -

{ejemplo.analisis}

- {/if} -
-
- {/each} -
- - -

- Los ejemplos están escritos para el taller, no son de ninguna canción. Sirven para enseñar la - cuenta y la rima del género; para oírlo de verdad, arriba están las obras de referencia. -

-
-{/if} - - -{#if temas.length > 0} -
-

De qué se habla

-
    - {#each temas as tema (tema.slug)} -
  • - {tema.nombre} -
  • - {/each} -
-
-{/if} - -{#if rasgos.length > 0} -
-

Rasgos de escritura

-
    - {#each rasgos as rasgo (rasgo)} -
  • {rasgo}
  • - {/each} -
-
-{/if} - -{#if instrumentos.length > 0} -
-

Instrumentación

-
    - {#each instrumentos as i (i.slug)} -
  • - {i.nombre} - {i.importancia} - - {i.papel ?? i.familia} - {#if i.afinacion}Afinación: {i.afinacion}{/if} - -
  • - {/each} -
-
-{/if} - -{#if personas.length > 0} -
-

Quién lo escribió

-
    - {#each personas as p (p.slug + p.papel)} -
  • - {p.nombre} - {procedencia(p)} - {PAPEL[p.papel] ?? p.papel} -
  • - {/each} -
-
-{/if} - -{#if obras.length > 0} -
-

Obras de referencia

-
    - {#each obras as obra (obra.titulo + obra.ano)} -
  • - {obra.ano ?? '—'} -
    -

    {obra.titulo}

    - {#if obra.autores.length > 0} -

    {obra.autores.join(' · ')}

    - {/if} - {#if obra.cita} -

    {obra.cita}

    - {/if} - {#if obra.nota} -

    {obra.nota}

    - {/if} - {#if obra.enlaces.length > 0} - - {/if} -
    -
  • - {/each} -
- -

- Los fragmentos se reproducen al amparo del derecho de cita, para ilustrar el estilo. Las - letras completas son de sus autores y no se alojan aquí. -

-
-{/if} - -{#if vieneDe.length > 0 || vieneDeEl.length > 0} -
-

Linaje

-
- {#if vieneDe.length > 0} -
-

De dónde viene

-
    - {#each vieneDe as rama (rama.slug + rama.tipo)} -
  • - {#if rama.capitulo} - {rama.nombre} - {:else} - {rama.nombre} - {/if} - {rama.tipo} - {#if rama.nota}{rama.nota}{/if} -
  • - {/each} -
-
- {/if} - - {#if vieneDeEl.length > 0} -
-

Qué viene de él

-
    - {#each vieneDeEl as rama (rama.slug + rama.tipo)} -
  • - {#if rama.capitulo} - {rama.nombre} - {:else} - {rama.nombre} - {/if} - {rama.tipo} - {#if rama.nota}{rama.nota}{/if} -
  • - {/each} -
-
- {/if} -
-
-{/if} - - -{#if ficha?.sinRevisar} -

- Esta ficha la reunió un modelo de lenguaje y está pendiente de revisión: los - datos —instrumentación, letristas, obras de referencia, linaje— y también los ejemplos de versos - y su escansión. Las fechas y las atribuciones no se han comprobado una a una. -

-{/if} - -{#if capitulo.anterior || capitulo.siguiente} - -{/if} - - + resolve('/taller/[slug]', { slug })} +/> diff --git a/src/routes/taller/glosario/+page.svelte b/src/routes/taller/glosario/+page.svelte deleted file mode 100644 index 49751c9..0000000 --- a/src/routes/taller/glosario/+page.svelte +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - -
-

Taller de letras

-

Glosario

-

- Las palabras que hacen falta para hablar de una letra. Salen marcadas en el texto de los - capítulos: al pulsarlas se abre su definición sin salir de donde estabas. -

-
- -
    - {#each data.glosario as termino (termino.slug)} -
  • -

    {termino.termino}

    - -
      - {#each termino.acepciones as acepcion (acepcion.numero)} -
    1. -

      {CATEGORIAS[acepcion.categoria] ?? acepcion.categoria}

      -

      {acepcion.definicion}

      - {#if acepcion.ampliacion} -

      {acepcion.ampliacion}

      - {/if} - {#if acepcion.ejemplo} -

      {acepcion.ejemplo}

      - {/if} -
    2. - {/each} -
    -
  • - {/each} -
- -