diff --git a/docs/.nojekyll b/docs/.nojekyll deleted file mode 100644 index e69de29..0000000 diff --git a/docs/elixir/ash.html b/docs/elixir/ash.html index dbe9528..66b1f44 100644 --- a/docs/elixir/ash.html +++ b/docs/elixir/ash.html @@ -820,6 +820,199 @@

+

Cómo usar SQLite en vez de Postgres

+
+
+

1. Cambiar el Repo

+
+

En .lib/stoic_quotes/repo.ex, reemplazar:

+
+
+
+
use AshPostgres.Repo,
+  otp_app: :stoic_quotes
+
+
+
+

Por:

+
+
+
+
use AshSqlite.Repo,
+  otp_app: :stoic_quotes
+
+
+
+

Eliminar las funciones prefer_transaction? y installed_extensions si existen en el módulo.

+
+
+
+

2. Instalar la extensión de SQLite

+
+
+
mix igniter.install ash_sqlite
+
+
+
+
+

3. Actualizar configuraciones

+
+

En config/dev.exs, cambiar:

+
+
+
+
config :stoic_quotes, StoicQuotes.Repo,
+  username: "postgres",
+  password: "postgres",
+  hostname: "localhost",
+  database: "stoic_quotes_dev",
+  stacktrace: true,
+  show_sensitive_data_on_connection_error: true,
+  pool_size: 10
+
+
+
+

Por:

+
+
+
+
config :stoic_quotes, StoicQuotes.Repo,
+  database: Path.join(__DIR__, "../data.db"),
+  show_sensitive_data_on_connection_error: true,
+  pool_size: 10
+
+
+
+

En config/test.exs, cambiar:

+
+
+
+
config :stoic_quotes, StoicQuotes.Repo,
+  username: "postgres",
+  password: "postgres",
+  hostname: "localhost",
+  database: "stoic_quotes_test#{System.get_env("MIX_TEST_PARTITION")}",
+  pool: Ecto.Adapters.SQL.Sandbox,
+  pool_size: System.schedulers_online() * 2
+
+
+
+

Por:

+
+
+
+
config :stoic_quotes, StoicQuotes.Repo,
+  database: Path.join(__DIR__, "../data_#{System.get_env("MIX_TEST_PARTITION")}.db"),
+  pool: Ecto.Adapters.SQL.Sandbox,
+  pool_size: 10
+
+
+
+
+

4. Actualizar el Recurso

+
+

En el archivo del Recurso (lib/stoic_quotes/resources/quote.ex o similar), hacer dos cambios:

+
+
+
    +
  1. +

    Reemplazar el bloque postgres por sqlite:

    +
  2. +
+
+
+

De:

+
+
+
+
postgres do
+  table "quotes"
+  repo StoicQuotes.Repo
+end
+
+
+
+

A:

+
+
+
+
sqlite do
+  table "quotes"
+  repo StoicQuotes.Repo
+end
+
+
+
+
    +
  1. +

    Cambiar el data_layer de Postgres a SQLite:

    +
  2. +
+
+
+

De:

+
+
+
+
use Ash.Resource,
+  otp_app: :stoic_quotes,
+  domain: StoicQuotes.Ash,
+  extensions: [AshGraphql.Resource],
+  data_layer: AshPostgres.DataLayer
+
+
+
+

A:

+
+
+
+
use Ash.Resource,
+  otp_app: :stoic_quotes,
+  domain: StoicQuotes.Ash,
+  extensions: [AshGraphql.Resource],
+  data_layer: AshSqlite.DataLayer
+
+
+
+
+

5. Limpiar migraciones antiguas y generar nuevas

+
+
+
# Eliminar directorios de migraciones anteriores
+rm -rf priv/resource_snapshots
+rm -rf priv/repo/migrations
+
+# Generar nuevas migraciones compatibles con SQLite
+mix ash_sqlite.generate_migrations --name migrate_to_sqlite
+
+# Ejecutar las migraciones
+mix ecto.migrate
+
+
+
+
+

6. Remover dependencia de Postgres

+
+

Finalmente, eliminar la dependencia de ash_postgres en el archivo mix.exs:

+
+
+
+
# Remover de la lista de dependencias:
+{:ash_postgres, "~> 2.0"},
+
+
+
+

Y correr:

+
+
+
+
mix deps.get
+
+
+
+
+ +

Referencias

diff --git a/docs/search-index.js b/docs/search-index.js index cad26ad..a48bacb 100644 --- a/docs/search-index.js +++ b/docs/search-index.js @@ -1 +1 @@ -antoraSearch.initSearch(lunr, {"index":{"version":"2.3.9","fields":["title","name","text","component","keyword"],"fieldVectors":[["title/1-1",[0,39.735,1,47.386]],["name/1-1",[]],["text/1-1",[]],["component/1-1",[]],["keyword/1-1",[]],["title/1-2",[0,39.735,2,49.802]],["name/1-2",[]],["text/1-2",[]],["component/1-2",[]],["keyword/1-2",[]],["title/1-3",[0,34.191,3,26.132,4,44.085]],["name/1-3",[]],["text/1-3",[]],["component/1-3",[]],["keyword/1-3",[]],["title/1-4",[0,39.735,5,40.909]],["name/1-4",[]],["text/1-4",[]],["component/1-4",[]],["keyword/1-4",[]],["title/1-5",[6,40.307,7,42.932]],["name/1-5",[]],["text/1-5",[]],["component/1-5",[]],["keyword/1-5",[]],["title/1",[0,34.191,8,13.007,9,29.964]],["name/1",[10,0.941]],["text/1",[0,6.293,1,4.111,2,5.008,3,3.632,4,5.152,5,4.548,8,2.459,9,3.502,11,3.787,12,4.389,13,1.559,14,3.963,15,1.877,16,1.643,17,4.275,18,1.959,19,2.322,20,3.056,21,1.916,22,3.397,23,4.587,24,4.34,25,3.366,26,2.118,27,2.186,28,3.519,29,3.549,30,2.186,31,1.692,32,3.156,33,1.599,34,3.492,35,4.451,36,2.007,37,2.059,38,1.775,39,2.322,40,2.879,41,2.479,42,2.36,43,2.879,44,2.36,45,2.3,46,1.357,47,1.959,48,1.692,49,1.841,50,2.678,51,2.974,52,2.822,53,3.332,54,1.578,55,2.879,56,3.104,57,1.667,58,1.397,59,3.502,60,2.277,61,3.271,62,1.667,63,1.643,64,5.008,65,1.298,66,5.317,67,4.35,68,2.922,69,2.36,70,2.265,71,2.598,72,3.303,73,1.916,74,2.118,75,1.877,76,1.54,77,1.559,78,2.701,79,1.62,80,1.62,81,3.701,82,1.959,83,1.807,84,2.705,85,1.522,86,2.479,87,2.007,88,1.746,89,1.62,90,2.186,91,2.265,92,1.877,93,1.877,94,2.974,95,2.505,96,1.62,97,2.638,98,2.36,99,2.638,100,1.718,101,1.959,102,1.841,103,2.638,104,1.44,105,2.448,106,1.807,107,1.692,108,2.668,109,1.807,110,2.638,111,2.879,112,2.879,113,3.27,114,2.186,115,1.807,116,2.879,117,3.225,118,2.479,119,1.916,120,2.059,121,2.007,122,1.775,123,1.383,124,1.54,125,2.535,126,2.059,127,2.879,128,2.421,129,2.186,130,2.476,131,2.256,132,2.36,133,2.479,134,1.692,135,2.479,136,1.718,137,2.479,138,1.841,139,1.718,140,2.265,141,2.186,142,2.36,143,1.44,144,1.841,145,1.559,146,2.36,147,1.487,148,2.479,149,2.118,150,1.471,151,1.487,152,2.265,153,1.959,154,1.599,155,1.807,156,2.879,157,1.559,158,2.479,159,2.007,160,2.479,161,1.959]],["component/1",[162,0.398]],["keyword/1",[]],["title/2-1",[163,37.598,164,54.895,165,45.493]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["keyword/2-1",[]],["title/2-2",[166,47.386,167,44.512]],["name/2-2",[]],["text/2-2",[]],["component/2-2",[]],["keyword/2-2",[]],["title/2-3",[168,37.697,169,54.78]],["name/2-3",[]],["text/2-3",[]],["component/2-3",[]],["keyword/2-3",[]],["title/2-4",[8,13.007,61,27.99,170,35.748]],["name/2-4",[]],["text/2-4",[]],["component/2-4",[]],["keyword/2-4",[]],["title/2-5",[171,51.24]],["name/2-5",[]],["text/2-5",[]],["component/2-5",[]],["keyword/2-5",[]],["title/2-6",[149,51.233,172,63.796]],["name/2-6",[]],["text/2-6",[]],["component/2-6",[]],["keyword/2-6",[]],["title/2-7",[166,47.386,167,44.512]],["name/2-7",[]],["text/2-7",[]],["component/2-7",[]],["keyword/2-7",[]],["title/2-8",[168,37.697,169,54.78]],["name/2-8",[]],["text/2-8",[]],["component/2-8",[]],["keyword/2-8",[]],["title/2-9",[8,13.007,61,27.99,170,35.748]],["name/2-9",[]],["text/2-9",[]],["component/2-9",[]],["keyword/2-9",[]],["title/2-10",[171,51.24]],["name/2-10",[]],["text/2-10",[]],["component/2-10",[]],["keyword/2-10",[]],["title/2-11",[165,39.923,173,45.268,174,48.173,175,48.173]],["name/2-11",[]],["text/2-11",[]],["component/2-11",[]],["keyword/2-11",[]],["title/2-12",[166,47.386,167,44.512]],["name/2-12",[]],["text/2-12",[]],["component/2-12",[]],["keyword/2-12",[]],["title/2-13",[168,37.697,169,54.78]],["name/2-13",[]],["text/2-13",[]],["component/2-13",[]],["keyword/2-13",[]],["title/2-14",[8,13.007,61,27.99,170,35.748]],["name/2-14",[]],["text/2-14",[]],["component/2-14",[]],["keyword/2-14",[]],["title/2-15",[171,51.24]],["name/2-15",[]],["text/2-15",[]],["component/2-15",[]],["keyword/2-15",[]],["title/2-16",[176,41.759,177,51.584,178,44.085]],["name/2-16",[]],["text/2-16",[]],["component/2-16",[]],["keyword/2-16",[]],["title/2-17",[166,47.386,167,44.512]],["name/2-17",[]],["text/2-17",[]],["component/2-17",[]],["keyword/2-17",[]],["title/2-18",[168,37.697,169,54.78]],["name/2-18",[]],["text/2-18",[]],["component/2-18",[]],["keyword/2-18",[]],["title/2-19",[8,13.007,61,27.99,170,35.748]],["name/2-19",[]],["text/2-19",[]],["component/2-19",[]],["keyword/2-19",[]],["title/2-20",[171,51.24]],["name/2-20",[]],["text/2-20",[]],["component/2-20",[]],["keyword/2-20",[]],["title/2",[179,47.386,180,59.948]],["name/2",[180,0.81]],["text/2",[0,0.467,3,1.208,5,3.754,6,0.474,7,0.952,8,2.521,9,0.772,11,3.654,12,4.291,13,0.836,14,3.823,16,0.881,17,3.601,19,2.249,20,3.194,22,1.597,24,3.452,25,4.144,28,2.975,31,0.481,32,0.428,34,3.673,35,4.139,37,1.104,39,0.756,45,3.212,46,0.386,47,0.557,50,2.833,52,2.745,53,3.35,56,1.86,57,0.474,58,2.035,60,0.394,61,1.758,63,0.467,64,2.354,65,1.248,67,3.36,71,4.155,72,1.526,73,2.19,74,1.611,75,1.427,76,2.826,78,2.052,79,2.118,85,0.816,88,0.497,92,1.006,94,0.514,95,1.157,96,1.232,98,0.671,99,0.75,101,2.239,104,1.095,105,2.167,107,3.608,109,2.065,113,1.782,117,4.18,119,1.028,120,1.566,121,2.294,122,0.505,123,0.742,124,1.171,125,0.826,128,1.119,129,1.663,130,1.966,131,1.791,141,0.622,143,1.385,144,0.524,145,2.271,146,0.671,147,1.131,148,0.705,149,5.576,150,1.414,151,0.423,153,3.805,154,1.828,157,2.484,162,0.346,163,3.316,164,3.843,165,4.012,170,1.652,171,0.952,172,2.537,173,1.885,174,2.006,175,3.015,176,2.924,177,3.612,178,2.421,179,5.042,180,2.384,181,0.705,182,0.622,183,0.819,184,0.819,185,1.805,186,3.227,187,1.49,188,1.457,189,1.265,190,0.524,191,1.329,192,1.343,193,2.505,194,2.543,195,0.514,196,1.215,197,0.671,198,0.524,199,0.571,200,0.705,201,0.705,202,0.75,203,0.819,204,0.671,205,0.586,206,0.622,207,1.329,208,2.19,209,1.544,210,1.611,211,0.644,212,0.819,213,0.622,214,0.603,215,1.544,216,0.481,217,0.644,218,0.622,219,0.571,220,1.611,221,0.75,222,0.497,223,1.457,224,0.622,225,0.571,226,0.481,227,1.172,228,2.33,229,0.534,230,2.102,231,0.819,232,1.249,233,1.286,234,0.705,235,1.782,236,0.586,237,0.545,238,0.749,239,0.819,240,0.907,241,1.119,242,0.819,243,0.921,244,0.514,245,1.4,246,0.952,247,0.418,248,0.455,249,0.514,250,0.705,251,0.819,252,0.467,253,0.489,254,2.537,255,2.384,256,0.75,257,0.797,258,1.028,259,1.028,260,1.843,261,1.884,262,0.705,263,0.622,264,0.907,265,1.104,266,0.671,267,1.028,268,0.603,269,5.034,270,2.246,271,1.457,272,3.805,273,0.497,274,3.895,275,0.819,276,3.449,277,0.505,278,0.423,279,0.586,280,0.586,281,0.705,282,3.901,283,1.385,284,1.804,285,0.489,286,0.819,287,2.104,288,1.215,289,1.414,290,0.557,291,1.611,292,1.216,293,2.145,294,1.051,295,2.454,296,1.544,297,0.644,298,1.863,299,0.671,300,1.104,301,2.282,302,0.671,303,1.104,304,2.769,305,0.644,306,1.076,307,0.819,308,0.622,309,0.622,310,2.19,311,2.499,312,2.354,313,0.705,314,2.269,315,1.006,316,1.172,317,1.136,318,1.265,319,0.819,320,1.457,321,1.329,322,0.75,323,1.136,324,1.457,325,0.557,326,0.622,327,0.524,328,0.75,329,0.705,330,0.75,331,1.98,332,0.969,333,1.885,334,0.603,335,0.705,336,0.819,337,0.819,338,0.952,339,0.461,340,1.172,341,0.586,342,0.969,343,1.076,344,0.586,345,0.545,346,0.455,347,0.571,348,0.819,349,0.75,350,1.385,351,1.905,352,1.328,353,1.663,354,0.586,355,0.819,356,1.249,357,1.232,358,1.4,359,1.104,360,1.544,361,0.603,362,0.534,363,0.524,364,1.544,365,1.136,366,2.19,367,0.819,368,0.819,369,0.705,370,1.885,371,0.75,372,2.269,373,0.557,374,0.622,375,1.215,376,1.136,377,0.75,378,0.671,379,0.524,380,0.819,381,0.705,382,0.505,383,0.819,384,0.671,385,0.505,386,1.084,387,1.076,388,0.497,389,0.936,390,1.663,391,0.418,392,0.819,393,0.534,394,1.028,395,0.524,396,1.051,397,0.819,398,0.497,399,0.534,400,0.75,401,0.586,402,0.819,403,0.671,404,0.705,405,0.819,406,0.705,407,0.705,408,0.75,409,0.497,410,0.557,411,0.423,412,0.921,413,0.545,414,0.764,415,0.75,416,1.104,417,0.819,418,1.136,419,0.423,420,1.544,421,0.987,422,0.819,423,0.603,424,1.414,425,1.329,426,1.265,427,0.489,428,0.75,429,0.75,430,0.644,431,0.644,432,0.671,433,0.644,434,0.644,435,0.705,436,1.544,437,0.514,438,0.545,439,0.671,440,4.572,441,0.819,442,0.819,443,1.544,444,1.265,445,0.819,446,1.329,447,1.2,448,0.622,449,3.376,450,1.265,451,0.819,452,1.329,453,0.586,454,0.819,455,1.663,456,0.819,457,0.819,458,0.571,459,0.819,460,0.819,461,0.819,462,0.603,463,0.671,464,0.819,465,1.329,466,0.75,467,0.75,468,0.705,469,0.514,470,0.819,471,1.136,472,0.857,473,0.622,474,0.514,475,0.586,476,1.35,477,0.557,478,1.136,479,0.819,480,0.705,481,0.545,482,0.819,483,0.428,484,0.75,485,0.819,486,0.524,487,0.705,488,0.671,489,1.329,490,0.586,491,1.795,492,0.622,493,1.172,494,0.894,495,1.414,496,0.671,497,0.819,498,0.75,499,0.819,500,1.885,501,0.603,502,0.571,503,0.75,504,0.571,505,0.489,506,0.603,507,0.819,508,0.644,509,1.329,510,0.75,511,0.75,512,0.622,513,0.622,514,0.545,515,0.819,516,2.102,517,0.671,518,0.357,519,0.705,520,0.622,521,0.644,522,0.705,523,0.603,524,0.819]],["component/2",[162,0.398]],["keyword/2",[]],["title/3-1",[345,55.314]],["name/3-1",[]],["text/3-1",[]],["component/3-1",[]],["keyword/3-1",[]],["title/3-2",[8,11.415,345,34.996,525,39.923,526,45.268]],["name/3-2",[]],["text/3-2",[]],["component/3-2",[]],["keyword/3-2",[]],["title/3-3",[24,22.22,345,34.996,527,37.606,528,43.098]],["name/3-3",[]],["text/3-3",[]],["component/3-3",[]],["keyword/3-3",[]],["title/3-4",[8,10.17,20,15.568,345,31.179,407,40.33,529,40.33]],["name/3-4",[]],["text/3-4",[]],["component/3-4",[]],["keyword/3-4",[]],["title/3",[530,59.948,531,59.948]],["name/3",[530,0.81]],["text/3",[5,0.764,8,2.63,11,3.302,12,3.416,14,4.28,16,1.353,17,3.743,18,0.885,19,2.295,20,3.342,22,1.585,24,3.801,25,4.455,28,1.381,32,0.679,33,1.317,34,3.165,35,3.863,39,1.974,45,1.955,46,0.613,48,1.393,49,0.831,50,3.346,51,0.816,52,2.188,53,0.619,56,3.218,58,2.272,59,2.627,60,0.625,61,2.894,62,0.753,64,0.93,65,1.473,67,3.077,76,3.077,77,1.769,78,2.946,83,2.05,84,0.742,89,1.334,95,1.253,98,1.066,101,0.885,104,1.186,107,1.92,109,0.816,113,0.704,114,0.987,117,2.223,122,0.802,128,1.669,130,1.707,131,2.229,138,0.831,143,1.186,144,0.831,145,1.284,147,1.225,149,1.744,151,2.081,155,0.816,157,0.704,168,0.704,178,0.957,179,4.216,188,1.578,190,0.831,192,1.15,194,1.437,198,0.831,205,1.696,214,0.957,216,2.752,217,1.865,222,1.437,228,1.317,232,1.353,238,1.15,240,2.367,247,2.058,249,0.816,252,1.353,257,1.225,260,0.866,269,1.696,273,1.981,278,0.672,281,2.041,282,2.998,283,2.342,284,1.3,289,1.669,293,0.848,295,0.848,298,2.318,301,0.789,321,1.12,323,0.957,332,2.05,345,6.349,346,0.722,350,3.471,357,0.732,358,0.831,359,0.93,374,0.987,386,1.174,388,0.789,389,1.437,390,1.8,391,0.664,394,0.866,401,0.93,411,0.672,412,0.776,413,0.866,421,0.831,440,2.015,447,2.209,449,0.957,465,1.12,472,0.722,478,1.744,488,2.678,500,2.041,504,0.906,509,2.041,513,2.481,516,0.987,525,2.481,526,3.469,527,2.881,528,3.839,529,1.12,530,4.953,531,5.333,532,1.12,533,1.211,534,0.866,535,0.704,536,2.678,537,1.546,538,1.393,539,0.831,540,0.866,541,0.93,542,1.12,543,0.93,544,1.023,545,3.238,546,2.813,547,0.93,548,0.742,549,1.301,550,1.023,551,3.169,552,1.023,553,2.678,554,1.066,555,1.066,556,1.301,557,1.023,558,0.957,559,1.943,560,0.93,561,1.12,562,0.987,563,1.066,564,1.301,565,1.301,566,2.678,567,1.192,568,1.192,569,1.301,570,0.753,571,1.301,572,1.023,573,3.469,574,1.192,575,0.816,576,1.023,577,1.12,578,0.637,579,5.753,580,1.301,581,1.301,582,3.575,583,3.469,584,3.575,585,3.469,586,1.301,587,3.358,588,2.172,589,0.987,590,1.301,591,0.93,592,0.957,593,1.301,594,1.301,595,1.192,596,1.192,597,1.301,598,0.957,599,0.93,600,1.943,601,1.12,602,1.301,603,1.301,604,1.192,605,1.943,606,1.943,607,0.753,608,1.284,609,1.462,610,1.301,611,0.789,612,1.301,613,0.802,614,0.789,615,0.753,616,1.174,617,2.371,618,1.301,619,1.192,620,1.023,621,1.023,622,0.906,623,1.066,624,0.987,625,1.192,626,2.371,627,1.192,628,0.987,629,0.957,630,1.192,631,1.301,632,2.041,633,0.987,634,2.371,635,1.301,636,1.192,637,1.066,638,0.906,639,2.371,640,2.299,641,1.023,642,2.041,643,1.301,644,0.957,645,1.023,646,0.764,647,1.516,648,1.949,649,4.715,650,2.994,651,1.301,652,1.301,653,1.12,654,1.301,655,1.696,656,0.93,657,1.192,658,1.301,659,1.12,660,1.12,661,0.957,662,1.317,663,1.301,664,0.957,665,1.301,666,1.437,667,1.865,668,1.301,669,1.023,670,0.906,671,1.192,672,1.301,673,3.267,674,4.813,675,3.267,676,1.192,677,1.301,678,1.301,679,0.789,680,1.301,681,0.789,682,0.789,683,0.848,684,0.816,685,1.192,686,0.987,687,1.301,688,1.546,689,1.192,690,1.023,691,1.301,692,1.066,693,1.066,694,2.337,695,1.301,696,1.301,697,0.866,698,0.957,699,1.301,700,1.12,701,0.816,702,1.865,703,4.115,704,2.813,705,1.301,706,1.301,707,0.848,708,1.023,709,1.192,710,2.175,711,0.722,712,1.334,713,0.848,714,0.93,715,1.301,716,1.301,717,1.066,718,1.301,719,1.943,720,1.652,721,1.192,722,1.8,723,1.301,724,0.906,725,0.93,726,1.192]],["component/3",[162,0.398]],["keyword/3",[]],["title/4-1",[50,18.726,414,20.906,557,33.228,572,33.228,578,20.696,727,22.065]],["name/4-1",[]],["text/4-1",[]],["component/4-1",[]],["keyword/4-1",[]],["title/4-2",[560,59.44]],["name/4-2",[]],["text/4-2",[]],["component/4-2",[]],["keyword/4-2",[]],["title/4-3",[34,19.645,50,20.769,578,22.953,727,24.472,728,36.853]],["name/4-3",[]],["text/4-3",[]],["component/4-3",[]],["keyword/4-3",[]],["title/4-4",[8,11.415,25,20.107,57,30.436,572,41.365]],["name/4-4",[]],["text/4-4",[]],["component/4-4",[]],["keyword/4-4",[]],["title/4-5",[729,63.796,730,63.796]],["name/4-5",[]],["text/4-5",[]],["component/4-5",[]],["keyword/4-5",[]],["title/4-6",[179,47.386,731,48.53]],["name/4-6",[]],["text/4-6",[]],["component/4-6",[]],["keyword/4-6",[]],["title/4-7",[732,42.932,733,57.074]],["name/4-7",[]],["text/4-7",[]],["component/4-7",[]],["keyword/4-7",[]],["title/4-8",[734,57.074,735,63.796]],["name/4-8",[]],["text/4-8",[]],["component/4-8",[]],["keyword/4-8",[]],["title/4-9",[728,65.381]],["name/4-9",[]],["text/4-9",[]],["component/4-9",[]],["keyword/4-9",[]],["title/4-10",[736,63.796,737,44.512]],["name/4-10",[]],["text/4-10",[]],["component/4-10",[]],["keyword/4-10",[]],["title/4-11",[608,44.992]],["name/4-11",[]],["text/4-11",[]],["component/4-11",[]],["keyword/4-11",[]],["title/4",[414,29.657,557,47.137,572,47.137]],["name/4",[738,0.74]],["text/4",[0,0.54,6,1.023,8,2.631,9,0.884,11,4.146,12,3.99,14,2.59,15,0.617,16,0.54,17,3.915,19,2.056,20,3.683,22,0.858,24,3.107,25,4.021,28,3.271,29,2.734,31,1.039,32,5.126,33,0.526,34,3.865,35,3.616,39,2.482,45,2.807,46,0.446,47,1.203,50,1.103,52,3.334,53,1.184,56,1.385,57,1.808,58,2.257,60,0.455,61,3.227,63,1.783,64,0.677,65,0.427,67,3.062,68,1.09,71,0.519,73,0.63,75,2.405,76,1.671,78,3.683,80,0.995,81,0.5,83,0.594,84,2.891,85,0.5,88,0.574,94,0.594,105,0.489,106,0.594,107,1.835,125,0.506,126,0.677,128,0.484,130,1.3,131,2.411,136,0.565,139,0.565,140,0.745,143,1.845,144,0.605,145,1.347,147,1.906,150,2.78,151,0.913,155,0.594,159,1.734,168,1.347,179,3.448,186,2.405,187,2.856,188,1.177,190,0.605,191,0.815,192,1.516,210,1.301,211,1.391,214,0.696,218,0.719,219,0.66,223,1.177,227,0.719,228,3.213,229,2.405,233,0.556,235,0.512,238,1.79,241,3.265,245,0.605,247,0.484,250,0.815,258,0.63,267,0.63,273,1.072,278,1.614,281,2.142,282,3.647,283,0.473,284,1.713,285,0.565,289,3.117,290,1.203,292,0.526,301,3.699,303,1.265,316,1.342,324,3.097,325,1.203,332,0.594,340,0.719,344,2.639,345,1.177,350,2.099,356,2.655,357,0.995,361,1.831,374,5.734,375,0.745,385,1.926,386,1.546,387,0.66,388,1.072,391,0.484,411,0.913,414,2.864,421,0.605,426,1.449,447,2.301,449,2.298,455,0.719,467,1.62,471,1.831,474,0.594,481,0.63,483,0.494,492,0.719,500,1.522,513,0.719,519,0.815,520,1.342,521,1.391,523,1.301,525,0.719,527,1.779,529,0.815,533,0.903,534,0.63,535,0.512,536,0.776,537,0.617,545,2.362,551,0.745,552,1.957,557,5.784,560,0.677,562,2.372,563,1.449,566,0.776,568,1.62,570,0.548,572,4.8,575,2.315,578,0.464,582,1.203,587,1.997,589,0.719,601,0.815,608,1.997,615,0.548,628,0.719,629,0.696,638,0.66,662,0.526,679,0.574,682,0.574,688,0.617,692,0.776,701,0.594,704,0.815,707,1.153,711,0.526,713,0.617,727,1.3,728,3.66,729,3.845,730,1.62,731,1.232,732,2.869,733,3.814,734,3.024,735,3.38,736,1.62,737,1.13,738,0.745,739,0.815,740,0.867,741,1.449,742,3.088,743,2.177,744,0.66,745,0.574,746,1.203,747,1.957,748,0.815,749,3.124,750,1.153,751,0.66,752,1.62,753,1.265,754,0.696,755,1.522,756,0.745,757,0.947,758,2.488,759,2.488,760,3.69,761,1.449,762,0.947,763,1.62,764,1.62,765,1.342,766,0.696,767,1.265,768,3.001,769,3.124,770,2.689,771,1.957,772,0.605,773,0.745,774,0.815,775,0.947,776,0.947,777,0.867,778,2.079,779,3.124,780,0.815,781,3.177,782,0.947,783,0.867,784,2.142,785,1.534,786,1.391,787,0.677,788,0.947,789,0.66,790,1.62,791,0.867,792,1.342,793,0.947,794,0.867,795,0.867,796,1.62,797,0.924,798,0.947,799,0.815,800,0.867,801,0.947,802,1.779,803,0.815,804,0.867,805,0.867,806,0.947,807,0.815,808,1.768,809,0.574,810,0.745,811,0.745,812,0.719,813,1.831,814,3.024,815,0.594,816,0.66,817,1.055,818,3.44,819,2.279,820,0.776,821,0.947,822,0.556,823,0.903,824,2.039,825,0.867,826,1.768,827,0.947,828,0.719,829,0.947,830,0.745,831,1.203,832,1.522,833,0.745,834,0.696,835,0.719,836,0.867,837,1.449,838,0.815,839,0.947,840,0.776,841,0.815,842,0.565,843,0.66,844,0.947,845,0.867,846,0.815,847,0.776,848,0.745,849,1.109,850,0.947,851,1.522,852,1.768,853,0.947,854,0.867,855,0.745,856,0.867,857,0.867,858,0.947,859,1.522,860,1.039,861,1.768,862,1.768,863,0.867,864,0.815,865,0.745,866,0.947,867,0.815,868,0.815,869,0.745,870,0.776,871,1.768,872,1.768,873,0.947,874,0.617,875,0.947,876,0.677,877,0.696,878,0.719,879,0.815,880,0.66,881,0.815,882,0.947,883,0.867,884,0.947,885,1.768,886,0.605,887,0.947,888,0.745,889,0.512,890,0.745,891,0.947,892,0.867,893,0.594,894,0.63,895,0.947,896,0.815,897,0.867,898,0.815,899,0.776,900,1.342,901,0.867,902,1.072,903,0.54,904,3.69,905,0.867,906,0.605,907,0.617,908,0.776,909,0.574,910,0.858,911,0.947,912,0.66,913,0.594,914,0.867,915,0.867,916,0.947,917,1.232,918,0.696,919,0.644,920,0.776,921,0.947,922,0.947,923,0.867,924,0.776,925,0.947,926,0.617,927,0.584,928,0.556,929,0.815,930,0.947,931,0.677,932,0.947]],["component/4",[162,0.398]],["keyword/4",[]],["title/5-1",[933,65.381]],["name/5-1",[]],["text/5-1",[]],["component/5-1",[]],["keyword/5-1",[]],["title/5",[]],["name/5",[934,0.941]],["text/5",[8,2.304,11,4.828,12,3.852,13,3.139,14,2.759,16,3.309,17,3.368,20,3.098,24,3.42,25,3.859,28,3.42,29,3.406,34,3.394,35,4.355,45,2.813,56,4.134,57,3.356,67,2.571,77,3.139,78,4.746,89,3.263,102,3.706,123,2.786,131,2.759,134,5.478,150,4.135,216,3.406,237,3.859,247,2.962,253,4.829,257,2.995,278,2.995,290,3.946,325,3.946,353,4.402,356,3.309,494,3.356,533,2.962,539,5.174,611,3.515,613,3.575,646,3.406,750,3.78,815,3.638,910,3.926,933,4.561,935,3.515,936,5.312,937,4.147,938,4.402,939,5.312,940,3.459,941,3.966,942,4.041,943,4.402,944,3.946,945,4.266,946,5.955,947,3.946,948,4.266,949,4.755,950,3.859,951,5.312,952,4.561,953,5.312,954,4.992,955,5.312,956,5.312,957,4.992,958,5.312,959,4.266]],["component/5",[162,0.398]],["keyword/5",[]],["title/6-1",[960,83.114]],["name/6-1",[]],["text/6-1",[]],["component/6-1",[]],["keyword/6-1",[]],["title/6",[]],["name/6",[961,0.941]],["text/6",[]],["component/6",[162,0.398]],["keyword/6",[]],["title/7-1",[12,24.752,150,30.61,962,47.137]],["name/7-1",[]],["text/7-1",[]],["component/7-1",[]],["keyword/7-1",[]],["title/7",[]],["name/7",[963,0.715]],["text/7",[8,2.302,9,4.388,12,3.625,13,4.751,20,2.916,24,4.481,34,3.68,67,4.701,192,4.257,533,4.483,711,4.873,712,4.939,722,6.663,907,5.72,941,4.3,949,5.155,964,7.193,965,6.903,966,6.903,967,6.276,968,7.555]],["component/7",[162,0.398]],["keyword/7",[]],["title/8-1",[969,76.142]],["name/8-1",[]],["text/8-1",[]],["component/8-1",[]],["keyword/8-1",[]],["title/8",[]],["name/8",[970,0.941]],["text/8",[8,1.773,9,1.595,12,2.678,13,2.79,20,2.473,21,2.123,24,2.178,25,1.22,28,2.178,60,1.533,67,2.285,78,1.426,84,1.82,168,1.727,182,2.422,196,4.054,198,2.039,200,2.746,201,4.436,260,2.123,261,2.171,270,1.903,272,2.171,326,2.422,358,5.222,359,3.686,362,2.08,363,2.039,440,4.598,541,2.282,542,4.436,543,3.686,545,1.795,548,1.82,578,2.525,608,1.727,649,2.615,650,2.039,655,2.282,660,4.436,661,7.272,712,4.598,731,4.518,822,1.874,910,1.548,931,2.282,941,4.281,971,2.746,972,2.923,973,2.923,974,2.923,975,2.923,976,4.922,977,4.436,978,1.795,979,1.82,980,2.923,981,2.615,982,2.923,983,7.522,984,6.819,985,2.923,986,2.923,987,2.923,988,2.746,989,3.791,990,3.913,991,2.746,992,2.923,993,2.923,994,2.923,995,2.923,996,2.923,997,2.923,998,2.746,999,2.923,1000,2.923,1001,2.923,1002,2.923,1003,2.923,1004,2.746,1005,2.923,1006,2.923,1007,2.923,1008,3.177,1009,2.422,1010,2.923,1011,4.436,1012,2.746,1013,2.923,1014,2.746,1015,2.923,1016,2.923,1017,2.746,1018,2.746,1019,2.347,1020,3.507,1021,4.436,1022,4.436,1023,2.923,1024,2.923,1025,2.923,1026,2.923,1027,2.923,1028,2.746,1029,2.615,1030,2.615,1031,2.615,1032,2.746,1033,2.923,1034,2.923,1035,2.923,1036,2.08,1037,2.746,1038,2.923,1039,2.923,1040,4.637,1041,2.746,1042,2.923,1043,2.923,1044,2.923,1045,4.224,1046,2.923,1047,5.581,1048,2.923,1049,2.746,1050,2.746,1051,2.746,1052,2.746,1053,2.746,1054,2.746,1055,2.746,1056,2.746,1057,2.923,1058,2.923,1059,2.923,1060,4.224,1061,2.923,1062,2.223,1063,2.923,1064,3.591,1065,2.923,1066,2.923,1067,2.746,1068,2.422,1069,2.923,1070,4.436,1071,4.436,1072,2.347,1073,3.686,1074,2.51,1075,2.923,1076,2.923,1077,2.615,1078,2.51,1079,4.721,1080,4.721,1081,2.746,1082,2.923,1083,2.923,1084,2.923,1085,2.923,1086,2.923,1087,2.923,1088,2.923,1089,2.746,1090,2.923,1091,2.923,1092,2.923,1093,2.923,1094,2.923,1095,2.923,1096,2.923,1097,5.314,1098,4.054,1099,4.721,1100,4.436,1101,6.819,1102,4.224,1103,2.923,1104,1.934,1105,2.746,1106,3.913,1107,2.923,1108,2.923,1109,2.923,1110,2.923,1111,3.913,1112,4.436,1113,2.51,1114,2.746,1115,2.422,1116,2.422,1117,2.923,1118,2.422,1119,2.923,1120,2.746,1121,4.224,1122,2.039,1123,4.436,1124,4.054,1125,2.923,1126,2.923,1127,2.923,1128,5.314,1129,4.436,1130,2.615,1131,2.746,1132,2.923,1133,2.923]],["component/8",[162,0.398]],["keyword/8",[]],["title/9",[]],["name/9",[1134,0.81]],["text/9",[]],["component/9",[162,0.398]],["keyword/9",[]],["title/10-1",[1135,76.142]],["name/10-1",[]],["text/10-1",[]],["component/10-1",[]],["keyword/10-1",[]],["title/10",[]],["name/10",[1136,0.941]],["text/10",[11,3.402,12,3.09,14,3.559,20,3.19,22,3.629,35,3.494,50,3.316,65,3.373,78,4.292,104,4.801,109,4.693,124,4,154,4.154,170,4.462,238,3.629,391,4.904,712,4.21,722,5.679,964,6.131,1020,5.09,1131,6.439,1137,5.679,1138,6.853,1139,6.853,1140,6.853,1141,6.136,1142,7.063,1143,6.853,1144,6.853,1145,5.503,1146,5.349,1147,4.978,1148,6.853,1149,6.853,1150,6.439,1151,5.884,1152,6.853,1153,6.853,1154,6.853,1155,6.853,1156,6.853,1157,6.853,1158,6.439,1159,6.853,1160,6.853,1161,6.853]],["component/10",[162,0.398]],["keyword/10",[]],["title/11",[]],["name/11",[1162,0.862]],["text/11",[]],["component/11",[162,0.398]],["keyword/11",[]],["title/12",[]],["name/12",[1163,0.941]],["text/12",[]],["component/12",[162,0.398]],["keyword/12",[]],["title/13",[]],["name/13",[1164,0.941]],["text/13",[]],["component/13",[162,0.398]],["keyword/13",[]],["title/14-1",[12,24.752,150,30.61,962,47.137]],["name/14-1",[]],["text/14-1",[]],["component/14-1",[]],["keyword/14-1",[]],["title/14-2",[933,65.381]],["name/14-2",[]],["text/14-2",[]],["component/14-2",[]],["keyword/14-2",[]],["title/14-3",[1165,71.55]],["name/14-3",[]],["text/14-3",[]],["component/14-3",[]],["keyword/14-3",[]],["title/14-4",[292,46.154]],["name/14-4",[]],["text/14-4",[]],["component/14-4",[]],["keyword/14-4",[]],["title/14-5",[123,39.93]],["name/14-5",[]],["text/14-5",[]],["component/14-5",[]],["keyword/14-5",[]],["title/14-6",[20,10.073,56,13.439,65,13.668,123,14.564,538,17.808,941,14.853,978,17.06,979,17.297,1166,23.847,1167,17.297]],["name/14-6",[]],["text/14-6",[]],["component/14-6",[]],["keyword/14-6",[]],["title/14-7",[104,21.123,123,20.294,440,21.123,823,21.578,1168,26.042,1169,26.504]],["name/14-7",[]],["text/14-7",[]],["component/14-7",[]],["keyword/14-7",[]],["title/14-8",[123,22.507,124,25.053,942,32.648,1170,35.568,1171,34.467]],["name/14-8",[]],["text/14-8",[]],["component/14-8",[]],["keyword/14-8",[]],["title/14-9",[1135,76.142]],["name/14-9",[]],["text/14-9",[]],["component/14-9",[]],["keyword/14-9",[]],["title/14-10",[969,76.142]],["name/14-10",[]],["text/14-10",[]],["component/14-10",[]],["keyword/14-10",[]],["title/14",[712,33.722,750,39.059,937,42.853]],["name/14",[1172,0.81]],["text/14",[3,0.339,8,2.487,9,0.735,11,3.571,12,3.709,13,1.707,14,3.164,16,0.838,17,2.251,19,0.72,20,3.21,21,0.978,22,0.713,24,3.535,25,3.199,27,1.115,28,2.809,29,0.456,31,0.456,32,0.406,33,0.816,34,2.788,35,2.527,36,0.541,39,0.381,45,2.762,46,0.985,50,1.398,51,0.922,52,1.473,53,1.26,56,2.64,57,0.85,58,1.753,59,1.044,60,1.736,61,0.686,62,0.45,65,1.422,67,1.96,71,0.426,77,0.421,78,3.229,79,0.437,80,0.437,84,0.443,85,0.411,89,0.827,95,1.104,100,0.464,102,0.497,104,1.807,108,0.437,109,0.488,113,1.956,119,1.39,121,1.456,123,2.124,124,1.686,125,0.416,128,0.397,130,2.495,131,2.104,133,0.669,134,1.853,136,0.876,143,0.389,144,0.497,147,1.367,150,1.067,154,2.241,157,2.764,161,0.529,163,0.488,168,0.421,170,1.246,171,0.479,178,1.081,182,1.115,192,1.53,195,0.488,196,1.155,198,2.016,200,0.669,201,1.264,207,1.264,210,0.572,216,0.456,226,0.456,236,2.255,237,0.517,238,1.753,241,0.75,243,1.881,247,1.846,252,0.443,253,0.876,257,0.759,260,0.978,261,0.529,264,0.456,265,1.05,269,2.585,270,1.246,272,0.999,278,0.401,280,1.893,283,1.044,289,1.067,290,0.529,291,1.537,292,1.751,298,0.727,301,0.471,305,0.611,311,0.59,325,0.529,326,0.59,327,0.497,332,0.488,338,0.479,339,0.437,346,0.431,350,1.324,352,0.471,353,0.59,356,1.192,358,3.458,359,1.494,362,0.506,363,0.497,365,0.572,386,1.034,391,1.067,411,0.401,412,0.876,413,0.517,414,1.31,419,1.079,421,0.497,423,0.572,427,0.464,433,0.611,440,2.847,447,0.426,458,1.845,472,0.431,476,0.479,481,2.685,483,1.091,494,0.85,505,0.464,514,0.517,518,0.339,533,1.352,535,1.131,538,1.853,539,1.692,541,0.556,542,1.264,543,1.05,545,0.437,548,0.443,561,0.669,578,1.023,607,0.45,608,2.184,609,0.479,611,0.471,613,0.906,614,0.471,615,0.45,628,0.59,629,0.572,640,0.443,646,0.456,649,0.637,650,0.497,655,0.556,660,1.264,661,3.514,662,1.16,688,0.506,701,1.661,707,0.506,711,2.241,712,3.044,722,1.115,727,2.108,731,1.456,733,0.637,743,1.024,746,0.529,750,0.506,778,0.517,814,0.637,815,0.488,817,0.464,822,0.456,823,1.846,842,0.464,864,1.264,874,0.506,889,0.795,902,0.89,907,2.356,909,0.471,910,2.145,913,0.488,917,0.541,927,0.906,928,0.456,931,0.556,933,0.611,935,0.89,936,0.712,937,0.556,938,0.59,939,0.712,940,0.876,941,3.701,942,1.456,943,0.59,944,1.421,945,0.572,946,1.948,947,0.999,948,0.572,949,2.37,950,0.517,951,0.712,952,0.611,953,0.712,954,0.669,955,0.712,956,0.712,957,0.669,958,0.712,959,0.572,964,1.204,965,0.611,966,0.611,967,0.556,968,0.669,971,0.669,972,0.712,973,0.712,974,0.712,975,0.712,976,1.586,977,1.264,978,2.034,979,1.799,980,0.712,981,0.637,982,0.712,983,3.111,984,2.425,985,0.712,986,0.712,987,0.712,988,0.669,989,1.081,990,1.115,991,0.669,992,0.712,993,0.712,994,0.712,995,0.712,996,0.712,997,0.712,998,0.669,999,0.712,1000,0.712,1001,0.712,1002,0.712,1003,0.712,1004,0.669,1005,0.712,1006,0.712,1007,0.712,1008,1.632,1009,0.59,1010,0.712,1011,1.264,1012,0.669,1013,0.712,1014,0.669,1015,0.712,1016,0.712,1017,0.669,1018,0.669,1019,0.572,1020,1.421,1021,1.264,1022,1.264,1023,0.712,1024,0.712,1025,0.712,1026,0.712,1027,0.712,1028,0.669,1029,0.637,1030,0.637,1031,0.637,1032,0.669,1033,0.712,1034,0.712,1035,0.712,1036,0.957,1037,0.669,1038,0.712,1039,0.712,1040,1.494,1041,0.669,1042,0.712,1043,0.712,1044,0.712,1045,1.204,1046,0.712,1047,1.798,1048,0.712,1049,0.669,1050,0.669,1051,0.669,1052,0.669,1053,2.715,1054,0.669,1055,0.669,1056,0.669,1057,0.712,1058,0.712,1059,0.712,1060,1.204,1061,0.712,1062,0.541,1063,0.712,1064,1.024,1065,0.712,1066,0.712,1067,0.669,1068,0.59,1069,0.712,1070,1.264,1071,1.264,1072,0.572,1073,1.893,1074,0.611,1075,0.712,1076,0.712,1077,0.637,1078,0.611,1079,1.346,1080,1.346,1081,0.669,1082,0.712,1083,0.712,1084,0.712,1085,0.712,1086,0.712,1087,0.712,1088,0.712,1089,0.669,1090,0.712,1091,0.712,1092,0.712,1093,0.712,1094,0.712,1095,0.712,1096,0.712,1097,1.712,1098,1.155,1099,1.346,1100,1.264,1101,2.425,1102,1.204,1103,0.712,1104,1.266,1105,0.669,1106,1.115,1107,0.712,1108,0.712,1109,0.712,1110,0.712,1111,1.115,1112,1.264,1113,0.611,1114,0.669,1115,0.59,1116,0.59,1117,0.712,1118,0.59,1119,0.712,1120,0.669,1121,1.204,1122,0.939,1123,1.264,1124,1.155,1125,0.712,1126,0.712,1127,0.712,1128,1.712,1129,1.264,1130,0.637,1131,1.264,1132,0.712,1133,0.712,1137,0.59,1138,0.712,1139,0.712,1140,0.712,1141,1.692,1142,1.537,1143,0.712,1144,0.712,1145,0.572,1146,0.556,1147,0.517,1148,0.712,1149,0.712,1150,0.669,1151,0.611,1152,0.712,1153,0.712,1154,0.712,1155,0.712,1156,0.712,1157,0.712,1158,0.669,1159,0.712,1160,0.712,1161,0.712,1167,2.062,1168,2.726,1169,1.979,1170,0.59,1171,3.756,1173,0.529,1174,0.669,1175,1.204,1176,0.712,1177,1.081,1178,0.541,1179,0.611,1180,0.999,1181,0.572,1182,1.266,1183,0.572,1184,2.31,1185,2.191,1186,0.637,1187,1.494,1188,0.906,1189,0.541,1190,1.264,1191,0.669,1192,0.541,1193,0.517,1194,0.876,1195,0.611,1196,0.999,1197,1.456,1198,0.669,1199,2.394,1200,0.712,1201,0.999,1202,1.155,1203,0.906,1204,0.669,1205,0.978,1206,0.712,1207,0.464,1208,0.669,1209,0.59,1210,0.712,1211,0.712,1212,0.712,1213,1.346,1214,1.115,1215,1.155,1216,0.712,1217,0.712,1218,1.914,1219,1.264,1220,1.155,1221,0.669,1222,0.712,1223,1.264,1224,0.712,1225,0.712,1226,0.712,1227,0.669,1228,0.541,1229,0.712,1230,1.346,1231,0.712,1232,0.669,1233,0.669,1234,0.712,1235,2.425,1236,2.425,1237,2.425,1238,0.611,1239,0.712,1240,0.541,1241,0.712,1242,0.712,1243,0.712,1244,0.712,1245,0.637,1246,0.712,1247,0.712,1248,0.541,1249,0.712,1250,0.669,1251,0.712,1252,0.712,1253,1.264,1254,0.712,1255,1.346,1256,0.712,1257,0.572,1258,0.637,1259,0.712,1260,0.712,1261,0.572,1262,1.914,1263,0.669,1264,0.59,1265,0.637,1266,0.712,1267,0.712,1268,0.611,1269,0.712,1270,0.712,1271,0.712,1272,0.712,1273,0.712,1274,0.712,1275,0.669,1276,0.712,1277,0.712,1278,0.712,1279,0.712,1280,1.914,1281,0.712,1282,0.712,1283,0.669,1284,0.611,1285,1.346,1286,1.893,1287,0.669,1288,0.712,1289,0.712,1290,0.669,1291,0.59,1292,0.712,1293,0.669,1294,0.712,1295,0.712,1296,0.712,1297,1.346,1298,0.464,1299,0.669,1300,0.712,1301,1.346,1302,0.712,1303,0.488,1304,0.669,1305,3.081,1306,0.712,1307,1.155,1308,0.637,1309,0.669,1310,0.637,1311,1.05,1312,0.712,1313,0.712,1314,0.712,1315,0.669,1316,0.712,1317,0.669,1318,0.712,1319,0.669,1320,0.712,1321,0.669,1322,0.957,1323,0.529,1324,0.712,1325,0.572,1326,0.712,1327,0.712,1328,0.712,1329,0.712,1330,0.712,1331,1.346,1332,0.712,1333,1.081,1334,1.155,1335,0.611,1336,0.669,1337,0.529,1338,0.572,1339,0.669,1340,0.712,1341,0.669,1342,0.59,1343,0.611,1344,0.611,1345,0.59,1346,1.707,1347,0.669,1348,0.59,1349,0.541,1350,0.471,1351,1.204,1352,0.712,1353,0.611,1354,0.712,1355,0.556,1356,0.471,1357,0.712,1358,0.712,1359,0.541,1360,0.517,1361,0.712,1362,0.611,1363,3.697,1364,0.479,1365,0.611,1366,1.081,1367,0.669,1368,2.083,1369,2.969,1370,4.188,1371,0.556,1372,1.115,1373,0.611,1374,0.712,1375,0.669,1376,1.362,1377,0.517,1378,1.204,1379,0.712,1380,0.572,1381,2.843,1382,0.669,1383,0.712,1384,0.488,1385,0.669,1386,0.479,1387,0.611,1388,0.712,1389,0.669,1390,0.611,1391,0.59,1392,0.637,1393,0.637,1394,0.572,1395,0.669,1396,0.637,1397,0.541,1398,0.406,1399,0.572,1400,0.637,1401,0.637,1402,0.59,1403,0.712,1404,0.712,1405,0.712,1406,0.637,1407,0.712,1408,0.431,1409,2.585,1410,4.677,1411,1.979,1412,2.32,1413,0.712,1414,2.146,1415,0.669,1416,0.712,1417,0.712,1418,0.556,1419,0.517,1420,0.669,1421,0.712,1422,0.712,1423,0.712,1424,0.59,1425,2.425,1426,0.637,1427,0.712,1428,0.712,1429,0.712,1430,0.669,1431,0.712,1432,0.572,1433,0.637,1434,0.637,1435,0.556,1436,1.712,1437,0.611,1438,0.611,1439,0.712,1440,0.637,1441,0.506,1442,0.669,1443,0.669,1444,0.464,1445,0.529,1446,1.346,1447,0.611,1448,0.611,1449,0.669,1450,0.712,1451,0.506,1452,0.712,1453,0.572,1454,0.541,1455,0.712,1456,0.506,1457,0.712,1458,0.45,1459,0.712,1460,0.637,1461,0.637,1462,0.669,1463,0.712,1464,0.506,1465,0.556,1466,0.637,1467,0.59,1468,0.556,1469,0.611,1470,0.556,1471,0.529,1472,0.572,1473,0.45,1474,0.541,1475,0.541,1476,0.669,1477,0.59,1478,0.669,1479,0.517]],["component/14",[162,0.398]],["keyword/14",[]],["title/15-1",[1165,71.55]],["name/15-1",[]],["text/15-1",[]],["component/15-1",[]],["keyword/15-1",[]],["title/15-2",[292,46.154]],["name/15-2",[]],["text/15-2",[]],["component/15-2",[]],["keyword/15-2",[]],["title/15-3",[123,39.93]],["name/15-3",[]],["text/15-3",[]],["component/15-3",[]],["keyword/15-3",[]],["title/15-4",[20,10.073,56,13.439,65,13.668,123,14.564,538,17.808,941,14.853,978,17.06,979,17.297,1166,23.847,1167,17.297]],["name/15-4",[]],["text/15-4",[]],["component/15-4",[]],["keyword/15-4",[]],["title/15-5",[104,21.123,123,20.294,440,21.123,823,21.578,1168,26.042,1169,26.504]],["name/15-5",[]],["text/15-5",[]],["component/15-5",[]],["keyword/15-5",[]],["title/15-6",[123,22.507,124,25.053,942,32.648,1170,35.568,1171,34.467]],["name/15-6",[]],["text/15-6",[]],["component/15-6",[]],["keyword/15-6",[]],["title/15",[]],["name/15",[1165,0.81]],["text/15",[3,0.463,8,2.555,11,3.62,12,3.779,13,0.575,14,3.485,16,0.606,17,2.434,19,0.964,20,3.266,21,0.707,22,0.515,24,3.645,25,3.353,27,1.494,28,2.877,31,0.624,32,0.555,33,1.093,34,2.967,35,2.353,36,0.74,39,0.52,45,3.161,46,1.297,50,1.522,51,1.235,52,1.883,53,1.633,56,2.748,57,0.615,58,2.214,59,1.375,60,1.937,61,0.919,62,0.615,65,1.547,67,1.219,71,0.582,78,2.913,79,0.598,80,0.598,85,0.561,89,0.598,95,1.453,100,0.634,104,1.716,108,0.598,113,2.47,119,1.83,121,1.917,123,2.42,124,1.835,125,0.568,128,0.543,130,3.055,131,2.397,133,0.914,134,1.156,136,1.174,143,0.531,144,0.679,147,1.773,150,0.543,154,2.534,157,3.355,161,0.723,163,0.666,170,1.174,171,0.655,178,1.448,182,0.806,192,1.665,195,0.666,198,2.194,207,1.694,210,0.781,226,0.624,236,2.883,238,1.956,241,1.005,243,2.405,247,2.06,252,0.606,257,0.549,260,0.707,264,0.624,265,1.408,269,3.264,270,1.174,272,0.723,280,2.454,283,1.375,289,1.405,291,2.023,292,2.239,298,0.974,301,0.644,305,0.835,311,0.806,327,0.679,332,0.666,338,0.655,339,0.598,346,0.59,350,1.716,352,0.644,356,1.123,358,2.917,359,0.76,365,0.781,386,1.361,391,0.543,411,0.549,412,1.174,413,0.707,414,1.699,419,1.42,421,0.679,423,0.781,427,0.634,433,0.835,440,2.016,447,0.582,458,2.392,472,0.59,476,0.655,481,3.353,483,1.437,494,0.615,505,0.634,514,0.707,518,0.463,533,1.005,535,1.489,538,2.369,539,1.258,561,0.914,578,0.52,607,0.615,608,2.47,609,0.655,613,0.655,614,0.644,615,0.615,628,0.806,629,0.781,640,0.606,662,1.527,688,0.692,701,2.153,707,0.692,711,2.534,712,1.931,727,2.632,733,0.87,743,1.372,746,0.723,778,0.707,814,0.87,817,0.634,823,2.331,842,0.634,864,1.694,874,0.692,889,1.065,902,1.193,907,2.628,909,0.644,910,1.956,913,0.666,917,0.74,927,1.213,928,0.624,935,0.644,940,0.634,941,3.336,942,1.372,944,1.339,946,1.448,947,0.723,949,2.016,978,2.269,979,1.958,1008,1.213,1036,0.692,1053,2.955,1073,1.408,1104,1.193,1122,0.679,1141,1.258,1142,0.781,1167,2.604,1168,3.369,1169,2.53,1170,0.806,1171,4.56,1173,0.723,1174,0.914,1175,1.613,1176,0.973,1177,1.448,1178,0.74,1179,0.835,1180,1.339,1181,0.781,1182,1.667,1183,0.781,1184,2.917,1185,2.767,1186,0.87,1187,1.967,1188,1.213,1189,0.74,1190,1.694,1191,0.914,1192,0.74,1193,0.707,1194,1.174,1195,0.835,1196,1.339,1197,1.917,1198,0.914,1199,3.061,1200,0.973,1201,1.339,1202,1.548,1203,1.213,1204,0.914,1205,1.31,1206,0.973,1207,0.634,1208,0.914,1209,0.806,1210,0.973,1211,0.973,1212,0.973,1213,1.803,1214,1.494,1215,1.548,1216,0.973,1217,0.973,1218,2.519,1219,1.694,1220,1.548,1221,0.914,1222,0.973,1223,1.694,1224,0.973,1225,0.973,1226,0.973,1227,0.914,1228,0.74,1229,0.973,1230,1.803,1231,0.973,1232,0.914,1233,0.914,1234,0.973,1235,3.144,1236,3.144,1237,3.144,1238,0.835,1239,0.973,1240,0.74,1241,0.973,1242,0.973,1243,0.973,1244,0.973,1245,0.87,1246,0.973,1247,0.973,1248,0.74,1249,0.973,1250,0.914,1251,0.973,1252,0.973,1253,1.694,1254,0.973,1255,1.803,1256,0.973,1257,0.781,1258,0.87,1259,0.973,1260,0.973,1261,0.781,1262,2.519,1263,0.914,1264,0.806,1265,0.87,1266,0.973,1267,0.973,1268,0.835,1269,0.973,1270,0.973,1271,0.973,1272,0.973,1273,0.973,1274,0.973,1275,0.914,1276,0.973,1277,0.973,1278,0.973,1279,0.973,1280,2.519,1281,0.973,1282,0.973,1283,0.914,1284,0.835,1285,1.803,1286,2.454,1287,0.914,1288,0.973,1289,0.973,1290,0.914,1291,0.806,1292,0.973,1293,0.914,1294,0.973,1295,0.973,1296,0.973,1297,1.803,1298,0.634,1299,0.914,1300,0.973,1301,1.803,1302,0.973,1303,0.666,1304,0.914,1305,3.808,1306,0.973,1307,1.548,1308,0.87,1309,0.914,1310,0.87,1311,1.408,1312,0.973,1313,0.973,1314,0.973,1315,0.914,1316,0.973,1317,0.914,1318,0.973,1319,0.914,1320,0.973,1321,0.914,1322,1.283,1323,0.723,1324,0.973,1325,0.781,1326,0.973,1327,0.973,1328,0.973,1329,0.973,1330,0.973,1331,1.803,1332,0.973,1333,1.448,1334,1.548,1335,0.835,1336,0.914,1337,0.723,1338,0.781,1339,0.914,1340,0.973,1341,0.914,1342,0.806,1343,0.835,1344,0.835,1345,0.806,1346,2.183,1347,0.914,1348,0.806,1349,0.74,1350,0.644,1351,1.613,1352,0.973,1353,0.835,1354,0.973,1355,0.76,1356,0.644,1357,0.973,1358,0.973,1359,0.74,1360,0.707,1361,0.973,1362,0.835,1363,4.616,1364,0.655,1365,0.835,1366,1.448,1367,0.914,1368,2.7,1369,3.707,1370,5.009,1371,0.76,1372,1.494,1373,0.835,1374,0.973,1375,0.914,1376,1.793,1377,0.707,1378,1.613,1379,0.973,1380,0.781,1381,3.59,1382,0.914,1383,0.973,1384,0.666,1385,0.914,1386,0.655,1387,0.835,1388,0.973,1389,0.914,1390,0.835,1391,0.806,1392,0.87,1393,0.87,1394,0.781,1395,0.914,1396,0.87,1397,0.74,1398,0.555,1399,0.781,1400,0.87,1401,0.87,1402,0.806,1403,0.973,1404,0.973,1405,0.973,1406,0.87,1407,0.973,1408,0.59,1409,3.304,1410,5.678,1411,2.53,1412,2.966,1413,0.973,1414,2.744,1415,0.914,1416,0.973,1417,0.973,1418,0.76,1419,0.707,1420,0.914,1421,0.973,1422,0.973,1423,0.973,1424,0.806,1425,3.144,1426,0.87,1427,0.973,1428,0.973,1429,0.973,1430,0.914,1431,0.973,1432,0.781,1433,0.87,1434,0.87,1435,0.76,1436,2.254,1437,0.835,1438,0.835,1439,0.973,1440,0.87,1441,0.692,1442,0.914,1443,0.914,1444,0.634,1445,0.723,1446,1.803,1447,0.835,1448,0.835,1449,0.914,1450,0.973,1451,0.692,1452,0.973,1453,0.781,1454,0.74,1455,0.973,1456,0.692,1457,0.973,1458,0.615,1459,0.973,1460,0.87,1461,0.87,1462,0.914,1463,0.973,1464,0.692,1465,0.76,1466,0.87,1467,0.806,1468,0.76,1469,0.835,1470,0.76,1471,0.723,1472,0.781,1473,0.615,1474,0.74,1475,0.74,1476,0.914,1477,0.806,1478,0.914,1479,0.707]],["component/15",[162,0.398]],["keyword/15",[]],["title/16-1",[382,36.942,878,45.493,1220,47.137]],["name/16-1",[]],["text/16-1",[]],["component/16-1",[]],["keyword/16-1",[]],["title/16-2",[8,11.415,78,23.508,264,30.891,472,29.201]],["name/16-2",[]],["text/16-2",[]],["component/16-2",[]],["keyword/16-2",[]],["title/16-3",[1480,55.314]],["name/16-3",[]],["text/16-3",[]],["component/16-3",[]],["keyword/16-3",[]],["title/16-4",[1315,71.55]],["name/16-4",[]],["text/16-4",[]],["component/16-4",[]],["keyword/16-4",[]],["title/16-5",[8,15.07,1481,38.397,1482,46.848,1483,42.918]],["name/16-5",[]],["text/16-5",[]],["component/16-5",[]],["keyword/16-5",[]],["title/16-6",[8,7.662,12,14.581,17,14.69,130,18.438,382,21.761,607,20.43,751,24.599,1484,30.386]],["name/16-6",[]],["text/16-6",[]],["component/16-6",[]],["keyword/16-6",[]],["title/16-7",[1485,49.111,1486,54.895,1487,51.584]],["name/16-7",[]],["text/16-7",[]],["component/16-7",[]],["keyword/16-7",[]],["title/16-8",[8,9.169,52,19.731,167,27,1488,52.643,1489,38.697]],["name/16-8",[]],["text/16-8",[]],["component/16-8",[]],["keyword/16-8",[]],["title/16-9",[8,7.662,20,11.729,235,19.107,947,24.018,1490,32.336,1491,32.336,1492,35.297,1493,28.929]],["name/16-9",[]],["text/16-9",[]],["component/16-9",[]],["keyword/16-9",[]],["title/16-10",[1494,76.142]],["name/16-10",[]],["text/16-10",[]],["component/16-10",[]],["keyword/16-10",[]],["title/16-11",[947,47.386,1495,63.796]],["name/16-11",[]],["text/16-11",[]],["component/16-11",[]],["keyword/16-11",[]],["title/16-12",[1481,57.074,1496,63.796]],["name/16-12",[]],["text/16-12",[]],["component/16-12",[]],["keyword/16-12",[]],["title/16-13",[34,25.127,1497,45.493,1498,47.137]],["name/16-13",[]],["text/16-13",[]],["component/16-13",[]],["keyword/16-13",[]],["title/16-14",[902,50.387]],["name/16-14",[]],["text/16-14",[]],["component/16-14",[]],["keyword/16-14",[]],["title/16-15",[949,40.909,1322,45.392]],["name/16-15",[]],["text/16-15",[]],["component/16-15",[]],["keyword/16-15",[]],["title/16-16",[131,20.101,578,20.696,679,25.608,750,27.534,937,30.209,1499,38.697]],["name/16-16",[]],["text/16-16",[]],["component/16-16",[]],["keyword/16-16",[]],["title/16-17",[750,34.276,772,33.612,937,37.606,1500,41.365]],["name/16-17",[]],["text/16-17",[]],["component/16-17",[]],["keyword/16-17",[]],["title/16-18",[750,45.392,1501,69.637]],["name/16-18",[]],["text/16-18",[]],["component/16-18",[]],["keyword/16-18",[]],["title/16-19",[750,45.392,1502,44.512]],["name/16-19",[]],["text/16-19",[]],["component/16-19",[]],["keyword/16-19",[]],["title/16-20",[8,8.348,20,12.779,56,17.049,143,19.231,508,30.253,1072,28.294,1503,35.232]],["name/16-20",[]],["text/16-20",[]],["component/16-20",[]],["keyword/16-20",[]],["title/16-21",[7,28.882,25,17.914,45,22.727,647,29.945,1504,42.918]],["name/16-21",[]],["text/16-21",[]],["component/16-21",[]],["keyword/16-21",[]],["title/16-22",[1505,76.142]],["name/16-22",[]],["text/16-22",[]],["component/16-22",[]],["keyword/16-22",[]],["title/16-23",[8,13.007,264,35.201,616,29.657]],["name/16-23",[]],["text/16-23",[]],["component/16-23",[]],["keyword/16-23",[]],["title/16-24",[8,11.415,440,26.295,1506,48.173,1507,48.173]],["name/16-24",[]],["text/16-24",[]],["component/16-24",[]],["keyword/16-24",[]],["title/16-25",[910,33.783,1398,36.376]],["name/16-25",[]],["text/16-25",[]],["component/16-25",[]],["keyword/16-25",[]],["title/16-26",[1508,71.55]],["name/16-26",[]],["text/16-26",[]],["component/16-26",[]],["keyword/16-26",[]],["title/16-27",[178,51.233,1509,63.796]],["name/16-27",[]],["text/16-27",[]],["component/16-27",[]],["keyword/16-27",[]],["title/16-28",[1510,76.142]],["name/16-28",[]],["text/16-28",[]],["component/16-28",[]],["keyword/16-28",[]],["title/16-29",[24,22.22,1020,35.782,1508,45.268,1511,36.646]],["name/16-29",[]],["text/16-29",[]],["component/16-29",[]],["keyword/16-29",[]],["title/16-30",[910,33.783,1398,36.376]],["name/16-30",[]],["text/16-30",[]],["component/16-30",[]],["keyword/16-30",[]],["title/16-31",[8,13.007,1512,54.895,1513,51.584]],["name/16-31",[]],["text/16-31",[]],["component/16-31",[]],["keyword/16-31",[]],["title/16-32",[910,33.783,1398,36.376]],["name/16-32",[]],["text/16-32",[]],["component/16-32",[]],["keyword/16-32",[]],["title/16-33",[13,28.465,20,17.474,1514,48.173,1515,48.173]],["name/16-33",[]],["text/16-33",[]],["component/16-33",[]],["keyword/16-33",[]],["title/16-34",[910,33.783,1398,36.376]],["name/16-34",[]],["text/16-34",[]],["component/16-34",[]],["keyword/16-34",[]],["title/16-35",[20,19.912,1516,59.921,1517,51.584]],["name/16-35",[]],["text/16-35",[]],["component/16-35",[]],["keyword/16-35",[]],["title/16-36",[910,33.783,1398,36.376]],["name/16-36",[]],["text/16-36",[]],["component/16-36",[]],["keyword/16-36",[]],["title/16-37",[20,19.912,1518,49.111,1519,59.921]],["name/16-37",[]],["text/16-37",[]],["component/16-37",[]],["keyword/16-37",[]],["title/16-38",[910,33.783,1398,36.376]],["name/16-38",[]],["text/16-38",[]],["component/16-38",[]],["keyword/16-38",[]],["title/16-39",[1520,57.074,1521,59.948]],["name/16-39",[]],["text/16-39",[]],["component/16-39",[]],["keyword/16-39",[]],["title/16-40",[910,33.783,1398,36.376]],["name/16-40",[]],["text/16-40",[]],["component/16-40",[]],["keyword/16-40",[]],["title/16-41",[20,15.568,76,25.053,1349,32.648,1426,38.397,1522,40.33]],["name/16-41",[]],["text/16-41",[]],["component/16-41",[]],["keyword/16-41",[]],["title/16-42",[910,33.783,1398,36.376]],["name/16-42",[]],["text/16-42",[]],["component/16-42",[]],["keyword/16-42",[]],["title/16-43",[8,10.17,655,33.504,1353,36.853,1523,38.397,1524,35.568]],["name/16-43",[]],["text/16-43",[]],["component/16-43",[]],["keyword/16-43",[]],["title/16-44",[910,33.783,1398,36.376]],["name/16-44",[]],["text/16-44",[]],["component/16-44",[]],["keyword/16-44",[]],["title/16-45",[414,29.657,1525,49.111,1526,54.895]],["name/16-45",[]],["text/16-45",[]],["component/16-45",[]],["keyword/16-45",[]],["title/16-46",[910,33.783,1398,36.376]],["name/16-46",[]],["text/16-46",[]],["component/16-46",[]],["keyword/16-46",[]],["title/16-47",[49,27,56,18.726,76,22.589,264,24.814,600,34.62,940,25.2]],["name/16-47",[]],["text/16-47",[]],["component/16-47",[]],["keyword/16-47",[]],["title/16-48",[910,33.783,1398,36.376]],["name/16-48",[]],["text/16-48",[]],["component/16-48",[]],["keyword/16-48",[]],["title/16-49",[1527,63.796,1528,57.074]],["name/16-49",[]],["text/16-49",[]],["component/16-49",[]],["keyword/16-49",[]],["title/16-50",[411,30.949,893,37.598,1529,47.137]],["name/16-50",[]],["text/16-50",[]],["component/16-50",[]],["keyword/16-50",[]],["title/16-51",[17,21.885,362,34.276,928,30.891,1530,45.268]],["name/16-51",[]],["text/16-51",[]],["component/16-51",[]],["keyword/16-51",[]],["title/16-52",[8,11.415,17,21.885,848,41.365,1531,48.173]],["name/16-52",[]],["text/16-52",[]],["component/16-52",[]],["keyword/16-52",[]],["title/16-53",[24,25.32,1020,40.774,1532,49.111]],["name/16-53",[]],["text/16-53",[]],["component/16-53",[]],["keyword/16-53",[]],["title/16-54",[20,19.912,361,44.085,1533,59.921]],["name/16-54",[]],["text/16-54",[]],["component/16-54",[]],["keyword/16-54",[]],["title/16-55",[1534,68.12]],["name/16-55",[]],["text/16-55",[]],["component/16-55",[]],["keyword/16-55",[]],["title/16-56",[8,13.007,352,36.327,1205,39.879]],["name/16-56",[]],["text/16-56",[]],["component/16-56",[]],["keyword/16-56",[]],["title/16-57",[56,26.565,1480,39.879,1528,49.111]],["name/16-57",[]],["text/16-57",[]],["component/16-57",[]],["keyword/16-57",[]],["title/16-58",[58,29.069,1220,47.137,1528,49.111]],["name/16-58",[]],["text/16-58",[]],["component/16-58",[]],["keyword/16-58",[]],["title/16-59",[912,48.53,1535,44.512]],["name/16-59",[]],["text/16-59",[]],["component/16-59",[]],["keyword/16-59",[]],["title/16",[20,12.779,28,16.251,192,18.657,216,22.592,947,26.169,1536,26.801,1537,38.458]],["name/16",[1538,0.81]],["text/16",[0,0.629,3,0.251,5,0.173,6,1.18,7,1.121,8,2.525,9,0.676,11,3.392,12,3.554,13,1.218,14,3.338,15,0.192,16,0.328,17,3.742,18,0.2,19,1.812,20,3.399,22,1.286,24,3.667,25,4.012,27,0.641,28,2.322,29,0.794,30,0.223,31,0.338,32,2.091,33,0.469,34,3.575,35,4.417,38,0.355,39,0.999,41,0.495,45,2.081,46,0.271,48,1.322,49,0.188,50,2.24,51,0.997,52,3.484,53,2.348,56,3.383,58,2.764,59,0.288,60,0.53,61,0.515,62,1.18,63,0.168,64,0.21,65,0.497,67,3.226,68,0.355,71,0.315,76,1.418,77,0.597,78,3.105,80,0.621,81,1.401,82,0.391,83,0.361,85,1.401,88,0.178,89,0.76,92,0.192,95,0.961,96,0.165,98,0.241,100,0.175,101,0.575,102,0.54,104,0.422,105,1.369,106,0.184,107,1.197,108,2.253,109,0.692,113,0.984,122,0.181,123,2.252,124,0.722,125,0.722,128,1.254,130,0.83,131,2.041,134,2.078,139,0.343,143,1.512,145,0.86,147,0.698,150,1.254,151,2.838,154,0.163,155,0.184,157,0.597,161,0.2,167,0.54,168,0.159,170,0.175,178,0.423,182,0.223,185,0.192,186,0.551,187,0.2,189,0.241,190,0.864,192,3.468,194,1.236,195,1.54,198,0.188,205,0.21,217,0.664,220,0.216,222,0.178,223,0.562,224,0.223,226,1.197,228,0.613,229,0.375,232,1.513,233,0.173,235,0.597,237,0.196,238,0.143,240,1.068,241,0.69,243,0.948,244,0.53,245,1.303,246,0.68,247,0.431,252,0.168,253,0.175,257,0.152,259,0.196,260,0.562,264,3.722,265,0.789,266,0.241,267,0.196,268,0.216,269,0.411,270,0.343,271,0.196,273,0.178,274,0.452,278,1.268,280,1.136,282,1.513,283,0.552,284,0.741,285,0.343,287,0.864,289,1.041,291,0.216,295,0.192,298,0.669,300,0.21,301,0.178,303,0.21,304,0.621,320,0.383,325,1.387,327,0.188,332,0.53,338,0.181,339,0.324,341,0.21,342,1.279,343,0.205,350,1.927,351,0.17,352,0.178,354,0.604,356,0.482,357,0.621,362,0.192,363,0.368,365,0.216,372,0.241,376,0.621,379,0.705,382,2.079,385,0.98,386,0.669,388,0.178,391,1.635,394,0.562,395,0.368,398,0.349,399,0.192,401,0.966,403,0.241,408,0.269,409,1.102,410,1.081,411,2.549,412,0.504,413,0.383,414,0.669,415,0.527,418,0.216,419,1.162,423,0.216,425,0.253,426,0.241,427,0.343,431,0.231,437,0.361,440,3.168,447,0.315,448,0.641,452,0.253,458,0.205,469,0.361,472,0.163,473,0.223,474,1.54,476,0.833,483,1.282,484,0.527,486,0.368,490,0.21,494,0.489,502,0.401,504,0.589,505,1.085,506,0.216,508,1.063,509,0.253,512,0.223,514,0.196,518,0.128,520,0.641,523,0.423,525,0.223,526,0.253,527,0.21,528,0.241,533,0.563,534,0.196,535,0.597,538,0.173,539,0.54,543,0.21,545,0.165,548,0.328,558,0.216,560,0.21,570,1.18,573,0.253,575,0.184,578,0.282,591,0.411,605,0.241,606,0.241,607,0.333,608,0.457,611,0.349,614,0.512,615,0.489,616,0.9,621,0.452,637,0.241,638,0.401,640,0.328,644,0.423,645,0.231,647,0.54,655,0.411,659,0.253,662,0.75,664,0.216,666,0.349,667,0.231,669,0.452,670,0.401,681,0.349,682,0.178,683,0.881,684,0.692,686,0.837,693,0.471,698,0.216,701,0.848,702,0.231,707,0.192,710,0.383,711,0.75,712,1.023,713,0.192,722,0.223,727,0.154,732,0.181,737,0.368,743,0.769,744,0.401,746,0.2,750,1.329,753,0.21,766,0.621,767,0.411,772,0.368,773,0.452,787,0.21,797,0.576,802,0.21,803,0.253,815,0.848,816,0.589,817,0.658,820,0.692,834,0.216,840,0.241,842,0.948,843,0.205,849,2.32,851,0.495,860,0.173,865,0.664,869,1.931,874,0.375,876,0.411,878,0.641,880,0.401,881,0.253,886,1.162,889,0.311,893,1.141,894,0.383,900,0.223,902,0.512,903,0.168,906,0.864,910,1.467,913,0.361,917,0.401,918,0.216,919,0.2,924,0.241,926,0.719,927,0.521,928,0.794,937,0.604,938,0.223,940,0.948,941,1.102,942,0.401,944,0.2,946,0.423,947,1.67,949,0.173,950,0.196,957,0.495,959,0.216,964,0.241,967,0.411,1008,0.521,1020,0.919,1036,0.192,1047,0.253,1050,0.253,1055,0.253,1064,1.107,1072,0.811,1104,0.178,1111,0.223,1115,0.223,1141,0.54,1142,0.216,1145,0.216,1147,1.058,1167,0.629,1169,0.848,1170,0.223,1173,1.387,1175,0.241,1177,0.216,1178,0.401,1180,0.2,1181,0.423,1182,0.349,1184,1.016,1185,0.819,1189,0.589,1192,0.205,1193,0.383,1194,0.343,1196,0.751,1197,0.769,1199,0.437,1201,0.2,1202,0.452,1203,0.521,1214,0.437,1215,0.452,1220,0.452,1245,0.241,1298,0.175,1299,0.495,1303,1.412,1305,1.848,1309,0.727,1317,0.495,1322,0.375,1333,0.216,1334,0.231,1335,0.231,1345,0.437,1346,1.218,1349,0.205,1353,0.452,1355,0.411,1356,0.178,1359,0.205,1360,0.196,1362,0.231,1364,0.355,1372,0.223,1380,0.423,1381,0.452,1384,0.53,1386,0.181,1389,0.253,1390,0.231,1391,0.437,1392,0.241,1393,0.241,1394,0.621,1395,0.253,1396,0.241,1397,0.205,1398,0.154,1402,0.437,1406,0.471,1408,0.163,1409,0.241,1411,0.184,1412,0.216,1414,0.919,1415,0.495,1418,0.411,1419,0.383,1424,0.437,1426,0.471,1435,0.21,1436,0.241,1437,0.231,1438,0.231,1441,1.036,1442,0.253,1444,0.658,1448,1.063,1456,0.375,1460,0.241,1464,0.375,1466,0.241,1475,0.205,1478,0.253,1480,1.058,1481,0.904,1483,0.527,1484,1.368,1485,1.302,1486,0.269,1488,1.107,1489,0.527,1490,0.774,1491,0.269,1493,0.241,1494,0.269,1495,0.774,1496,0.269,1497,0.223,1498,1.77,1499,0.527,1503,1.665,1504,0.527,1505,1.456,1506,0.774,1507,0.269,1508,2.446,1509,1.01,1512,1.01,1513,0.495,1514,0.774,1515,1.01,1517,0.253,1518,1.49,1520,1.844,1521,0.95,1523,0.904,1524,0.223,1525,0.471,1528,0.241,1529,0.231,1530,0.253,1531,0.269,1532,0.241,1536,0.205,1539,0.231,1540,0.452,1541,0.294,1542,0.253,1543,0.231,1544,1.565,1545,0.575,1546,0.368,1547,0.966,1548,0.294,1549,0.343,1550,0.269,1551,0.253,1552,1.25,1553,0.294,1554,0.294,1555,1.49,1556,1.216,1557,0.253,1558,0.294,1559,0.727,1560,0.294,1561,0.269,1562,0.2,1563,0.294,1564,0.294,1565,0.294,1566,0.527,1567,0.294,1568,0.294,1569,0.269,1570,0.868,1571,1.77,1572,0.495,1573,0.575,1574,0.575,1575,0.575,1576,1.565,1577,0.269,1578,0.471,1579,0.294,1580,0.294,1581,0.551,1582,1.238,1583,0.845,1584,0.294,1585,0.294,1586,0.527,1587,0.294,1588,0.269,1589,0.253,1590,0.495,1591,0.241,1592,0.269,1593,0.495,1594,0.294,1595,0.751,1596,0.216,1597,0.904,1598,0.253,1599,0.294,1600,0.527,1601,0.269,1602,0.269,1603,0.294,1604,0.845,1605,0.845,1606,0.294,1607,0.294,1608,0.269,1609,0.294,1610,0.294,1611,0.294,1612,0.294,1613,0.269,1614,0.294,1615,0.269,1616,0.2,1617,0.241,1618,0.231,1619,0.223,1620,0.196,1621,1.368,1622,0.294,1623,0.774,1624,0.471,1625,0.294,1626,0.294,1627,0.294,1628,0.589,1629,0.294,1630,0.294,1631,0.471,1632,0.294,1633,0.269,1634,0.692,1635,0.294,1636,0.527,1637,0.294,1638,0.294,1639,0.294,1640,0.269,1641,0.253,1642,0.253,1643,0.471,1644,0.294,1645,0.241,1646,0.368,1647,0.294,1648,0.437,1649,0.621,1650,0.231,1651,0.294,1652,0.216,1653,0.294,1654,0.294,1655,0.241,1656,0.253,1657,0.269,1658,0.241,1659,0.495,1660,0.294,1661,0.294,1662,0.294,1663,0.774,1664,0.294,1665,0.294,1666,0.253,1667,0.774,1668,0.294,1669,0.294,1670,0.241,1671,0.527,1672,0.294,1673,0.269,1674,0.269,1675,0.269,1676,0.294,1677,0.294,1678,0.401,1679,0.471,1680,0.269,1681,0.751,1682,0.294,1683,0.495,1684,0.575,1685,0.845,1686,0.664,1687,0.231,1688,0.294,1689,0.294,1690,0.253,1691,0.294,1692,0.727,1693,0.575,1694,0.294,1695,0.241,1696,0.294,1697,0.437,1698,1.058,1699,0.294,1700,0.253,1701,0.294,1702,0.269,1703,0.294,1704,0.294,1705,0.294,1706,0.269,1707,0.575,1708,0.269,1709,0.294,1710,0.294,1711,0.231,1712,0.294,1713,1.569,1714,0.294,1715,0.294,1716,0.294,1717,0.692,1718,0.495,1719,0.294,1720,0.621,1721,0.471,1722,0.294,1723,0.575,1724,0.294,1725,0.294,1726,0.269,1727,0.294,1728,0.294,1729,0.294,1730,0.774,1731,0.253,1732,0.269,1733,0.223,1734,0.294,1735,0.294,1736,0.294,1737,0.471,1738,0.294,1739,0.452,1740,0.294,1741,0.269,1742,0.241,1743,0.294,1744,0.294,1745,0.294,1746,0.294,1747,0.231,1748,0.437,1749,0.471,1750,0.294,1751,0.269,1752,0.294,1753,0.269,1754,0.294,1755,0.223,1756,0.294,1757,0.294,1758,0.294,1759,0.527,1760,0.269,1761,0.294,1762,0.269,1763,0.241,1764,0.269,1765,0.294,1766,0.269,1767,0.269,1768,0.205,1769,0.294,1770,0.411,1771,0.294,1772,0.294,1773,0.294,1774,0.231,1775,0.216,1776,2.431,1777,0.294,1778,0.495,1779,0.294,1780,0.294,1781,0.294,1782,0.294,1783,0.294,1784,0.294,1785,0.294,1786,0.269,1787,0.294,1788,0.294,1789,0.294,1790,0.196,1791,0.231,1792,0.196,1793,0.294,1794,0.294,1795,0.269,1796,0.401,1797,0.231,1798,0.423,1799,0.216,1800,0.253,1801,0.575,1802,0.95,1803,0.269,1804,0.294,1805,0.294,1806,0.241,1807,0.527,1808,0.294,1809,0.294,1810,0.253,1811,0.294,1812,0.216,1813,1.267,1814,0.575,1815,0.294,1816,0.294,1817,0.294,1818,0.471,1819,0.294,1820,0.269,1821,0.294,1822,1.063,1823,0.2,1824,0.845,1825,0.294,1826,0.231,1827,0.527,1828,0.253,1829,0.253,1830,0.253,1831,0.294,1832,0.604,1833,1.01,1834,0.269,1835,0.253,1836,0.269,1837,0.223,1838,0.294,1839,0.253,1840,0.269,1841,0.241,1842,0.294,1843,0.294,1844,0.294,1845,0.527,1846,0.241,1847,0.294,1848,0.269,1849,0.294,1850,0.471,1851,0.575,1852,0.223,1853,0.575,1854,0.294,1855,0.223,1856,0.269,1857,0.294,1858,0.471,1859,0.241,1860,0.241,1861,0.95,1862,0.471,1863,0.205,1864,0.231,1865,0.527,1866,0.253,1867,0.495,1868,0.241,1869,0.692,1870,0.241,1871,0.253,1872,0.21,1873,0.495,1874,0.452,1875,0.205,1876,0.231,1877,0.294,1878,0.294,1879,0.294,1880,0.294,1881,1.764,1882,0.294,1883,0.527,1884,0.269,1885,0.231,1886,0.527,1887,0.223,1888,0.575,1889,0.527,1890,0.452,1891,0.294,1892,0.294,1893,0.294,1894,0.269,1895,0.269,1896,0.294,1897,0.269,1898,0.294,1899,0.727,1900,0.294,1901,0.495,1902,0.966,1903,1.951,1904,0.641,1905,0.495,1906,0.253,1907,0.692,1908,0.471,1909,0.575,1910,0.269,1911,0.269,1912,0.294,1913,0.269,1914,0.527,1915,0.294,1916,0.294,1917,0.223,1918,0.241,1919,0.253,1920,0.253,1921,0.216,1922,0.196,1923,0.223,1924,0.231,1925,0.294,1926,0.437,1927,0.294,1928,0.495,1929,0.269,1930,0.269,1931,0.452,1932,0.269,1933,0.269,1934,0.21,1935,0.269,1936,0.269,1937,0.391,1938,0.575,1939,0.575,1940,0.241,1941,0.294,1942,0.241,1943,0.231,1944,0.253,1945,0.294,1946,0.294,1947,0.294,1948,0.253,1949,0.253,1950,0.269,1951,0.21,1952,0.223,1953,0.21,1954,0.294,1955,0.641,1956,0.269,1957,0.269,1958,1.338,1959,0.845,1960,0.269,1961,0.452,1962,0.253,1963,0.269,1964,0.774,1965,0.727,1966,0.904,1967,0.269,1968,0.527,1969,0.452,1970,0.294,1971,0.269,1972,0.253,1973,0.269,1974,0.269,1975,0.269,1976,0.527,1977,0.269,1978,0.774,1979,0.269,1980,0.845,1981,0.575,1982,0.241,1983,0.294,1984,0.231,1985,0.294,1986,0.294,1987,0.527,1988,0.253,1989,0.575,1990,0.241,1991,0.253,1992,0.269,1993,0.495,1994,0.727,1995,0.294,1996,0.294,1997,0.253,1998,0.269,1999,0.253,2000,0.241,2001,0.253,2002,0.294,2003,0.294,2004,0.294,2005,0.253,2006,0.692,2007,0.241,2008,0.241,2009,0.223,2010,0.269,2011,0.269,2012,0.294,2013,0.294,2014,0.269,2015,0.269,2016,0.294,2017,0.294,2018,0.294,2019,0.294,2020,0.241,2021,0.269,2022,0.664,2023,0.575,2024,0.294,2025,0.253,2026,0.294,2027,0.269,2028,0.269,2029,0.269,2030,0.294,2031,0.664,2032,0.845,2033,0.294,2034,0.95,2035,0.241,2036,0.423,2037,0.241,2038,0.241,2039,0.527,2040,0.705,2041,0.294,2042,0.253,2043,0.269,2044,0.269,2045,0.294,2046,0.575,2047,0.294,2048,0.294,2049,0.2,2050,0.269,2051,0.575,2052,0.294,2053,0.253,2054,0.575,2055,0.833,2056,0.527,2057,0.294,2058,0.294,2059,1.169,2060,0.294,2061,0.294,2062,0.294,2063,0.437,2064,0.294,2065,0.294,2066,0.294,2067,0.294,2068,0.241,2069,0.231,2070,0.361,2071,0.294,2072,0.845,2073,0.294,2074,0.294,2075,0.294,2076,0.294,2077,0.294,2078,0.294,2079,0.527,2080,0.294,2081,0.294,2082,0.231,2083,0.575,2084,0.294,2085,0.294,2086,0.294,2087,0.21,2088,0.269,2089,0.294,2090,0.269,2091,0.294,2092,0.495,2093,1.589,2094,0.294,2095,0.294,2096,0.294,2097,0.98,2098,0.589,2099,0.231,2100,0.253,2101,0.253,2102,0.294,2103,0.223,2104,0.294,2105,0.575,2106,0.527,2107,0.216,2108,0.294,2109,0.253,2110,0.294,2111,0.294,2112,0.294,2113,0.269,2114,0.269,2115,0.294,2116,0.604,2117,0.253,2118,0.294,2119,0.294,2120,0.269,2121,0.241,2122,0.294,2123,0.294,2124,0.294,2125,0.231,2126,0.253,2127,0.223,2128,0.294,2129,0.294,2130,0.294,2131,0.294,2132,0.95,2133,0.294,2134,0.452,2135,0.21,2136,0.253,2137,0.294,2138,0.253,2139,0.294,2140,0.575,2141,0.231,2142,0.294,2143,2.603,2144,0.294,2145,0.2,2146,0.774,2147,0.294,2148,0.294,2149,0.269,2150,0.241,2151,0.294,2152,0.294,2153,0.294,2154,0.294,2155,0.294,2156,0.294,2157,0.774,2158,0.294,2159,0.269,2160,0.294,2161,0.294,2162,0.95,2163,0.253,2164,0.437,2165,0.253,2166,0.253,2167,0.294,2168,0.589,2169,1.238,2170,0.727,2171,0.294,2172,0.845,2173,0.241,2174,0.294,2175,0.269,2176,0.241,2177,0.294,2178,0.495,2179,0.575,2180,0.727,2181,0.471,2182,0.845,2183,0.845,2184,0.575,2185,0.269,2186,0.495,2187,0.527,2188,0.294,2189,1.103,2190,0.253,2191,0.294,2192,0.269,2193,0.231,2194,0.294,2195,0.21,2196,0.294,2197,0.294,2198,0.294,2199,0.294,2200,0.294,2201,0.294,2202,0.294,2203,0.471,2204,0.196,2205,0.269,2206,0.294,2207,0.269,2208,0.294,2209,0.294,2210,0.575,2211,0.294,2212,0.231,2213,0.294,2214,0.294,2215,0.294,2216,0.294,2217,0.223,2218,0.269,2219,0.294,2220,0.527,2221,0.2,2222,0.294,2223,0.253,2224,0.811,2225,0.692,2226,0.216,2227,0.253,2228,0.575,2229,0.294,2230,0.294,2231,0.294,2232,0.294,2233,0.294,2234,0.575,2235,0.575,2236,0.269,2237,0.294,2238,0.223,2239,0.294,2240,0.253,2241,0.294,2242,0.845,2243,0.294,2244,0.294,2245,0.294,2246,0.527,2247,0.253,2248,0.294,2249,0.294,2250,0.269,2251,0.294,2252,0.175,2253,0.294,2254,0.269,2255,0.294,2256,0.294,2257,0.294,2258,0.294,2259,0.294,2260,0.294,2261,0.294,2262,0.294,2263,0.269,2264,0.294,2265,0.294,2266,0.294,2267,0.269,2268,0.575,2269,0.294,2270,0.294,2271,0.294,2272,0.253,2273,0.269,2274,0.188,2275,0.253,2276,1.302,2277,0.241,2278,0.269,2279,0.253,2280,0.575,2281,0.294,2282,0.845,2283,0.294,2284,0.294,2285,0.294,2286,0.575,2287,0.294,2288,0.231,2289,0.294,2290,0.253,2291,0.527,2292,0.269,2293,0.294,2294,0.253,2295,0.253,2296,0.269,2297,0.294,2298,0.294,2299,0.253,2300,0.241,2301,0.621,2302,0.575,2303,0.527,2304,0.294,2305,0.294,2306,0.727,2307,0.253,2308,0.241,2309,0.294,2310,0.294,2311,0.241,2312,0.294,2313,0.269,2314,0.294,2315,0.575,2316,0.294,2317,0.294,2318,0.294,2319,0.294,2320,0.269,2321,0.241,2322,0.575,2323,1.026,2324,0.294,2325,0.269,2326,0.294,2327,0.253,2328,0.294,2329,0.294,2330,0.241,2331,0.294,2332,0.294,2333,0.269,2334,0.294,2335,0.253,2336,0.562,2337,0.269,2338,0.241,2339,0.845,2340,0.294,2341,0.21,2342,0.994,2343,0.575,2344,0.241,2345,0.294,2346,0.904,2347,0.294,2348,0.294,2349,0.294,2350,0.471,2351,0.241,2352,0.269,2353,0.269,2354,0.294,2355,0.269,2356,0.269,2357,0.2,2358,0.294,2359,0.527,2360,0.253,2361,0.575,2362,0.294,2363,0.294,2364,0.294,2365,0.294,2366,0.294,2367,0.294,2368,0.294,2369,0.294,2370,0.294,2371,0.253,2372,0.294,2373,0.269,2374,0.196,2375,0.471,2376,0.294,2377,0.294,2378,0.294,2379,0.294,2380,0.294,2381,0.241,2382,0.216,2383,0.845,2384,0.253,2385,0.205,2386,0.294,2387,0.575,2388,0.294,2389,0.423,2390,0.294,2391,0.223,2392,0.2,2393,0.575,2394,0.575,2395,0.294,2396,0.253,2397,0.253,2398,0.269,2399,0.294,2400,0.253,2401,0.269,2402,0.269,2403,0.294,2404,0.294,2405,0.495,2406,0.253,2407,0.294,2408,0.575,2409,0.241,2410,0.269,2411,0.253,2412,0.269,2413,0.223,2414,0.241,2415,0.294,2416,0.294,2417,0.253,2418,0.294,2419,0.294,2420,0.241,2421,0.269,2422,0.269,2423,0.269,2424,0.253,2425,0.241,2426,0.294,2427,0.294,2428,0.294,2429,0.253,2430,0.21,2431,0.294,2432,0.294,2433,0.294,2434,0.294,2435,0.241,2436,0.294,2437,0.253,2438,0.294,2439,0.178,2440,0.294,2441,0.294,2442,0.269,2443,0.294,2444,0.294,2445,0.269,2446,0.575,2447,0.253,2448,0.241,2449,0.294,2450,0.253,2451,0.231,2452,0.294,2453,0.294,2454,0.294,2455,0.294,2456,0.294,2457,0.294,2458,0.294,2459,0.294,2460,0.294,2461,0.294,2462,0.253,2463,0.294,2464,0.294,2465,0.269,2466,0.294,2467,0.294,2468,0.294,2469,0.575,2470,0.294,2471,0.575,2472,0.294,2473,0.241,2474,0.294,2475,0.269,2476,0.294,2477,0.294,2478,0.223,2479,0.269,2480,0.294,2481,0.253,2482,0.269,2483,0.294,2484,0.231,2485,0.294,2486,0.241,2487,0.294,2488,0.294,2489,0.294,2490,0.294,2491,0.294,2492,0.294,2493,0.294,2494,0.294,2495,0.294,2496,0.269,2497,0.294,2498,0.294,2499,0.294,2500,0.294,2501,0.294,2502,0.294,2503,0.294,2504,0.294,2505,0.294,2506,0.294,2507,0.294,2508,0.294,2509,0.294,2510,0.294,2511,0.294,2512,0.294,2513,0.294,2514,0.294,2515,0.294,2516,0.269,2517,0.269,2518,0.294,2519,0.294,2520,0.294,2521,0.294,2522,0.294,2523,0.294,2524,0.294,2525,0.294,2526,0.294,2527,0.294,2528,0.294,2529,0.294,2530,0.294,2531,0.269,2532,0.294,2533,0.294,2534,0.269,2535,0.575,2536,0.575]],["component/16",[162,0.398]],["keyword/16",[]],["title/17-1",[20,15.568,163,29.395,737,29.945,2537,42.918,2538,40.33]],["name/17-1",[]],["text/17-1",[]],["component/17-1",[]],["keyword/17-1",[]],["title/17-2",[608,37.697,1717,57.074]],["name/17-2",[]],["text/17-2",[]],["component/17-2",[]],["keyword/17-2",[]],["title/17-3",[1411,52.151]],["name/17-3",[]],["text/17-3",[]],["component/17-3",[]],["keyword/17-3",[]],["title/17",[1344,41.365,2539,48.173,2540,41.365,2541,39.923]],["name/17",[1344,0.74]],["text/17",[3,0.786,7,1.112,8,2.613,9,2.569,11,2.941,12,4.078,13,3.173,14,2.445,17,4.046,19,2.518,20,3.479,22,0.875,24,4.108,25,4.04,28,2.171,29,1.059,34,3.932,35,4.541,46,2.009,48,1.059,50,2.278,52,0.842,53,2.028,56,3.096,58,1.542,61,1.485,62,1.84,65,1.433,67,3.293,77,0.976,78,3.122,81,2.715,83,1.131,88,1.093,89,1.789,95,0.953,104,0.902,105,0.931,108,1.015,123,1.527,124,2.279,125,0.964,128,1.624,131,0.858,134,4.102,143,1.59,145,2.307,151,0.931,163,1.131,186,1.175,187,3.988,188,1.2,192,2.493,196,1.419,198,1.153,204,1.478,226,1.059,227,1.369,235,0.976,238,2.068,241,1.624,264,1.059,273,1.927,278,0.931,279,1.29,283,1.59,285,1.076,287,2.725,289,0.921,290,1.227,291,1.327,292,1.001,294,2.9,298,0.892,303,1.29,304,2.339,320,1.2,324,1.2,334,1.327,338,3.613,349,1.652,350,2.931,385,2.628,386,2.901,387,3.581,395,1.153,399,1.175,423,1.327,455,1.369,472,1.001,483,1.66,505,1.076,508,1.419,514,2.116,533,0.921,545,1.015,547,1.29,576,1.419,608,2.307,648,1.896,679,1.093,682,1.927,711,2.367,712,1.015,713,2.072,714,1.29,724,1.257,737,2.725,743,2.215,785,1.112,787,1.29,803,1.552,809,1.093,815,1.131,816,1.257,823,0.921,842,1.076,846,1.552,849,2.674,860,1.059,880,1.257,889,0.976,906,1.153,913,1.131,935,1.093,940,3.065,943,1.369,944,2.163,1113,1.419,1118,1.369,1182,1.093,1189,1.257,1201,2.163,1205,1.2,1298,1.896,1344,5.493,1349,2.215,1356,1.093,1359,1.257,1376,2.072,1386,1.112,1441,1.175,1444,1.076,1451,2.072,1456,1.175,1523,1.478,1549,1.076,1556,1.076,1581,1.175,1628,1.257,1643,1.478,1717,1.478,1778,1.552,1796,1.257,1798,1.327,1858,1.478,1952,1.369,2008,1.478,2082,1.419,2097,1.112,2107,2.339,2125,1.419,2141,1.419,2164,1.369,2263,1.652,2274,1.153,2391,1.369,2392,1.227,2409,1.478,2439,1.093,2447,3.669,2537,2.912,2538,1.552,2540,1.419,2541,1.369,2542,5.138,2543,5.549,2544,4.262,2545,1.652,2546,6.467,2547,1.803,2548,2.501,2549,1.419,2550,1.803,2551,1.803,2552,1.652,2553,1.803,2554,1.419,2555,5.861,2556,1.803,2557,1.803,2558,1.803,2559,1.652,2560,1.552,2561,1.803,2562,1.803,2563,1.803,2564,1.652,2565,1.803,2566,1.419,2567,3.179,2568,3.179,2569,1.803,2570,1.803,2571,1.369,2572,1.803,2573,1.803,2574,1.369,2575,1.478,2576,1.803,2577,1.803,2578,1.478,2579,1.803,2580,1.803,2581,1.803,2582,1.803,2583,1.369,2584,1.803,2585,1.652,2586,1.29,2587,1.803,2588,1.803,2589,1.803,2590,1.478,2591,1.552,2592,1.652,2593,1.478,2594,3.136,2595,3.136,2596,1.478,2597,1.803,2598,4.707,2599,1.803,2600,1.803,2601,1.552,2602,1.652,2603,1.803,2604,1.369,2605,1.327,2606,1.803,2607,2.273,2608,1.652,2609,1.803,2610,1.803,2611,1.803,2612,1.803,2613,1.803,2614,1.652,2615,1.478,2616,1.552,2617,1.803,2618,1.803,2619,1.803,2620,1.803,2621,1.803,2622,5.138,2623,1.803,2624,1.803,2625,1.652,2626,1.652,2627,1.803,2628,1.803,2629,1.803,2630,1.803,2631,1.478,2632,1.803,2633,1.29,2634,1.803,2635,1.803,2636,1.552,2637,1.803,2638,1.652,2639,1.552,2640,1.803,2641,1.803,2642,1.652,2643,1.803,2644,1.803,2645,1.803,2646,1.552,2647,1.803,2648,1.419,2649,1.652,2650,1.327,2651,1.419,2652,1.803,2653,1.29,2654,1.419,2655,1.803,2656,1.803,2657,1.803,2658,1.803,2659,1.803,2660,1.803,2661,1.803,2662,1.652,2663,1.803]],["component/17",[162,0.398]],["keyword/17",[]],["title/18-1",[2664,76.142]],["name/18-1",[]],["text/18-1",[]],["component/18-1",[]],["keyword/18-1",[]],["title/18-2",[2665,76.142]],["name/18-2",[]],["text/18-2",[]],["component/18-2",[]],["keyword/18-2",[]],["title/18-3",[1997,71.55]],["name/18-3",[]],["text/18-3",[]],["component/18-3",[]],["keyword/18-3",[]],["title/18-4",[2666,76.142]],["name/18-4",[]],["text/18-4",[]],["component/18-4",[]],["keyword/18-4",[]],["title/18-5",[535,37.697,979,39.735]],["name/18-5",[]],["text/18-5",[]],["component/18-5",[]],["keyword/18-5",[]],["title/18-6",[1380,61.148]],["name/18-6",[]],["text/18-6",[]],["component/18-6",[]],["keyword/18-6",[]],["title/18-7",[2022,65.381]],["name/18-7",[]],["text/18-7",[]],["component/18-7",[]],["keyword/18-7",[]],["title/18-8",[8,13.007,535,32.437,1169,37.598]],["name/18-8",[]],["text/18-8",[]],["component/18-8",[]],["keyword/18-8",[]],["title/18-9",[24,25.32,232,34.191,2667,51.584]],["name/18-9",[]],["text/18-9",[]],["component/18-9",[]],["keyword/18-9",[]],["title/18-10",[2668,76.142]],["name/18-10",[]],["text/18-10",[]],["component/18-10",[]],["keyword/18-10",[]],["title/18-11",[24,25.32,59,29.964,2667,51.584]],["name/18-11",[]],["text/18-11",[]],["component/18-11",[]],["keyword/18-11",[]],["title/18-12",[712,39.19,1384,43.695]],["name/18-12",[]],["text/18-12",[]],["component/18-12",[]],["keyword/18-12",[]],["title/18-13",[8,13.007,535,32.437,1184,38.301]],["name/18-13",[]],["text/18-13",[]],["component/18-13",[]],["keyword/18-13",[]],["title/18-14",[2669,71.55]],["name/18-14",[]],["text/18-14",[]],["component/18-14",[]],["keyword/18-14",[]],["title/18-15",[1904,63.101]],["name/18-15",[]],["text/18-15",[]],["component/18-15",[]],["keyword/18-15",[]],["title/18-16",[1902,59.44]],["name/18-16",[]],["text/18-16",[]],["component/18-16",[]],["keyword/18-16",[]],["title/18-17",[1903,61.148]],["name/18-17",[]],["text/18-17",[]],["component/18-17",[]],["keyword/18-17",[]],["title/18-18",[1969,65.381]],["name/18-18",[]],["text/18-18",[]],["component/18-18",[]],["keyword/18-18",[]],["title/18-19",[1167,47.425]],["name/18-19",[]],["text/18-19",[]],["component/18-19",[]],["keyword/18-19",[]],["title/18-20",[1394,61.148]],["name/18-20",[]],["text/18-20",[]],["component/18-20",[]],["keyword/18-20",[]],["title/18-21",[2670,83.114]],["name/18-21",[]],["text/18-21",[]],["component/18-21",[]],["keyword/18-21",[]],["title/18-22",[2346,68.12]],["name/18-22",[]],["text/18-22",[]],["component/18-22",[]],["keyword/18-22",[]],["title/18-23",[750,45.392,1398,36.376]],["name/18-23",[]],["text/18-23",[]],["component/18-23",[]],["keyword/18-23",[]],["title/18-24",[1373,65.381]],["name/18-24",[]],["text/18-24",[]],["component/18-24",[]],["keyword/18-24",[]],["title/18-25",[59,34.823,941,34.119]],["name/18-25",[]],["text/18-25",[]],["component/18-25",[]],["keyword/18-25",[]],["title/18-26",[1116,52.869,1184,44.512]],["name/18-26",[]],["text/18-26",[]],["component/18-26",[]],["keyword/18-26",[]],["title/18-27",[24,22.22,25,20.107,76,28.12,1192,36.646]],["name/18-27",[]],["text/18-27",[]],["component/18-27",[]],["keyword/18-27",[]],["title/18-28",[25,20.107,168,28.465,910,25.51,1497,39.923]],["name/18-28",[]],["text/18-28",[]],["component/18-28",[]],["keyword/18-28",[]],["title/18-29",[1411,52.151]],["name/18-29",[]],["text/18-29",[]],["component/18-29",[]],["keyword/18-29",[]],["title/18",[941,34.119,946,51.233]],["name/18",[941,0.461]],["text/18",[0,0.338,8,2.489,9,1.971,11,4.175,12,3.684,14,3.289,16,0.648,17,3.41,18,0.404,19,1.234,20,3.316,22,1.016,23,0.45,24,4.044,25,3.815,28,2.321,29,1.48,30,1.913,31,0.348,32,0.854,33,0.631,34,3.396,35,4.259,38,0.7,39,0.557,42,0.486,44,0.486,45,1.222,46,0.771,47,1.112,48,0.348,50,1.748,51,1.026,52,1.532,53,3.066,54,1.381,56,2.78,57,1.687,58,3.78,59,2.261,60,1.21,61,0.978,62,2.282,63,1.438,65,0.737,67,3.301,68,0.7,73,0.756,76,0.317,77,0.615,78,2.639,79,0.639,80,0.639,81,0.864,82,0.404,83,0.372,84,0.338,85,0.6,88,1.527,89,2.218,90,0.45,93,0.74,95,0.6,96,0.639,100,0.354,101,0.404,104,1.047,105,0.587,106,0.713,107,0.348,108,1.64,113,1.364,115,0.372,122,1.008,123,1.576,126,0.424,128,1.07,130,0.31,131,1.199,134,0.348,139,0.678,143,0.297,145,0.321,147,0.844,150,0.58,151,1.505,154,0.329,159,0.413,176,0.413,185,0.387,186,0.74,190,0.379,192,1.912,195,0.372,199,0.413,206,1.59,216,0.348,218,0.45,225,1.139,226,0.348,228,0.329,232,1.438,235,0.615,237,0.395,238,2.665,240,0.348,241,0.835,243,0.975,244,0.372,246,1.291,247,0.58,250,0.511,253,0.354,257,0.844,258,0.395,264,0.667,267,0.395,272,0.404,273,0.36,277,0.366,278,1.505,279,1.169,282,0.933,283,0.817,284,0.623,285,0.354,289,1.488,293,0.387,294,1.112,295,0.387,301,0.991,303,0.424,331,0.424,338,1.291,340,0.45,342,0.713,343,0.792,344,0.424,346,1.163,347,0.413,350,2.394,354,0.812,379,0.379,382,0.366,385,0.7,386,2.238,388,0.36,389,0.689,391,1.07,393,0.387,409,0.36,410,0.404,411,0.587,412,1.249,413,0.756,414,0.294,419,0.844,421,0.379,435,0.511,437,0.372,440,2.518,447,0.325,453,0.424,463,0.486,472,0.631,483,1.714,490,0.424,493,0.45,533,2.692,535,4.97,537,0.387,538,1.712,544,0.467,547,0.424,554,0.486,570,0.343,578,0.557,584,1.112,589,1.241,591,1.802,598,2.144,607,0.343,608,0.615,611,0.36,613,0.7,615,0.658,616,0.294,640,1.872,641,1.647,646,0.667,647,0.726,648,0.678,666,1.27,679,0.689,681,0.36,682,0.36,701,1.026,703,0.812,704,0.511,710,0.395,711,1.163,712,1.64,727,0.854,728,0.467,737,0.379,745,0.689,750,2.57,754,0.836,767,0.424,768,0.812,778,1.088,780,0.511,781,0.978,797,0.31,807,0.511,814,0.931,815,0.372,816,0.413,817,0.354,818,0.931,823,1.676,831,0.404,833,0.894,836,0.543,847,0.486,849,0.713,860,0.348,865,0.894,870,0.486,874,0.387,881,0.511,886,0.379,893,0.713,902,0.36,903,0.338,905,1.041,906,1.045,910,0.551,917,2.286,926,1.066,927,1.008,928,0.348,937,0.424,938,0.45,941,3.92,946,1.203,947,0.404,949,0.348,966,0.467,967,0.812,978,0.92,979,1.663,1008,1.553,1009,0.45,1020,0.404,1064,1.46,1097,0.486,1114,0.511,1121,0.486,1141,0.726,1147,0.395,1166,0.467,1167,3.134,1168,0.7,1169,1.314,1173,0.404,1180,0.404,1182,1.527,1184,1.61,1185,0.991,1188,0.366,1193,0.395,1194,0.354,1201,0.404,1203,1.008,1205,0.395,1207,0.975,1268,0.467,1298,0.354,1303,0.372,1307,0.467,1311,0.424,1325,0.436,1346,0.321,1349,0.413,1350,1.27,1364,0.7,1368,0.467,1369,0.836,1373,0.467,1380,2.665,1384,1.026,1386,0.7,1387,0.467,1391,0.862,1392,0.486,1393,0.486,1394,0.436,1396,0.931,1397,0.413,1402,0.45,1408,0.908,1414,0.773,1432,0.436,1444,0.678,1453,0.436,1454,0.413,1458,0.343,1479,0.395,1500,0.467,1502,2.711,1518,0.931,1536,1.139,1539,0.467,1546,0.379,1549,0.678,1556,0.975,1562,0.404,1581,0.387,1590,1.407,1592,0.543,1593,0.511,1595,0.404,1601,0.543,1616,0.404,1617,0.486,1619,0.45,1620,1.088,1628,0.413,1631,0.486,1634,0.931,1642,0.511,1648,0.45,1655,0.486,1698,1.394,1713,0.726,1755,0.45,1768,0.413,1775,0.836,1791,0.467,1802,0.511,1806,0.931,1812,0.436,1813,0.413,1837,1.241,1863,0.413,1864,0.467,1866,0.511,1871,0.511,1873,0.511,1881,1.394,1901,0.511,1902,1.169,1903,2.144,1904,2.75,1905,0.511,1906,2.508,1907,2.388,1908,0.931,1910,1.041,1922,0.756,1931,0.894,1943,0.467,1951,0.424,1953,0.424,1955,1.59,1956,0.543,1957,0.543,1958,1.203,1961,1.982,1962,3.118,1963,1.041,1964,1.041,1965,3.651,1966,0.486,1967,0.543,1968,1.498,1969,1.647,1971,0.543,1972,0.978,1973,0.543,1974,0.543,1975,0.543,1976,0.543,1977,1.041,1978,3.005,1979,1.919,1984,0.894,1993,0.511,1994,1.803,1997,1.803,2000,0.486,2009,0.45,2020,1.34,2021,0.543,2022,2.292,2025,0.511,2027,0.543,2028,0.543,2029,1.041,2040,0.379,2049,0.404,2055,0.366,2087,0.424,2097,0.7,2098,1.139,2103,0.45,2145,0.404,2150,0.931,2170,1.407,2178,2.169,2180,0.978,2217,0.45,2220,0.543,2226,0.436,2252,2.161,2272,0.511,2274,1.61,2291,0.543,2300,0.486,2321,0.931,2330,0.931,2336,0.395,2346,0.486,2356,0.543,2374,0.395,2375,0.486,2385,1.139,2389,1.203,2391,0.45,2392,0.404,2425,0.486,2439,0.36,2478,0.45,2545,0.543,2590,0.486,2592,0.543,2631,1.717,2648,0.467,2664,3.319,2665,1.919,2666,0.543,2668,0.543,2669,0.511,2671,0.543,2672,0.593,2673,0.511,2674,0.543,2675,0.511,2676,1.203,2677,0.593,2678,0.593,2679,0.593,2680,0.593,2681,0.543,2682,1.136,2683,0.593,2684,0.593,2685,0.593,2686,0.45,2687,0.593,2688,0.593,2689,0.511,2690,0.593,2691,0.593,2692,0.593,2693,0.593,2694,0.593,2695,0.593,2696,0.593,2697,0.593,2698,0.593,2699,0.593,2700,0.593,2701,0.424,2702,0.511,2703,0.511,2704,0.593,2705,0.511,2706,1.041,2707,0.593,2708,0.543,2709,0.511,2710,0.593,2711,0.593,2712,0.593,2713,0.593,2714,0.593,2715,1.041,2716,0.593,2717,1.136,2718,0.593,2719,0.511,2720,0.424,2721,0.467,2722,0.593,2723,1.136,2724,0.593,2725,0.593,2726,0.543,2727,0.593,2728,0.593,2729,0.593,2730,0.593,2731,0.543,2732,0.45,2733,1.136,2734,0.404,2735,0.593,2736,0.593,2737,0.543,2738,0.593,2739,0.511,2740,2.094,2741,2.065,2742,0.593,2743,0.543,2744,0.543,2745,0.593,2746,0.593,2747,1.136,2748,0.436,2749,0.593,2750,0.593,2751,1.635,2752,0.543,2753,0.678,2754,0.467,2755,1.136,2756,0.593,2757,0.511,2758,0.593,2759,0.467,2760,0.486,2761,0.543,2762,0.467,2763,0.593,2764,1.041,2765,0.436,2766,0.894,2767,0.593,2768,0.486,2769,1.136,2770,0.486,2771,0.593,2772,0.593,2773,0.486,2774,0.593,2775,0.593,2776,0.593,2777,0.593,2778,0.543,2779,0.543,2780,0.593,2781,0.593,2782,0.593,2783,0.593,2784,0.978,2785,0.593,2786,0.593,2787,2.519,2788,0.543,2789,0.424,2790,0.593,2791,1.136,2792,0.486,2793,0.593,2794,0.424,2795,0.593,2796,0.978,2797,0.593,2798,0.593,2799,0.593,2800,0.436,2801,0.45,2802,0.543,2803,0.543,2804,0.543,2805,1.136,2806,3.28,2807,2.519,2808,1.635,2809,0.593,2810,0.543,2811,0.593,2812,1.498,2813,1.407,2814,1.647,2815,0.593,2816,0.543,2817,0.593,2818,0.593,2819,0.511,2820,3.942,2821,2.388,2822,0.836,2823,1.498,2824,0.931,2825,1.286,2826,2.914,2827,3.923,2828,1.635,2829,2.669,2830,0.593,2831,1.635,2832,1.635,2833,1.635,2834,1.635,2835,1.635,2836,0.593,2837,0.593,2838,0.593,2839,0.593,2840,0.593,2841,0.543,2842,0.593,2843,0.593,2844,0.593,2845,0.511,2846,0.511,2847,0.543,2848,0.593,2849,0.593,2850,0.543,2851,0.593,2852,0.593,2853,0.511,2854,0.593,2855,0.593,2856,0.486,2857,0.543,2858,0.511,2859,0.593,2860,0.593,2861,0.45,2862,0.543,2863,2.094,2864,0.593,2865,0.593,2866,1.498,2867,0.543,2868,0.593,2869,0.593,2870,0.486,2871,0.543,2872,0.486,2873,0.593,2874,0.511,2875,0.543,2876,0.543,2877,0.467,2878,0.511,2879,0.379,2880,0.593,2881,0.436,2882,0.511,2883,0.593,2884,0.543,2885,1.498,2886,0.543,2887,0.424,2888,1.136,2889,0.593,2890,0.511,2891,0.467,2892,0.511,2893,0.836,2894,0.467,2895,0.511,2896,0.593,2897,0.511,2898,0.593,2899,0.543,2900,0.593,2901,0.593,2902,0.593,2903,0.931,2904,0.511,2905,1.635,2906,0.543,2907,0.593,2908,0.467,2909,0.593,2910,0.593,2911,0.543,2912,0.543,2913,0.593,2914,0.593,2915,0.593,2916,0.45,2917,0.543,2918,0.593,2919,0.593,2920,0.543,2921,0.593,2922,0.593,2923,0.543,2924,0.543,2925,0.543,2926,0.379,2927,0.543,2928,0.543,2929,3.942,2930,0.543,2931,2.669,2932,0.593,2933,0.543,2934,0.45,2935,0.593,2936,1.635,2937,0.593,2938,0.593,2939,0.593,2940,0.593,2941,0.593,2942,0.593,2943,0.593,2944,0.593,2945,0.593,2946,0.511,2947,0.593,2948,0.593,2949,0.593,2950,0.511,2951,0.593,2952,0.593,2953,2.094,2954,0.45,2955,0.436,2956,0.593,2957,0.424,2958,0.543,2959,0.486,2960,0.436,2961,0.486,2962,0.593,2963,0.593,2964,0.486,2965,0.486,2966,0.593,2967,0.511,2968,0.395,2969,0.511,2970,0.593,2971,0.593,2972,0.424,2973,0.593,2974,0.543,2975,0.486,2976,0.593,2977,0.593,2978,1.112,2979,1.136,2980,0.593,2981,0.543,2982,0.593,2983,0.543,2984,0.593,2985,0.593,2986,0.593,2987,0.593,2988,0.593,2989,0.593,2990,0.593,2991,0.543,2992,0.593,2993,0.593,2994,0.593,2995,0.593,2996,0.593,2997,0.593,2998,0.543,2999,0.593,3000,0.511,3001,0.593,3002,0.593,3003,1.136,3004,0.593,3005,0.593,3006,0.593,3007,0.511,3008,0.593]],["component/18",[162,0.398]],["keyword/18",[]],["title/19-1",[8,6.58,12,12.522,20,10.073,25,11.591,46,14.291,60,14.564,61,14.16,65,13.668,123,14.564,518,13.22]],["name/19-1",[]],["text/19-1",[]],["component/19-1",[]],["keyword/19-1",[]],["title/19-2",[25,17.914,46,22.086,104,23.427,518,20.431,3009,38.397]],["name/19-2",[]],["text/19-2",[]],["component/19-2",[]],["keyword/19-2",[]],["title/19-3",[25,13.497,46,16.64,124,18.876,414,17.47,518,15.393,3010,30.386,3011,30.386,3012,28.929]],["name/19-3",[]],["text/19-3",[]],["component/19-3",[]],["keyword/19-3",[]],["title/19-4",[8,7.662,25,13.497,60,16.958,61,16.488,154,19.601,344,25.243,518,15.393,732,21.761]],["name/19-4",[]],["text/19-4",[]],["component/19-4",[]],["keyword/19-4",[]],["title/19-5",[8,10.17,412,27.949,518,20.431,3013,38.397,3014,31.179]],["name/19-5",[]],["text/19-5",[]],["component/19-5",[]],["keyword/19-5",[]],["title/19-6",[12,19.352,46,22.086,270,27.949,518,20.431,3015,33.504]],["name/19-6",[]],["text/19-6",[]],["component/19-6",[]],["keyword/19-6",[]],["title/19-7",[25,17.914,46,22.086,258,31.179,518,20.431,1240,32.648]],["name/19-7",[]],["text/19-7",[]],["component/19-7",[]],["keyword/19-7",[]],["title/19-8",[12,19.352,100,27.949,252,26.732,518,20.431,919,31.879]],["name/19-8",[]],["text/19-8",[]],["component/19-8",[]],["keyword/19-8",[]],["title/19-9",[3,22.932,144,33.612,518,22.932,1036,34.276]],["name/19-9",[]],["text/19-9",[]],["component/19-9",[]],["keyword/19-9",[]],["title/19-10",[247,26.862,518,32.937,1104,31.879]],["name/19-10",[]],["text/19-10",[]],["component/19-10",[]],["keyword/19-10",[]],["title/19",[823,30.61,1168,36.942,3016,44.085]],["name/19",[3017,0.941]],["text/19",[0,0.355,2,0.445,3,0.519,5,0.366,8,2.097,9,0.311,11,3.619,12,4.051,14,3.564,16,0.355,17,3.356,18,0.424,19,0.305,20,2.608,21,0.414,22,1.471,24,3.677,25,3.936,28,1.44,31,0.366,33,0.346,34,3.086,35,4.101,36,0.83,38,0.734,39,1.071,45,1.471,46,2.562,49,0.761,50,1.811,52,1.592,53,0.296,54,3.218,56,1.947,58,3.288,60,3.178,61,3.166,63,0.355,65,0.281,67,3.14,68,0.384,71,0.937,73,0.414,75,2.45,77,0.337,78,2.714,80,0.962,81,1.602,84,0.679,85,0.629,92,0.776,94,0.747,95,0.329,96,1.706,100,0.372,105,0.322,107,0.366,115,2.564,122,0.734,123,0.821,125,1.621,128,1.117,129,0.473,130,0.893,131,1.25,143,0.595,147,0.615,150,0.318,151,1.356,162,0.263,163,0.391,176,2.376,186,0.776,192,0.829,194,1.325,199,1.524,222,1.325,225,0.434,226,0.699,233,0.699,235,0.644,238,1.061,240,0.366,247,2.891,248,1.458,252,0.975,257,1.761,258,0.792,277,0.734,278,1.356,279,0.445,282,0.355,283,0.595,284,0.652,289,1.549,292,0.346,295,0.406,298,0.308,301,0.378,324,0.414,327,1.093,331,6.713,333,2.61,338,0.384,339,0.351,342,0.391,344,1.223,350,1.88,357,0.67,359,0.851,375,0.49,378,0.51,386,0.589,391,1.341,393,0.406,394,0.414,398,0.378,399,0.406,409,1.036,410,0.424,411,0.883,414,0.308,416,0.445,418,0.458,438,0.792,439,0.976,440,5.478,447,1.198,453,0.445,462,0.876,472,0.346,477,0.424,483,0.325,486,0.398,490,0.851,494,0.989,532,0.536,534,0.792,537,0.776,545,1.706,550,0.49,570,0.36,575,1.073,576,0.49,584,0.81,609,0.384,613,0.384,615,0.36,616,0.308,648,0.71,656,1.223,662,0.346,670,1.191,684,0.391,694,1.223,697,0.414,710,0.414,712,0.351,717,4.26,720,0.83,727,1.142,731,0.434,732,1.054,738,1.72,753,0.445,792,0.473,813,0.458,822,0.699,823,2.999,824,0.51,828,0.473,831,1.163,842,0.372,843,0.434,860,2.003,880,0.434,889,0.925,894,0.414,896,0.536,903,0.355,909,0.378,919,1.163,926,1.425,941,0.305,950,0.414,963,3.754,978,0.67,989,0.458,1008,1.054,1051,0.536,1068,0.473,1074,0.936,1100,0.536,1134,1.472,1151,0.49,1168,1.054,1172,2.935,1188,1.054,1190,0.536,1207,0.372,1215,0.49,1228,3.622,1238,0.49,1248,2.847,1286,3.14,1291,0.473,1298,1.02,1323,0.424,1333,0.458,1346,0.337,1356,0.378,1360,0.792,1364,0.384,1369,0.458,1371,0.445,1384,0.391,1398,0.622,1444,0.372,1445,1.163,1447,1.345,1454,0.434,1458,0.689,1472,0.458,1473,0.36,1474,0.434,1535,0.761,1552,0.49,1595,0.424,1617,0.51,1620,0.414,1678,0.434,1681,0.81,1683,0.536,1687,0.49,1698,0.414,1774,0.49,1790,0.792,1792,1.455,1798,0.458,1823,0.424,1832,0.445,1863,0.434,1872,0.445,1894,0.571,1908,0.51,1922,0.414,1923,0.473,2001,0.536,2036,1.932,2040,0.398,2049,0.424,2070,0.391,2116,0.445,2132,0.536,2145,0.424,2164,0.473,2221,0.424,2223,0.536,2225,0.51,2226,0.876,2277,0.51,2288,0.49,2385,0.83,2445,0.571,2451,0.936,2543,0.81,2595,2.766,2616,0.536,2631,0.51,2636,1.472,2686,0.473,2753,0.372,2757,0.536,2766,0.49,2768,0.51,2770,2.152,2773,0.51,2796,0.536,2801,0.473,2858,0.536,2899,0.571,2908,5.571,2926,2.403,2955,0.458,2968,1.455,2972,0.445,2978,0.424,3009,0.51,3010,0.536,3011,1.025,3012,1.792,3014,2.719,3015,2.688,3018,0.434,3019,0.976,3020,0.536,3021,1.882,3022,0.571,3023,0.571,3024,0.623,3025,1.025,3026,0.51,3027,1.19,3028,1.09,3029,0.571,3030,0.976,3031,0.49,3032,3.759,3033,1.609,3034,3.89,3035,1.09,3036,0.51,3037,0.623,3038,1.09,3039,0.623,3040,0.623,3041,0.623,3042,0.473,3043,0.571,3044,0.623,3045,0.623,3046,7.643,3047,0.623,3048,0.623,3049,0.623,3050,0.623,3051,0.623,3052,0.623,3053,3.214,3054,1.19,3055,3.551,3056,1.472,3057,2.066,3058,1.19,3059,2.385,3060,0.976,3061,3.754,3062,2.61,3063,2.61,3064,1.566,3065,1.882,3066,0.571,3067,0.976,3068,1.401,3069,0.571,3070,2.26,3071,1.472,3072,2.935,3073,1.72,3074,4.976,3075,1.792,3076,1.472,3077,2.794,3078,1.472,3079,0.623,3080,0.623,3081,0.571,3082,0.571,3083,0.623,3084,0.445,3085,0.623,3086,2.32,3087,0.976,3088,0.623,3089,0.623,3090,0.571,3091,0.571,3092,1.472,3093,0.51,3094,0.51,3095,0.536,3096,0.623,3097,2.935,3098,0.51,3099,2.231,3100,1.882,3101,1.882,3102,1.472,3103,1.025,3104,0.458,3105,0.51,3106,0.49,3107,0.571,3108,0.623,3109,1.19,3110,0.571,3111,0.49,3112,1.09,3113,0.876,3114,0.623,3115,0.623,3116,0.623,3117,0.623,3118,0.623,3119,0.623,3120,0.623,3121,0.623,3122,0.623,3123,1.025,3124,1.025,3125,0.623,3126,0.623,3127,0.51,3128,0.571,3129,0.623,3130,1.401,3131,0.571,3132,0.571,3133,0.623,3134,0.571,3135,2.152,3136,1.792,3137,0.904,3138,3.123,3139,1.09,3140,0.623,3141,1.025,3142,0.571,3143,0.623,3144,1.19,3145,0.623,3146,0.623,3147,0.623,3148,0.623,3149,1.19,3150,0.623,3151,2.302,3152,1.19,3153,0.623,3154,1.19,3155,0.623,3156,1.19,3157,0.623,3158,0.623,3159,0.623,3160,1.19,3161,0.623,3162,0.623,3163,0.571,3164,0.623,3165,0.623,3166,0.623,3167,0.623,3168,0.445,3169,0.623,3170,0.571,3171,0.623,3172,0.536,3173,0.473,3174,0.458,3175,1.09,3176,0.623,3177,0.424,3178,0.49,3179,0.623,3180,1.345,3181,0.571,3182,0.623,3183,0.623,3184,0.536,3185,0.623,3186,0.51,3187,0.51,3188,1.19,3189,1.19,3190,1.025,3191,0.623,3192,0.623,3193,1.19,3194,0.51,3195,1.472,3196,1.472,3197,0.571,3198,0.623,3199,0.81,3200,0.623,3201,0.445,3202,0.623,3203,0.623,3204,1.298,3205,0.536,3206,0.623,3207,0.536,3208,0.536,3209,0.536,3210,1.09,3211,0.571,3212,1.19,3213,0.936,3214,3.06,3215,0.623,3216,1.19,3217,0.571,3218,1.025,3219,1.566,3220,1.025,3221,1.09,3222,1.09,3223,1.09,3224,1.09,3225,1.09,3226,1.09,3227,1.472,3228,1.401,3229,1.09,3230,1.472,3231,1.566,3232,1.09,3233,1.09,3234,1.09,3235,1.09,3236,1.09,3237,1.09,3238,0.571,3239,1.09,3240,0.571,3241,2.003,3242,1.09,3243,1.09,3244,1.09,3245,1.09,3246,1.472,3247,1.09,3248,1.09,3249,1.258,3250,0.623,3251,0.536,3252,0.623,3253,0.536,3254,0.571,3255,1.09,3256,0.536,3257,0.49,3258,1.19,3259,0.623,3260,0.571,3261,0.571,3262,0.571,3263,0.571,3264,0.571,3265,0.623,3266,0.623,3267,0.623,3268,0.571,3269,0.571,3270,0.536,3271,0.536,3272,0.571,3273,0.851,3274,0.623,3275,1.09,3276,0.571,3277,0.571,3278,0.536,3279,1.401,3280,0.571,3281,3.349,3282,2.935,3283,1.709,3284,2.778,3285,0.623,3286,2.003,3287,1.025,3288,0.623,3289,1.709,3290,0.623,3291,1.025,3292,0.51,3293,0.49,3294,0.571,3295,0.414,3296,0.623,3297,0.571,3298,1.19,3299,0.623,3300,0.623,3301,0.424,3302,0.536,3303,0.623,3304,0.623,3305,0.623,3306,0.571,3307,0.623,3308,0.623,3309,0.571,3310,0.571,3311,0.623,3312,0.623,3313,1.025,3314,0.571,3315,0.571,3316,0.571,3317,0.571,3318,0.571,3319,1.19,3320,0.623,3321,0.623,3322,0.623,3323,0.623,3324,0.623,3325,0.571,3326,1.09,3327,0.623,3328,1.025,3329,0.536,3330,0.571,3331,0.623,3332,0.623,3333,0.571,3334,0.51,3335,0.623,3336,0.623,3337,0.623,3338,0.623,3339,0.623,3340,0.623,3341,0.571,3342,0.623,3343,1.19,3344,1.19,3345,1.19,3346,0.936,3347,1.19,3348,1.709,3349,0.571,3350,1.709,3351,0.623,3352,1.19,3353,0.571,3354,0.571,3355,1.709,3356,0.51,3357,0.571,3358,0.623,3359,0.623,3360,0.623,3361,0.51,3362,0.424,3363,0.623,3364,0.623,3365,0.623,3366,1.19,3367,0.623,3368,0.536,3369,0.623,3370,0.623,3371,0.623,3372,0.623,3373,0.623,3374,0.434,3375,0.536,3376,1.19,3377,0.623,3378,0.623,3379,0.623,3380,0.571,3381,0.623,3382,2.186,3383,0.536,3384,0.473,3385,0.536,3386,1.19,3387,0.623,3388,0.571,3389,0.51,3390,0.536,3391,0.623,3392,0.623,3393,0.623,3394,0.623,3395,0.571,3396,1.025,3397,0.623,3398,0.623,3399,0.623,3400,0.571,3401,0.473,3402,0.571,3403,0.623,3404,0.49,3405,0.536,3406,0.623,3407,0.51,3408,0.623,3409,0.623,3410,0.623,3411,1.709,3412,0.623,3413,0.623,3414,0.623,3415,0.623,3416,0.623,3417,0.623]],["component/19",[162,0.398]],["keyword/19",[]],["title/20-1",[8,7.08,20,10.838,34,13.677,65,14.706,96,18.356,123,15.67,472,18.112,518,14.224,3418,28.078]],["name/20-1",[]],["text/20-1",[]],["component/20-1",[]],["keyword/20-1",[]],["title/20-2",[8,8.348,20,12.779,84,21.944,104,19.231,339,21.643,518,16.772,1937,26.169]],["name/20-2",[]],["text/20-2",[]],["component/20-2",[]],["keyword/20-2",[]],["title/20-3",[3042,63.101]],["name/20-3",[]],["text/20-3",[]],["component/20-3",[]],["keyword/20-3",[]],["title/20-4",[84,34.191,919,40.774,3419,51.584]],["name/20-4",[]],["text/20-4",[]],["component/20-4",[]],["keyword/20-4",[]],["title/20-5",[46,28.249,3375,51.584,3420,44.085]],["name/20-5",[]],["text/20-5",[]],["component/20-5",[]],["keyword/20-5",[]],["title/20-6",[3,26.132,20,19.912,3251,51.584]],["name/20-6",[]],["text/20-6",[]],["component/20-6",[]],["keyword/20-6",[]],["title/20-7",[8,9.169,124,22.589,518,18.421,1399,31.077,3201,30.209,3421,38.697]],["name/20-7",[]],["text/20-7",[]],["component/20-7",[]],["keyword/20-7",[]],["title/20-8",[24,22.22,341,37.606,977,45.268,1399,38.687]],["name/20-8",[]],["text/20-8",[]],["component/20-8",[]],["keyword/20-8",[]],["title/20-9",[3,22.932,105,27.16,154,29.201,518,22.932]],["name/20-9",[]],["text/20-9",[]],["component/20-9",[]],["keyword/20-9",[]],["title/20-10",[1411,52.151]],["name/20-10",[]],["text/20-10",[]],["component/20-10",[]],["keyword/20-10",[]],["title/20",[823,30.61,1009,45.493,3016,44.085]],["name/20",[1009,0.715]],["text/20",[8,1.905,11,3.171,12,1.947,14,2.676,17,1.736,19,0.544,20,1.386,22,2.024,24,2.823,25,3.029,34,1.749,35,2.972,45,0.539,46,1.348,50,0.91,52,0.959,53,0.977,54,1.125,56,1.578,58,1.387,60,0.534,63,0.634,67,1.268,76,0.594,78,1.591,81,0.587,84,2.963,102,1.828,108,0.625,128,1.461,131,0.529,136,0.663,145,0.601,147,1.06,153,0.756,165,2.702,176,1.43,192,0.539,197,2.343,241,1.461,247,1.048,257,0.574,273,1.244,277,0.685,283,0.556,289,1.048,292,0.617,301,0.674,327,0.71,331,7.874,332,0.697,339,1.609,341,2.045,342,0.697,350,1.78,351,0.643,357,0.625,359,3.37,386,0.55,391,1.048,409,1.244,414,1.016,437,1.288,440,6.102,447,1.567,469,0.697,483,0.58,494,0.643,533,0.568,535,1.111,540,0.739,544,0.874,545,0.625,575,0.697,584,0.756,609,0.685,613,0.685,616,0.55,648,0.663,679,0.674,682,0.674,694,1.468,711,0.617,712,1.155,714,0.795,717,0.911,737,0.71,738,1.614,785,0.685,787,0.795,817,0.663,823,2.131,830,0.874,832,1.767,880,0.774,888,0.874,889,0.601,941,0.544,963,6.663,1008,0.685,1009,3.578,1072,1.51,1074,3.282,1081,0.957,1134,3.591,1168,0.685,1227,0.957,1228,3.284,1238,2.249,1248,4.434,1250,3.064,1257,0.817,1369,0.817,1399,3.069,1453,0.817,1456,0.724,1468,1.468,1472,0.817,1473,3.48,1480,0.739,1524,0.844,1540,2.249,1549,1.224,1595,0.756,1648,0.844,1678,0.774,1698,0.739,1720,2.618,1770,0.795,1823,0.756,1908,0.911,1922,0.739,1937,1.946,2005,0.957,2040,0.71,2098,1.43,2240,0.957,2288,1.614,2375,0.911,2451,0.874,2534,1.018,2540,0.874,2650,0.817,2732,0.844,2764,1.88,2765,0.817,2789,0.795,2813,0.957,2893,0.817,2972,0.795,3009,2.917,3013,0.911,3016,0.817,3021,1.767,3029,1.018,3030,2.917,3031,0.874,3033,0.817,3042,0.844,3046,8.712,3053,2.8,3055,2.171,3056,0.957,3057,4.086,3061,6.663,3073,1.614,3074,2.343,3075,3.862,3077,2.343,3093,0.911,3094,0.911,3099,3.069,3104,1.51,3113,2.104,3123,4.842,3124,1.767,3130,1.682,3135,0.911,3136,0.911,3137,0.844,3139,1.018,3151,3.167,3168,1.468,3180,1.614,3184,0.957,3186,0.911,3201,1.468,3217,1.018,3218,0.957,3219,1.88,3220,1.767,3221,1.018,3222,1.018,3223,1.018,3224,1.018,3225,1.018,3226,1.018,3227,6.444,3228,6.493,3229,1.018,3230,6.82,3231,1.88,3232,1.018,3233,1.018,3234,1.018,3235,1.018,3236,1.018,3237,1.018,3238,1.018,3239,1.018,3240,1.018,3241,1.88,3242,1.88,3243,1.018,3244,1.018,3245,1.88,3246,0.957,3247,1.018,3248,1.88,3249,0.817,3256,3.591,3260,1.018,3261,1.018,3262,1.018,3263,1.018,3264,1.018,3277,1.018,3301,0.756,3328,0.957,3375,3.064,3380,1.018,3401,1.558,3420,0.817,3421,1.018,3422,1.018,3423,1.111,3424,1.111,3425,1.018,3426,2.859,3427,0.911,3428,0.957,3429,1.018,3430,1.111,3431,1.88,3432,1.111,3433,1.614,3434,2.052,3435,1.111,3436,2.052,3437,2.052,3438,1.111,3439,1.111,3440,1.111,3441,1.111,3442,2.052,3443,2.052,3444,2.052,3445,0.911,3446,1.018,3447,1.018,3448,1.111,3449,1.111,3450,1.111,3451,1.111,3452,1.111,3453,1.111,3454,1.111,3455,1.111,3456,1.111,3457,1.111,3458,1.111,3459,0.957,3460,1.018,3461,1.111,3462,6.681,3463,1.111,3464,1.111,3465,1.111,3466,1.111,3467,1.111,3468,1.111,3469,2.052,3470,1.111,3471,1.88,3472,1.111,3473,1.111,3474,1.111,3475,0.795,3476,0.957,3477,4.172,3478,2.052,3479,4.713,3480,1.111,3481,1.111,3482,1.111,3483,1.111,3484,2.052,3485,3.559,3486,1.111,3487,1.111,3488,0.957,3489,2.052,3490,1.111,3491,1.111,3492,0.844,3493,1.111,3494,1.111,3495,1.111,3496,1.111,3497,1.018,3498,0.844,3499,0.724,3500,2.8,3501,1.111,3502,1.111,3503,3.822,3504,2.343,3505,1.111,3506,1.111,3507,1.111,3508,2.859,3509,1.111,3510,0.957,3511,1.111,3512,2.859,3513,2.859,3514,1.111,3515,1.111,3516,1.111,3517,1.111,3518,1.111,3519,1.111,3520,1.111,3521,1.111,3522,1.111,3523,1.111,3524,1.767,3525,1.767,3526,0.844,3527,0.874,3528,2.859,3529,2.461,3530,2.859,3531,2.859,3532,3.064,3533,1.111,3534,1.111,3535,1.111,3536,1.018,3537,1.018,3538,3.069,3539,1.111,3540,1.111,3541,4.713,3542,7.258,3543,2.052,3544,1.111,3545,2.052,3546,3.559,3547,0.957,3548,2.052,3549,2.052,3550,1.111,3551,1.111,3552,1.111,3553,2.859,3554,2.859,3555,2.052,3556,2.052,3557,2.052,3558,1.88,3559,3.559,3560,0.957,3561,0.957,3562,1.018,3563,2.052,3564,2.052,3565,2.052,3566,2.052,3567,1.111,3568,1.111,3569,1.111,3570,1.111,3571,1.018,3572,1.111,3573,1.111,3574,1.111,3575,2.052,3576,1.111,3577,0.911,3578,1.111,3579,1.111,3580,1.111,3581,3.559,3582,2.052,3583,2.052,3584,1.111,3585,2.052,3586,1.111,3587,1.111,3588,1.111,3589,1.111,3590,1.111,3591,1.111,3592,1.111,3593,1.018,3594,1.111,3595,1.111,3596,1.111,3597,1.111,3598,1.111,3599,1.111,3600,1.018,3601,1.018,3602,1.111,3603,1.111,3604,1.111,3605,1.111,3606,1.111,3607,1.111,3608,1.111,3609,1.111,3610,1.111,3611,1.111,3612,1.111,3613,1.111,3614,1.111,3615,1.111,3616,1.111,3617,1.111]],["component/20",[162,0.398]],["keyword/20",[]],["title/21",[3618,83.114]],["name/21",[2616,0.81]],["text/21",[3,3.703,8,2.593,11,1.84,12,3.507,16,2.308,17,1.684,20,2.514,24,4.256,25,4.54,28,1.709,34,3.842,35,1.89,39,1.982,49,2.586,54,5.022,56,2.755,59,3.108,60,4.402,61,4.28,63,2.308,65,1.824,67,1.793,78,1.809,88,2.453,126,7.203,238,3.015,240,2.377,247,2.067,248,3.451,253,2.413,257,3.21,259,2.692,277,3.831,298,3.745,327,3.972,398,4.587,414,3.076,419,2.089,447,5.302,472,2.247,576,3.182,717,5.093,727,2.113,732,2.494,903,3.546,971,3.483,1008,2.494,1068,3.071,1248,8.158,1298,2.413,1377,4.136,1408,2.247,1473,5.83,1562,2.753,1616,4.229,1872,4.444,2633,5.411,2926,4.837,3009,3.316,3012,3.316,3014,2.692,3016,2.976,3028,3.706,3036,3.316,3042,3.071,3046,3.071,3056,3.483,3086,2.753,3177,2.753,3255,3.706,3273,4.444,3385,5.35,3475,2.893,3538,2.976,3619,3.483,3620,6.214,3621,4.046,3622,4.046,3623,3.182,3624,4.046,3625,4.046,3626,4.046,3627,4.046,3628,3.706,3629,4.046,3630,4.046,3631,3.316,3632,4.046,3633,4.046,3634,4.046,3635,4.046,3636,4.046]],["component/21",[162,0.398]],["keyword/21",[]],["title/22-1",[194,50.387]],["name/22-1",[]],["text/22-1",[]],["component/22-1",[]],["keyword/22-1",[]],["title/22-2",[3086,56.556]],["name/22-2",[]],["text/22-2",[]],["component/22-2",[]],["keyword/22-2",[]],["title/22-3",[1257,51.233,1258,57.074]],["name/22-3",[]],["text/22-3",[]],["component/22-3",[]],["keyword/22-3",[]],["title/22-4",[1264,63.101]],["name/22-4",[]],["text/22-4",[]],["component/22-4",[]],["keyword/22-4",[]],["title/22-5",[421,53.126]],["name/22-5",[]],["text/22-5",[]],["component/22-5",[]],["keyword/22-5",[]],["title/22-6",[845,76.142]],["name/22-6",[]],["text/22-6",[]],["component/22-6",[]],["keyword/22-6",[]],["title/22-7",[3,30.369,1473,40.307]],["name/22-7",[]],["text/22-7",[]],["component/22-7",[]],["keyword/22-7",[]],["title/22-8",[3,30.369,3637,49.802]],["name/22-8",[]],["text/22-8",[]],["component/22-8",[]],["keyword/22-8",[]],["title/22-9",[535,37.697,1008,42.932]],["name/22-9",[]],["text/22-9",[]],["component/22-9",[]],["keyword/22-9",[]],["title/22-10",[25,14.705,50,17.049,147,19.863,578,18.843,1008,23.71,2252,22.943,2300,31.52]],["name/22-10",[]],["text/22-10",[]],["component/22-10",[]],["keyword/22-10",[]],["title/22",[12,24.752,711,33.275,712,33.722]],["name/22",[712,0.53]],["text/22",[3,2.378,6,1.271,7,0.738,8,2.509,9,1.098,11,3.017,12,4.197,13,1.649,14,3.573,17,3.485,19,2.16,20,3.263,22,1.831,24,4.021,25,4.082,28,2.489,29,2.217,32,2.592,33,1.22,34,2.915,35,4.276,38,0.738,39,1.492,45,2.408,46,0.564,47,1.495,48,0.703,49,0.765,50,1.35,51,0.751,52,1.026,53,2.362,54,0.656,56,3.712,57,1.763,58,2.408,59,2.204,60,0.575,65,1.987,67,2.611,77,1.189,78,3.356,81,1.161,82,0.814,83,1.378,85,0.632,94,0.751,95,0.632,96,1.236,104,0.598,105,1.135,107,0.703,109,1.378,113,0.648,115,2.368,123,0.575,125,0.64,126,0.856,130,0.625,131,1.449,138,0.765,143,0.598,147,2.277,150,0.611,151,1.135,155,1.378,157,0.648,160,1.891,161,2.072,190,1.404,192,1.477,194,1.846,195,1.378,198,0.765,219,0.834,222,2.672,225,0.834,226,2.217,228,1.691,229,0.78,233,0.703,235,0.648,238,1.831,240,1.29,241,1.122,246,0.738,247,1.556,249,0.751,264,1.29,265,1.571,267,1.462,268,0.88,272,0.814,277,0.738,278,1.135,282,2.515,283,0.598,284,1.204,287,0.765,289,1.122,290,0.814,293,0.78,295,0.78,298,1.507,299,0.981,308,0.908,323,0.88,328,1.096,331,3.152,334,1.616,342,0.751,350,1.887,351,0.693,352,0.725,357,0.673,385,0.738,391,1.122,395,0.765,410,0.814,411,0.618,414,1.087,419,1.573,421,1.947,430,0.941,434,0.941,437,0.751,440,5.188,474,0.751,481,0.796,483,0.625,486,1.404,504,1.531,505,0.714,527,0.856,533,1.122,535,1.649,538,0.703,539,0.765,544,0.941,545,1.236,570,0.693,578,1.076,587,0.765,591,2.178,614,0.725,615,0.693,616,0.592,646,1.29,648,1.817,650,1.404,662,0.664,666,0.725,681,0.725,686,0.908,700,1.03,701,0.751,702,0.941,703,0.856,711,2.448,712,4.362,719,1.8,742,0.88,761,3.613,765,0.908,787,0.856,809,0.725,815,0.751,822,0.703,842,0.714,849,0.751,851,1.03,859,1.03,860,1.789,867,1.03,876,1.571,889,0.648,893,0.751,900,1.668,906,0.765,907,1.432,910,1.477,913,0.751,928,0.703,940,1.311,941,1.492,944,0.814,949,0.703,950,0.796,962,0.941,1004,1.03,1008,2.327,1012,1.03,1062,1.531,1064,1.531,1068,0.908,1137,0.908,1147,1.462,1167,0.683,1184,1.404,1194,1.311,1205,0.796,1207,0.714,1228,0.834,1248,3.072,1257,1.616,1258,1.8,1264,2.312,1305,1.531,1322,0.78,1323,0.814,1338,0.88,1346,0.648,1347,1.891,1351,0.981,1376,0.78,1397,0.834,1398,0.625,1408,1.691,1441,0.78,1444,0.714,1445,0.814,1447,0.941,1451,0.78,1464,0.78,1473,1.763,1479,0.796,1502,0.765,1511,3.072,1536,0.834,1540,0.941,1546,0.765,1549,0.714,1556,1.311,1570,1.728,1571,1.728,1581,0.78,1628,0.834,1649,0.88,1713,0.765,1775,0.88,1790,0.796,1818,0.981,1867,1.03,1868,0.981,1872,0.856,1874,1.728,1902,2.178,1903,0.88,1904,1.668,1917,0.908,1950,1.096,1951,0.856,1953,0.856,1955,0.908,1958,1.616,1962,1.891,1965,1.03,1972,1.891,1987,1.096,1992,1.096,2008,0.981,2031,0.941,2055,0.738,2097,0.738,2113,1.096,2116,0.856,2141,0.941,2168,0.834,2178,1.03,2217,1.668,2252,0.714,2254,1.096,2294,1.891,2357,0.814,2396,1.03,2400,1.03,2409,0.981,2422,1.096,2439,2.288,2541,0.908,2549,0.941,2560,1.03,2578,0.981,2583,0.908,2594,1.616,2607,0.856,2650,0.88,2669,1.03,2671,1.096,2720,0.856,2744,1.096,2766,0.941,2800,0.88,2870,0.981,2887,0.856,2908,0.941,2926,1.947,2930,1.096,2931,3.458,2950,1.03,2955,0.88,2968,0.796,3053,0.941,3081,1.096,3084,0.856,3086,0.814,3177,0.814,3204,0.908,3205,1.03,3249,1.616,3269,1.096,3346,0.941,3368,1.891,3374,1.531,3389,0.981,3433,0.941,3500,0.941,3503,1.096,3504,0.981,3637,3.152,3638,1.196,3639,1.096,3640,1.196,3641,1.196,3642,0.981,3643,0.941,3644,1.196,3645,1.196,3646,1.196,3647,0.981,3648,1.196,3649,1.03,3650,0.908,3651,1.196,3652,1.196,3653,1.196,3654,1.196,3655,0.908,3656,0.856,3657,1.196,3658,1.096,3659,1.196,3660,1.196,3661,2.012,3662,1.891,3663,1.196,3664,1.196,3665,1.196,3666,1.196,3667,1.196,3668,2.197,3669,1.096,3670,1.096,3671,1.196,3672,1.03,3673,1.196,3674,1.196,3675,2.197,3676,2.197,3677,2.197,3678,1.196,3679,1.196,3680,1.196,3681,1.096,3682,1.196,3683,1.196,3684,1.096,3685,1.196,3686,1.03,3687,1.196,3688,1.196,3689,1.196,3690,1.196,3691,1.196,3692,1.196,3693,1.096,3694,0.981,3695,1.196,3696,1.196,3697,1.196,3698,1.196,3699,2.197,3700,1.196,3701,1.196,3702,1.196,3703,0.714,3704,1.096,3705,1.196,3706,0.908,3707,1.196,3708,1.196,3709,0.856,3710,1.03,3711,1.096,3712,1.096,3713,0.88,3714,1.196,3715,1.096,3716,0.908,3717,1.096,3718,1.03,3719,1.096,3720,1.096,3721,1.196,3722,1.03,3723,1.196,3724,1.196,3725,1.196,3726,0.908,3727,1.196,3728,0.941,3729,0.908,3730,1.096,3731,1.096,3732,1.196,3733,1.196,3734,1.196,3735,1.196,3736,1.096,3737,0.981,3738,1.096,3739,1.196,3740,1.096,3741,0.941,3742,1.196,3743,1.096,3744,1.196,3745,1.196,3746,1.196,3747,2.197,3748,1.196,3749,1.196,3750,0.981,3751,1.096,3752,1.196,3753,1.196,3754,1.196,3755,1.495,3756,1.03,3757,1.096,3758,1.096,3759,1.196,3760,1.196,3761,1.196,3762,1.196,3763,1.096,3764,0.941,3765,1.196,3766,0.981,3767,2.197,3768,1.196,3769,1.196,3770,2.197,3771,2.197,3772,1.096,3773,1.196,3774,2.012,3775,1.196,3776,2.012,3777,1.668,3778,0.941,3779,0.981,3780,1.196,3781,1.03,3782,1.8,3783,1.196,3784,1.196,3785,1.03,3786,1.096,3787,1.096,3788,1.096,3789,0.981,3790,1.196,3791,1.196,3792,1.196,3793,1.096,3794,1.096,3795,1.196,3796,1.196,3797,1.196]],["component/22",[162,0.398]],["keyword/22",[]],["title/23-1",[8,8.348,65,17.34,518,16.772,1384,24.131,1790,25.595,3014,25.595,3201,27.504]],["name/23-1",[]],["text/23-1",[]],["component/23-1",[]],["keyword/23-1",[]],["title/23-2",[8,8.348,46,18.13,104,19.231,518,16.772,1384,24.131,3015,27.504,3709,27.504]],["name/23-2",[]],["text/23-2",[]],["component/23-2",[]],["keyword/23-2",[]],["title/23-3",[12,17.449,124,22.589,481,28.112,518,18.421,978,23.772,3199,28.743]],["name/23-3",[]],["text/23-3",[]],["component/23-3",[]],["keyword/23-3",[]],["title/23-4",[12,15.886,45,18.657,154,21.356,518,16.772,2891,30.253,3015,27.504,3199,26.169]],["name/23-4",[]],["text/23-4",[]],["component/23-4",[]],["keyword/23-4",[]],["title/23-5",[28,17.849,412,25.2,481,28.112,518,18.421,3199,28.743,3798,31.077]],["name/23-5",[]],["text/23-5",[]],["component/23-5",[]],["keyword/23-5",[]],["title/23-6",[8,6.58,12,12.522,24,12.81,25,11.591,60,14.564,61,14.16,270,18.085,481,20.175,518,13.22,3799,26.097]],["name/23-6",[]],["text/23-6",[]],["component/23-6",[]],["keyword/23-6",[]],["title/23-7",[518,22.932,1240,36.646,3800,43.098,3801,43.098]],["name/23-7",[]],["text/23-7",[]],["component/23-7",[]],["keyword/23-7",[]],["title/23-8",[247,26.862,518,32.937,1036,34.276]],["name/23-8",[]],["text/23-8",[]],["component/23-8",[]],["keyword/23-8",[]],["title/23",[823,30.61,1384,37.598,3016,44.085]],["name/23",[1384,0.591]],["text/23",[3,0.173,7,0.244,8,1.579,11,3.054,12,3.465,14,2.337,16,0.439,17,2.354,19,1.286,20,2.197,22,1.142,23,0.301,24,2.332,25,3.116,28,1.855,33,0.22,34,2.127,35,3.548,39,0.713,45,1.273,49,1.132,50,1.49,52,0.827,53,0.188,54,1.714,56,0.918,57,0.445,58,1.273,60,2.018,61,0.827,62,0.229,65,2.884,67,1.387,75,0.258,77,0.788,78,1.503,80,1.325,81,0.209,85,0.209,95,0.406,96,0.819,100,2.006,102,0.717,104,3.909,105,0.914,106,0.248,108,0.433,113,0.214,115,3.182,120,1.684,122,0.244,123,0.19,124,2.874,125,0.778,128,0.393,129,0.584,130,0.207,131,1.12,136,0.459,143,0.561,147,0.751,151,1.489,153,2.288,154,1.149,155,0.248,162,0.167,166,1.408,168,0.214,176,0.276,192,0.544,193,0.512,194,1.896,199,0.536,205,0.283,222,0.68,233,0.233,235,0.214,238,0.544,241,0.202,244,0.248,245,0.717,247,0.904,248,0.22,249,0.483,257,0.914,258,1.178,270,3.532,273,0.24,277,0.691,278,0.914,284,0.217,289,2.335,291,0.291,293,0.258,298,0.196,301,0.24,323,0.566,331,5.32,344,0.55,345,0.968,346,0.427,350,1.035,357,0.433,361,1.07,362,0.731,363,0.717,365,1.523,373,0.269,386,0.196,391,0.904,393,0.501,394,0.512,396,0.523,398,0.24,399,0.258,409,0.882,411,0.579,414,0.555,419,0.397,437,0.248,438,0.746,439,0.63,440,5.794,474,0.483,476,0.244,483,0.402,486,0.717,493,0.301,494,0.649,501,0.291,512,0.301,535,0.214,545,3.259,570,0.229,575,0.483,584,1.205,585,0.966,592,0.291,599,0.283,607,1.363,615,0.229,616,0.196,622,0.536,632,0.341,633,0.301,638,0.276,640,0.226,641,0.311,648,0.669,650,0.253,656,0.55,662,0.427,664,0.291,681,0.24,701,0.248,702,0.605,707,0.258,710,1.747,713,0.258,721,0.363,727,0.207,732,0.244,789,0.276,822,0.233,823,0.202,849,0.248,888,0.882,889,0.788,890,0.311,903,0.64,919,0.99,924,0.325,926,0.258,927,0.244,928,0.233,937,3.512,948,0.291,950,0.264,963,1.571,978,2.254,1008,1.451,1036,0.731,1040,1.48,1062,0.782,1073,0.283,1098,1.852,1102,0.325,1104,0.68,1141,0.253,1168,0.244,1182,1.747,1188,0.244,1203,0.244,1207,1.235,1228,0.782,1248,0.276,1265,0.63,1268,0.311,1286,0.802,1291,1.787,1303,0.483,1341,0.966,1350,0.24,1356,0.466,1384,1.477,1386,0.244,1441,0.258,1444,0.236,1445,0.523,1447,0.311,1453,0.566,1454,1.014,1458,0.445,1464,0.258,1468,0.55,1474,1.234,1617,0.325,1678,0.536,1681,0.269,1687,0.311,1711,0.311,1790,0.968,1799,0.566,1823,0.269,1837,5.02,1881,0.264,1942,0.325,2036,0.291,2040,0.253,2059,0.291,2070,0.483,2087,0.283,2103,0.851,2126,0.662,2141,0.311,2145,0.269,2163,0.341,2165,0.341,2169,0.363,2195,0.802,2212,0.311,2224,0.291,2342,0.291,2357,0.269,2439,0.24,2595,1.07,2605,0.566,2636,0.662,2653,0.55,2753,0.236,2768,0.325,2770,0.325,2773,2.939,2810,2.64,2812,4.499,2814,2.821,2816,1.333,2821,0.63,2822,0.291,2824,5.054,2827,0.919,2829,3.669,2847,3.285,2850,4.924,2866,5.183,2867,5.649,2870,3.443,2906,5.183,2908,4.556,2911,7.408,2912,2.64,2965,0.325,2968,1.378,3014,0.264,3015,1.48,3016,0.825,3019,0.919,3021,0.341,3022,0.363,3023,0.363,3025,0.966,3030,0.919,3034,1.393,3046,4.59,3053,1.393,3055,1.787,3057,0.882,3059,0.882,3060,7.405,3061,2.188,3062,0.341,3063,0.341,3065,0.341,3066,0.363,3067,4.405,3068,2.151,3069,0.363,3070,0.966,3071,0.341,3072,0.341,3073,0.311,3074,0.919,3075,2.939,3076,0.341,3077,1.192,3078,0.341,3082,0.705,3086,1.408,3091,0.363,3092,0.341,3095,0.341,3097,0.662,3099,0.291,3100,0.341,3101,0.341,3102,0.341,3103,0.341,3128,0.363,3130,0.63,3135,1.192,3136,0.325,3151,2.188,3163,2.157,3168,0.283,3172,0.341,3187,0.919,3195,0.341,3196,0.662,3199,2.859,3204,0.301,3205,0.341,3207,0.341,3208,0.341,3209,0.341,3210,0.363,3213,0.605,3228,0.919,3246,0.341,3249,2.12,3253,0.341,3254,0.363,3279,0.919,3280,0.363,3281,0.919,3282,2.027,3287,0.341,3291,0.341,3292,0.325,3293,0.311,3302,0.662,3309,0.363,3310,0.363,3313,0.662,3314,0.705,3330,0.363,3362,0.523,3368,0.966,3374,1.442,3384,0.301,3385,0.341,3405,1.782,3419,0.341,3431,1.333,3497,0.363,3500,0.605,3504,0.919,3510,0.341,3524,3.447,3525,0.966,3526,0.301,3527,0.605,3547,0.966,3577,2.151,3637,0.283,3642,0.325,3686,0.341,3709,0.802,3798,1.732,3799,0.341,3800,0.63,3801,0.919,3802,1.122,3803,0.605,3804,0.705,3805,1.027,3806,0.311,3807,0.396,3808,0.396,3809,0.769,3810,0.769,3811,1.455,3812,2.07,3813,1.77,3814,1.77,3815,0.363,3816,0.396,3817,0.769,3818,0.396,3819,0.396,3820,0.769,3821,0.396,3822,0.396,3823,0.396,3824,0.363,3825,0.341,3826,0.396,3827,0.341,3828,0.325,3829,0.341,3830,0.341,3831,0.396,3832,0.363,3833,0.396,3834,0.396,3835,2.354,3836,0.396,3837,0.93,3838,0.363,3839,0.396,3840,0.769,3841,0.769,3842,0.363,3843,0.396,3844,0.396,3845,0.396,3846,0.363,3847,0.55,3848,0.769,3849,0.396,3850,0.63,3851,0.769,3852,1.252,3853,0.705,3854,0.769,3855,0.769,3856,0.769,3857,0.705,3858,0.769,3859,0.769,3860,0.396,3861,0.396,3862,0.396,3863,0.396,3864,0.769,3865,0.396,3866,0.396,3867,0.341,3868,0.769,3869,0.769,3870,0.396,3871,0.396,3872,1.144,3873,0.769,3874,0.396,3875,0.769,3876,0.769,3877,0.396,3878,0.705,3879,0.769,3880,4.346,3881,0.769,3882,0.769,3883,0.769,3884,0.769,3885,0.769,3886,0.769,3887,0.769,3888,0.769,3889,0.769,3890,0.769,3891,0.769,3892,0.705,3893,0.769,3894,0.882,3895,8.764,3896,0.396,3897,0.396,3898,0.396,3899,0.396,3900,0.396,3901,0.396,3902,0.769,3903,0.396,3904,0.396,3905,0.396,3906,0.396,3907,0.396,3908,0.396,3909,0.311,3910,0.396,3911,0.396,3912,0.396,3913,0.301,3914,0.396,3915,0.396,3916,0.396,3917,0.396,3918,0.769,3919,0.769,3920,0.396,3921,0.396,3922,0.769,3923,0.769,3924,0.363,3925,0.769,3926,0.396,3927,0.396,3928,0.363,3929,0.769,3930,1.122,3931,1.77,3932,1.696,3933,1.122,3934,4.744,3935,1.122,3936,1.122,3937,1.122,3938,1.122,3939,2.07,3940,2.07,3941,4.744,3942,2.07,3943,1.696,3944,4.646,3945,2.07,3946,5.375,3947,2.07,3948,2.07,3949,0.919,3950,2.07,3951,1.122,3952,5.375,3953,1.122,3954,1.122,3955,2.07,3956,1.122,3957,5.951,3958,1.122,3959,0.396,3960,0.396,3961,0.705,3962,0.396,3963,0.396,3964,0.396,3965,0.396,3966,0.325,3967,0.396,3968,0.396,3969,1.122,3970,0.396,3971,0.396,3972,0.396,3973,0.396,3974,0.396,3975,0.396,3976,0.396,3977,0.396,3978,0.396,3979,0.396,3980,0.396,3981,0.396,3982,0.396,3983,0.396,3984,0.396,3985,0.396,3986,1.122,3987,1.122,3988,1.027,3989,0.966,3990,1.122,3991,3.128,3992,1.122,3993,4.744,3994,5.92,3995,1.122,3996,1.122,3997,1.896,3998,2.07,3999,1.122,4000,2.07,4001,3.128,4002,5.657,4003,1.122,4004,5.226,4005,2.882,4006,0.396,4007,1.122,4008,0.396,4009,1.455,4010,4.389,4011,3.586,4012,3.586,4013,7.955,4014,3.586,4015,5.657,4016,5.071,4017,3.586,4018,1.122,4019,0.396,4020,0.396,4021,1.122,4022,1.122,4023,1.77,4024,0.396,4025,1.455,4026,0.396,4027,0.396,4028,1.122,4029,1.122,4030,1.122,4031,1.122,4032,1.455,4033,1.455,4034,1.455,4035,1.192,4036,3.586,4037,0.396,4038,0.605,4039,3.362,4040,0.396,4041,1.122,4042,5.071,4043,0.363,4044,0.396,4045,0.363,4046,1.77,4047,2.07,4048,1.455,4049,2.882,4050,2.07,4051,0.396,4052,0.396,4053,1.122,4054,1.122,4055,1.122,4056,0.363,4057,1.122,4058,2.882,4059,1.122,4060,1.122,4061,1.122,4062,1.122,4063,1.122,4064,1.122,4065,1.122,4066,0.769,4067,0.341,4068,0.363,4069,0.363,4070,0.396,4071,0.769,4072,0.396,4073,0.662,4074,0.396,4075,0.396,4076,0.396,4077,0.396,4078,0.396,4079,0.396,4080,0.396,4081,0.396,4082,0.396,4083,0.396,4084,1.455,4085,0.396,4086,0.341,4087,0.396,4088,1.122,4089,2.07,4090,0.363,4091,0.396,4092,0.396,4093,0.396,4094,1.122,4095,1.122,4096,0.396,4097,0.363,4098,0.301,4099,1.622,4100,1.77,4101,1.77,4102,0.396,4103,0.341,4104,0.301,4105,0.396,4106,0.363,4107,0.396,4108,0.705,4109,0.705,4110,0.396,4111,0.363,4112,0.396,4113,0.396,4114,0.363,4115,0.291,4116,0.291,4117,0.396,4118,0.396,4119,0.396,4120,0.325,4121,0.396,4122,0.311,4123,0.396,4124,0.341,4125,0.341,4126,0.363,4127,0.341,4128,1.455,4129,1.122,4130,2.354,4131,1.027,4132,1.122,4133,1.122,4134,0.705,4135,0.769,4136,2.07,4137,1.252,4138,0.63,4139,0.769,4140,0.769,4141,0.769,4142,0.301,4143,0.325,4144,0.396,4145,1.122,4146,0.311,4147,2.07,4148,0.363]],["component/23",[162,0.398]],["keyword/23",[]],["title/24-1",[0,24.102,28,17.849,65,19.045,518,18.421,1473,24.449,4149,36.363]],["name/24-1",[]],["text/24-1",[]],["component/24-1",[]],["keyword/24-1",[]],["title/24-2",[3,18.421,8,9.169,104,21.123,518,18.421,3073,33.228,3180,33.228]],["name/24-2",[]],["text/24-2",[]],["component/24-2",[]],["keyword/24-2",[]],["title/24-3",[3,18.421,8,9.169,124,22.589,518,18.421,3067,34.62,3180,33.228]],["name/24-3",[]],["text/24-3",[]],["component/24-3",[]],["keyword/24-3",[]],["title/24-4",[3,20.431,8,10.17,154,26.015,252,26.732,518,20.431]],["name/24-4",[]],["text/24-4",[]],["component/24-4",[]],["keyword/24-4",[]],["title/24-5",[3,18.421,8,9.169,412,25.2,518,18.421,1168,26.042,1369,31.077]],["name/24-5",[]],["text/24-5",[]],["component/24-5",[]],["keyword/24-5",[]],["title/24-6",[3,20.431,8,10.17,270,27.949,518,20.431,1384,29.395]],["name/24-6",[]],["text/24-6",[]],["component/24-6",[]],["keyword/24-6",[]],["title/24-7",[8,9.169,11,19.21,53,20.101,860,24.814,1384,26.504,1473,24.449]],["name/24-7",[]],["text/24-7",[]],["component/24-7",[]],["keyword/24-7",[]],["title/24-8",[233,40.909,518,30.369]],["name/24-8",[]],["text/24-8",[]],["component/24-8",[]],["keyword/24-8",[]],["title/24",[823,30.61,1473,34.683,3016,44.085]],["name/24",[1473,0.545]],["text/24",[0,1.561,1,1.037,2,1.546,3,3.753,5,0.474,8,2.172,9,0.762,11,3.566,12,3.642,14,3.927,16,0.461,17,2.734,19,0.746,20,2.106,22,2.014,24,3.725,25,3.66,28,1.754,31,0.474,33,0.448,34,2.554,35,3.794,39,1.059,45,1.327,46,1.29,49,1.382,50,1.442,52,1.01,53,0.725,54,3.72,56,2.457,58,1.806,59,0.404,60,1.789,61,1.939,62,0.882,63,0.461,64,0.578,65,0.975,67,2.014,71,0.443,77,1.17,78,2.031,80,1.217,88,0.49,89,0.857,93,1.783,94,0.507,96,1.539,100,0.482,104,0.762,105,1.923,108,0.857,113,0.437,115,0.956,125,0.432,126,0.578,128,0.413,130,0.796,131,1.302,136,0.482,147,0.417,151,1.117,153,0.549,155,0.507,163,0.507,176,1.062,177,0.695,188,0.537,192,0.392,194,0.49,228,0.448,235,0.437,238,1.049,240,0.895,241,1.662,244,0.956,245,0.974,247,2.321,249,1.357,252,1.234,257,1.68,259,0.537,278,0.787,282,1.234,285,0.482,289,1.104,297,0.635,298,1.07,327,0.516,331,6.305,335,0.695,341,2.663,346,0.448,350,1.862,351,0.882,357,0.454,379,0.516,386,0.754,391,0.778,398,0.923,409,0.49,411,0.417,412,0.482,419,0.787,437,0.507,438,1.439,440,6.152,447,1.185,453,1.089,472,0.448,474,0.956,483,0.422,501,0.594,538,0.474,539,0.516,545,1.831,570,0.467,575,0.507,584,0.549,587,0.516,607,0.467,608,0.825,611,0.49,614,0.49,615,0.882,616,1.07,622,0.563,633,0.613,645,0.635,662,0.846,666,0.49,684,0.507,727,0.796,732,0.498,745,0.49,751,0.563,753,1.089,789,0.563,817,0.482,823,1.397,828,0.613,842,0.482,860,0.895,874,1.783,886,0.516,888,2.152,889,0.825,900,0.613,909,0.923,926,0.526,927,0.498,963,6.448,978,0.454,1008,1.333,1036,0.993,1068,0.613,1073,0.578,1130,0.662,1147,0.537,1168,1.686,1172,0.695,1182,0.923,1203,0.498,1207,0.482,1228,2.595,1248,2.267,1286,1.546,1291,0.613,1298,0.482,1346,0.437,1356,0.49,1360,0.537,1364,0.498,1369,2.013,1384,2.605,1408,0.846,1444,0.482,1458,0.467,1468,1.546,1473,4.981,1474,1.062,1479,0.537,1591,1.248,1600,0.74,1616,0.549,1681,0.549,1726,2.506,1755,0.613,1768,0.563,1770,0.578,1792,1.439,1795,0.74,1855,0.613,1884,0.74,2036,1.121,2049,0.549,2059,0.594,2070,2.041,2088,0.74,2097,0.498,2103,2.47,2141,0.635,2195,0.578,2274,0.516,2381,0.662,2385,0.563,2420,0.662,2439,0.923,2583,0.613,2633,1.546,2753,0.482,2762,0.635,2768,0.662,2770,2.666,2773,4.542,2794,0.578,2801,0.613,2870,1.772,2897,0.695,2908,2.559,2926,0.974,2968,1.014,2972,0.578,3014,1.014,3019,1.248,3030,0.662,3033,0.594,3034,2.929,3038,1.395,3042,1.156,3046,7.267,3053,3.266,3055,3.152,3057,0.635,3061,6.448,3062,0.695,3063,1.861,3065,0.695,3067,5.884,3068,1.248,3070,2.355,3071,0.695,3072,2.355,3073,2.929,3074,4.776,3075,2.666,3076,0.695,3077,1.772,3078,0.695,3086,1.471,3092,0.695,3097,1.311,3099,1.591,3100,1.311,3101,1.311,3102,0.695,3103,0.695,3105,0.662,3112,0.74,3130,1.248,3131,0.74,3132,0.74,3135,2.666,3136,1.248,3137,1.156,3151,2.47,3173,0.613,3180,0.635,3187,0.662,3195,0.695,3196,0.695,3199,1.861,3207,0.695,3208,0.695,3209,0.695,3214,1.062,3220,2.355,3227,2.355,3228,2.242,3230,2.355,3251,0.695,3257,0.635,3268,0.74,3275,1.981,3276,0.74,3279,1.248,3281,1.248,3282,1.311,3284,1.395,3286,1.395,3287,0.695,3292,0.662,3295,0.537,3313,0.695,3315,0.74,3316,0.74,3317,0.74,3349,0.74,3354,6.577,3374,1.906,3401,3.152,3499,1.409,3500,1.198,3504,1.772,3525,2.355,3527,1.701,3536,1.981,3537,0.74,3538,3.343,3542,5.807,3547,4.507,3560,2.355,3561,2.355,3562,2.506,3577,3.051,3631,1.772,3637,1.956,3686,0.695,3726,0.613,3729,0.613,3751,0.74,3798,0.594,3804,0.74,3805,1.395,3847,0.578,3913,0.613,3957,2.355,4068,0.74,4069,0.74,4099,0.74,4108,0.74,4109,0.74,4111,0.74,4116,0.594,4124,0.695,4127,0.695,4143,0.662,4150,1.523,4151,2.929,4152,1.861,4153,2.735,4154,2.735,4155,1.523,4156,0.808,4157,0.808,4158,0.74,4159,0.695,4160,0.74,4161,0.808,4162,1.523,4163,0.808,4164,0.808,4165,0.695,4166,0.808,4167,0.808,4168,0.808,4169,0.808,4170,0.808,4171,1.523,4172,0.808,4173,0.808,4174,0.808,4175,0.808,4176,0.808,4177,0.662,4178,0.808,4179,0.808,4180,0.808,4181,0.808,4182,1.523,4183,0.695,4184,0.808,4185,0.808,4186,2.162,4187,1.981,4188,0.808,4189,4.151,4190,1.523,4191,1.523,4192,0.808,4193,0.808,4194,0.808,4195,0.808,4196,1.523,4197,1.523,4198,0.808,4199,0.808,4200,0.695,4201,0.808,4202,0.808,4203,0.808,4204,0.808,4205,0.74,4206,0.808,4207,2.735,4208,2.735,4209,2.735,4210,1.523,4211,2.162,4212,2.162,4213,2.735,4214,1.523,4215,0.808,4216,0.808,4217,0.808,4218,0.808,4219,2.735,4220,0.808,4221,2.162,4222,0.808,4223,2.162,4224,0.808,4225,0.695,4226,1.523,4227,0.808,4228,0.808,4229,0.808,4230,0.695,4231,0.808,4232,0.808,4233,0.808,4234,1.523,4235,0.808,4236,0.808,4237,2.162,4238,1.523,4239,2.735,4240,2.735,4241,2.735,4242,2.735,4243,0.808,4244,0.808,4245,0.74,4246,0.808,4247,1.311,4248,0.808,4249,0.808,4250,0.808,4251,0.808,4252,0.808,4253,0.808,4254,0.808,4255,0.695,4256,5.235,4257,2.735,4258,3.253,4259,3.723,4260,0.808,4261,0.808,4262,0.808,4263,0.808,4264,0.808,4265,0.74,4266,0.662,4267,0.808,4268,0.808,4269,0.808,4270,0.695,4271,0.808,4272,0.808]],["component/24",[162,0.398]],["keyword/24",[]],["title/25-1",[1434,57.074,1435,49.802]],["name/25-1",[]],["text/25-1",[]],["component/25-1",[]],["keyword/25-1",[]],["title/25",[1199,63.101]],["name/25",[1253,0.81]],["text/25",[6,1.985,8,2.582,11,4.82,12,3.205,14,3.692,17,4.09,18,2.334,19,1.68,20,3.729,22,2.649,24,2.308,25,2.967,26,4.018,28,2.308,32,1.791,34,3.785,35,2.551,39,2.676,46,3.994,56,2.421,58,4.11,59,1.715,67,3.017,78,3.788,89,1.93,93,2.235,100,3.258,102,2.192,106,2.152,123,1.648,131,1.632,138,2.192,143,1.715,145,1.856,154,1.904,168,2.956,171,3.367,187,2.334,235,1.856,238,4.378,241,2.79,243,2.046,247,1.752,277,2.114,283,2.731,299,2.811,327,2.192,338,2.114,352,2.079,354,2.453,386,2.703,414,1.697,419,2.821,427,2.046,431,2.698,471,2.523,472,1.904,607,1.985,682,2.079,711,3.033,724,2.39,727,1.791,797,1.791,802,2.453,817,2.046,842,2.046,849,2.152,874,2.235,919,2.334,933,2.698,941,1.68,1146,2.453,1167,3.116,1171,6.64,1175,2.811,1184,2.192,1193,2.282,1196,3.716,1197,2.39,1198,2.952,1199,4.146,1201,2.334,1305,2.39,1348,6.432,1364,2.114,1372,2.604,1434,5.577,1435,4.866,1436,4.476,1437,2.698,1438,2.698,1460,2.811,1461,2.811,1475,2.39,1540,2.698,1581,2.235,1666,2.952,1806,2.811,1856,3.142,1890,4.296,1902,2.453,1904,2.604,1934,4.866,1952,2.604,2070,2.152,2159,3.142,2181,2.811,2374,2.282,2762,2.698,2794,2.453,2822,2.523,2881,2.523,2926,3.491,2957,2.453,2975,4.476,3043,3.142,3647,5.577,3777,2.604,3782,2.811,3786,5.003,3789,2.811,4273,3.429,4274,2.811,4275,3.429,4276,4.701,4277,2.952,4278,3.429,4279,7.759,4280,3.429,4281,3.429,4282,3.429,4283,3.429,4284,3.142,4285,3.142,4286,3.429,4287,3.429,4288,2.811,4289,3.429,4290,3.429,4291,2.523,4292,3.429,4293,3.429,4294,3.429,4295,2.698,4296,3.429,4297,3.429]],["component/25",[162,0.398]],["keyword/25",[]],["title/26-1",[39,25.764,105,27.16,222,31.879,578,25.764]],["name/26-1",[]],["text/26-1",[]],["component/26-1",[]],["keyword/26-1",[]],["title/26-2",[34,19.645,67,20.769,578,22.953,4298,42.918,4299,42.918]],["name/26-2",[]],["text/26-2",[]],["component/26-2",[]],["keyword/26-2",[]],["title/26-3",[34,19.645,67,20.769,74,34.467,75,30.537,578,22.953]],["name/26-3",[]],["text/26-3",[]],["component/26-3",[]],["keyword/26-3",[]],["title/26-4",[119,46.345,312,49.802]],["name/26-4",[]],["text/26-4",[]],["component/26-4",[]],["keyword/26-4",[]],["title/26-5",[312,49.802,4300,59.948]],["name/26-5",[]],["text/26-5",[]],["component/26-5",[]],["keyword/26-5",[]],["title/26-6",[312,49.802,4301,63.796]],["name/26-6",[]],["text/26-6",[]],["component/26-6",[]],["keyword/26-6",[]],["title/26-7",[2252,49.584]],["name/26-7",[]],["text/26-7",[]],["component/26-7",[]],["keyword/26-7",[]],["title/26-8",[541,42.853,745,36.327,3872,47.137]],["name/26-8",[]],["text/26-8",[]],["component/26-8",[]],["keyword/26-8",[]],["title/26-9",[4302,76.142]],["name/26-9",[]],["text/26-9",[]],["component/26-9",[]],["keyword/26-9",[]],["title/26-10",[8,10.17,541,33.504,745,28.401,3619,40.33,3872,36.853]],["name/26-10",[]],["text/26-10",[]],["component/26-10",[]],["keyword/26-10",[]],["title/26-11",[20,19.912,1179,47.137,1366,44.085]],["name/26-11",[]],["text/26-11",[]],["component/26-11",[]],["keyword/26-11",[]],["title/26-12",[915,76.142]],["name/26-12",[]],["text/26-12",[]],["component/26-12",[]],["keyword/26-12",[]],["title/26-13",[1366,61.148]],["name/26-13",[]],["text/26-13",[]],["component/26-13",[]],["keyword/26-13",[]],["title/26-14",[4303,76.142]],["name/26-14",[]],["text/26-14",[]],["component/26-14",[]],["keyword/26-14",[]],["title/26-15",[4304,76.142]],["name/26-15",[]],["text/26-15",[]],["component/26-15",[]],["keyword/26-15",[]],["title/26-16",[4305,76.142]],["name/26-16",[]],["text/26-16",[]],["component/26-16",[]],["keyword/26-16",[]],["title/26-17",[65,31.398,2406,59.948]],["name/26-17",[]],["text/26-17",[]],["component/26-17",[]],["keyword/26-17",[]],["title/26-18",[20,14.036,1193,28.112,3763,38.697,4306,38.697,4307,42.24,4308,38.697]],["name/26-18",[]],["text/26-18",[]],["component/26-18",[]],["keyword/26-18",[]],["title/26-19",[4309,71.55]],["name/26-19",[]],["text/26-19",[]],["component/26-19",[]],["keyword/26-19",[]],["title/26-20",[4310,83.114]],["name/26-20",[]],["text/26-20",[]],["component/26-20",[]],["keyword/26-20",[]],["title/26-21",[4311,83.114]],["name/26-21",[]],["text/26-21",[]],["component/26-21",[]],["keyword/26-21",[]],["title/26-22",[4312,83.114]],["name/26-22",[]],["text/26-22",[]],["component/26-22",[]],["keyword/26-22",[]],["title/26-23",[4313,76.142]],["name/26-23",[]],["text/26-23",[]],["component/26-23",[]],["keyword/26-23",[]],["title/26-24",[59,34.823,4314,69.637]],["name/26-24",[]],["text/26-24",[]],["component/26-24",[]],["keyword/26-24",[]],["title/26-25",[1349,48.53,2926,44.512]],["name/26-25",[]],["text/26-25",[]],["component/26-25",[]],["keyword/26-25",[]],["title/26-26",[3271,71.55]],["name/26-26",[]],["text/26-26",[]],["component/26-26",[]],["keyword/26-26",[]],["title/26-27",[3270,71.55]],["name/26-27",[]],["text/26-27",[]],["component/26-27",[]],["keyword/26-27",[]],["title/26-28",[4315,76.142]],["name/26-28",[]],["text/26-28",[]],["component/26-28",[]],["keyword/26-28",[]],["title/26-29",[4316,76.142]],["name/26-29",[]],["text/26-29",[]],["component/26-29",[]],["keyword/26-29",[]],["title/26-30",[4317,71.55]],["name/26-30",[]],["text/26-30",[]],["component/26-30",[]],["keyword/26-30",[]],["title/26-31",[4318,76.142]],["name/26-31",[]],["text/26-31",[]],["component/26-31",[]],["keyword/26-31",[]],["title/26-32",[4319,76.142]],["name/26-32",[]],["text/26-32",[]],["component/26-32",[]],["keyword/26-32",[]],["title/26-33",[4320,76.142]],["name/26-33",[]],["text/26-33",[]],["component/26-33",[]],["keyword/26-33",[]],["title/26-34",[3031,65.381]],["name/26-34",[]],["text/26-34",[]],["component/26-34",[]],["keyword/26-34",[]],["title/26-35",[440,34.823,1264,52.869]],["name/26-35",[]],["text/26-35",[]],["component/26-35",[]],["keyword/26-35",[]],["title/26-36",[4321,65.381]],["name/26-36",[]],["text/26-36",[]],["component/26-36",[]],["keyword/26-36",[]],["title/26-37",[2420,68.12]],["name/26-37",[]],["text/26-37",[]],["component/26-37",[]],["keyword/26-37",[]],["title/26-38",[1348,52.869,4322,59.948]],["name/26-38",[]],["text/26-38",[]],["component/26-38",[]],["keyword/26-38",[]],["title/26-39",[1616,47.386,2926,44.512]],["name/26-39",[]],["text/26-39",[]],["component/26-39",[]],["keyword/26-39",[]],["title/26-40",[1616,47.386,4177,57.074]],["name/26-40",[]],["text/26-40",[]],["component/26-40",[]],["keyword/26-40",[]],["title/26-41",[1616,47.386,4323,59.948]],["name/26-41",[]],["text/26-41",[]],["component/26-41",[]],["keyword/26-41",[]],["title/26-42",[4151,65.381]],["name/26-42",[]],["text/26-42",[]],["component/26-42",[]],["keyword/26-42",[]],["title/26-43",[2420,68.12]],["name/26-43",[]],["text/26-43",[]],["component/26-43",[]],["keyword/26-43",[]],["title/26",[20,11.729,358,22.562,541,25.243,745,21.399,1179,27.766,1193,23.491,3872,27.766,4322,30.386]],["name/26",[4324,0.656]],["text/26",[1,0.329,3,0.211,6,0.54,8,2.534,9,0.676,11,3.578,12,3.973,13,0.944,14,3.082,15,0.315,16,0.276,17,3.659,18,0.329,19,1.914,20,3.259,22,1.896,24,4.189,25,3.875,26,0.356,27,0.367,28,2.737,29,0.548,32,1.906,34,3.711,35,3.789,37,0.967,38,1.076,39,1.513,45,3.076,46,0.638,50,2.748,51,0.585,52,2.601,53,1.736,54,4.058,56,2.748,58,2.527,59,1.954,60,1.18,61,1.577,63,0.532,65,1.872,67,3.091,68,0.298,71,2.142,72,0.943,74,1.284,75,1.137,76,0.933,77,0.732,78,2.329,79,0.272,81,0.493,85,0.493,88,0.82,89,0.525,93,0.315,94,0.303,95,0.493,96,0.272,102,0.309,104,1.688,105,0.699,106,0.303,107,0.548,108,0.982,113,0.505,115,0.303,119,1.161,121,1.216,122,0.834,123,1.18,124,0.933,125,0.258,128,1.864,131,1.324,134,0.548,141,0.367,143,1.229,144,0.596,145,0.732,150,0.477,151,1.091,153,2.101,157,0.505,170,1.041,171,0.834,187,0.92,192,1.896,193,0.322,198,0.309,199,0.65,204,0.396,205,0.346,206,0.708,221,0.855,222,1.49,223,0.621,226,0.284,228,0.751,233,1.025,235,0.262,236,0.346,238,2.127,240,0.548,241,0.691,243,0.288,244,0.303,247,1.255,248,0.751,249,1.325,253,0.288,257,0.482,259,0.322,263,0.367,264,0.284,266,0.396,267,0.322,273,0.293,277,3.094,278,1.269,279,0.346,283,0.676,284,0.741,285,0.807,287,0.309,289,0.891,292,0.518,298,2.17,306,0.943,312,0.346,313,0.416,315,0.315,327,0.596,330,0.443,332,0.849,334,0.356,338,0.575,342,1.542,346,0.268,347,0.337,350,1.056,352,0.566,354,0.667,358,3.079,359,0.346,361,0.356,379,0.596,386,1.045,388,0.293,389,1.28,391,0.691,393,0.315,395,0.309,398,0.293,401,0.346,411,1.269,414,0.239,416,0.667,419,1.091,421,0.309,428,0.855,432,0.765,437,1.325,438,0.621,440,4.562,469,0.303,472,0.751,475,0.346,477,0.329,478,0.356,483,1.103,486,0.309,493,0.367,494,0.28,496,0.396,501,0.356,504,0.943,514,0.322,522,0.416,527,0.667,533,0.477,538,1.241,540,0.621,541,1.989,545,0.272,548,0.996,570,0.54,582,0.635,592,0.356,598,0.356,601,0.803,607,0.28,608,1.143,609,0.298,611,0.293,613,0.575,615,0.783,616,0.462,640,0.276,644,0.356,646,1.814,647,0.309,656,0.667,657,0.443,662,0.268,681,0.566,682,0.293,684,0.585,690,0.734,698,0.356,701,0.585,710,0.621,711,1.875,712,0.761,713,2.201,714,0.667,719,0.765,724,0.65,725,0.967,727,1.103,739,0.416,743,0.65,745,2.212,753,0.667,756,0.734,765,0.367,778,0.322,785,0.298,797,0.911,802,0.346,807,0.416,810,0.38,815,0.303,822,0.795,823,0.247,830,0.734,834,0.356,837,0.396,842,0.288,856,0.443,860,0.284,869,0.38,874,1.377,877,0.356,886,0.596,889,0.505,900,0.367,903,0.276,906,0.865,907,0.608,917,0.65,918,0.686,919,0.329,926,0.315,935,1.686,941,2.035,945,2.484,965,0.38,968,0.803,978,1.189,979,0.276,989,0.356,1036,1.377,1045,0.396,1049,0.416,1067,1.164,1073,1.248,1115,0.708,1122,0.309,1130,0.396,1137,0.367,1166,1.064,1167,0.532,1173,0.635,1179,3.79,1180,0.329,1181,0.686,1182,2.517,1183,0.995,1185,0.293,1189,0.337,1191,0.803,1192,1.938,1193,3.817,1203,0.834,1205,0.322,1207,0.807,1264,0.367,1298,0.807,1303,0.849,1319,0.416,1322,0.315,1343,0.734,1346,0.732,1348,1.325,1350,0.566,1355,0.346,1356,2.212,1360,0.322,1366,2.046,1368,0.38,1373,1.064,1376,0.608,1377,0.322,1386,0.575,1391,0.367,1394,0.686,1398,0.252,1408,1.545,1414,0.329,1418,0.346,1419,0.322,1433,0.396,1437,0.38,1441,0.315,1454,0.337,1456,0.608,1458,0.54,1468,0.346,1471,0.329,1474,3.88,1500,0.38,1502,0.596,1511,2.152,1524,0.367,1534,0.396,1535,0.596,1536,1.938,1544,0.416,1546,0.309,1547,0.346,1549,0.288,1556,0.557,1562,0.329,1576,0.416,1581,0.315,1582,0.855,1616,3.278,1618,0.38,1646,0.309,1648,0.367,1649,0.995,1650,1.372,1652,0.356,1659,0.416,1666,0.416,1679,0.396,1681,0.329,1697,0.367,1698,0.322,1700,0.803,1702,0.443,1713,0.309,1720,0.356,1747,0.38,1749,0.396,1763,0.396,1764,0.443,1767,0.443,1776,0.367,1790,0.322,1803,0.443,1812,0.356,1813,0.943,1822,0.38,1823,0.329,1829,1.164,1830,0.416,1837,0.367,1850,0.396,1862,0.396,1863,1.216,1869,0.396,1876,0.38,1881,0.322,1901,0.416,1902,0.346,1903,0.356,1904,0.367,1911,0.443,1917,0.367,1919,0.416,1921,0.356,1934,1.51,1943,0.734,1944,0.416,1948,0.803,1951,0.667,1952,1.865,1953,0.346,1969,0.38,2001,0.416,2006,0.585,2034,0.416,2039,0.443,2040,0.865,2042,0.416,2055,0.298,2087,0.346,2092,0.416,2097,0.575,2100,0.803,2103,0.708,2107,0.356,2109,1.502,2116,0.346,2125,0.38,2145,0.329,2164,0.367,2168,0.337,2181,0.396,2195,0.346,2203,0.396,2204,0.322,2252,0.557,2267,0.443,2274,0.309,2276,0.765,2301,0.356,2308,0.396,2313,0.443,2320,0.443,2341,0.346,2374,0.621,2382,0.995,2392,0.329,2405,1.164,2406,1.164,2409,0.396,2412,0.443,2423,0.443,2447,0.416,2478,0.708,2496,0.443,2517,0.443,2575,0.396,2578,0.765,2594,0.686,2595,1.284,2596,0.396,2601,0.416,2604,0.708,2633,1.248,2653,0.346,2654,0.38,2720,0.346,2726,1.239,2734,0.329,2753,2.014,2765,0.686,2789,0.346,2801,0.367,2813,0.416,2827,2.991,2857,0.443,2861,0.367,2879,0.309,2881,0.356,2885,1.239,2893,0.356,2903,0.396,2926,3.666,2927,0.443,2957,0.346,2964,0.396,2965,0.396,2968,0.9,2972,0.667,2975,0.765,3014,0.9,3018,0.943,3026,0.396,3031,1.064,3034,0.38,3036,0.396,3042,1.604,3060,0.396,3084,0.667,3086,0.329,3087,0.396,3099,0.995,3107,0.443,3111,0.734,3168,0.667,3177,0.635,3186,0.396,3204,0.367,3249,0.995,3257,0.38,3270,1.502,3271,0.416,3278,0.416,3293,0.734,3294,0.855,3295,0.322,3333,0.443,3362,0.635,3396,0.416,3418,0.803,3420,0.686,3427,0.396,3433,0.38,3445,0.396,3446,0.443,3459,1.164,3460,0.443,3475,0.667,3476,0.803,3499,0.608,3623,0.734,3642,0.765,3662,0.803,3672,0.416,3694,0.396,3703,1.26,3709,0.667,3741,0.38,3756,2.115,3766,0.396,3779,0.396,3801,1.109,3806,0.734,3837,0.309,3842,0.443,3867,0.416,3872,2.429,3894,0.38,3913,0.708,3944,0.855,3949,0.765,3989,0.803,4043,0.443,4067,0.416,4090,0.443,4098,0.367,4104,0.367,4142,0.367,4146,0.38,4177,1.109,4247,0.416,4291,0.356,4298,1.239,4299,0.443,4301,0.443,4302,1.239,4303,0.855,4304,0.855,4305,0.855,4306,0.443,4308,0.443,4309,1.164,4313,0.443,4315,0.855,4316,0.443,4317,0.416,4318,0.443,4319,0.855,4320,0.855,4321,1.933,4322,0.803,4323,2.394,4325,0.416,4326,0.855,4327,0.416,4328,0.483,4329,0.443,4330,0.483,4331,0.483,4332,0.483,4333,0.483,4334,0.483,4335,0.443,4336,0.483,4337,0.483,4338,0.483,4339,0.483,4340,0.38,4341,0.483,4342,0.443,4343,0.443,4344,0.483,4345,0.483,4346,0.443,4347,0.416,4348,0.933,4349,0.483,4350,0.483,4351,0.483,4352,0.483,4353,0.933,4354,1.745,4355,0.933,4356,0.483,4357,0.483,4358,0.483,4359,0.443,4360,0.483,4361,0.483,4362,0.933,4363,0.483,4364,0.443,4365,0.483,4366,0.483,4367,0.483,4368,0.483,4369,0.483,4370,0.483,4371,0.483,4372,0.483,4373,0.483,4374,0.483,4375,0.483,4376,0.855,4377,0.443,4378,0.483,4379,0.38,4380,0.855,4381,1.502,4382,0.483,4383,0.416,4384,0.483,4385,0.367,4386,0.483,4387,0.483,4388,0.483,4389,0.396,4390,0.443,4391,0.416,4392,0.443,4393,0.483,4394,0.483,4395,0.443,4396,0.483,4397,0.483,4398,0.483,4399,0.483,4400,0.483,4401,0.483,4402,0.483,4403,0.483,4404,0.483,4405,0.483,4406,0.483,4407,0.483,4408,0.443,4409,0.483,4410,0.855,4411,0.38,4412,0.396,4413,0.443,4414,0.483,4415,0.416,4416,0.483,4417,0.483,4418,0.483,4419,0.483,4420,0.443,4421,0.483,4422,0.483,4423,0.443,4424,0.443,4425,0.483,4426,0.483,4427,0.483,4428,0.443,4429,0.483,4430,0.483,4431,0.483,4432,0.443,4433,0.443,4434,0.483,4435,0.483,4436,0.855,4437,0.483,4438,0.443,4439,0.396,4440,0.855,4441,0.483,4442,0.933,4443,0.803,4444,0.933,4445,0.483,4446,0.483,4447,0.933,4448,0.933,4449,0.933,4450,0.933,4451,0.483,4452,0.483,4453,0.483,4454,0.483,4455,0.483,4456,0.483,4457,0.855,4458,0.443,4459,1.935,4460,0.483,4461,0.483,4462,0.483,4463,0.483,4464,0.483,4465,0.483,4466,0.483,4467,0.483,4468,0.443,4469,0.483,4470,0.38,4471,0.483,4472,0.483,4473,0.483,4474,0.483,4475,0.483,4476,0.443,4477,0.443,4478,0.483,4479,0.483,4480,0.443,4481,0.443,4482,0.483,4483,1.935,4484,0.483,4485,0.483,4486,0.483,4487,0.483,4488,0.483,4489,0.483,4490,0.483,4491,0.396,4492,0.483,4493,1.239,4494,0.933,4495,0.443,4496,0.483,4497,0.38,4498,0.483,4499,0.483,4500,0.483,4501,0.483,4502,0.483,4503,0.416,4504,0.396,4505,1.598,4506,0.933,4507,0.483,4508,0.483,4509,0.483,4510,0.483,4511,0.443,4512,0.416,4513,0.416,4514,0.443,4515,0.483,4516,0.483,4517,0.483,4518,0.443,4519,0.933,4520,0.443,4521,0.483,4522,0.483,4523,1.372,4524,0.483,4525,0.483,4526,0.483,4527,0.483,4528,0.443,4529,0.708,4530,0.483,4531,0.483,4532,0.483,4533,0.483,4534,1.109,4535,0.483,4536,0.483,4537,0.367,4538,0.443,4539,0.483,4540,0.416,4541,0.38,4542,0.483,4543,0.443,4544,0.396,4545,0.483,4546,0.483,4547,0.483,4548,0.483,4549,0.483,4550,0.483,4551,0.483,4552,0.483,4553,0.416,4554,0.483,4555,0.483,4556,0.483,4557,0.443,4558,0.483,4559,0.443,4560,0.367,4561,0.416,4562,0.483,4563,0.443,4564,0.483,4565,0.483,4566,0.483,4567,0.483,4568,0.483,4569,0.483,4570,0.443,4571,0.483,4572,0.443,4573,0.483,4574,0.483,4575,0.416,4576,0.483,4577,0.443,4578,0.855,4579,0.416,4580,0.483,4581,0.483,4582,0.483,4583,0.483,4584,0.483,4585,0.483,4586,0.483,4587,0.443,4588,0.483,4589,0.483,4590,0.483,4591,0.483,4592,1.353,4593,0.356,4594,0.443,4595,0.483,4596,0.443,4597,0.356,4598,0.483,4599,0.443,4600,0.483,4601,0.483,4602,0.396,4603,0.346,4604,0.803,4605,0.933,4606,0.933,4607,0.933,4608,0.396,4609,2.781,4610,0.483,4611,0.443,4612,0.483,4613,0.483,4614,0.483,4615,0.933,4616,0.483,4617,0.443,4618,0.933,4619,0.443,4620,0.443,4621,0.483,4622,0.483,4623,0.483,4624,0.483,4625,0.483,4626,0.483,4627,2.112,4628,1.353,4629,0.483,4630,0.483,4631,0.416,4632,0.483,4633,0.483,4634,0.443,4635,2.112,4636,0.483,4637,0.483,4638,0.483,4639,0.483,4640,0.483,4641,0.483,4642,0.933,4643,0.483,4644,0.483,4645,0.483,4646,0.483,4647,0.933,4648,0.483,4649,0.933,4650,0.483,4651,0.483,4652,0.483,4653,0.416,4654,1.239,4655,0.443,4656,0.483,4657,1.745,4658,0.416,4659,0.483,4660,0.483,4661,0.483,4662,0.483,4663,0.443,4664,0.483,4665,0.855,4666,0.443,4667,0.933,4668,0.483,4669,0.396,4670,0.483,4671,0.416,4672,0.483,4673,0.443,4674,0.483,4675,0.483,4676,0.483,4677,0.416,4678,0.933,4679,0.483,4680,0.483,4681,0.483,4682,0.855,4683,0.483,4684,0.38,4685,0.483,4686,0.933,4687,0.483,4688,0.443,4689,0.443,4690,1.353,4691,0.483,4692,0.483,4693,0.483,4694,0.483,4695,0.483,4696,0.483,4697,0.416,4698,0.855,4699,0.443,4700,1.164,4701,0.483,4702,0.483,4703,0.483,4704,0.483,4705,0.483,4706,0.483,4707,0.483,4708,0.483]],["component/26",[162,0.398]],["keyword/26",[]],["title/27-1",[56,26.565,3837,38.301,4709,51.584]],["name/27-1",[]],["text/27-1",[]],["component/27-1",[]],["keyword/27-1",[]],["title/27-2",[56,23.312,551,41.365,3837,33.612,4710,48.173]],["name/27-2",[]],["text/27-2",[]],["component/27-2",[]],["keyword/27-2",[]],["title/27-3",[20,17.474,238,25.51,4711,48.173,4712,48.173]],["name/27-3",[]],["text/27-3",[]],["component/27-3",[]],["keyword/27-3",[]],["title/27-4",[12,28.766,4713,57.074]],["name/27-4",[]],["text/27-4",[]],["component/27-4",[]],["keyword/27-4",[]],["title/27-5",[25,26.628,4714,63.796]],["name/27-5",[]],["text/27-5",[]],["component/27-5",[]],["keyword/27-5",[]],["title/27-6",[17,24.938,4715,54.895,4716,51.584]],["name/27-6",[]],["text/27-6",[]],["component/27-6",[]],["keyword/27-6",[]],["title/27-7",[50,26.565,4717,54.895,4718,49.111]],["name/27-7",[]],["text/27-7",[]],["component/27-7",[]],["keyword/27-7",[]],["title/27-8",[4719,63.796,4720,59.948]],["name/27-8",[]],["text/27-8",[]],["component/27-8",[]],["keyword/27-8",[]],["title/27-9",[8,11.415,17,21.885,1646,33.612,4721,48.173]],["name/27-9",[]],["text/27-9",[]],["component/27-9",[]],["keyword/27-9",[]],["title/27-10",[548,34.191,4722,54.895,4723,51.584]],["name/27-10",[]],["text/27-10",[]],["component/27-10",[]],["keyword/27-10",[]],["title/27-11",[548,34.191,4716,51.584,4724,59.921]],["name/27-11",[]],["text/27-11",[]],["component/27-11",[]],["keyword/27-11",[]],["title/27-12",[548,34.191,4718,49.111,4725,54.895]],["name/27-12",[]],["text/27-12",[]],["component/27-12",[]],["keyword/27-12",[]],["title/27-13",[8,11.415,315,34.276,533,26.862,548,30.005]],["name/27-13",[]],["text/27-13",[]],["component/27-13",[]],["keyword/27-13",[]],["title/27-14",[624,63.101]],["name/27-14",[]],["text/27-14",[]],["component/27-14",[]],["keyword/27-14",[]],["title/27-15",[4726,76.142]],["name/27-15",[]],["text/27-15",[]],["component/27-15",[]],["keyword/27-15",[]],["title/27-16",[25,20.107,941,25.764,1214,39.923,4035,43.098]],["name/27-16",[]],["text/27-16",[]],["component/27-16",[]],["keyword/27-16",[]],["title/27-17",[548,39.735,4727,63.796]],["name/27-17",[]],["text/27-17",[]],["component/27-17",[]],["keyword/27-17",[]],["title/27-18",[12,19.352,171,28.882,306,32.648,1350,28.401,4728,42.918]],["name/27-18",[]],["text/27-18",[]],["component/27-18",[]],["keyword/27-18",[]],["title/27-19",[979,47.425]],["name/27-19",[]],["text/27-19",[]],["component/27-19",[]],["keyword/27-19",[]],["title/27-20",[1167,47.425]],["name/27-20",[]],["text/27-20",[]],["component/27-20",[]],["keyword/27-20",[]],["title/27-21",[4729,54.895,4730,54.895,4731,59.921]],["name/27-21",[]],["text/27-21",[]],["component/27-21",[]],["keyword/27-21",[]],["title/27-22",[533,35.573,949,40.909]],["name/27-22",[]],["text/27-22",[]],["component/27-22",[]],["keyword/27-22",[]],["title/27-23",[1056,59.948,4732,63.796]],["name/27-23",[]],["text/27-23",[]],["component/27-23",[]],["keyword/27-23",[]],["title/27-24",[1826,54.78,4733,63.796]],["name/27-24",[]],["text/27-24",[]],["component/27-24",[]],["keyword/27-24",[]],["title/27-25",[4734,76.142]],["name/27-25",[]],["text/27-25",[]],["component/27-25",[]],["keyword/27-25",[]],["title/27-26",[910,33.783,4735,63.796]],["name/27-26",[]],["text/27-26",[]],["component/27-26",[]],["keyword/27-26",[]],["title/27-27",[4736,63.796,4737,63.796]],["name/27-27",[]],["text/27-27",[]],["component/27-27",[]],["keyword/27-27",[]],["title/27-28",[1196,47.386,4738,63.796]],["name/27-28",[]],["text/27-28",[]],["component/27-28",[]],["keyword/27-28",[]],["title/27-29",[4739,76.142]],["name/27-29",[]],["text/27-29",[]],["component/27-29",[]],["keyword/27-29",[]],["title/27-30",[2957,49.802,4740,59.948]],["name/27-30",[]],["text/27-30",[]],["component/27-30",[]],["keyword/27-30",[]],["title/27-31",[4741,57.074,4742,63.796]],["name/27-31",[]],["text/27-31",[]],["component/27-31",[]],["keyword/27-31",[]],["title/27-32",[8,9.169,12,17.449,25,16.152,533,21.578,949,24.814,2221,28.743]],["name/27-32",[]],["text/27-32",[]],["component/27-32",[]],["keyword/27-32",[]],["title/27-33",[912,48.53,1535,44.512]],["name/27-33",[]],["text/27-33",[]],["component/27-33",[]],["keyword/27-33",[]],["title/27",[8,7.08,20,10.838,25,12.472,533,16.662,941,15.981,944,22.194,949,19.161,1214,24.763,4035,26.732]],["name/27",[4324,0.656]],["text/27",[8,2.568,9,0.963,11,3.416,12,4.293,13,0.859,14,3.032,16,0.248,17,3.23,19,0.413,20,3.008,22,1.509,24,4.23,25,4.197,26,0.902,27,0.64,28,2.932,29,0.256,31,0.256,32,2.446,33,0.468,34,3.287,35,4.034,38,0.268,39,0.413,45,2.079,46,0.748,48,0.256,50,3.077,51,0.273,52,2.588,53,1.35,54,0.462,56,2.769,58,2.449,59,0.613,60,0.589,61,0.394,62,0.252,65,0.553,66,0.64,67,2.314,68,0.268,69,0.357,70,0.663,76,0.848,78,3.006,79,1.084,80,0.69,81,0.23,85,0.648,88,0.264,89,0.69,92,0.284,93,0.799,95,0.446,96,0.245,101,0.296,104,0.218,105,0.436,106,0.273,107,0.495,108,1.084,109,0.529,122,0.52,123,0.589,124,0.451,125,0.656,128,1.148,129,0.33,131,0.755,139,1.693,141,0.33,143,0.613,145,0.236,150,0.222,151,0.436,154,0.468,157,0.456,159,0.303,170,0.26,171,0.268,186,0.284,187,0.296,190,0.278,192,2.362,195,0.996,196,0.342,197,0.691,198,0.784,199,0.588,204,0.357,216,1.132,217,0.342,222,0.511,224,0.33,228,0.468,232,0.905,235,0.859,238,1.634,240,1.132,241,0.222,245,0.278,246,0.52,247,0.222,252,0.248,257,0.436,259,0.29,264,0.932,269,0.311,270,0.26,271,0.29,277,0.52,278,0.995,282,1.099,283,1.684,284,0.239,285,4.011,287,1.014,289,0.626,292,0.242,294,0.296,298,0.417,299,0.357,303,0.311,304,0.62,306,2.347,308,0.33,314,0.357,315,1.849,335,0.375,338,0.52,339,0.245,342,0.529,346,0.242,347,0.303,350,0.218,351,0.252,352,0.511,356,1.282,357,0.893,363,0.278,379,0.784,382,0.52,385,0.268,387,0.303,391,1.148,393,0.284,396,0.834,398,0.264,401,0.603,409,0.511,411,0.225,412,0.503,414,0.417,419,0.995,429,0.399,440,3.362,447,0.87,453,0.311,458,0.303,462,0.32,469,0.996,472,0.468,475,1.378,480,0.375,483,1.482,486,0.539,495,0.399,502,0.588,504,0.855,505,0.503,512,0.33,518,0.535,533,2.487,538,0.256,543,0.877,547,0.311,548,2.561,551,2.232,555,0.357,570,0.71,578,0.944,584,0.296,585,0.375,591,0.311,607,0.488,608,0.664,609,0.268,611,0.511,613,0.268,614,0.264,615,1.115,616,0.417,624,1.205,625,0.399,633,0.33,636,0.399,640,0.481,641,0.342,642,0.375,648,0.26,650,1.436,653,0.375,669,0.342,681,0.264,682,0.743,683,0.284,684,0.273,697,0.29,710,0.561,711,1.248,713,1.256,724,0.588,734,0.357,737,0.278,741,0.357,744,0.303,745,0.264,761,0.357,765,0.64,766,0.32,767,0.311,771,0.342,773,0.342,785,1.572,797,1.482,810,0.342,816,0.303,817,0.26,822,0.256,823,0.222,860,0.256,865,0.342,874,0.284,886,0.278,889,0.456,893,0.273,898,0.375,899,0.691,902,0.264,903,0.905,906,0.278,907,1.034,910,0.595,917,0.588,927,1.385,935,0.511,940,0.503,941,2.637,942,2.167,944,0.574,949,1.979,950,0.561,959,0.32,965,0.342,967,0.603,978,0.893,979,1.282,989,0.32,1014,0.375,1017,0.726,1018,0.726,1021,0.375,1022,0.375,1028,0.375,1029,0.691,1030,0.691,1031,0.691,1032,0.726,1040,0.311,1060,0.691,1062,0.303,1078,0.342,1089,0.375,1104,0.511,1122,0.539,1137,0.33,1141,0.278,1142,0.32,1145,0.32,1147,0.561,1151,0.342,1167,1.099,1171,1.167,1177,0.32,1178,0.303,1182,1.362,1187,0.603,1188,0.268,1189,0.855,1192,0.303,1193,0.29,1195,1.515,1196,0.834,1197,0.588,1201,0.296,1203,0.268,1214,1.205,1233,0.375,1238,0.663,1240,0.303,1263,0.375,1284,0.342,1298,0.26,1303,1.209,1311,0.311,1322,1.256,1323,0.296,1338,0.32,1345,0.33,1346,0.664,1348,0.64,1350,1.72,1353,0.342,1356,0.743,1360,0.29,1364,0.52,1365,0.342,1375,0.375,1386,0.268,1406,0.357,1408,0.242,1411,0.273,1412,0.32,1418,0.603,1419,0.816,1424,0.33,1435,0.311,1438,0.342,1445,0.834,1449,0.375,1456,1.034,1458,0.488,1479,0.29,1487,0.375,1493,0.357,1500,0.342,1502,0.278,1513,0.375,1520,0.357,1521,0.375,1525,1.005,1526,0.399,1529,0.965,1532,0.357,1534,0.691,1535,0.278,1536,1.566,1538,0.726,1539,0.342,1540,0.342,1547,0.311,1556,0.503,1561,0.772,1569,0.399,1581,0.55,1590,0.375,1597,0.691,1619,0.33,1624,0.357,1628,0.588,1631,0.357,1643,0.691,1646,1.014,1650,0.663,1652,0.32,1670,0.357,1679,0.357,1683,0.375,1697,0.64,1700,0.375,1713,0.278,1731,0.375,1733,0.33,1737,0.357,1742,0.691,1747,0.342,1748,0.931,1749,0.357,1753,0.399,1755,0.64,1770,0.311,1790,0.29,1791,1.767,1799,0.32,1800,0.375,1813,0.303,1826,1.248,1828,0.375,1837,0.33,1840,0.399,1845,0.399,1850,0.691,1852,0.33,1855,0.33,1860,0.691,1862,1.579,1863,0.303,1865,0.399,1867,0.375,1881,0.561,1885,0.663,1921,0.32,1924,0.342,1926,0.33,1933,0.399,1934,1.135,1936,0.399,1940,0.357,1951,0.877,1953,0.311,1960,0.399,1984,0.663,1988,0.375,1998,0.399,2006,0.273,2020,0.691,2040,0.278,2049,0.296,2055,0.268,2063,0.33,2069,1.515,2070,0.273,2099,0.342,2100,0.375,2103,0.33,2109,0.375,2125,0.965,2134,0.342,2145,0.296,2173,0.357,2187,0.772,2195,0.603,2217,0.33,2221,0.574,2223,0.375,2224,0.62,2250,0.399,2274,0.278,2276,0.357,2294,0.375,2299,0.375,2308,0.691,2321,1.005,2323,0.33,2335,0.375,2336,0.561,2350,0.357,2351,0.357,2359,0.399,2374,0.816,2382,0.62,2385,0.588,2392,0.296,2397,0.375,2402,0.399,2413,0.64,2430,0.603,2439,0.264,2486,0.357,2538,0.375,2539,0.399,2543,0.296,2548,0.342,2549,0.342,2559,1.123,2571,0.33,2574,0.33,2575,0.357,2578,0.357,2583,0.64,2639,0.375,2651,0.342,2662,0.399,2673,0.375,2674,0.399,2676,0.32,2686,0.33,2701,0.311,2702,0.375,2703,0.375,2705,0.375,2708,0.399,2734,0.296,2737,0.399,2739,0.375,2741,0.357,2743,0.399,2760,0.357,2765,0.32,2779,0.399,2789,0.311,2800,0.902,2819,0.726,2821,0.357,2822,0.62,2823,0.399,2872,0.357,2876,0.772,2879,0.784,2881,0.902,2882,0.375,2891,0.663,2892,0.375,2923,0.399,2928,0.399,2934,0.33,2957,1.824,2959,0.357,2960,0.32,2967,0.726,2968,0.29,2981,0.399,3000,0.726,3007,0.726,3018,0.588,3055,0.33,3111,0.342,3127,0.357,3141,0.375,3177,0.574,3178,0.342,3306,0.399,3329,0.726,3346,0.342,3362,0.296,3374,0.303,3623,0.342,3684,0.399,3706,0.33,3709,0.603,3722,0.375,3726,0.33,3729,0.33,3730,0.772,3755,1.08,3764,0.663,3777,0.64,3781,0.726,3785,0.375,3793,0.399,3803,0.342,3806,0.342,3830,0.375,3837,2.153,3850,0.357,3857,0.399,3892,0.399,3894,0.965,3932,0.691,3949,1.579,4035,1.842,4073,0.375,4127,0.375,4138,0.357,4277,0.726,4285,0.399,4295,0.342,4335,0.399,4340,1.248,4347,0.375,4392,0.399,4411,1.248,4412,1.005,4415,1.056,4420,0.399,4424,0.399,4433,0.399,4436,0.772,4470,0.342,4505,0.399,4511,0.399,4523,0.663,4538,0.399,4553,1.056,4560,0.33,4563,0.399,4577,0.399,4594,0.772,4597,0.32,4602,0.357,4620,0.399,4658,0.375,4665,0.399,4671,0.726,4684,0.342,4689,2.849,4709,1.934,4710,0.399,4711,1.765,4712,0.772,4713,2.761,4714,2.336,4715,0.772,4716,1.056,4717,1.454,4718,1.842,4719,0.772,4720,0.375,4721,0.772,4722,1.123,4723,0.726,4725,1.454,4726,0.772,4727,1.123,4728,1.454,4729,1.454,4730,3.526,4732,1.123,4733,0.399,4734,1.765,4735,1.454,4736,1.454,4737,0.399,4738,0.772,4739,1.765,4740,1.366,4741,0.691,4742,1.123,4743,0.435,4744,0.435,4745,0.375,4746,0.435,4747,0.435,4748,1.658,4749,0.843,4750,0.435,4751,0.375,4752,0.435,4753,0.726,4754,0.399,4755,0.435,4756,0.435,4757,0.843,4758,0.399,4759,0.435,4760,0.435,4761,0.435,4762,0.435,4763,0.399,4764,0.435,4765,0.375,4766,0.435,4767,0.399,4768,0.772,4769,0.435,4770,0.435,4771,0.435,4772,0.435,4773,1.226,4774,0.843,4775,0.435,4776,0.435,4777,0.435,4778,0.435,4779,0.435,4780,0.435,4781,0.843,4782,0.399,4783,0.435,4784,0.435,4785,0.435,4786,0.772,4787,0.375,4788,0.435,4789,0.435,4790,0.435,4791,0.399,4792,0.399,4793,0.843,4794,0.435,4795,0.435,4796,0.435,4797,0.772,4798,0.435,4799,0.435,4800,0.435,4801,0.435,4802,0.843,4803,0.435,4804,0.843,4805,0.772,4806,0.772,4807,0.435,4808,0.435,4809,0.435,4810,0.435,4811,0.435,4812,0.435,4813,0.435,4814,0.435,4815,0.435,4816,0.843,4817,0.772,4818,0.399,4819,0.435,4820,0.435,4821,0.435,4822,0.435,4823,0.435,4824,0.435,4825,0.435,4826,0.435,4827,0.435,4828,0.435,4829,0.435,4830,0.435,4831,0.435,4832,0.435,4833,0.843,4834,0.435,4835,0.357,4836,0.399,4837,0.399,4838,0.435,4839,0.726,4840,0.435,4841,0.375,4842,0.435,4843,0.435,4844,0.435,4845,0.435,4846,1.366,4847,0.435,4848,0.435,4849,0.843,4850,0.435,4851,0.435,4852,0.357,4853,0.435,4854,0.435,4855,0.435,4856,0.435,4857,0.435,4858,0.435,4859,0.843,4860,1.226,4861,1.926,4862,0.772,4863,1.926,4864,0.843,4865,0.435,4866,0.435,4867,0.375,4868,0.435,4869,0.435,4870,0.435,4871,0.435,4872,0.435,4873,0.435,4874,0.399,4875,0.435,4876,0.435,4877,0.435,4878,0.435,4879,0.435,4880,0.435,4881,1.226,4882,0.375,4883,0.435,4884,0.375,4885,0.435,4886,0.843,4887,0.435,4888,0.399,4889,0.375,4890,0.843,4891,0.435,4892,0.435,4893,0.357,4894,0.399,4895,0.375,4896,0.435,4897,0.435,4898,0.435,4899,1.226,4900,0.843,4901,0.435,4902,0.435,4903,0.435,4904,0.399,4905,0.435,4906,0.843,4907,0.399,4908,0.772,4909,0.843,4910,0.435,4911,0.435,4912,0.435,4913,1.454,4914,0.435,4915,0.399,4916,0.435,4917,1.123,4918,1.226,4919,0.375,4920,0.399,4921,0.435,4922,0.435,4923,0.435,4924,0.435,4925,0.435,4926,0.435,4927,0.435,4928,0.435,4929,0.435,4930,1.454,4931,0.843,4932,0.726,4933,0.772,4934,0.843,4935,0.435,4936,0.435,4937,0.435,4938,0.375,4939,0.399,4940,1.926,4941,0.435,4942,0.843,4943,0.342,4944,0.357,4945,0.772,4946,0.435,4947,0.843,4948,0.435,4949,0.435,4950,0.435,4951,0.435,4952,0.435,4953,0.435,4954,0.435,4955,0.435,4956,0.435,4957,0.435,4958,1.587,4959,0.435,4960,0.435,4961,0.435,4962,0.435,4963,0.435,4964,0.435,4965,0.772,4966,0.435,4967,0.435,4968,0.843,4969,0.435,4970,0.435,4971,0.435,4972,0.435,4973,0.435,4974,0.435,4975,0.435,4976,0.435,4977,0.435,4978,0.435,4979,0.435,4980,0.435,4981,0.435,4982,0.435,4983,0.435,4984,0.435,4985,0.435,4986,0.435,4987,0.843,4988,3.11,4989,0.435,4990,0.435,4991,0.435,4992,0.435,4993,0.435,4994,0.435,4995,0.435,4996,0.435,4997,0.435,4998,0.435,4999,0.435,5000,0.435,5001,0.435,5002,0.435,5003,0.435,5004,0.435,5005,0.435,5006,0.399,5007,0.435,5008,0.435,5009,0.435,5010,0.435,5011,0.435,5012,0.435,5013,0.435,5014,0.435,5015,0.435,5016,0.435,5017,0.435,5018,0.435,5019,0.435,5020,0.435,5021,0.435,5022,0.435,5023,0.435,5024,0.435,5025,0.435,5026,0.435,5027,0.435,5028,0.435,5029,0.64,5030,0.435,5031,0.435,5032,0.435,5033,0.399,5034,0.357,5035,0.435,5036,0.435,5037,0.435,5038,0.435,5039,0.435,5040,0.435,5041,0.435,5042,0.435,5043,0.435,5044,0.435,5045,0.435,5046,0.435,5047,0.435,5048,0.435,5049,0.435,5050,0.435,5051,0.435,5052,0.435,5053,0.435,5054,0.843,5055,0.435,5056,0.435,5057,0.375,5058,0.435,5059,0.772,5060,0.435,5061,0.435,5062,0.435,5063,0.435,5064,0.435,5065,0.435,5066,0.357,5067,0.375,5068,0.375,5069,0.435,5070,0.435,5071,0.843,5072,0.375,5073,0.435,5074,0.435,5075,0.435,5076,0.435,5077,1.454,5078,0.843,5079,1.226,5080,0.435,5081,0.435,5082,0.772,5083,0.435,5084,0.375,5085,0.435,5086,0.399,5087,0.435,5088,0.435,5089,0.435,5090,0.435,5091,0.435,5092,0.435,5093,0.772,5094,1.123,5095,0.435,5096,0.772,5097,0.435,5098,0.435,5099,0.843,5100,0.399,5101,0.435,5102,0.843,5103,0.843,5104,0.357,5105,0.435,5106,0.435,5107,0.435,5108,0.435,5109,0.435,5110,0.435,5111,0.33,5112,0.435,5113,0.435,5114,2.55,5115,0.435,5116,0.435,5117,0.435,5118,0.435,5119,0.435,5120,1.454,5121,0.399,5122,0.435,5123,0.772,5124,0.435,5125,0.435,5126,0.435,5127,0.772,5128,0.435,5129,0.726,5130,0.357,5131,0.435,5132,0.435,5133,0.435,5134,0.435,5135,0.399,5136,0.399,5137,0.399,5138,0.375,5139,0.435,5140,0.843,5141,0.435,5142,0.435,5143,0.435,5144,0.435,5145,0.435,5146,0.435,5147,0.843,5148,1.226,5149,0.726,5150,0.435,5151,0.843,5152,0.435,5153,0.435,5154,0.435,5155,0.435,5156,0.435,5157,0.435,5158,0.399,5159,0.375,5160,0.435,5161,0.435,5162,0.342,5163,0.435,5164,0.726,5165,0.399,5166,1.926,5167,0.435,5168,0.375,5169,0.435,5170,0.435,5171,0.357,5172,0.435,5173,0.435,5174,0.435,5175,0.726,5176,0.435,5177,0.435,5178,0.399,5179,1.226,5180,0.435,5181,0.399,5182,0.691,5183,0.435,5184,0.843,5185,0.843,5186,0.435,5187,0.843,5188,0.435,5189,0.435,5190,0.435,5191,0.435,5192,0.435,5193,0.435,5194,0.399,5195,0.435,5196,0.435,5197,0.435,5198,0.435,5199,0.435,5200,0.843,5201,0.375,5202,0.843,5203,0.843,5204,0.435,5205,0.435,5206,0.435,5207,0.435,5208,0.435,5209,0.435,5210,0.435,5211,0.843,5212,0.435,5213,0.435,5214,0.435,5215,0.772,5216,0.435,5217,0.435,5218,0.435,5219,0.435,5220,0.357,5221,0.435,5222,1.926,5223,0.435,5224,0.435,5225,0.435,5226,0.843,5227,0.435,5228,0.435,5229,0.435,5230,0.435,5231,0.435,5232,0.435,5233,0.399,5234,0.435,5235,0.435,5236,0.435,5237,0.399,5238,0.843,5239,0.375,5240,0.399,5241,0.435,5242,0.435,5243,0.435,5244,0.772,5245,0.435,5246,0.435,5247,0.399,5248,0.435,5249,0.843,5250,0.435,5251,0.435,5252,0.843,5253,0.435,5254,0.435,5255,0.435,5256,0.435,5257,0.435,5258,0.357,5259,0.435,5260,0.435,5261,0.399,5262,0.435,5263,0.435,5264,0.399,5265,0.435,5266,0.375,5267,0.399,5268,0.435,5269,0.435,5270,0.375,5271,0.435,5272,0.435,5273,0.843,5274,0.435,5275,0.435,5276,0.435,5277,0.435,5278,0.399,5279,0.399,5280,0.435,5281,0.399,5282,0.357,5283,0.435,5284,0.399,5285,0.435,5286,0.435,5287,0.435,5288,0.399,5289,0.435,5290,0.435,5291,0.435,5292,0.399,5293,0.435,5294,0.342,5295,0.435,5296,0.435,5297,0.435,5298,0.399,5299,0.435,5300,0.435,5301,0.435,5302,0.435,5303,0.375,5304,0.435,5305,0.435,5306,0.435,5307,0.435,5308,0.435,5309,0.726,5310,0.435,5311,0.435,5312,0.435,5313,0.435,5314,0.435,5315,0.435,5316,0.435,5317,0.843,5318,0.843,5319,0.435,5320,0.435,5321,0.399,5322,0.435,5323,0.435,5324,0.435,5325,0.435,5326,0.399,5327,0.435,5328,0.435,5329,0.435,5330,0.435,5331,0.399,5332,0.399,5333,0.435,5334,0.435,5335,0.435,5336,0.399,5337,0.399]],["component/27",[162,0.398]],["keyword/27",[]],["title/28-1",[67,23.312,78,23.508,578,25.764,5338,43.098]],["name/28-1",[]],["text/28-1",[]],["component/28-1",[]],["keyword/28-1",[]],["title/28-2",[67,23.312,78,23.508,578,25.764,1337,35.782]],["name/28-2",[]],["text/28-2",[]],["component/28-2",[]],["keyword/28-2",[]],["title/28-3",[17,14.69,34,14.801,35,16.488,50,15.648,67,15.648,339,19.865,357,19.865,578,17.294]],["name/28-3",[]],["text/28-3",[]],["component/28-3",[]],["keyword/28-3",[]],["title/28-4",[448,35.568,598,34.467,1337,47.239,5339,42.918]],["name/28-4",[]],["text/28-4",[]],["component/28-4",[]],["keyword/28-4",[]],["title/28-5",[598,51.074,1337,31.879,5338,38.397,5340,42.918]],["name/28-5",[]],["text/28-5",[]],["component/28-5",[]],["keyword/28-5",[]],["title/28-6",[8,10.17,339,26.365,578,22.953,616,23.187,681,28.401]],["name/28-6",[]],["text/28-6",[]],["component/28-6",[]],["keyword/28-6",[]],["title/28-7",[339,39.19,5341,63.796]],["name/28-7",[]],["text/28-7",[]],["component/28-7",[]],["keyword/28-7",[]],["title/28-8",[8,10.17,243,27.949,339,26.365,1832,33.504,5342,40.33]],["name/28-8",[]],["text/28-8",[]],["component/28-8",[]],["keyword/28-8",[]],["title/28-9",[8,9.169,52,19.731,243,25.2,339,23.772,5343,42.24,5344,38.697]],["name/28-9",[]],["text/28-9",[]],["component/28-9",[]],["keyword/28-9",[]],["title/28-10",[8,11.415,34,22.051,339,29.593,1207,31.371]],["name/28-10",[]],["text/28-10",[]],["component/28-10",[]],["keyword/28-10",[]],["title/28-11",[243,41.544,306,48.53]],["name/28-11",[]],["text/28-11",[]],["component/28-11",[]],["keyword/28-11",[]],["title/28-12",[243,41.544,592,51.233]],["name/28-12",[]],["text/28-12",[]],["component/28-12",[]],["keyword/28-12",[]],["title/28-13",[5345,71.55]],["name/28-13",[]],["text/28-13",[]],["component/28-13",[]],["keyword/28-13",[]],["title/28-14",[34,22.051,339,29.593,3847,37.606,5346,52.584]],["name/28-14",[]],["text/28-14",[]],["component/28-14",[]],["keyword/28-14",[]],["title/28-15",[34,17.713,67,18.726,578,20.696,720,29.437,3104,31.077,4593,31.077]],["name/28-15",[]],["text/28-15",[]],["component/28-15",[]],["keyword/28-15",[]],["title/28-16",[8,11.415,34,22.051,3014,34.996,5347,41.365]],["name/28-16",[]],["text/28-16",[]],["component/28-16",[]],["keyword/28-16",[]],["title/28-17",[8,6.58,17,12.616,24,12.81,50,13.439,59,15.159,71,16.617,578,14.853,5347,23.847,5348,30.314,5349,30.314]],["name/28-17",[]],["text/28-17",[]],["component/28-17",[]],["keyword/28-17",[]],["title/28-18",[20,19.912,59,29.964,1180,40.774]],["name/28-18",[]],["text/28-18",[]],["component/28-18",[]],["keyword/28-18",[]],["title/28-19",[34,22.051,1180,35.782,3847,37.606,5350,52.584]],["name/28-19",[]],["text/28-19",[]],["component/28-19",[]],["keyword/28-19",[]],["title/28-20",[386,34.465,5351,57.074]],["name/28-20",[]],["text/28-20",[]],["component/28-20",[]],["keyword/28-20",[]],["title/28-21",[8,11.415,339,29.593,2439,31.879,4115,38.687]],["name/28-21",[]],["text/28-21",[]],["component/28-21",[]],["keyword/28-21",[]],["title/28-22",[8,11.415,339,29.593,2439,31.879,5352,52.584]],["name/28-22",[]],["text/28-22",[]],["component/28-22",[]],["keyword/28-22",[]],["title/28-23",[386,34.465,5353,57.074]],["name/28-23",[]],["text/28-23",[]],["component/28-23",[]],["keyword/28-23",[]],["title/28-24",[1181,61.148]],["name/28-24",[]],["text/28-24",[]],["component/28-24",[]],["keyword/28-24",[]],["title/28-25",[5354,76.142]],["name/28-25",[]],["text/28-25",[]],["component/28-25",[]],["keyword/28-25",[]],["title/28-26",[2252,49.584]],["name/28-26",[]],["text/28-26",[]],["component/28-26",[]],["keyword/28-26",[]],["title/28-27",[3334,57.074,5355,59.948]],["name/28-27",[]],["text/28-27",[]],["component/28-27",[]],["keyword/28-27",[]],["title/28-28",[912,48.53,1535,44.512]],["name/28-28",[]],["text/28-28",[]],["component/28-28",[]],["keyword/28-28",[]],["title/28",[20,17.474,339,29.593,1180,35.782,1181,38.687]],["name/28",[4324,0.656]],["text/28",[0,0.188,6,0.546,8,2.498,11,3.695,12,3.817,13,0.179,14,3.319,16,0.188,17,3.314,19,1.715,20,2.627,22,1.871,24,3.818,25,3.767,26,0.474,28,2.696,31,0.194,32,1.628,33,0.358,34,3.774,35,4.655,36,0.23,38,1.087,39,0.986,45,1.698,46,0.445,48,0.378,50,3.126,51,0.943,52,2.98,53,1.666,54,0.517,56,2.242,58,2.108,59,3.835,60,0.591,61,0.824,62,0.373,65,0.554,67,3.67,68,0.582,71,0.181,73,0.429,75,1.468,76,1.558,78,3.483,79,0.186,80,0.692,81,1.647,84,2.809,85,1.428,87,1.047,88,0.572,89,0.363,90,0.251,94,0.207,95,0.65,96,0.363,100,0.733,101,0.837,104,0.615,105,0.635,106,0.404,107,0.194,108,0.531,109,0.943,113,0.179,114,0.251,115,0.207,118,0.284,122,0.758,123,0.31,124,0.345,125,0.505,128,0.169,130,0.785,131,1.386,134,0.722,142,0.271,143,0.751,144,0.211,147,0.776,150,0.169,151,1.395,153,0.642,154,0.358,155,0.404,157,0.179,162,0.272,168,0.179,176,0.449,181,0.284,185,0.215,188,0.22,190,0.603,192,2.253,193,0.22,194,0.745,195,0.592,199,0.23,205,0.236,214,0.243,222,1.069,223,0.22,224,0.251,225,0.23,226,0.378,229,0.215,232,0.702,234,0.284,235,0.349,240,0.554,241,0.767,243,1.201,245,0.412,246,0.203,247,0.767,248,0.183,249,0.207,252,0.538,253,0.563,257,0.635,261,0.225,263,0.251,264,0.883,270,0.197,271,0.22,272,0.438,274,0.742,278,1.395,279,0.675,282,0.188,283,1.126,284,1.103,287,0.211,288,0.26,289,1.692,290,0.225,292,0.183,294,0.225,295,0.215,297,0.26,298,1.442,306,0.449,308,0.251,314,0.271,315,0.215,323,0.243,324,0.22,332,0.592,334,0.474,339,4.449,342,0.207,346,0.358,350,1.841,351,1.165,352,0.572,356,1.149,357,0.363,358,0.412,365,0.474,376,0.474,378,0.271,384,0.773,385,0.397,386,0.744,389,0.572,391,0.329,393,0.215,394,0.429,396,0.225,398,0.391,399,0.42,401,0.461,407,0.284,410,1.533,411,1.282,412,0.197,414,0.744,419,1.711,423,0.474,427,0.197,431,0.26,437,0.404,438,0.429,440,3.144,446,0.284,447,0.181,448,1.339,453,0.236,458,0.23,469,0.592,472,0.358,474,0.771,475,0.461,483,1.628,486,0.96,492,0.251,493,0.251,494,0.191,504,0.449,505,0.384,510,0.302,511,0.302,513,0.489,518,0.144,521,2.451,527,0.461,533,1.15,535,0.179,537,0.42,538,1.587,543,0.461,547,0.879,548,0.538,553,0.528,570,0.191,574,1.126,575,0.207,578,0.736,584,0.438,587,0.603,589,0.251,592,0.243,598,0.243,605,0.528,606,0.773,607,0.373,608,0.666,613,0.758,614,0.572,615,0.712,616,0.744,628,0.251,640,0.188,644,0.243,646,0.378,647,0.786,648,0.896,650,0.412,655,0.236,656,0.236,661,0.243,662,0.358,666,0.745,667,0.507,670,0.449,679,0.391,681,0.391,682,0.572,683,0.42,684,0.592,686,0.251,690,0.26,694,0.675,697,0.22,701,0.207,707,0.215,710,0.429,711,0.358,712,0.363,720,1.883,722,0.251,724,0.23,727,0.785,732,1.388,737,0.211,740,0.302,744,0.23,745,0.2,747,0.967,751,0.449,754,0.243,766,0.243,767,0.236,772,0.603,778,0.429,785,0.397,786,0.26,796,0.302,797,1.411,816,0.23,817,0.896,822,0.378,835,0.251,838,0.284,840,0.271,842,1.48,843,0.449,849,0.404,860,0.378,880,0.23,889,1.219,890,0.507,894,0.22,902,0.572,903,0.538,906,0.412,907,0.215,917,0.658,927,0.926,928,0.194,929,0.555,931,0.236,935,0.911,941,3.379,943,0.489,945,0.694,966,0.742,967,0.236,978,0.531,979,0.188,983,0.284,1020,3.696,1036,0.215,1040,0.236,1073,0.236,1077,1.008,1078,0.26,1104,0.2,1111,0.251,1115,0.933,1145,0.243,1147,0.22,1162,0.302,1166,0.26,1169,0.207,1173,0.438,1177,0.243,1180,3.35,1181,2.708,1182,2.634,1183,0.905,1184,0.412,1187,1.261,1188,1.241,1192,1.403,1193,0.628,1194,0.563,1203,0.397,1207,0.563,1228,0.23,1245,0.528,1261,0.474,1284,1.387,1293,0.284,1298,0.733,1303,0.592,1307,0.26,1311,0.236,1325,0.474,1333,0.243,1336,0.284,1337,4.693,1346,0.813,1350,1.069,1355,0.236,1356,0.391,1360,0.22,1364,0.203,1365,0.967,1372,0.251,1376,0.215,1377,0.429,1386,0.203,1398,0.172,1408,0.834,1411,0.404,1414,0.642,1418,2.229,1419,0.628,1420,0.555,1424,0.489,1433,1.231,1435,0.236,1444,0.384,1445,0.642,1451,0.42,1458,2.33,1474,0.449,1485,0.271,1497,0.933,1502,0.211,1511,0.658,1517,0.284,1520,0.773,1523,0.271,1529,0.967,1536,0.23,1543,0.26,1546,1.44,1547,0.236,1549,0.733,1551,0.284,1556,1.052,1566,0.59,1571,0.26,1572,0.284,1581,0.215,1586,0.59,1589,0.284,1593,0.555,1598,0.284,1619,0.251,1620,0.429,1624,0.271,1641,0.555,1646,2.677,1648,0.489,1649,0.694,1650,0.26,1674,0.59,1678,0.23,1687,0.26,1690,0.284,1698,1.499,1711,3.294,1713,0.603,1721,0.773,1747,0.26,1760,0.302,1768,0.23,1770,0.675,1775,0.243,1776,0.716,1790,0.818,1792,0.429,1797,0.26,1798,0.243,1799,0.474,1806,0.271,1812,0.474,1828,0.284,1829,0.284,1832,0.236,1841,0.271,1852,0.251,1862,0.528,1868,0.271,1869,0.528,1876,0.742,1881,0.429,1902,0.236,1903,0.905,1914,0.59,1917,0.251,1919,0.284,1921,0.243,1922,0.22,1924,0.26,1926,0.251,1930,0.302,1940,0.528,1949,0.284,1951,0.236,1953,0.236,1958,0.243,1966,0.271,1990,0.271,1993,0.555,1994,0.284,2005,0.284,2006,0.404,2025,0.284,2034,0.555,2037,0.528,2040,0.603,2044,0.59,2049,0.438,2055,0.203,2059,0.243,2087,0.461,2092,0.284,2098,0.23,2099,0.742,2107,0.694,2116,1.261,2125,0.26,2135,0.236,2138,0.284,2146,0.302,2157,0.302,2173,0.271,2186,0.284,2190,0.284,2203,0.271,2224,0.694,2227,0.284,2238,0.251,2247,0.555,2252,0.197,2274,0.211,2299,0.284,2301,0.243,2306,0.284,2307,0.284,2321,0.271,2323,0.489,2327,0.284,2336,0.429,2341,0.236,2346,0.271,2351,0.528,2357,0.225,2374,0.818,2381,0.271,2385,0.23,2391,0.251,2392,0.225,2397,0.284,2405,0.555,2430,0.236,2448,1.008,2465,0.865,2478,0.251,2484,0.26,2566,0.507,2571,0.251,2585,0.302,2586,0.236,2591,1.058,2607,0.236,2626,0.302,2633,0.236,2648,0.26,2650,0.474,2676,0.243,2701,0.236,2720,0.879,2721,1.182,2734,0.438,2741,0.271,2753,0.384,2754,0.26,2760,0.271,2761,0.302,2766,0.742,2788,0.302,2789,0.236,2792,0.271,2801,0.489,2814,0.26,2825,0.507,2845,0.284,2846,0.284,2879,1.287,2893,0.243,2894,0.507,2903,0.271,2904,0.284,2916,0.251,2926,0.211,2954,0.251,2960,0.243,2961,0.773,2964,0.271,2965,0.528,2968,0.628,2972,0.236,2974,0.302,2975,0.271,2978,0.225,2991,0.302,2998,0.302,3014,0.818,3020,0.284,3034,0.26,3055,0.716,3057,0.507,3061,0.489,3086,0.225,3104,1.481,3106,0.26,3113,0.474,3127,0.271,3137,0.489,3170,0.302,3178,0.26,3184,0.284,3194,0.271,3199,0.225,3201,0.236,3204,0.251,3211,0.302,3218,0.284,3272,0.302,3273,0.236,3295,0.628,3302,0.284,3328,0.812,3329,0.284,3334,1.445,3361,0.271,3362,0.225,3374,0.23,3390,0.555,3404,0.26,3407,0.271,3418,0.284,3428,1.939,3433,0.507,3445,0.271,3447,0.302,3492,0.489,3498,0.251,3499,0.42,3510,0.284,3529,0.555,3538,0.243,3593,0.865,3643,0.967,3649,0.284,3655,0.251,3662,1.058,3694,0.271,3709,1.775,3710,0.284,3713,0.243,3716,0.251,3718,0.284,3722,0.284,3741,0.26,3755,0.642,3764,0.26,3785,0.284,3799,0.284,3838,0.302,3913,0.251,3966,0.271,4038,0.507,4098,0.251,4103,1.293,4104,0.251,4114,0.302,4116,0.243,4120,0.271,4137,0.284,4142,0.251,4146,0.26,4151,0.26,4159,0.284,4160,0.302,4295,0.742,4317,1.518,4325,0.284,4327,0.284,4329,0.302,4376,0.59,4380,0.302,4385,0.716,4411,1.387,4412,0.528,4413,0.59,4415,0.284,4438,0.302,4440,0.302,4470,0.507,4497,0.507,4504,0.271,4520,0.302,4537,0.251,4540,0.284,4570,0.302,4593,1.657,4597,0.243,4602,0.528,4603,0.461,4608,1.846,4654,0.302,4655,0.302,4669,0.271,4671,0.284,4682,0.302,4684,0.26,4740,1.058,4751,1.293,4753,0.555,4758,0.302,4835,0.271,4852,0.271,4888,0.302,4889,0.555,4895,1.518,4904,0.302,4917,1.126,4919,0.284,4938,0.555,4965,1.844,5033,0.302,5034,0.528,5066,0.271,5068,0.284,5111,0.251,5129,1.058,5135,0.302,5136,0.302,5137,0.302,5138,1.518,5162,0.26,5175,0.284,5181,2.669,5247,0.302,5267,0.302,5278,0.59,5282,0.271,5336,0.302,5338,2.714,5339,0.865,5340,1.615,5341,0.59,5342,0.555,5344,0.302,5345,1.058,5347,3.166,5351,2.869,5353,2.214,5354,3.034,5355,1.293,5356,0.33,5357,0.33,5358,0.33,5359,0.302,5360,0.33,5361,0.33,5362,0.33,5363,0.33,5364,0.644,5365,0.33,5366,0.33,5367,2.605,5368,0.33,5369,0.33,5370,0.33,5371,0.33,5372,0.33,5373,0.271,5374,0.33,5375,0.302,5376,0.33,5377,0.33,5378,0.302,5379,0.302,5380,1.518,5381,2.013,5382,1.615,5383,1.387,5384,1.229,5385,0.33,5386,0.33,5387,0.33,5388,0.33,5389,0.33,5390,0.33,5391,0.33,5392,0.33,5393,0.33,5394,0.33,5395,0.33,5396,0.33,5397,0.33,5398,0.33,5399,0.33,5400,0.284,5401,0.944,5402,0.33,5403,0.33,5404,0.33,5405,0.284,5406,0.271,5407,0.33,5408,0.284,5409,1.293,5410,0.33,5411,0.644,5412,0.284,5413,0.33,5414,0.33,5415,0.644,5416,0.33,5417,0.33,5418,0.33,5419,0.33,5420,0.33,5421,0.33,5422,0.33,5423,0.33,5424,0.33,5425,0.644,5426,0.33,5427,0.33,5428,0.33,5429,0.33,5430,0.33,5431,0.302,5432,0.33,5433,0.33,5434,0.33,5435,1.126,5436,0.644,5437,0.33,5438,0.33,5439,0.33,5440,0.59,5441,0.33,5442,0.644,5443,0.644,5444,0.644,5445,0.644,5446,0.33,5447,0.33,5448,0.33,5449,0.302,5450,0.33,5451,0.33,5452,0.644,5453,0.33,5454,0.555,5455,0.33,5456,0.26,5457,0.33,5458,1.615,5459,0.33,5460,0.302,5461,0.33,5462,0.302,5463,0.33,5464,0.302,5465,0.555,5466,0.644,5467,0.644,5468,0.33,5469,0.271,5470,0.302,5471,0.33,5472,0.644,5473,0.33,5474,0.33,5475,0.33,5476,0.33,5477,0.33,5478,0.302,5479,0.33,5480,0.33,5481,0.33,5482,0.33,5483,0.33,5484,0.33,5485,0.944,5486,0.33,5487,0.33,5488,0.33,5489,0.33,5490,0.33,5491,0.33,5492,0.33,5493,0.33,5494,0.271,5495,0.33,5496,0.33,5497,0.302,5498,0.33,5499,0.302,5500,0.271,5501,0.33,5502,0.33,5503,0.33,5504,0.944,5505,0.33,5506,1.502,5507,0.302,5508,0.33,5509,0.284,5510,0.33,5511,0.33,5512,0.33,5513,0.644,5514,0.33,5515,0.644,5516,0.33,5517,0.33,5518,0.33,5519,0.33,5520,0.33,5521,0.59,5522,0.33,5523,0.33,5524,0.33,5525,0.33,5526,0.33,5527,0.33,5528,0.302,5529,0.644,5530,1.229,5531,0.302,5532,0.284,5533,0.33,5534,0.33,5535,0.302,5536,0.33,5537,0.302,5538,0.33,5539,0.33,5540,0.33,5541,0.33,5542,0.33,5543,0.644,5544,0.33,5545,0.33,5546,0.33,5547,0.33,5548,0.944,5549,0.865,5550,0.944,5551,0.33,5552,0.33,5553,0.33,5554,0.33,5555,0.33,5556,0.33,5557,0.33,5558,0.644,5559,0.302,5560,0.33,5561,0.555,5562,0.33,5563,0.302,5564,0.33,5565,0.302,5566,0.644,5567,0.33,5568,0.33,5569,0.302,5570,1.844,5571,0.302,5572,0.33,5573,0.302,5574,0.33,5575,0.33,5576,0.284,5577,0.644,5578,0.33,5579,0.33,5580,0.33,5581,0.33,5582,0.271,5583,0.33,5584,0.33,5585,0.644,5586,0.555,5587,1.376,5588,0.271,5589,0.33,5590,0.33,5591,0.33,5592,0.33,5593,0.284,5594,1.502,5595,1.229,5596,0.33,5597,0.33,5598,0.302,5599,0.33,5600,0.33,5601,0.33,5602,0.33,5603,0.33,5604,0.33,5605,0.26,5606,0.33,5607,0.33,5608,0.33,5609,0.33,5610,0.33,5611,0.33,5612,0.33,5613,0.33,5614,0.33,5615,0.33,5616,0.33,5617,0.33,5618,0.33,5619,0.33,5620,0.33,5621,0.302,5622,0.302,5623,0.33,5624,0.33,5625,0.33,5626,0.33,5627,0.33,5628,0.33,5629,0.302,5630,0.33,5631,0.33,5632,0.302,5633,0.33,5634,0.33,5635,0.33,5636,0.33,5637,0.33,5638,0.644,5639,0.302,5640,1.763,5641,0.33,5642,0.644,5643,0.33,5644,0.302,5645,0.302,5646,0.284,5647,0.33,5648,0.284,5649,1.615,5650,0.59,5651,0.59,5652,2.063,5653,2.482,5654,3.836,5655,1.763,5656,1.763,5657,1.763,5658,1.763,5659,1.763,5660,2.482,5661,0.865,5662,1.229,5663,1.229,5664,0.644,5665,0.644,5666,3.5,5667,0.644,5668,0.644,5669,0.644,5670,0.644,5671,0.644,5672,0.644,5673,0.644,5674,0.644,5675,0.644,5676,0.644,5677,0.644,5678,0.644,5679,0.644,5680,1.229,5681,1.229,5682,0.644,5683,0.644,5684,0.644,5685,0.644,5686,0.644,5687,0.644,5688,0.644,5689,0.644,5690,0.644,5691,0.644,5692,0.644,5693,0.644,5694,0.644,5695,0.644,5696,0.644,5697,0.644,5698,0.555,5699,0.644,5700,0.644,5701,0.644,5702,0.644,5703,0.644,5704,0.33,5705,0.33,5706,0.644,5707,0.644,5708,0.644,5709,0.33,5710,0.33,5711,0.33,5712,0.33,5713,0.33,5714,1.229,5715,0.33,5716,0.302,5717,2.273,5718,2.214,5719,2.252,5720,2.252,5721,0.302,5722,2.063,5723,0.33,5724,1.952,5725,0.302,5726,0.33,5727,0.302,5728,0.33,5729,0.33,5730,0.33,5731,0.33,5732,0.33,5733,0.33,5734,0.33,5735,0.33,5736,0.33,5737,0.33,5738,0.33,5739,0.59,5740,1.518,5741,0.59,5742,0.59,5743,0.33,5744,0.59,5745,0.284,5746,0.302,5747,0.33,5748,1.229,5749,0.33,5750,1.445,5751,0.865,5752,0.302,5753,0.302,5754,0.302,5755,0.644,5756,0.489,5757,0.33,5758,0.284,5759,0.773,5760,0.33,5761,0.33,5762,0.33,5763,0.33,5764,0.302,5765,0.33,5766,0.284,5767,0.302,5768,0.302,5769,1.502,5770,0.33,5771,0.812,5772,0.33,5773,0.271,5774,0.271,5775,0.33,5776,0.33,5777,0.33,5778,0.33,5779,0.33,5780,0.59,5781,0.284,5782,0.302,5783,0.33,5784,0.33,5785,0.33,5786,0.33,5787,1.229,5788,0.644,5789,0.33,5790,0.555,5791,0.59,5792,0.26,5793,0.271,5794,0.644,5795,0.33,5796,0.33,5797,0.33,5798,0.33,5799,0.33,5800,0.302,5801,0.59,5802,0.33,5803,0.33,5804,0.33,5805,0.644,5806,0.33,5807,0.26,5808,0.33,5809,0.33,5810,0.284,5811,0.33,5812,0.33,5813,0.33,5814,0.33,5815,0.33,5816,0.33]],["component/28",[162,0.398]],["keyword/28",[]],["title/29-1",[8,11.415,298,26.026,1339,45.268,1408,29.201]],["name/29-1",[]],["text/29-1",[]],["component/29-1",[]],["keyword/29-1",[]],["title/29-2",[7,42.932,1441,45.392]],["name/29-2",[]],["text/29-2",[]],["component/29-2",[]],["keyword/29-2",[]],["title/29-3",[12,21.722,50,23.312,918,38.687,3850,43.098]],["name/29-3",[]],["text/29-3",[]],["component/29-3",[]],["keyword/29-3",[]],["title/29-4",[17,19.497,24,19.796,727,24.472,3706,35.568,5817,42.918]],["name/29-4",[]],["text/29-4",[]],["component/29-4",[]],["keyword/29-4",[]],["title/29-5",[100,35.748,147,30.949,5818,54.895]],["name/29-5",[]],["text/29-5",[]],["component/29-5",[]],["keyword/29-5",[]],["title/29-6",[147,35.967,979,39.735]],["name/29-6",[]],["text/29-6",[]],["component/29-6",[]],["keyword/29-6",[]],["title/29-7",[34,22.051,477,35.782,4561,45.268,5819,41.365]],["name/29-7",[]],["text/29-7",[]],["component/29-7",[]],["keyword/29-7",[]],["title/29-8",[17,24.938,3706,45.493,5820,54.895]],["name/29-8",[]],["text/29-8",[]],["component/29-8",[]],["keyword/29-8",[]],["title/29-9",[223,39.879,399,39.059,5821,59.921]],["name/29-9",[]],["text/29-9",[]],["component/29-9",[]],["keyword/29-9",[]],["title/29-10",[979,47.425]],["name/29-10",[]],["text/29-10",[]],["component/29-10",[]],["keyword/29-10",[]],["title/29-11",[8,11.415,535,28.465,979,30.005,1408,29.201]],["name/29-11",[]],["text/29-11",[]],["component/29-11",[]],["keyword/29-11",[]],["title/29-12",[1465,59.44]],["name/29-12",[]],["text/29-12",[]],["component/29-12",[]],["keyword/29-12",[]],["title/29-13",[5822,76.142]],["name/29-13",[]],["text/29-13",[]],["component/29-13",[]],["keyword/29-13",[]],["title/29-14",[539,44.512,817,41.544]],["name/29-14",[]],["text/29-14",[]],["component/29-14",[]],["keyword/29-14",[]],["title/29-15",[8,13.007,386,29.657,1205,39.879]],["name/29-15",[]],["text/29-15",[]],["component/29-15",[]],["keyword/29-15",[]],["title/29-16",[163,37.598,1350,36.327,4741,49.111]],["name/29-16",[]],["text/29-16",[]],["component/29-16",[]],["keyword/29-16",[]],["title/29-17",[3703,49.584]],["name/29-17",[]],["text/29-17",[]],["component/29-17",[]],["keyword/29-17",[]],["title/29-18",[1465,59.44]],["name/29-18",[]],["text/29-18",[]],["component/29-18",[]],["keyword/29-18",[]],["title/29-19",[120,37.606,432,43.098,433,41.365,1275,45.268]],["name/29-19",[]],["text/29-19",[]],["component/29-19",[]],["keyword/29-19",[]],["title/29-20",[0,24.102,3,18.421,4,31.077,5,24.814,8,9.169,1871,36.363]],["name/29-20",[]],["text/29-20",[]],["component/29-20",[]],["keyword/29-20",[]],["title/29-21",[0,30.005,5,30.891,8,11.415,21,34.996]],["name/29-21",[]],["text/29-21",[]],["component/29-21",[]],["keyword/29-21",[]],["title/29-22",[5823,68.12]],["name/29-22",[]],["text/29-22",[]],["component/29-22",[]],["keyword/29-22",[]],["title/29-23",[5824,71.55]],["name/29-23",[]],["text/29-23",[]],["component/29-23",[]],["keyword/29-23",[]],["title/29-24",[5825,83.114]],["name/29-24",[]],["text/29-24",[]],["component/29-24",[]],["keyword/29-24",[]],["title/29-25",[8,13.007,71,32.847,616,29.657]],["name/29-25",[]],["text/29-25",[]],["component/29-25",[]],["keyword/29-25",[]],["title/29-26",[298,41.135]],["name/29-26",[]],["text/29-26",[]],["component/29-26",[]],["keyword/29-26",[]],["title/29-27",[1408,38.67,2926,44.512]],["name/29-27",[]],["text/29-27",[]],["component/29-27",[]],["keyword/29-27",[]],["title/29-28",[3703,41.544,5826,63.796]],["name/29-28",[]],["text/29-28",[]],["component/29-28",[]],["keyword/29-28",[]],["title/29-29",[28,19.796,54,25.681,3014,31.179,3059,36.853,3703,27.949]],["name/29-29",[]],["text/29-29",[]],["component/29-29",[]],["keyword/29-29",[]],["title/29-30",[3703,41.544,4497,54.78]],["name/29-30",[]],["text/29-30",[]],["component/29-30",[]],["keyword/29-30",[]],["title/29-31",[119,34.996,1072,38.687,3703,31.371,3837,33.612]],["name/29-31",[]],["text/29-31",[]],["component/29-31",[]],["keyword/29-31",[]],["title/29-32",[72,36.646,1062,36.646,3703,31.371,5827,45.268]],["name/29-32",[]],["text/29-32",[]],["component/29-32",[]],["keyword/29-32",[]],["title/29-33",[72,41.759,3703,35.748,5827,51.584]],["name/29-33",[]],["text/29-33",[]],["component/29-33",[]],["keyword/29-33",[]],["title/29-34",[312,42.853,1458,34.683,3703,35.748]],["name/29-34",[]],["text/29-34",[]],["component/29-34",[]],["keyword/29-34",[]],["title/29-35",[1458,27.116,3059,36.853,3703,27.949,5828,42.918,5829,42.918]],["name/29-35",[]],["text/29-35",[]],["component/29-35",[]],["keyword/29-35",[]],["title/29-36",[3703,35.748,5829,54.895,5830,54.895]],["name/29-36",[]],["text/29-36",[]],["component/29-36",[]],["keyword/29-36",[]],["title/29-37",[28,17.849,74,31.077,1458,24.449,1596,31.077,3476,36.363,3703,25.2]],["name/29-37",[]],["text/29-37",[]],["component/29-37",[]],["keyword/29-37",[]],["title/29-38",[72,36.646,1596,38.687,3703,31.371,5831,48.173]],["name/29-38",[]],["text/29-38",[]],["component/29-38",[]],["keyword/29-38",[]],["title/29-39",[119,46.345,5832,59.948]],["name/29-39",[]],["text/29-39",[]],["component/29-39",[]],["keyword/29-39",[]],["title/29-40",[616,41.135]],["name/29-40",[]],["text/29-40",[]],["component/29-40",[]],["keyword/29-40",[]],["title/29-41",[912,48.53,1535,44.512]],["name/29-41",[]],["text/29-41",[]],["component/29-41",[]],["keyword/29-41",[]],["title/29",[20,17.474,978,29.593,979,30.005,3703,31.371]],["name/29",[4324,0.656]],["text/29",[0,1.973,1,1.35,3,1.313,4,2.215,5,1.768,6,1.149,8,2.37,9,0.992,11,3.605,12,3.895,13,1.365,14,4.048,16,0.419,17,4.005,19,0.972,20,3.087,21,0.926,22,1.223,24,3.893,25,4.008,28,3.108,29,2.031,32,1.037,34,3.567,35,4.151,38,0.858,39,0.682,45,2.385,46,0.656,48,0.431,50,2.661,52,2.803,53,2.339,54,2.12,56,2.762,57,0.425,58,2.793,60,1.211,67,3.724,71,3.29,72,5.126,74,1.46,75,0.907,77,1.074,78,3.357,79,3.093,80,0.413,81,1.332,83,0.461,85,0.735,87,0.512,88,0.844,89,1.117,95,1.591,96,1.117,100,1.184,102,0.469,105,0.379,108,1.419,109,0.461,113,1.63,119,3.831,120,3.035,121,2.695,122,0.858,123,1.211,125,0.393,128,1.288,130,2.568,131,2.339,132,0.602,134,0.818,143,1.505,144,0.89,147,2.839,150,1.288,151,1.997,155,0.461,157,1.365,160,0.632,161,0.499,163,0.461,166,0.947,167,0.469,168,0.397,170,0.438,176,0.97,192,1.223,195,0.873,213,0.557,216,0.431,223,0.488,226,1.166,228,0.773,232,0.419,233,0.818,235,0.753,238,1.876,240,0.818,245,0.89,247,1.538,249,0.461,253,0.438,257,1.555,271,1.321,278,0.719,282,0.794,283,0.367,284,1.088,288,0.577,289,1.288,297,0.577,298,0.982,311,0.557,312,0.995,326,0.557,342,0.461,346,0.773,350,0.367,351,0.425,356,0.419,357,0.413,358,0.469,372,1.141,373,0.499,379,0.469,382,0.858,384,0.602,386,1.248,389,0.844,391,1.766,398,0.445,399,0.478,406,1.708,409,2.344,411,0.719,416,0.525,419,0.719,427,1.184,432,2.067,437,1.582,438,0.926,440,4.529,474,0.461,476,1.223,483,0.727,486,0.469,496,1.627,501,0.54,505,1.184,512,1.057,517,0.602,518,0.32,535,0.397,540,1.321,545,0.783,550,0.577,560,0.995,570,1.459,575,0.461,578,0.972,599,0.525,607,0.806,608,0.753,609,0.453,614,0.844,616,1.248,630,2.31,644,0.54,646,1.481,647,0.469,662,0.408,666,0.445,679,0.445,681,1.203,683,0.478,684,0.461,698,1.46,701,1.245,711,1.672,714,0.525,724,0.512,726,0.672,727,1.317,732,1.223,737,0.469,746,0.499,748,0.632,772,0.469,778,0.488,797,0.727,816,0.512,817,0.438,822,0.431,830,0.577,835,0.557,855,1.095,869,0.577,876,0.995,893,0.461,899,0.602,900,1.507,902,1.529,903,0.419,909,2.096,910,0.356,926,1.962,927,0.453,928,0.818,935,2.344,940,1.796,941,1.235,944,0.499,950,0.488,967,0.525,978,2.767,979,3.285,990,0.557,1052,0.632,1062,0.97,1072,1.024,1074,0.577,1106,0.557,1122,0.89,1141,0.469,1167,0.419,1173,0.499,1182,0.445,1207,0.438,1209,0.557,1283,0.632,1286,0.525,1298,0.83,1303,0.873,1323,0.947,1325,0.54,1334,0.577,1342,0.557,1346,1.074,1349,0.512,1350,1.203,1351,0.602,1356,0.445,1380,1.024,1386,0.858,1397,0.512,1408,0.408,1419,0.488,1444,0.83,1458,0.425,1465,0.525,1471,0.499,1473,0.425,1479,0.926,1502,0.89,1511,0.512,1535,0.469,1547,0.995,1549,0.438,1556,0.83,1591,0.602,1595,0.499,1596,2.543,1616,0.499,1624,0.602,1645,0.602,1649,0.54,1652,2.215,1678,2.098,1697,0.557,1698,0.488,1713,1.268,1733,0.557,1737,0.602,1768,0.512,1774,0.577,1776,0.557,1790,0.488,1791,0.577,1792,0.488,1797,0.577,1807,0.672,1812,0.54,1823,0.499,1846,0.602,1863,2.695,1899,0.632,1923,0.557,1940,0.602,1951,0.995,1952,1.057,1961,0.577,1969,0.577,2006,0.461,2008,0.602,2022,1.984,2040,0.469,2055,0.858,2063,0.557,2070,0.873,2087,0.525,2090,0.672,2099,0.577,2117,0.632,2145,0.947,2168,0.512,2176,0.602,2180,0.632,2225,0.602,2252,0.438,2274,0.469,2336,0.488,2342,0.54,2382,1.024,2389,1.024,2439,0.445,2531,0.672,2540,0.577,2571,0.557,2574,0.557,2591,0.632,2598,0.672,2604,0.557,2607,0.525,2625,1.818,2633,1.419,2653,0.525,2667,0.632,2686,0.557,2689,3.954,2701,0.525,2720,0.525,2721,1.095,2734,0.499,2741,0.602,2753,0.83,2800,2.215,2819,2.171,2822,1.46,2824,0.602,2841,0.672,2845,0.632,2856,0.602,2862,0.672,2871,0.672,2872,0.602,2886,0.672,2887,0.525,2894,0.577,2957,0.525,2969,0.632,3018,1.757,3033,0.54,3059,1.095,3111,0.577,3123,0.632,3141,0.632,3174,0.54,3190,0.632,3253,0.632,3257,0.577,3301,2.048,3346,0.577,3362,0.947,3374,0.512,3383,1.708,3400,0.672,3401,0.557,3526,0.557,3538,0.54,3571,0.672,3600,1.275,3623,0.577,3637,0.525,3703,4.189,3706,2.936,3709,0.525,3726,1.057,3750,0.602,3755,0.499,3789,0.602,3801,0.602,3806,1.095,3829,1.198,3837,1.612,3850,1.627,3852,1.198,3853,0.672,3894,1.984,3949,0.602,3961,0.672,3989,0.632,3997,1.275,4086,1.198,4115,0.54,4142,1.914,4291,0.54,4300,1.198,4321,0.577,4325,0.632,4326,0.672,4340,1.095,4347,2.171,4359,1.818,4385,1.057,4408,0.672,4423,0.672,4428,0.672,4439,0.602,4458,1.818,4470,0.577,4480,0.672,4481,0.672,4483,0.672,4497,0.577,4537,0.557,4541,1.095,4559,0.672,4561,0.632,4603,0.525,4669,1.141,4673,0.672,4677,0.632,4698,0.672,4741,0.602,4745,0.632,4765,0.632,4767,0.672,4915,0.672,5094,0.672,5165,0.672,5171,0.602,5220,1.627,5288,0.672,5326,0.672,5359,0.672,5373,1.141,5698,0.632,5817,1.275,5818,1.275,5819,1.095,5820,0.672,5822,0.672,5823,1.141,5824,2.591,5826,0.672,5827,1.198,5828,0.672,5830,0.672,5831,0.672,5832,1.198,5833,0.734,5834,0.672,5835,0.672,5836,0.734,5837,0.734,5838,0.734,5839,0.734,5840,0.734,5841,0.672,5842,0.734,5843,0.734,5844,0.734,5845,0.734,5846,0.734,5847,1.392,5848,0.734,5849,0.734,5850,1.392,5851,0.672,5852,0.734,5853,0.734,5854,0.734,5855,0.734,5856,0.734,5857,0.734,5858,0.734,5859,0.672,5860,0.734,5861,0.734,5862,0.734,5863,1.392,5864,1.392,5865,0.734,5866,0.734,5867,0.734,5868,0.734,5869,0.734,5870,0.672,5871,0.734,5872,0.672,5873,0.734,5874,0.734,5875,0.602,5876,0.734,5877,0.602,5878,0.672,5879,0.734,5880,0.734,5881,1.392,5882,0.734,5883,0.734,5884,0.734,5885,0.734,5886,0.672,5887,0.734,5888,0.734,5889,0.734,5890,0.734,5891,0.734,5892,0.602,5893,0.672,5894,0.734,5895,0.734,5896,0.734,5897,0.734,5898,0.734,5899,0.734,5900,0.734,5901,0.734,5902,0.734,5903,0.672,5904,0.734,5905,0.734,5906,0.734,5907,0.734,5908,1.392,5909,0.734,5910,0.734,5911,0.734,5912,0.734,5913,0.734,5914,0.672,5915,0.734,5916,0.672,5917,1.392,5918,0.632,5919,0.734,5920,0.734,5921,0.672,5922,0.557,5923,0.734,5924,0.734,5925,0.734,5926,0.734,5927,0.734,5928,3.01,5929,0.672,5930,0.632,5931,0.672,5932,0.734,5933,0.734,5934,0.734,5935,0.734,5936,0.672,5937,0.602,5938,0.734,5939,0.734,5940,0.734,5941,1.392,5942,0.734,5943,0.632,5944,0.734,5945,0.672,5946,1.392,5947,1.141,5948,0.672,5949,1.985,5950,0.734,5951,0.734,5952,0.734,5953,0.672,5954,1.392,5955,0.734,5956,0.734,5957,0.577,5958,0.734,5959,0.734,5960,0.672,5961,1.985,5962,0.672,5963,0.734,5964,0.734,5965,0.602,5966,0.632,5967,0.672,5968,0.734,5969,0.734,5970,0.734,5971,0.734,5972,0.734,5973,0.672,5974,0.734,5975,0.734,5976,0.734,5977,0.734,5978,0.734,5979,1.392,5980,0.734,5981,0.734,5982,0.734,5983,0.734,5984,0.734,5985,0.734,5986,0.734,5987,0.632,5988,0.734,5989,0.632,5990,0.734,5991,0.734,5992,1.275,5993,0.734,5994,0.734,5995,0.734,5996,1.198,5997,1.392,5998,1.392,5999,0.632,6000,0.734,6001,0.602,6002,0.672,6003,0.734,6004,1.818,6005,0.734,6006,0.734,6007,0.734,6008,0.734,6009,0.734,6010,0.734,6011,0.734,6012,0.734,6013,0.734,6014,1.392,6015,0.632,6016,1.985,6017,0.734,6018,0.672,6019,0.734,6020,0.734,6021,0.672,6022,0.734,6023,0.734,6024,0.734,6025,0.734,6026,1.392,6027,0.734,6028,0.734,6029,0.734,6030,0.734,6031,0.734,6032,0.734,6033,0.734,6034,0.734,6035,0.734,6036,0.734,6037,0.734,6038,0.734,6039,0.734,6040,0.734,6041,0.734,6042,0.734,6043,0.734,6044,0.734,6045,0.734,6046,0.734,6047,0.734]],["component/29",[162,0.398]],["keyword/29",[]],["title/30-1",[3932,57.074,6048,59.948]],["name/30-1",[]],["text/30-1",[]],["component/30-1",[]],["keyword/30-1",[]],["title/30-2",[2430,59.44]],["name/30-2",[]],["text/30-2",[]],["component/30-2",[]],["keyword/30-2",[]],["title/30-3",[8,13.007,238,29.069,587,38.301]],["name/30-3",[]],["text/30-3",[]],["component/30-3",[]],["keyword/30-3",[]],["title/30-4",[1168,51.24]],["name/30-4",[]],["text/30-4",[]],["component/30-4",[]],["keyword/30-4",[]],["title/30-5",[53,28.515,575,37.598,6048,51.584]],["name/30-5",[]],["text/30-5",[]],["component/30-5",[]],["keyword/30-5",[]],["title/30-6",[53,28.515,63,34.191,2430,42.853]],["name/30-6",[]],["text/30-6",[]],["component/30-6",[]],["keyword/30-6",[]],["title/30-7",[823,35.573,3214,48.53]],["name/30-7",[]],["text/30-7",[]],["component/30-7",[]],["keyword/30-7",[]],["title/30-8",[734,57.074,823,35.573]],["name/30-8",[]],["text/30-8",[]],["component/30-8",[]],["keyword/30-8",[]],["title/30-9",[8,11.415,419,27.16,616,26.026,823,26.862]],["name/30-9",[]],["text/30-9",[]],["component/30-9",[]],["keyword/30-9",[]],["title/30-10",[1400,68.12]],["name/30-10",[]],["text/30-10",[]],["component/30-10",[]],["keyword/30-10",[]],["title/30-11",[1399,61.148]],["name/30-11",[]],["text/30-11",[]],["component/30-11",[]],["keyword/30-11",[]],["title/30-12",[1401,68.12]],["name/30-12",[]],["text/30-12",[]],["component/30-12",[]],["keyword/30-12",[]],["title/30-13",[8,13.007,54,32.847,2753,35.748]],["name/30-13",[]],["text/30-13",[]],["component/30-13",[]],["keyword/30-13",[]],["title/30-14",[8,13.007,2753,35.748,6049,54.895]],["name/30-14",[]],["text/30-14",[]],["component/30-14",[]],["keyword/30-14",[]],["title/30-15",[3214,57.922]],["name/30-15",[]],["text/30-15",[]],["component/30-15",[]],["keyword/30-15",[]],["title/30-16",[5220,68.12]],["name/30-16",[]],["text/30-16",[]],["component/30-16",[]],["keyword/30-16",[]],["title/30-17",[8,13.007,1922,39.879,2753,35.748]],["name/30-17",[]],["text/30-17",[]],["component/30-17",[]],["keyword/30-17",[]],["title/30-18",[6050,76.142]],["name/30-18",[]],["text/30-18",[]],["component/30-18",[]],["keyword/30-18",[]],["title/30-19",[6051,76.142]],["name/30-19",[]],["text/30-19",[]],["component/30-19",[]],["keyword/30-19",[]],["title/30-20",[232,39.735,823,35.573]],["name/30-20",[]],["text/30-20",[]],["component/30-20",[]],["keyword/30-20",[]],["title/30-21",[6052,76.142]],["name/30-21",[]],["text/30-21",[]],["component/30-21",[]],["keyword/30-21",[]],["title/30-22",[6053,76.142]],["name/30-22",[]],["text/30-22",[]],["component/30-22",[]],["keyword/30-22",[]],["title/30-23",[6054,76.142]],["name/30-23",[]],["text/30-23",[]],["component/30-23",[]],["keyword/30-23",[]],["title/30",[20,17.474,823,26.862,1188,32.419,3214,36.646]],["name/30",[4324,0.656]],["text/30",[3,0.318,6,0.802,8,2.544,9,0.693,11,4.074,12,3.8,13,0.395,14,3.059,15,0.476,17,3.118,19,1.23,20,3.172,22,1.67,24,3.587,25,3.783,28,2.07,29,1.16,31,0.429,32,1.032,34,3.888,35,4.517,37,0.522,38,0.854,39,1.469,42,0.598,45,1.67,46,1.183,48,0.429,50,2.029,52,1.173,53,2.012,54,1.887,56,3.025,58,2.22,59,1.926,60,0.665,61,3.097,63,0.417,67,3.616,71,1.083,75,0.476,76,1.603,77,0.75,78,2.964,79,0.411,81,1.044,84,2.198,85,0.386,89,0.779,95,1.327,96,1.413,105,0.377,108,0.779,113,0.395,125,0.39,128,0.373,130,0.381,131,1.426,134,0.814,136,0.436,139,0.826,143,1.255,145,0.395,147,0.715,150,1.009,151,0.377,159,0.509,166,0.497,168,0.75,181,0.629,190,0.885,192,2.522,193,0.486,194,0.443,195,1.239,198,0.885,216,1.475,227,0.554,232,2.198,235,0.75,238,3.014,240,0.429,241,1.282,244,0.458,245,0.885,248,0.405,253,0.826,257,1.02,265,0.522,271,0.486,272,0.497,273,0.443,278,1.548,279,0.522,282,1.127,283,1.499,285,1.178,289,0.373,298,1.906,301,0.84,303,0.522,304,0.537,324,0.922,343,0.509,344,0.522,346,2.72,347,0.965,350,1.926,351,1.143,352,0.84,356,1.71,362,0.903,363,0.885,373,0.497,379,0.467,386,0.685,389,0.84,391,0.373,395,0.885,396,1.344,401,0.522,409,1.198,410,0.497,411,0.377,413,0.486,414,0.361,416,0.522,419,1.297,423,0.537,435,0.629,440,5.468,447,0.759,463,1.135,471,0.537,472,0.405,474,0.869,476,0.854,483,1.311,498,0.669,502,0.509,504,0.509,516,0.554,518,0.318,520,1.051,527,0.522,533,1.009,534,0.486,538,1.16,539,0.467,540,0.486,545,1.413,548,0.417,553,0.598,558,0.537,559,0.598,570,0.423,582,0.497,584,0.942,587,2.925,588,0.669,589,0.554,591,0.522,595,0.669,596,0.669,599,0.522,608,1.359,609,0.854,614,0.443,616,0.978,633,0.554,640,0.417,646,0.429,648,0.826,650,1.605,656,2.755,662,0.405,666,0.84,679,0.443,681,0.443,683,0.476,686,0.554,694,0.99,698,1.019,701,0.458,707,0.476,711,2.887,713,0.903,714,0.522,720,3.189,724,0.509,727,0.723,753,0.522,755,0.629,772,1.605,778,0.922,785,1.218,797,0.381,802,0.99,809,0.443,810,0.574,813,0.537,822,0.429,823,4.04,824,1.135,835,1.051,842,0.436,846,0.629,848,0.574,865,0.574,874,0.903,878,0.554,886,0.467,889,0.395,890,0.574,903,0.417,907,0.903,910,0.354,927,0.45,935,0.84,940,0.436,941,2.812,945,0.537,949,0.429,963,0.554,978,1.112,998,0.629,1029,0.598,1030,0.598,1031,0.598,1040,0.522,1060,0.598,1064,1.749,1111,0.554,1118,0.554,1122,0.467,1146,0.522,1167,1.71,1168,2.607,1169,0.458,1178,0.509,1184,0.885,1185,0.443,1187,1.795,1188,3.02,1189,0.509,1203,0.45,1207,0.826,1215,0.574,1261,1.019,1287,0.629,1291,0.554,1311,0.522,1322,0.476,1323,0.497,1346,1.069,1350,0.84,1356,1.198,1364,0.854,1371,0.522,1398,0.381,1399,1.019,1400,1.619,1401,0.598,1408,0.769,1419,0.486,1430,0.629,1440,1.135,1443,0.629,1444,0.436,1445,0.497,1451,0.476,1454,0.509,1471,0.497,1472,0.537,1475,0.509,1479,0.922,1480,0.486,1498,0.574,1502,0.467,1511,0.509,1532,0.598,1538,0.629,1546,0.467,1547,0.522,1549,0.826,1556,0.826,1562,0.497,1595,0.497,1596,0.537,1620,0.922,1631,0.598,1646,0.885,1680,0.669,1713,0.467,1720,1.019,1742,0.598,1770,0.99,1791,0.574,1797,0.574,1802,0.629,1812,0.537,1818,0.598,1822,1.089,1823,0.497,1827,0.669,1846,0.598,1860,0.598,1870,0.598,1889,0.669,1902,0.522,1922,1.671,1923,1.051,1934,0.99,1943,0.574,1958,0.537,1984,0.574,2006,0.458,2031,0.574,2036,0.537,2037,0.598,2059,0.537,2106,0.669,2134,0.574,2150,0.598,2164,0.554,2204,0.922,2226,0.537,2274,0.467,2301,0.537,2341,0.522,2382,0.537,2396,0.629,2398,0.669,2417,0.629,2430,2.462,2462,0.629,2484,1.089,2516,1.269,2540,0.574,2543,0.497,2554,0.574,2571,0.554,2583,0.554,2586,0.522,2595,0.537,2605,0.537,2686,0.554,2701,0.522,2734,0.497,2748,1.019,2753,4.178,2759,0.574,2765,1.019,2792,0.598,2825,0.574,2846,0.629,2861,1.5,2879,0.467,2882,0.629,2887,0.522,2891,1.089,2893,0.537,2917,0.669,2946,0.629,2957,0.522,2964,0.598,2968,0.922,2978,0.497,3018,0.509,3020,0.629,3033,1.847,3084,0.522,3106,0.574,3124,0.629,3138,0.669,3151,0.554,3194,0.598,3214,3.414,3291,0.629,3293,0.574,3295,0.486,3301,0.942,3318,0.669,3325,0.669,3356,0.598,3388,0.669,3389,2.457,3390,0.629,3395,0.669,3396,2.161,3401,1.5,3402,1.269,3420,0.537,3422,0.669,3427,0.598,3471,0.669,3492,1.5,3500,1.089,3532,0.629,3558,0.669,3560,1.7,3631,0.598,3650,0.554,3658,0.669,3713,0.537,3716,1.051,3718,0.629,3726,0.554,3755,0.497,3782,0.598,3803,0.574,3867,0.629,3894,0.574,3909,0.574,3957,0.629,4098,0.554,4115,0.537,4116,0.537,4137,0.629,4138,0.598,4143,0.598,4149,0.629,4165,0.629,4225,0.629,4291,0.537,4295,1.089,4377,1.269,4381,1.7,4389,3.466,4395,0.669,4410,0.669,4457,0.669,4523,0.574,4529,1.051,4593,1.019,4604,0.629,4619,0.669,4748,0.629,4765,0.629,4782,0.669,4786,0.669,4792,0.669,4882,0.629,4893,0.598,4908,0.669,4939,0.669,4944,2.457,5057,0.629,5059,0.669,5100,0.669,5111,0.554,5130,0.598,5149,0.629,5159,0.629,5168,0.629,5182,0.598,5201,0.629,5220,2.457,5237,0.669,5240,0.669,5282,0.598,5298,0.669,5338,0.598,5367,1.089,5400,0.629,5431,1.269,5661,0.669,5698,0.629,5774,0.598,5793,0.598,5807,0.574,5835,0.669,5903,0.669,5930,0.629,6002,1.269,6004,0.669,6015,0.629,6048,2.161,6049,1.81,6050,3.154,6051,3.874,6052,1.269,6053,0.669,6054,0.669,6055,0.73,6056,0.669,6057,0.73,6058,0.73,6059,0.629,6060,0.73,6061,0.73,6062,0.73,6063,1.385,6064,0.73,6065,0.73,6066,0.73,6067,0.73,6068,0.73,6069,0.73,6070,0.73,6071,0.73,6072,0.73,6073,0.73,6074,0.73,6075,0.73,6076,0.73,6077,0.73,6078,0.73,6079,0.629,6080,0.629,6081,0.73,6082,0.73,6083,0.73,6084,0.73,6085,0.73,6086,0.73,6087,0.73,6088,0.73,6089,0.73,6090,0.554,6091,0.73,6092,0.73,6093,0.669,6094,0.73,6095,0.73,6096,0.73,6097,0.73,6098,0.73,6099,0.669,6100,0.73,6101,0.73,6102,1.269,6103,1.269,6104,1.269,6105,0.73,6106,0.73,6107,0.73,6108,0.629,6109,0.73,6110,0.73,6111,0.669,6112,0.669,6113,0.73,6114,0.73,6115,0.629,6116,0.73,6117,0.73,6118,0.669,6119,0.73,6120,0.73,6121,0.73,6122,0.73,6123,0.73,6124,3.443,6125,2.998,6126,0.73,6127,0.73,6128,0.669,6129,0.73,6130,0.574,6131,0.73,6132,0.73,6133,0.73,6134,0.73,6135,0.73,6136,1.385,6137,0.73,6138,0.73,6139,0.598,6140,0.73,6141,0.73,6142,0.73,6143,0.73,6144,0.73,6145,0.669,6146,0.629,6147,0.73,6148,0.73,6149,0.73,6150,0.73,6151,0.73,6152,0.73,6153,0.73,6154,0.629,6155,0.629,6156,0.669,6157,0.73,6158,1.385,6159,0.73,6160,0.73,6161,0.73,6162,0.73,6163,0.73,6164,0.73,6165,0.73,6166,0.669,6167,0.669,6168,0.73,6169,0.73,6170,0.73,6171,0.598,6172,1.385,6173,0.73,6174,0.73,6175,1.385,6176,0.669,6177,0.669,6178,0.73,6179,0.73,6180,0.669,6181,0.73,6182,0.73,6183,0.73,6184,0.73,6185,0.73,6186,0.73,6187,0.73,6188,0.73,6189,0.73,6190,0.73,6191,0.73,6192,0.73,6193,0.73,6194,0.73,6195,0.669,6196,0.73,6197,1.975,6198,1.975,6199,0.73,6200,1.385,6201,1.385,6202,0.73,6203,0.73,6204,0.73,6205,0.73,6206,0.73,6207,0.73,6208,0.73,6209,0.73,6210,0.73,6211,0.73,6212,0.73,6213,0.73,6214,0.73,6215,0.73,6216,0.73,6217,0.73,6218,0.73,6219,0.73,6220,0.73,6221,0.73,6222,0.73,6223,0.73,6224,0.73,6225,0.73,6226,0.73,6227,0.73,6228,0.73,6229,0.73,6230,0.73,6231,0.73,6232,0.73,6233,0.629,6234,0.73,6235,0.73,6236,0.73,6237,0.73,6238,0.73,6239,0.73,6240,0.669,6241,0.73,6242,0.669,6243,0.73,6244,0.73,6245,0.73,6246,0.73,6247,0.73,6248,0.73,6249,0.73,6250,0.73,6251,0.73,6252,0.73,6253,0.73,6254,0.73,6255,0.73,6256,0.73,6257,0.73,6258,0.669,6259,0.629,6260,0.669,6261,0.73,6262,0.73,6263,0.73,6264,0.73,6265,0.73,6266,0.73,6267,0.73,6268,0.73,6269,0.73,6270,0.73,6271,0.73,6272,0.73,6273,0.73,6274,0.73,6275,0.73,6276,0.73,6277,0.73,6278,0.73,6279,0.73,6280,0.73,6281,0.73,6282,0.73,6283,0.73,6284,0.73,6285,0.73,6286,0.669,6287,0.73,6288,0.73,6289,0.73,6290,0.669,6291,0.669,6292,0.73,6293,0.669,6294,0.73]],["component/30",[162,0.398]],["keyword/30",[]],["title/31-1",[1524,52.869,3756,59.948]],["name/31-1",[]],["text/31-1",[]],["component/31-1",[]],["keyword/31-1",[]],["title/31-2",[115,37.598,1432,44.085,3943,49.111]],["name/31-2",[]],["text/31-2",[]],["component/31-2",[]],["keyword/31-2",[]],["title/31-3",[860,48.826]],["name/31-3",[]],["text/31-3",[]],["component/31-3",[]],["keyword/31-3",[]],["title/31-4",[28,25.32,1999,51.584,2000,49.111]],["name/31-4",[]],["text/31-4",[]],["component/31-4",[]],["keyword/31-4",[]],["title/31-5",[28,25.32,1350,36.327,6295,59.921]],["name/31-5",[]],["text/31-5",[]],["component/31-5",[]],["keyword/31-5",[]],["title/31",[56,26.565,1167,34.191,1169,37.598]],["name/31",[4324,0.656]],["text/31",[8,2.289,11,1.774,12,3.054,14,2.875,17,3.077,20,2.767,22,2.477,24,2.158,25,3.184,28,3.125,33,1.267,34,3.101,35,3.69,39,1.118,45,1.892,46,2.407,50,2.264,52,2.385,53,1.856,54,1.251,56,2.264,65,2.302,67,3.854,71,1.251,78,4.028,94,1.432,102,1.459,104,1.95,105,1.179,106,1.432,113,1.235,115,2.447,124,1.22,131,1.856,143,1.95,147,1.179,151,2.014,153,2.654,154,1.267,170,2.326,192,1.892,194,4.114,222,3.096,235,2.111,238,2.931,241,1.992,252,1.302,257,2.637,270,1.361,283,1.95,284,2.799,289,1.166,292,1.267,298,1.93,350,1.141,357,1.284,385,1.407,386,1.129,391,1.166,395,2.493,409,2.364,419,2.637,427,1.361,438,1.519,440,6.239,469,1.432,472,1.267,488,1.87,538,1.341,607,4.573,616,1.129,638,1.59,670,1.59,682,1.383,697,2.595,711,1.267,713,1.487,797,1.192,815,1.432,860,2.291,889,1.235,893,1.432,907,1.487,914,2.09,919,1.553,935,2.364,941,1.911,978,4.446,979,1.302,1104,1.383,1122,1.459,1167,3.872,1182,4.114,1183,1.679,1207,2.326,1219,1.964,1228,1.59,1240,1.59,1261,1.679,1268,1.795,1346,2.111,1350,3.096,1356,1.383,1360,1.519,1432,1.679,1556,1.361,1570,3.068,1720,2.869,1774,1.795,1868,3.196,1872,1.632,2000,6.06,2006,1.432,2070,1.432,2116,1.632,2126,3.357,2389,3.757,2541,1.732,2673,1.964,2689,4.396,2715,2.09,2734,1.553,2748,1.679,2778,3.573,2827,1.87,2884,2.09,3061,1.732,3087,3.196,3093,1.87,3094,3.196,3099,2.869,3137,3.877,3175,2.09,3187,1.87,3194,3.196,3214,2.718,3273,1.632,3278,1.964,3295,1.519,3499,1.487,3527,1.795,3670,2.09,3716,3.877,3726,1.732,3878,7.237,3895,4.678,3943,1.87,4038,1.795,4265,5.534,4537,1.732,4684,1.795,4763,2.09,5469,1.87,6080,3.357,6115,1.964,6130,1.795,6296,2.282,6297,2.09,6298,4.678,6299,2.09,6300,3.9,6301,2.282,6302,2.09,6303,3.573,6304,2.282,6305,2.282,6306,2.282,6307,2.09,6308,2.282,6309,2.282,6310,2.282,6311,2.282,6312,2.282,6313,2.282,6314,2.282,6315,2.282,6316,2.282,6317,2.282,6318,2.282,6319,2.282,6320,2.282,6321,2.282,6322,2.282,6323,2.282,6324,2.282,6325,2.282,6326,2.282,6327,2.282,6328,2.282,6329,2.282,6330,5.106,6331,2.282,6332,2.282,6333,2.282,6334,2.282,6335,2.282,6336,2.282,6337,2.282,6338,2.282,6339,2.282,6340,2.282,6341,2.282,6342,2.282,6343,3.9,6344,3.9,6345,2.282,6346,2.282,6347,2.282,6348,2.282,6349,2.282,6350,2.282,6351,2.282,6352,2.282,6353,2.282,6354,2.282,6355,2.282,6356,2.282,6357,2.282,6358,2.282,6359,2.282,6360,2.09,6361,1.964,6362,2.282,6363,2.282,6364,2.282]],["component/31",[162,0.398]],["keyword/31",[]],["title/32-1",[283,23.427,414,23.187,645,36.853,1196,31.879,1197,32.648]],["name/32-1",[]],["text/32-1",[]],["component/32-1",[]],["keyword/32-1",[]],["title/32-2",[910,33.783,2007,57.074]],["name/32-2",[]],["text/32-2",[]],["component/32-2",[]],["keyword/32-2",[]],["title/32-3",[910,33.783,2252,41.544]],["name/32-3",[]],["text/32-3",[]],["component/32-3",[]],["keyword/32-3",[]],["title/32-4",[2916,63.101]],["name/32-4",[]],["text/32-4",[]],["component/32-4",[]],["keyword/32-4",[]],["title/32-5",[535,37.697,2009,52.869]],["name/32-5",[]],["text/32-5",[]],["component/32-5",[]],["keyword/32-5",[]],["title/32-6",[727,36.376,5922,52.869]],["name/32-6",[]],["text/32-6",[]],["component/32-6",[]],["keyword/32-6",[]],["title/32-7",[535,37.697,6365,63.796]],["name/32-7",[]],["text/32-7",[]],["component/32-7",[]],["keyword/32-7",[]],["title/32-8",[727,36.376,5922,52.869]],["name/32-8",[]],["text/32-8",[]],["component/32-8",[]],["keyword/32-8",[]],["title/32-9",[727,36.376,6366,69.637]],["name/32-9",[]],["text/32-9",[]],["component/32-9",[]],["keyword/32-9",[]],["title/32",[533,35.573,949,40.909]],["name/32",[4324,0.656]],["text/32",[1,0.997,2,1.047,3,0.639,6,1.528,7,0.903,8,2.253,9,1.32,11,3.745,12,3.402,14,2.099,17,3.427,19,3.033,20,3.287,22,1.281,24,3.578,25,3.864,28,0.619,29,2.993,31,0.86,32,0.765,33,0.813,34,2.783,35,3.284,39,2.496,45,1.281,46,2.678,50,1.956,52,3.1,53,2.099,56,3.651,57,2.553,58,1.281,59,1.32,60,0.704,61,0.684,62,0.848,63,0.836,65,0.66,67,1.956,70,1.152,77,1.429,78,3.143,81,2.331,82,0.997,85,1.395,86,1.261,89,2.029,92,0.955,93,0.955,104,0.732,105,0.756,123,0.704,124,0.783,125,1.412,126,1.047,128,1.349,130,1.379,131,2.704,140,2.836,143,0.732,145,2.388,147,2.278,150,0.748,151,3.198,163,0.919,171,0.903,188,2.399,192,0.71,195,2.262,210,1.077,218,1.112,220,1.077,222,0.888,232,0.836,237,0.975,238,2.14,241,0.748,267,0.975,273,2.674,277,0.903,278,0.756,283,0.732,284,0.803,293,0.955,315,0.955,338,1.628,342,0.919,343,2.512,346,0.813,350,1.32,352,0.888,363,0.936,376,1.077,385,0.903,386,1.784,391,0.748,393,2.35,398,0.888,409,3.089,411,1.364,414,0.725,419,1.364,430,1.152,440,4.235,447,3.394,475,1.047,494,1.528,514,0.975,533,4.711,535,3.996,540,0.975,543,1.047,599,1.047,608,0.793,613,1.628,614,0.888,615,2.087,616,0.725,645,1.152,648,1.575,666,0.888,679,0.888,681,1.601,682,1.601,683,2.875,692,1.2,710,1.757,711,2.002,712,3.735,728,1.152,772,2.304,773,1.152,785,0.903,797,1.379,822,0.86,823,1.349,834,1.077,849,0.919,893,2.262,894,0.975,902,1.601,903,0.836,906,0.936,907,2.35,908,1.2,910,3.995,917,2.512,941,4.254,942,3.55,949,2.993,952,1.152,978,2.483,979,2.517,1008,1.628,1064,2.512,1167,4.012,1169,0.919,1177,2.652,1184,0.936,1185,0.888,1196,3.467,1197,3.55,1199,1.112,1203,0.903,1261,2.652,1308,1.2,1337,0.997,1346,1.429,1350,1.601,1364,0.903,1386,2.72,1391,3.349,1394,3.245,1398,0.765,1408,0.813,1412,1.077,1441,0.955,1444,2.151,1464,0.955,1479,0.975,1497,1.112,1502,2.304,1546,2.304,1556,2.151,1619,2.737,1698,0.975,1747,1.152,1799,1.077,1800,1.261,1823,0.997,1826,2.836,1852,2.005,1859,1.2,1883,1.342,1887,1.112,1890,1.152,1895,1.342,1907,4.657,1932,1.342,1937,0.997,1942,1.2,1955,1.112,1958,2.652,1961,1.152,2006,0.919,2007,5.074,2009,5.843,2010,5.672,2011,2.419,2014,1.342,2015,1.342,2049,0.997,2063,1.112,2098,1.021,2168,1.021,2221,0.997,2227,1.261,2246,1.342,2252,1.575,2274,1.688,2336,0.975,2341,1.047,2384,1.261,2392,3.002,2450,2.273,2604,2.005,2642,1.342,2651,3.47,2676,1.077,2701,1.047,2754,1.152,2762,1.152,2784,1.261,2803,1.342,2804,1.342,2856,1.2,2890,2.273,2916,3.868,2954,1.112,2960,1.077,2969,1.261,3199,0.997,3475,2.578,3650,3.349,3661,1.342,3704,1.342,3743,1.342,3825,1.261,4288,1.2,4391,1.261,4477,1.342,4579,1.261,4713,1.2,4839,1.261,4919,1.261,5175,2.273,5182,1.2,5244,2.419,5258,1.2,5266,1.261,5500,1.2,6090,1.112,6297,1.342,6365,5.672,6367,1.464,6368,1.464,6369,1.464,6370,1.464,6371,1.464,6372,2.419,6373,1.342,6374,1.342,6375,1.342,6376,1.464,6377,1.464,6378,5.205,6379,2.419,6380,4.041,6381,4.411,6382,2.64,6383,1.342,6384,1.464,6385,1.464,6386,1.464,6387,1.464,6388,1.464,6389,1.342,6390,1.464,6391,1.112,6392,1.464,6393,1.464,6394,1.464,6395,1.152,6396,1.464,6397,1.464,6398,3.104,6399,2.419,6400,3.303,6401,2.419,6402,1.342,6403,2.164,6404,1.464,6405,1.342,6406,1.464,6407,2.64,6408,1.464,6409,1.464,6410,1.464,6411,1.464,6412,1.464,6413,1.464,6414,3.303,6415,1.464,6416,2.64,6417,1.464,6418,1.464,6419,1.464,6420,1.464,6421,1.464,6422,1.464,6423,1.464,6424,1.464,6425,1.464,6426,1.342,6427,1.464,6428,2.64,6429,1.464]],["component/32",[162,0.398]],["keyword/32",[]],["title/33",[]],["name/33",[6430,0.862]],["text/33",[]],["component/33",[162,0.398]],["keyword/33",[]],["title/34-1",[52,27.99,2009,45.493,6431,51.584]],["name/34-1",[]],["text/34-1",[]],["component/34-1",[]],["keyword/34-1",[]],["title/34-2",[6398,71.55]],["name/34-2",[]],["text/34-2",[]],["component/34-2",[]],["keyword/34-2",[]],["title/34-3",[6432,76.142]],["name/34-3",[]],["text/34-3",[]],["component/34-3",[]],["keyword/34-3",[]],["title/34-4",[1411,52.151]],["name/34-4",[]],["text/34-4",[]],["component/34-4",[]],["keyword/34-4",[]],["title/34",[941,29.359,1195,47.137,6433,54.895]],["name/34",[6431,0.81]],["text/34",[6,1.127,8,2.388,9,0.974,11,3.685,12,3.485,14,3.464,15,1.269,16,1.111,17,3.511,19,2.657,20,3.198,24,3.986,25,4.207,28,1.912,30,2.581,33,1.081,34,2.274,35,4.407,39,1.666,45,0.944,46,2.133,47,1.325,50,3.592,52,3.401,53,2.153,54,2.481,56,3.423,57,3.563,58,4.362,60,0.935,62,1.127,64,1.392,65,0.878,67,3.87,68,3.343,78,3.903,79,1.913,81,1.029,85,1.797,89,1.096,95,1.029,102,1.244,108,1.096,113,1.054,122,1.2,123,1.633,128,0.994,130,1.017,131,0.926,143,0.974,145,1.054,151,2.801,155,1.222,188,2.263,192,2.195,206,1.478,226,1.144,228,1.081,240,1.144,241,1.737,246,1.2,253,1.161,278,1.006,283,1.7,284,1.067,289,0.994,294,1.325,298,1.683,315,1.269,320,1.296,350,2.263,351,1.127,352,1.18,385,1.2,386,1.683,391,0.994,394,1.296,398,1.18,403,1.596,419,1.756,427,1.161,440,4.218,447,4.232,462,1.432,472,1.888,474,2.133,483,1.017,517,1.596,533,3.456,535,1.84,560,2.431,573,1.676,587,1.244,607,1.127,611,1.18,615,1.127,616,1.683,640,1.94,681,2.061,698,1.432,703,1.392,707,1.269,714,1.392,720,1.357,745,1.18,797,2.364,855,1.531,889,1.84,893,2.839,902,1.18,906,1.244,910,2.631,913,1.222,928,1.144,941,3.315,942,2.369,949,1.144,959,1.432,978,1.913,979,1.94,1008,1.2,1167,1.94,1169,1.222,1182,1.18,1195,4.266,1196,2.313,1197,2.369,1203,1.2,1207,1.161,1209,1.478,1305,1.357,1322,1.269,1335,1.531,1342,1.478,1346,1.84,1349,1.357,1356,3.288,1360,1.296,1377,1.296,1380,1.432,1386,2.096,1458,1.968,1464,1.269,1479,1.296,1502,1.244,1530,1.676,1546,2.173,1549,1.161,1556,1.161,1588,1.784,1591,1.596,1628,1.357,1652,2.501,1698,1.296,1713,2.173,1858,1.596,1859,1.596,1863,1.357,1870,1.596,1887,1.478,1905,1.676,1906,1.676,1907,1.596,2007,3.709,2009,4.117,2022,1.531,2040,2.893,2150,1.596,2185,1.784,2193,1.531,2252,2.028,2292,1.784,2392,1.325,2484,1.531,2607,1.392,2639,1.676,2648,1.531,2651,1.531,2748,2.501,2753,2.028,2822,1.432,2858,2.927,2879,1.244,2903,2.786,2954,1.478,2960,1.432,3018,1.357,3084,1.392,3214,1.357,3279,2.786,3281,1.596,3295,2.263,3401,3.436,3642,2.786,3728,1.531,3880,1.784,3943,1.596,4116,1.432,4142,1.478,4151,2.674,4346,1.784,4439,1.596,4529,1.478,4557,1.784,5383,1.531,5494,1.596,5790,1.676,5893,1.784,6373,1.784,6374,1.784,6378,1.784,6379,1.784,6380,1.784,6398,5.824,6399,1.784,6400,1.784,6401,1.784,6414,1.784,6426,1.784,6431,5.824,6432,3.114,6433,1.784,6434,1.947,6435,1.947,6436,1.947,6437,1.947,6438,1.947,6439,1.531,6440,1.947,6441,1.947,6442,1.676,6443,1.784,6444,1.947,6445,1.947,6446,1.947,6447,1.947,6448,1.947,6449,1.947,6450,4.525,6451,1.531,6452,1.947,6453,1.947,6454,3.4,6455,1.947,6456,1.947,6457,1.947,6458,1.947,6459,1.947,6460,1.947,6461,3.4,6462,1.947,6463,1.947,6464,3.4,6465,1.947,6466,4.525,6467,3.4,6468,4.525,6469,1.947,6470,4.525,6471,1.947,6472,1.947,6473,1.947,6474,1.784,6475,1.947,6476,1.947,6477,1.947,6478,1.947,6479,1.947,6480,1.947,6481,1.947,6482,1.947,6483,3.4,6484,1.947,6485,1.947,6486,1.947]],["component/34",[162,0.398]],["keyword/34",[]],["title/35-1",[1116,39.923,1646,33.612,6487,48.173,6488,48.173]],["name/35-1",[]],["text/35-1",[]],["component/35-1",[]],["keyword/35-1",[]],["title/35-2",[65,31.398,152,54.78]],["name/35-2",[]],["text/35-2",[]],["component/35-2",[]],["keyword/35-2",[]],["title/35-3",[104,34.823,152,54.78]],["name/35-3",[]],["text/35-3",[]],["component/35-3",[]],["keyword/35-3",[]],["title/35-4",[124,37.239,152,54.78]],["name/35-4",[]],["text/35-4",[]],["component/35-4",[]],["keyword/35-4",[]],["title/35-5",[1711,54.78,5367,54.78]],["name/35-5",[]],["text/35-5",[]],["component/35-5",[]],["keyword/35-5",[]],["title/35-6",[6489,76.142]],["name/35-6",[]],["text/35-6",[]],["component/35-6",[]],["keyword/35-6",[]],["title/35-7",[6490,76.142]],["name/35-7",[]],["text/35-7",[]],["component/35-7",[]],["keyword/35-7",[]],["title/35-8",[6491,76.142]],["name/35-8",[]],["text/35-8",[]],["component/35-8",[]],["keyword/35-8",[]],["title/35-9",[6492,76.142]],["name/35-9",[]],["text/35-9",[]],["component/35-9",[]],["keyword/35-9",[]],["title/35-10",[2371,71.55]],["name/35-10",[]],["text/35-10",[]],["component/35-10",[]],["keyword/35-10",[]],["title/35-11",[6493,76.142]],["name/35-11",[]],["text/35-11",[]],["component/35-11",[]],["keyword/35-11",[]],["title/35-12",[6494,76.142]],["name/35-12",[]],["text/35-12",[]],["component/35-12",[]],["keyword/35-12",[]],["title/35-13",[5756,63.101]],["name/35-13",[]],["text/35-13",[]],["component/35-13",[]],["keyword/35-13",[]],["title/35-14",[38,32.419,5029,39.923,6495,45.268,6496,48.173]],["name/35-14",[]],["text/35-14",[]],["component/35-14",[]],["keyword/35-14",[]],["title/35-15",[1471,35.782,5029,39.923,6497,48.173,6498,48.173]],["name/35-15",[]],["text/35-15",[]],["component/35-15",[]],["keyword/35-15",[]],["title/35-16",[38,28.882,1646,29.945,3526,35.568,5029,35.568,6499,42.918]],["name/35-16",[]],["text/35-16",[]],["component/35-16",[]],["keyword/35-16",[]],["title/35-17",[386,41.135]],["name/35-17",[]],["text/35-17",[]],["component/35-17",[]],["keyword/35-17",[]],["title/35-18",[5351,68.12]],["name/35-18",[]],["text/35-18",[]],["component/35-18",[]],["keyword/35-18",[]],["title/35-19",[5353,68.12]],["name/35-19",[]],["text/35-19",[]],["component/35-19",[]],["keyword/35-19",[]],["title/35-20",[6500,76.142]],["name/35-20",[]],["text/35-20",[]],["component/35-20",[]],["keyword/35-20",[]],["title/35-21",[6501,76.142]],["name/35-21",[]],["text/35-21",[]],["component/35-21",[]],["keyword/35-21",[]],["title/35-22",[6502,76.142]],["name/35-22",[]],["text/35-22",[]],["component/35-22",[]],["keyword/35-22",[]],["title/35-23",[440,29.964,5367,47.137,6503,54.895]],["name/35-23",[]],["text/35-23",[]],["component/35-23",[]],["keyword/35-23",[]],["title/35-24",[6504,76.142]],["name/35-24",[]],["text/35-24",[]],["component/35-24",[]],["keyword/35-24",[]],["title/35-25",[6505,83.114]],["name/35-25",[]],["text/35-25",[]],["component/35-25",[]],["keyword/35-25",[]],["title/35-26",[76,37.239,419,35.967]],["name/35-26",[]],["text/35-26",[]],["component/35-26",[]],["keyword/35-26",[]],["title/35-27",[8,12.129,65,15.915,1202,27.766,4266,28.929,4818,32.336,5756,26.798,6495,30.386]],["name/35-27",[]],["text/35-27",[]],["component/35-27",[]],["keyword/35-27",[]],["title/35-28",[732,36.942,5347,47.137,5792,47.137]],["name/35-28",[]],["text/35-28",[]],["component/35-28",[]],["keyword/35-28",[]],["title/35-29",[6506,76.142]],["name/35-29",[]],["text/35-29",[]],["component/35-29",[]],["keyword/35-29",[]],["title/35-30",[6507,57.922]],["name/35-30",[]],["text/35-30",[]],["component/35-30",[]],["keyword/35-30",[]],["title/35-31",[6507,48.53,6508,63.796]],["name/35-31",[]],["text/35-31",[]],["component/35-31",[]],["keyword/35-31",[]],["title/35-32",[5465,59.948,6507,48.53]],["name/35-32",[]],["text/35-32",[]],["component/35-32",[]],["keyword/35-32",[]],["title/35-33",[6507,48.53,6509,69.637]],["name/35-33",[]],["text/35-33",[]],["component/35-33",[]],["keyword/35-33",[]],["title/35-34",[720,41.759,4593,44.085,6507,41.759]],["name/35-34",[]],["text/35-34",[]],["component/35-34",[]],["keyword/35-34",[]],["title/35-35",[720,41.759,3407,49.111,4593,44.085]],["name/35-35",[]],["text/35-35",[]],["component/35-35",[]],["keyword/35-35",[]],["title/35-36",[6507,48.53,6510,63.796]],["name/35-36",[]],["text/35-36",[]],["component/35-36",[]],["keyword/35-36",[]],["title/35-37",[165,45.493,3577,49.111,6511,54.895]],["name/35-37",[]],["text/35-37",[]],["component/35-37",[]],["keyword/35-37",[]],["title/35-38",[1187,59.44]],["name/35-38",[]],["text/35-38",[]],["component/35-38",[]],["keyword/35-38",[]],["title/35-39",[1188,51.24]],["name/35-39",[]],["text/35-39",[]],["component/35-39",[]],["keyword/35-39",[]],["title/35-40",[1188,42.932,6512,69.637]],["name/35-40",[]],["text/35-40",[]],["component/35-40",[]],["keyword/35-40",[]],["title/35-41",[1188,42.932,6513,69.637]],["name/35-41",[]],["text/35-41",[]],["component/35-41",[]],["keyword/35-41",[]],["title/35-42",[1188,42.932,6514,63.796]],["name/35-42",[]],["text/35-42",[]],["component/35-42",[]],["keyword/35-42",[]],["title/35-43",[1188,42.932,6515,63.796]],["name/35-43",[]],["text/35-43",[]],["component/35-43",[]],["keyword/35-43",[]],["title/35-44",[3257,41.365,5029,39.923,5066,43.098,6108,45.268]],["name/35-44",[]],["text/35-44",[]],["component/35-44",[]],["keyword/35-44",[]],["title/35-45",[2543,47.386,4884,59.948]],["name/35-45",[]],["text/35-45",[]],["component/35-45",[]],["keyword/35-45",[]],["title/35-46",[8,10.17,154,26.015,447,25.681,831,47.239]],["name/35-46",[]],["text/35-46",[]],["component/35-46",[]],["keyword/35-46",[]],["title/35-47",[8,10.17,124,25.053,831,47.239,1522,40.33]],["name/35-47",[]],["text/35-47",[]],["component/35-47",[]],["keyword/35-47",[]],["title/35-48",[8,10.17,104,23.427,831,47.239,1646,29.945]],["name/35-48",[]],["text/35-48",[]],["component/35-48",[]],["keyword/35-48",[]],["title/35-49",[8,8.348,25,14.705,65,17.34,548,21.944,831,40.665,2879,24.582]],["name/35-49",[]],["text/35-49",[]],["component/35-49",[]],["keyword/35-49",[]],["title/35-50",[298,29.657,941,29.359,1182,36.327]],["name/35-50",[]],["text/35-50",[]],["component/35-50",[]],["keyword/35-50",[]],["title/35-51",[59,41.562]],["name/35-51",[]],["text/35-51",[]],["component/35-51",[]],["keyword/35-51",[]],["title/35-52",[232,47.425]],["name/35-52",[]],["text/35-52",[]],["component/35-52",[]],["keyword/35-52",[]],["title/35-53",[912,48.53,1535,44.512]],["name/35-53",[]],["text/35-53",[]],["component/35-53",[]],["keyword/35-53",[]],["title/35",[414,29.657,1189,41.759,1646,38.301]],["name/35",[4324,0.656]],["text/35",[1,1.939,3,0.154,8,2.549,9,0.343,11,3.615,12,3.909,14,3.725,15,0.23,16,0.201,17,3.87,18,0.889,19,1.893,20,2.837,22,0.774,24,3.901,25,4.075,26,0.259,28,2.17,31,0.403,32,0.683,33,0.726,34,3.497,35,4.114,36,0.246,38,1.152,39,1.802,45,1.689,46,0.474,48,0.768,50,2.336,51,0.221,52,2.462,53,1.356,54,0.874,56,1.544,57,0.204,58,2.353,59,2.701,60,0.33,61,2.048,63,0.201,65,1.384,66,0.268,67,3.291,68,0.217,71,0.377,73,0.235,76,1.966,77,0.191,78,3.382,79,0.387,80,0.565,81,0.691,83,0.431,84,0.201,85,0.691,87,0.7,88,0.416,89,0.198,92,0.23,93,0.23,95,0.843,96,0.198,100,0.41,101,0.24,102,0.225,104,0.653,105,0.519,106,0.431,108,1.052,109,0.221,115,0.431,122,0.217,124,0.999,125,0.367,128,0.955,129,1.211,131,0.759,136,0.21,139,0.599,143,0.502,145,0.191,147,0.675,150,0.668,151,1.354,152,2.74,153,5.449,154,1.183,157,0.191,168,0.707,185,0.23,187,0.24,188,0.235,189,0.289,192,2.741,194,0.214,197,1.071,213,0.268,214,0.259,216,0.59,222,1.444,223,0.669,224,0.268,228,0.726,232,1.751,233,0.403,235,0.707,237,0.235,238,0.333,240,0.59,241,0.668,243,0.41,244,0.431,246,0.217,249,0.221,253,0.41,257,0.519,259,0.669,261,0.24,263,0.763,264,1.674,267,0.235,270,0.599,277,0.619,278,0.675,282,0.746,283,2.109,284,1.024,285,0.599,287,0.225,289,0.668,293,0.23,294,0.24,295,0.23,298,1.519,300,0.252,306,0.479,308,0.992,315,0.448,316,1.211,320,0.457,322,0.92,324,0.235,325,1.45,329,0.303,332,0.82,334,0.259,338,0.806,339,2.174,340,0.268,346,0.558,350,1.066,351,0.398,353,0.521,356,1.066,357,1.052,358,0.225,363,0.225,373,0.24,382,0.423,385,0.217,388,0.967,389,0.792,391,0.351,394,0.457,395,0.642,400,0.323,410,0.24,411,0.182,412,0.41,414,0.497,419,1.101,434,0.277,437,0.431,438,0.235,440,3.561,444,0.289,447,1.437,452,0.591,453,2.038,462,0.259,469,1,471,0.505,476,0.217,477,0.467,480,0.303,483,0.525,490,0.252,494,0.204,503,0.323,504,0.246,505,0.599,512,0.521,513,0.521,518,0.815,521,0.277,533,0.513,534,0.235,535,0.372,538,0.403,539,0.225,543,0.491,545,0.387,548,3.293,551,0.79,558,0.259,559,0.289,567,0.323,578,0.337,582,0.467,583,0.303,584,0.467,598,0.259,599,0.252,607,0.204,608,0.191,609,0.217,613,0.423,615,0.581,616,0.174,622,0.246,623,0.289,637,0.289,638,0.246,640,0.573,646,0.207,648,0.78,650,1.195,655,0.491,662,0.885,664,0.259,666,0.609,679,0.214,681,0.214,682,0.792,683,0.23,684,0.221,688,0.23,692,0.289,698,0.259,707,0.23,710,0.235,713,0.23,719,0.563,720,0.7,727,0.184,732,2.493,745,0.792,746,0.24,754,0.259,761,2.516,772,0.225,774,0.303,778,0.669,785,1.616,789,0.246,797,0.683,805,0.323,820,0.289,825,0.323,831,5.052,832,0.303,837,0.289,841,0.865,848,0.54,849,0.221,868,0.303,878,0.268,886,0.225,889,0.863,894,0.235,902,0.214,903,0.746,906,0.439,909,0.609,910,0.487,926,0.23,927,0.423,928,0.403,935,0.967,941,1.607,946,0.259,950,0.457,952,0.54,954,0.303,959,0.259,967,0.252,978,0.565,979,0.201,990,0.521,1019,0.259,1020,0.889,1064,0.246,1073,0.252,1078,0.277,1116,0.268,1118,0.268,1122,0.225,1141,0.225,1146,0.252,1147,0.457,1150,0.303,1158,1.373,1170,0.268,1180,2.089,1182,0.967,1186,0.563,1187,4.367,1188,1.616,1189,2.818,1192,0.479,1194,0.599,1201,0.24,1203,0.423,1204,0.303,1207,0.21,1232,0.303,1240,0.479,1261,0.259,1290,0.303,1298,0.78,1303,0.82,1311,0.252,1322,0.852,1323,0.24,1325,0.259,1338,0.259,1345,0.268,1346,1.154,1350,0.967,1356,0.609,1364,0.423,1365,0.277,1377,0.669,1382,0.303,1385,0.303,1386,1.152,1387,0.277,1397,0.246,1408,0.558,1414,0.467,1418,0.718,1419,1.061,1444,0.41,1451,0.448,1453,0.259,1456,0.23,1458,2.128,1471,0.684,1474,0.246,1475,0.246,1493,0.289,1502,0.439,1511,1.485,1522,3.326,1525,0.289,1529,0.277,1536,0.7,1546,0.225,1547,0.252,1549,0.21,1555,0.563,1556,0.21,1559,1.125,1578,0.823,1581,0.448,1595,0.24,1597,0.563,1598,0.591,1608,0.323,1615,0.323,1616,0.24,1620,0.669,1621,0.303,1628,0.246,1643,0.289,1645,0.289,1646,3.971,1648,0.763,1649,0.259,1650,0.54,1698,0.235,1711,2.892,1713,0.642,1748,0.521,1776,0.268,1778,0.303,1790,0.235,1792,0.669,1799,0.259,1810,0.303,1813,0.246,1822,0.79,1832,0.935,1841,0.289,1850,0.563,1855,0.268,1864,0.277,1885,0.277,1899,0.591,1921,0.259,1922,0.87,1926,0.268,1934,0.491,1937,0.24,1953,0.491,1955,0.268,2031,0.54,2049,0.24,2055,0.423,2069,0.79,2070,1,2101,0.303,2107,0.259,2116,0.491,2120,0.323,2136,0.591,2145,0.24,2176,0.289,2203,0.289,2207,0.323,2217,0.268,2225,0.289,2226,0.259,2252,0.599,2274,0.225,2295,0.303,2307,0.303,2308,0.289,2330,0.289,2341,0.252,2342,0.259,2350,0.289,2351,0.289,2357,0.24,2371,1.125,2374,0.457,2375,0.289,2385,1.111,2389,0.259,2401,0.92,2411,0.303,2413,0.763,2414,0.563,2417,0.303,2424,1.373,2435,0.289,2439,0.214,2448,0.563,2484,0.277,2486,0.289,2541,0.521,2543,2.869,2554,0.54,2564,0.323,2566,0.277,2571,0.268,2583,0.268,2590,0.289,2593,0.289,2594,0.259,2596,0.289,2601,0.303,2605,0.259,2607,0.252,2615,0.289,2633,0.252,2650,0.259,2676,0.259,2701,0.252,2709,0.303,2720,0.252,2734,0.467,2748,0.505,2752,0.629,2753,0.41,2759,0.54,2766,0.277,2784,0.303,2789,0.491,2800,0.259,2802,0.323,2814,0.277,2825,0.54,2853,0.303,2879,1.195,2881,0.259,2887,0.252,2891,0.277,2894,0.277,2904,0.591,2926,0.439,2934,0.268,2957,0.252,2959,0.563,2960,0.505,2967,0.303,2978,0.24,3025,0.591,3033,0.961,3087,0.563,3104,0.259,3113,0.259,3137,0.268,3151,0.268,3173,0.268,3174,0.259,3213,0.277,3249,0.259,3273,1.337,3295,0.235,3341,0.323,3361,0.289,3384,0.268,3389,0.289,3404,0.277,3405,0.303,3407,0.289,3420,0.259,3499,0.23,3526,0.268,3529,0.303,3538,0.259,3623,0.277,3643,0.54,3649,0.591,3650,0.268,3655,0.521,3669,0.323,3709,0.491,3711,0.323,3713,0.259,3717,0.323,3719,0.323,3741,0.277,3755,0.24,3758,0.92,3766,0.289,3777,0.268,3787,0.323,3806,0.277,3827,0.303,3829,0.303,3837,1.522,3852,0.303,3909,0.277,3913,0.521,3932,0.563,4038,0.277,4098,0.268,4103,0.303,4104,0.268,4120,0.289,4122,0.277,4138,0.289,4200,0.303,4266,0.823,4274,0.289,4276,1.125,4277,0.591,4343,0.323,4379,0.277,4385,0.268,4389,0.563,4411,1.676,4412,0.563,4443,2.453,4497,0.277,4503,0.303,4504,0.289,4514,0.323,4523,0.54,4537,0.521,4560,0.763,4572,0.323,4579,0.303,4587,0.323,4593,0.505,4597,0.259,4602,0.563,4608,2.148,4631,0.303,4634,0.629,4699,0.629,4718,1.532,4720,0.303,4723,1.125,4745,0.865,4751,0.303,4753,0.303,4754,0.629,4791,0.629,4805,0.323,4806,0.629,4835,0.289,4839,0.303,4841,0.303,4846,0.591,4852,0.289,4862,0.323,4884,3.481,4893,0.289,4930,0.629,4932,0.303,4933,0.323,4938,0.865,4944,0.563,5006,0.323,5029,2.164,5034,0.289,5066,0.289,5072,0.303,5077,0.323,5082,0.323,5096,0.323,5111,0.268,5123,0.323,5129,0.591,5130,0.289,5138,0.303,5149,0.303,5178,0.323,5194,0.323,5215,0.323,5261,0.629,5264,0.323,5270,0.303,5279,0.323,5282,0.289,5284,0.323,5309,0.303,5342,0.303,5345,0.591,5347,2.061,5351,0.563,5353,1.071,5367,3.448,5380,0.303,5383,0.54,5405,0.303,5406,0.289,5409,0.865,5412,1.834,5435,0.323,5449,0.629,5456,1.47,5458,0.323,5460,0.323,5462,0.629,5464,0.629,5465,0.591,5470,0.323,5478,0.323,5494,0.563,5500,0.563,5521,0.323,5528,0.629,5532,0.303,5535,0.323,5559,0.323,5561,0.303,5570,2.181,5573,0.323,5587,0.323,5593,0.303,5605,0.54,5622,0.323,5646,0.303,5649,0.629,5650,0.323,5651,0.323,5652,0.323,5654,1.197,5717,1.952,5718,1.746,5721,0.323,5722,1.197,5724,3.317,5725,0.323,5727,0.323,5739,0.323,5740,1.125,5741,0.323,5742,0.323,5744,0.323,5745,0.303,5746,0.323,5750,0.289,5751,1.197,5756,1.618,5771,0.303,5773,0.289,5774,0.289,5780,0.323,5790,0.303,5792,1.028,5800,0.323,5819,0.277,5834,0.323,5877,0.289,5878,0.323,5914,0.323,5921,0.323,5957,0.277,5987,0.865,5992,0.629,5996,0.303,6001,0.289,6108,0.591,6112,0.323,6115,1.125,6139,0.563,6233,1.125,6286,0.323,6299,0.92,6302,0.323,6360,0.323,6487,1.461,6488,0.323,6489,1.712,6490,2.181,6491,0.92,6492,1.197,6493,0.92,6494,1.197,6495,3.326,6496,0.323,6497,1.461,6498,0.92,6499,1.461,6500,0.629,6501,1.197,6502,0.323,6503,0.323,6504,0.629,6506,0.629,6507,0.246,6508,0.323,6510,0.629,6511,0.629,6514,0.629,6515,0.323,6516,0.352,6517,0.352,6518,1.869,6519,0.352,6520,0.352,6521,0.352,6522,0.303,6523,0.303,6524,1.005,6525,0.352,6526,0.352,6527,1.005,6528,1.307,6529,1.005,6530,0.352,6531,0.352,6532,0.352,6533,0.323,6534,0.352,6535,0.352,6536,0.352,6537,1.005,6538,1.307,6539,0.687,6540,0.687,6541,0.352,6542,0.352,6543,0.323,6544,0.303,6545,0.687,6546,0.92,6547,1.005,6548,0.352,6549,1.005,6550,0.352,6551,0.352,6552,0.352,6553,0.352,6554,0.352,6555,0.352,6556,0.352,6557,0.352,6558,0.352,6559,0.352,6560,0.352,6561,1.005,6562,0.687,6563,0.352,6564,0.687,6565,0.687,6566,0.352,6567,0.352,6568,0.352,6569,0.352,6570,0.352,6571,0.352,6572,0.352,6573,0.352,6574,0.687,6575,0.352,6576,0.352,6577,0.352,6578,0.352,6579,0.352,6580,1.071,6581,0.687,6582,0.352,6583,0.687,6584,0.352,6585,0.352,6586,0.352,6587,0.591,6588,0.352,6589,0.352,6590,0.352,6591,0.352,6592,0.352,6593,0.352,6594,0.352,6595,0.687,6596,0.352,6597,0.352,6598,0.352,6599,0.352,6600,0.352,6601,0.352,6602,1.005,6603,0.352,6604,0.352,6605,0.352,6606,0.323,6607,0.687,6608,0.352,6609,0.352,6610,0.352,6611,0.323,6612,0.323,6613,0.352,6614,1.005,6615,0.352,6616,1.005,6617,0.352,6618,0.323,6619,0.352,6620,0.352,6621,0.352,6622,0.352,6623,0.352,6624,0.352,6625,0.352,6626,0.352,6627,0.303,6628,0.687,6629,0.323,6630,0.352,6631,0.352,6632,1.197,6633,0.352,6634,0.591,6635,0.54,6636,0.352,6637,0.289,6638,0.352,6639,0.352,6640,0.687,6641,0.352,6642,0.352,6643,0.352,6644,0.352,6645,0.352,6646,0.352,6647,0.352,6648,0.323,6649,0.352,6650,0.352,6651,0.352,6652,0.352,6653,0.352,6654,0.629,6655,0.352,6656,0.352,6657,0.352,6658,0.352,6659,0.352,6660,0.352,6661,0.303,6662,0.92,6663,0.352,6664,0.352,6665,0.352,6666,0.352,6667,0.352,6668,0.352,6669,0.687,6670,0.352,6671,0.352,6672,0.323,6673,0.352,6674,0.352,6675,0.352,6676,0.352,6677,0.352,6678,0.352,6679,0.352,6680,0.303,6681,0.352,6682,0.323,6683,0.323,6684,0.352,6685,0.303,6686,0.352,6687,0.352,6688,0.352,6689,0.352,6690,0.352,6691,0.352,6692,0.352,6693,0.352,6694,0.352,6695,0.352,6696,0.687,6697,0.352,6698,0.352,6699,0.352,6700,0.687,6701,0.352,6702,0.352,6703,0.352,6704,0.687,6705,0.352,6706,0.352,6707,0.352,6708,0.352,6709,0.352,6710,0.352,6711,0.352,6712,0.352,6713,0.352,6714,0.352,6715,0.352,6716,0.352,6717,0.323,6718,0.352,6719,4.217,6720,0.352,6721,1.307,6722,0.352,6723,0.352,6724,0.352,6725,0.352,6726,5.135,6727,1.307,6728,0.687,6729,2.131,6730,0.352,6731,0.687,6732,0.687,6733,0.352,6734,1.595,6735,0.352,6736,0.352,6737,0.352,6738,0.352,6739,0.352,6740,0.352,6741,0.352,6742,0.352,6743,0.352,6744,0.352,6745,0.687,6746,0.352,6747,0.352,6748,0.352,6749,0.352,6750,0.352,6751,0.352,6752,0.352,6753,0.352,6754,0.352,6755,0.352,6756,0.352,6757,0.352,6758,0.352,6759,0.352,6760,0.687,6761,0.352,6762,0.352,6763,0.352,6764,0.352,6765,1.005,6766,0.352,6767,0.352,6768,0.687,6769,0.352,6770,0.352,6771,0.352,6772,0.352,6773,0.687,6774,0.352,6775,0.352,6776,1.307,6777,0.352,6778,0.352,6779,0.687,6780,1.005,6781,0.687,6782,0.352,6783,1.595,6784,1.595,6785,0.352,6786,0.687,6787,0.352,6788,0.687,6789,0.687,6790,0.352,6791,0.352,6792,0.687,6793,0.352,6794,0.352,6795,0.352,6796,0.352,6797,0.687,6798,0.352,6799,0.352,6800,0.352,6801,0.352,6802,0.352,6803,0.352,6804,0.352,6805,0.352,6806,0.352,6807,0.352,6808,0.687,6809,0.352,6810,0.352,6811,0.352,6812,0.687,6813,0.352,6814,0.352,6815,0.323,6816,0.352,6817,0.352,6818,0.352,6819,0.352,6820,0.352,6821,0.352,6822,2.131,6823,0.687,6824,0.687,6825,0.352,6826,0.352,6827,0.352,6828,0.352,6829,0.352,6830,0.687,6831,0.352,6832,1.005,6833,0.687,6834,0.352,6835,1.595,6836,0.352,6837,0.352,6838,0.352,6839,0.352,6840,0.563,6841,0.629,6842,0.352,6843,0.352,6844,0.352,6845,0.352,6846,0.352,6847,0.323,6848,0.352,6849,0.352,6850,0.352,6851,0.352,6852,0.352,6853,0.352,6854,0.352,6855,0.352,6856,0.352,6857,0.352,6858,0.352,6859,0.352,6860,0.352,6861,0.352,6862,0.352,6863,0.352,6864,0.352,6865,0.352,6866,0.352,6867,0.352,6868,0.352,6869,1.071,6870,1.869,6871,0.352,6872,0.352,6873,0.303,6874,0.352,6875,0.352,6876,0.352,6877,0.352,6878,0.323,6879,1.595,6880,0.303,6881,0.352,6882,0.352,6883,0.687,6884,0.352,6885,0.352,6886,0.352,6887,0.352,6888,2.621,6889,1.005,6890,0.303,6891,0.303,6892,0.323,6893,0.323,6894,0.352,6895,0.352,6896,0.323,6897,0.323,6898,0.352,6899,0.352,6900,0.352,6901,0.352,6902,0.687,6903,0.352,6904,0.352,6905,0.591,6906,0.352,6907,0.352,6908,0.352,6909,0.352,6910,0.323,6911,0.352,6912,0.352,6913,0.323,6914,0.352,6915,0.352,6916,0.352,6917,0.629,6918,0.352,6919,0.352,6920,0.352,6921,0.352,6922,0.352,6923,0.352,6924,0.352,6925,0.352,6926,0.352,6927,0.352,6928,0.352,6929,0.352,6930,0.629,6931,0.352,6932,0.323,6933,0.352,6934,1.005,6935,0.352,6936,0.352,6937,0.323,6938,0.629,6939,0.352,6940,0.352,6941,0.687,6942,0.352,6943,0.352,6944,0.352,6945,0.352,6946,1.307,6947,1.307,6948,0.352,6949,0.352,6950,0.352,6951,0.352,6952,0.352,6953,0.352,6954,0.352,6955,0.352,6956,0.352,6957,0.352,6958,0.352,6959,0.352,6960,0.352]],["component/35",[162,0.398]],["keyword/35",[]],["title/36-1",[6259,71.55]],["name/36-1",[]],["text/36-1",[]],["component/36-1",[]],["keyword/36-1",[]],["title/36-2",[6961,76.142]],["name/36-2",[]],["text/36-2",[]],["component/36-2",[]],["keyword/36-2",[]],["title/36-3",[6962,76.142]],["name/36-3",[]],["text/36-3",[]],["component/36-3",[]],["keyword/36-3",[]],["title/36-4",[6963,76.142]],["name/36-4",[]],["text/36-4",[]],["component/36-4",[]],["keyword/36-4",[]],["title/36-5",[6964,76.142]],["name/36-5",[]],["text/36-5",[]],["component/36-5",[]],["keyword/36-5",[]],["title/36-6",[6965,76.142]],["name/36-6",[]],["text/36-6",[]],["component/36-6",[]],["keyword/36-6",[]],["title/36-7",[6966,76.142]],["name/36-7",[]],["text/36-7",[]],["component/36-7",[]],["keyword/36-7",[]],["title/36-8",[20,17.474,2605,38.687,3828,43.098,6967,52.584]],["name/36-8",[]],["text/36-8",[]],["component/36-8",[]],["keyword/36-8",[]],["title/36-9",[6968,63.796,6969,63.796]],["name/36-9",[]],["text/36-9",[]],["component/36-9",[]],["keyword/36-9",[]],["title/36",[20,19.912,5793,49.111,6970,54.895]],["name/36",[6971,0.941]],["text/36",[6,0.833,8,2.487,11,4.423,12,4.017,14,4.196,17,3.745,19,2.466,20,3.046,22,2.112,24,4,25,4.067,26,1.059,28,2.374,29,0.845,33,0.799,34,4.127,35,4.968,39,1.741,45,1.261,46,0.678,50,3.99,52,2.862,53,2.072,54,1.948,56,2.491,58,3.379,59,0.72,60,1.707,61,3.254,63,1.483,66,1.093,67,3.99,69,1.18,71,1.425,76,0.77,78,3.854,79,1.463,80,0.81,81,1.374,82,0.979,85,1.374,89,2,93,0.938,95,1.374,115,1.631,130,0.752,131,3.127,136,0.859,138,0.92,139,1.551,143,2.809,150,1.328,151,1.836,157,0.779,159,1.003,168,0.779,170,0.859,192,2.112,213,1.093,224,1.093,225,1.003,238,0.698,241,1.328,246,1.602,248,1.443,257,0.743,258,0.958,273,0.873,278,1.342,282,0.821,283,0.72,285,0.859,287,0.92,289,1.328,290,0.979,295,0.938,298,1.286,316,1.973,320,0.958,332,0.903,346,1.974,347,2.477,350,1.777,351,0.833,356,2.028,357,1.463,373,0.979,378,1.18,379,1.661,393,0.938,395,0.92,396,0.979,398,1.576,411,0.743,414,0.712,427,1.551,440,1.3,469,0.903,473,1.093,476,1.602,477,0.979,483,2.274,486,0.92,533,1.816,538,2.558,540,2.365,547,1.029,548,0.821,608,0.779,611,0.873,614,0.873,615,1.504,623,1.18,628,1.093,648,1.551,650,0.92,666,0.873,679,0.873,684,0.903,690,1.132,697,3.35,701,1.631,713,1.694,727,0.752,737,0.92,747,1.132,785,0.887,797,1.856,804,1.318,823,1.328,842,2.12,860,0.845,868,2.238,876,1.029,880,1.003,886,0.92,889,2.357,893,0.903,901,1.318,923,1.318,926,0.938,931,1.029,941,3.001,949,0.845,952,2.045,962,1.132,978,0.81,1168,0.887,1178,1.003,1187,1.029,1194,1.551,1298,1.551,1311,1.029,1322,1.694,1337,2.418,1338,2.615,1350,0.873,1356,1.576,1359,1.003,1364,0.887,1386,0.887,1387,1.132,1408,0.799,1454,1.003,1456,0.938,1487,1.239,1502,2.272,1546,0.92,1547,1.029,1551,1.239,1562,0.979,1602,1.318,1620,0.958,1681,0.979,1698,2.365,1737,1.18,1770,1.029,1792,4.374,1813,1.003,1818,1.18,1836,1.318,1859,1.18,1861,1.239,1918,1.18,1921,1.912,1934,1.029,1951,1.029,2055,0.887,2069,1.132,2070,0.903,2082,1.132,2097,0.887,2107,1.912,2165,1.239,2252,0.859,2335,1.239,2357,0.979,2400,1.239,2425,1.18,2430,1.859,2462,1.239,2554,1.132,2605,4.133,2720,2.542,2759,1.132,2877,1.132,2934,2.698,2960,1.059,2972,1.029,3010,5.274,3018,1.003,3177,0.979,3178,1.132,3214,1.811,3326,1.318,3357,1.318,3362,0.979,3429,1.318,3475,1.029,3488,2.238,3498,1.093,3499,0.938,3526,1.093,3655,2.698,3713,1.059,3716,1.093,3729,1.093,3750,1.18,3803,1.132,3827,3.748,3828,2.913,3837,2.272,4104,1.093,4230,1.239,4443,1.239,4513,1.239,4518,1.318,4537,1.973,4553,1.239,4597,1.912,4748,2.238,4894,2.381,4920,1.318,4944,1.18,5057,1.239,5067,1.239,5072,1.239,5111,1.093,5201,1.239,5406,1.18,5571,1.318,5644,1.318,5758,2.238,5771,1.239,5774,1.18,5793,3.568,5807,1.132,5886,1.318,6080,1.239,6090,1.093,6139,1.18,6171,1.18,6233,1.239,6240,1.318,6259,6.815,6298,1.318,6618,1.318,6632,1.318,6635,1.132,6648,1.318,6672,1.318,6680,1.239,6683,1.318,6917,1.318,6932,2.381,6937,1.318,6961,1.318,6962,2.381,6963,1.318,6964,3.256,6965,1.318,6966,3.256,6968,1.318,6969,1.318,6970,1.318,6972,1.439,6973,1.439,6974,1.318,6975,1.318,6976,2.599,6977,1.239,6978,3.554,6979,2.599,6980,1.439,6981,1.439,6982,1.318,6983,3.554,6984,1.439,6985,1.318,6986,1.439,6987,1.439,6988,1.439,6989,1.439,6990,2.599,6991,1.439,6992,1.439,6993,1.439,6994,2.238,6995,1.439,6996,1.439,6997,1.439,6998,1.318,6999,1.239,7000,1.439,7001,1.439,7002,1.439,7003,1.439,7004,2.599,7005,1.318,7006,1.439,7007,1.18,7008,1.439,7009,1.439,7010,1.318,7011,1.439,7012,1.439,7013,1.439,7014,1.439,7015,1.318,7016,1.439,7017,1.318,7018,1.439,7019,1.239,7020,1.439,7021,1.318,7022,1.439,7023,1.318,7024,1.439,7025,1.439,7026,1.439,7027,1.439,7028,1.318,7029,1.439,7030,1.439,7031,2.599,7032,1.439]],["component/36",[162,0.398]],["keyword/36",[]],["title/37-1",[7033,76.142]],["name/37-1",[]],["text/37-1",[]],["component/37-1",[]],["keyword/37-1",[]],["title/37-2",[4534,49.111,5859,54.895,7034,49.111]],["name/37-2",[]],["text/37-2",[]],["component/37-2",[]],["keyword/37-2",[]],["title/37-3",[4534,49.111,7034,49.111,7035,59.921]],["name/37-3",[]],["text/37-3",[]],["component/37-3",[]],["keyword/37-3",[]],["title/37-4",[2824,49.111,4534,49.111,7034,49.111]],["name/37-4",[]],["text/37-4",[]],["component/37-4",[]],["keyword/37-4",[]],["title/37-5",[8,11.415,228,29.201,1194,31.371,1398,27.468]],["name/37-5",[]],["text/37-5",[]],["component/37-5",[]],["keyword/37-5",[]],["title/37-6",[7036,76.142]],["name/37-6",[]],["text/37-6",[]],["component/37-6",[]],["keyword/37-6",[]],["title/37-7",[7037,76.142]],["name/37-7",[]],["text/37-7",[]],["component/37-7",[]],["keyword/37-7",[]],["title/37-8",[7038,76.142]],["name/37-8",[]],["text/37-8",[]],["component/37-8",[]],["keyword/37-8",[]],["title/37-9",[1549,35.748,7039,59.921,7040,59.921]],["name/37-9",[]],["text/37-9",[]],["component/37-9",[]],["keyword/37-9",[]],["title/37-10",[7041,76.142]],["name/37-10",[]],["text/37-10",[]],["component/37-10",[]],["keyword/37-10",[]],["title/37-11",[163,43.695,7041,63.796]],["name/37-11",[]],["text/37-11",[]],["component/37-11",[]],["keyword/37-11",[]],["title/37-12",[7042,76.142]],["name/37-12",[]],["text/37-12",[]],["component/37-12",[]],["keyword/37-12",[]],["title/37-13",[260,46.345,2486,57.074]],["name/37-13",[]],["text/37-13",[]],["component/37-13",[]],["keyword/37-13",[]],["title/37",[8,11.415,25,20.107,533,26.862,1194,31.371]],["name/37",[990,0.715]],["text/37",[6,0.731,7,1.424,8,2.562,9,0.632,11,3.973,12,4.042,14,3.887,17,4.257,19,2.768,20,2.473,22,2.225,24,4.043,25,4.131,28,2.177,29,0.742,32,1.206,33,1.282,34,3.796,35,4.57,36,0.881,45,2.499,48,1.357,50,3.712,52,4.228,53,1.518,56,2.284,58,2.74,59,0.632,60,0.607,61,1.84,62,1.337,63,0.721,67,3.171,75,0.824,77,1.726,78,3.055,79,0.711,80,1.3,81,0.668,84,1.318,92,0.824,105,1.193,108,2.217,113,1.25,123,1.893,125,0.676,128,1.629,130,1.206,131,2.897,134,1.873,136,0.754,138,0.808,140,0.994,145,1.25,147,0.653,150,1.18,151,1.647,155,0.793,170,0.754,186,0.824,192,2.225,198,0.808,202,1.158,228,1.282,229,0.824,230,0.959,238,2.499,241,2.012,247,1.18,252,0.721,257,1.193,264,0.742,271,0.841,273,0.766,278,1.193,279,0.904,283,1.595,284,0.693,289,2.012,293,0.824,295,0.824,298,0.625,301,1.933,309,0.959,315,0.824,320,0.841,325,0.86,327,2.038,334,0.93,342,0.793,350,2.576,351,1.846,356,2.248,362,0.824,376,0.93,382,1.424,386,1.143,393,0.824,394,1.537,396,0.86,399,1.505,409,0.766,411,0.653,414,0.625,421,3.293,434,0.994,440,3.241,447,1.266,449,0.93,450,1.036,474,2.001,478,0.93,483,0.66,491,1.036,505,0.754,533,2.012,535,1.25,537,0.824,538,2.695,540,1.537,541,1.652,548,0.721,552,0.994,560,1.652,570,2.28,575,0.793,578,0.619,589,1.753,613,0.779,614,0.766,622,0.881,624,0.959,640,0.721,646,0.742,648,0.754,666,0.766,670,1.609,683,1.505,693,1.036,694,0.904,697,0.841,708,1.817,710,1.537,743,0.881,746,2.17,750,0.824,754,0.93,771,0.994,785,0.779,797,0.66,817,0.754,830,0.994,863,2.116,889,1.25,903,0.721,909,1.4,918,0.93,928,1.357,941,2.248,948,0.93,949,1.357,962,0.994,966,0.994,988,1.088,989,1.699,990,2.421,991,1.088,1098,0.994,1104,0.766,1145,0.93,1167,0.721,1169,1.449,1178,0.881,1182,1.933,1184,2.038,1193,0.841,1194,4.077,1322,2.079,1335,1.817,1337,0.86,1345,0.959,1346,2.133,1355,1.652,1386,0.779,1398,0.66,1408,0.702,1412,0.93,1419,0.841,1432,2.346,1444,0.754,1464,1.505,1465,0.904,1498,0.994,1518,1.036,1535,0.808,1549,0.754,1571,0.994,1589,1.088,1613,1.158,1628,0.881,1646,1.476,1656,2.745,1657,1.158,1681,0.86,1686,0.994,1717,1.036,1718,1.088,1751,1.158,1755,0.959,1792,1.537,1866,1.088,1875,0.881,1903,1.699,1966,1.036,1999,1.088,2006,0.793,2036,0.93,2068,1.036,2097,1.424,2098,0.881,2166,1.988,2173,1.036,2190,1.088,2295,1.088,2306,1.988,2330,1.036,2357,0.86,2373,2.922,2435,1.036,2442,1.158,2450,1.088,2473,1.893,2481,1.088,2594,0.93,2605,2.346,2821,1.036,2822,0.93,2853,1.088,2878,1.088,2879,2.038,2933,1.158,2954,1.753,2983,2.116,3036,1.036,3127,1.036,3199,4.143,3334,3.229,3362,0.86,3433,0.994,3499,0.824,3524,1.088,3532,1.088,3643,0.994,3655,0.959,3710,1.088,3728,0.994,3741,0.994,3755,0.86,3824,1.158,3828,1.036,3837,0.808,3966,1.036,4045,1.158,4116,0.93,4134,1.158,4142,0.959,4266,2.614,4270,1.088,4309,1.088,4379,0.994,4597,0.93,4617,1.158,4713,1.036,4836,1.158,4867,1.088,5233,1.158,5270,1.988,5294,0.994,5355,1.988,5440,1.158,5454,1.088,5456,0.994,5509,1.088,5593,1.088,5645,1.158,5646,1.088,5752,1.158,5792,0.994,5807,2.509,5872,1.158,5892,1.036,5936,1.158,5943,1.988,5966,1.988,6166,1.158,6430,1.158,6546,1.158,6635,2.509,6654,2.116,6680,5.884,6682,1.158,6975,1.158,6982,2.116,6994,2.745,7005,1.158,7033,3.609,7034,2.614,7036,2.116,7037,1.158,7038,2.116,7042,2.116,7043,1.158,7044,1.088,7045,1.088,7046,1.158,7047,1.158,7048,1.158,7049,1.158,7050,1.158,7051,1.158,7052,1.264,7053,1.264,7054,1.264,7055,1.264,7056,1.264,7057,3.189,7058,1.264,7059,1.264,7060,1.264,7061,1.264,7062,1.264,7063,1.264,7064,2.309,7065,1.264,7066,1.264,7067,2.309,7068,3.189,7069,2.309,7070,1.264,7071,2.309,7072,1.264,7073,1.264,7074,1.264,7075,1.264,7076,1.264,7077,2.309,7078,1.264,7079,3.94,7080,1.158,7081,1.264,7082,1.264,7083,1.264,7084,1.264,7085,1.264,7086,1.264,7087,1.264,7088,1.264,7089,1.264,7090,1.158,7091,0.959,7092,1.264,7093,1.088,7094,1.264,7095,1.264,7096,1.264,7097,1.264,7098,1.264,7099,1.264,7100,1.158,7101,2.309,7102,2.116,7103,1.264,7104,1.264,7105,3.189,7106,1.264,7107,1.264,7108,1.264,7109,2.309,7110,1.264,7111,1.264,7112,1.264,7113,1.264,7114,1.264,7115,1.264,7116,1.264,7117,1.264,7118,1.264,7119,1.158,7120,1.264,7121,1.264,7122,1.264,7123,1.264,7124,1.264,7125,1.264,7126,1.264,7127,1.264,7128,1.264,7129,1.264,7130,1.264,7131,1.264,7132,1.264,7133,1.264,7134,1.264]],["component/37",[162,0.398]],["keyword/37",[]],["title/38-1",[703,59.44]],["name/38-1",[]],["text/38-1",[]],["component/38-1",[]],["keyword/38-1",[]],["title/38",[1124,47.137,6507,41.759,7135,54.895]],["name/38",[1477,0.715]],["text/38",[6,0.994,8,2.323,9,0.859,11,3.766,12,4.017,14,4.387,15,1.12,17,4.107,19,1.492,20,3.401,22,2.754,24,3.973,25,4.122,28,3.061,31,1.009,34,3.689,35,4.109,39,0.842,45,1.478,46,0.81,47,1.169,48,1.789,50,2.785,52,2.318,53,1.952,54,0.942,56,2.517,57,0.994,58,1.99,61,0.803,65,0.775,67,2.2,77,0.93,78,3.238,83,1.078,84,0.98,85,0.908,93,1.12,95,1.609,96,0.967,105,0.887,107,3.336,113,0.93,121,1.197,123,2.728,128,0.878,131,2.362,134,1.009,136,1.025,139,1.025,143,0.859,145,2.687,150,3.209,159,1.197,168,2.221,188,2.73,192,3.703,199,1.197,211,2.396,216,3.336,226,1.009,228,1.691,229,1.12,230,1.304,233,1.789,238,0.833,241,1.556,244,1.078,248,0.954,252,4.133,253,2.447,257,1.573,267,1.143,268,2.241,271,1.143,278,0.887,282,2.341,283,2.051,285,1.817,292,1.691,293,1.12,300,1.229,325,1.169,343,1.197,346,0.954,350,1.523,356,2.341,376,1.264,386,0.85,388,1.042,389,1.042,409,1.042,411,2.119,414,0.85,419,0.887,427,1.025,448,1.304,458,1.197,472,0.954,476,1.059,477,1.169,494,0.994,505,2.447,518,0.749,523,2.241,578,2.01,582,1.169,587,1.098,611,1.042,620,1.352,621,3.904,629,1.264,640,0.98,646,1.789,661,2.241,662,0.954,684,1.911,688,1.985,697,1.143,707,1.12,708,1.352,713,1.12,725,2.178,727,0.897,767,2.934,768,5.458,772,1.947,781,1.479,789,1.197,797,0.897,809,1.042,812,3.114,813,1.264,815,2.574,817,1.817,822,2.41,833,1.352,847,1.408,877,3.018,883,1.574,886,1.098,902,3.009,903,1.738,909,4.121,910,0.833,918,1.264,948,1.264,1070,1.479,1071,1.479,1106,2.312,1113,1.352,1115,2.312,1120,1.479,1121,1.408,1122,1.947,1124,1.352,1173,1.169,1307,1.352,1346,0.93,1362,1.352,1366,1.264,1378,1.408,1390,6.004,1397,1.197,1411,1.078,1456,1.12,1464,1.12,1472,1.264,1474,1.197,1477,7.266,1497,1.304,1542,1.479,1556,1.817,1578,1.408,1620,1.143,1679,2.496,1686,2.396,1695,1.408,1739,3.227,1768,1.197,1796,2.859,1848,1.574,1874,1.352,1885,1.352,1887,2.312,1924,1.352,2070,1.078,2082,1.352,2097,1.059,2098,1.197,2117,2.622,2127,1.304,2134,3.227,2193,3.227,2238,1.304,2252,2.447,2274,1.098,2336,1.143,2382,1.264,2586,2.178,2615,1.408,2732,1.304,2753,1.817,2789,2.178,2861,1.304,2874,1.479,2920,1.574,2959,1.408,2978,1.169,3026,1.408,3174,1.264,3177,1.169,3475,1.229,3728,1.352,3755,1.169,3847,1.229,3913,1.304,4342,1.574,4383,1.479,4491,4.654,4544,1.408,4560,2.312,4603,2.178,4604,1.479,4932,1.479,5104,2.496,5292,1.574,5469,1.408,5588,1.408,5922,1.304,5973,2.79,5989,1.479,6111,1.574,6171,1.408,6176,1.574,6303,1.574,6391,1.304,6544,1.479,6627,2.622,6637,1.408,6685,1.479,6878,2.79,6880,1.479,6891,1.479,6893,2.79,6930,2.79,7091,1.304,7136,1.479,7137,1.718,7138,1.574,7139,2.622,7140,1.574,7141,1.718,7142,1.718,7143,1.718,7144,2.396,7145,1.574,7146,1.574,7147,1.574,7148,1.574,7149,1.479,7150,1.574,7151,1.574,7152,1.718,7153,1.718,7154,1.718,7155,1.718,7156,3.046,7157,1.408,7158,1.718,7159,1.718,7160,1.479,7161,1.718,7162,1.718,7163,5.202,7164,1.718,7165,4.963,7166,1.574,7167,1.574,7168,1.718,7169,1.574,7170,1.574,7171,1.574,7172,1.479,7173,1.718,7174,1.718,7175,1.574,7176,3.046,7177,1.718,7178,1.574,7179,1.718,7180,1.718,7181,1.718,7182,1.718,7183,1.718,7184,1.718,7185,1.718,7186,1.718,7187,1.574,7188,1.479,7189,1.718,7190,3.046]],["component/38",[162,0.398]],["keyword/38",[]],["title/39-1",[427,41.544,5258,57.074]],["name/39-1",[]],["text/39-1",[]],["component/39-1",[]],["keyword/39-1",[]],["title/39-2",[8,12.973,20,12.779,545,21.643,1194,22.943,5965,31.52,7191,35.232]],["name/39-2",[]],["text/39-2",[]],["component/39-2",[]],["keyword/39-2",[]],["title/39-3",[8,13.007,1019,44.085,7192,47.137]],["name/39-3",[]],["text/39-3",[]],["component/39-3",[]],["keyword/39-3",[]],["title/39-4",[8,13.007,248,33.275,7192,47.137]],["name/39-4",[]],["text/39-4",[]],["component/39-4",[]],["keyword/39-4",[]],["title/39-5",[8,11.415,32,27.468,34,22.051,216,30.891]],["name/39-5",[]],["text/39-5",[]],["component/39-5",[]],["keyword/39-5",[]],["title/39",[8,8.348,20,19.859,1019,28.294,1864,30.253,5823,31.52,7192,30.253]],["name/39",[1106,0.715]],["text/39",[5,0.779,8,2.502,9,0.663,11,3.584,12,3.444,13,0.718,14,4.152,17,3.631,19,1.182,20,3.01,22,1.171,24,3.891,25,4.173,28,2.007,29,1.418,30,1.832,31,0.779,32,0.693,33,0.736,34,3.405,35,3.895,37,0.948,39,0.65,45,2.825,48,0.779,49,0.848,50,1.472,52,4.301,53,0.631,54,0.727,56,1.07,58,3.939,62,0.768,63,0.757,65,0.598,67,2.106,68,2.928,69,1.087,71,3.435,72,0.924,73,0.883,76,2.187,77,2.214,78,3.277,79,4.569,80,0.746,81,2.161,82,0.902,85,0.701,87,0.924,90,1.007,94,0.832,95,0.701,96,0.746,104,0.663,105,1.247,107,0.779,108,0.746,109,0.832,113,2.214,119,0.883,120,0.948,125,1.291,128,1.233,130,2.137,131,1.946,136,0.791,138,0.848,139,0.791,143,3.331,147,0.685,151,1.247,186,0.864,192,3.556,216,3.127,226,1.418,232,1.895,233,1.951,235,1.306,238,1.611,240,0.779,241,1.697,247,1.697,248,2.271,249,0.832,253,0.791,257,1.715,259,2.21,270,0.791,271,0.883,280,0.948,282,0.757,284,3.435,285,0.791,287,1.543,288,1.899,289,2.089,293,0.864,298,0.656,309,1.007,315,0.864,345,1.606,346,0.736,350,1.207,351,0.768,358,1.543,362,0.864,363,0.848,382,0.818,385,0.818,386,1.194,387,0.924,388,0.804,389,2.88,391,1.697,395,1.543,398,3.227,404,1.142,409,1.463,412,0.791,416,0.948,427,5.094,449,0.976,483,0.693,486,1.543,505,0.791,506,0.976,516,1.007,517,1.978,518,0.578,525,1.007,545,1.358,547,0.948,550,1.043,563,1.087,566,4.362,570,1.397,578,0.65,608,0.718,611,0.804,616,0.656,640,0.757,646,1.418,647,0.848,656,0.948,661,1.776,662,0.736,667,1.043,679,1.463,685,1.215,688,0.864,711,1.34,712,2.673,742,1.776,744,1.682,745,0.804,751,0.924,772,1.543,778,0.883,802,0.948,815,0.832,820,1.087,822,1.418,823,1.697,828,1.007,843,1.682,860,0.779,876,0.948,886,0.848,889,1.306,899,1.087,906,0.848,907,0.864,909,1.463,913,0.832,927,0.818,928,2.403,929,1.142,931,0.948,940,2.834,1097,1.087,1105,1.142,1106,3.105,1194,3.974,1257,0.976,1303,0.832,1338,2.443,1342,1.832,1376,2.165,1377,1.606,1381,1.043,1402,1.007,1408,0.736,1432,0.976,1480,2.722,1595,0.902,1652,0.976,1655,1.087,1658,1.978,1733,4.758,1763,1.087,1768,0.924,1839,1.142,1863,4.888,1872,0.948,1881,0.883,1885,1.899,1917,1.007,1926,1.007,1934,1.726,1990,1.087,2043,1.215,2097,0.818,2135,1.726,2136,1.142,2163,1.142,2221,1.642,2252,2.44,2275,1.142,2277,1.087,2301,1.776,2344,1.087,2357,1.642,2360,1.142,2439,0.804,2475,1.215,2574,1.007,2732,1.007,2753,0.791,2792,1.978,3035,3.042,3046,1.007,3106,1.043,3142,1.215,3168,1.726,3301,1.642,3362,0.902,3384,1.007,3419,2.859,3475,1.726,3492,1.007,3499,0.864,3538,0.976,3655,2.521,3693,1.215,3712,1.215,3731,1.215,4146,1.043,4541,1.043,4835,1.087,5068,1.142,5258,1.087,5281,1.215,5588,1.087,5632,1.215,5781,1.142,5824,1.142,5937,1.978,5962,7.219,5965,2.722,5989,1.142,6015,3.521,6018,6.102,6090,1.007,6128,1.215,6258,2.211,6405,1.215,6439,1.043,6580,1.978,6910,1.215,6985,1.215,6998,1.215,7023,1.215,7091,1.007,7149,1.142,7151,1.215,7157,1.087,7166,2.211,7167,1.215,7169,5.336,7170,1.215,7172,1.142,7191,4.876,7192,1.043,7193,1.087,7194,1.215,7195,1.326,7196,3.321,7197,2.413,7198,3.321,7199,4.876,7200,1.326,7201,1.326,7202,1.215,7203,1.215,7204,2.413,7205,2.413,7206,1.215,7207,1.215,7208,1.326,7209,1.326,7210,1.326,7211,1.326,7212,1.215,7213,1.326,7214,1.142,7215,1.326,7216,1.326,7217,1.326,7218,1.326,7219,1.326,7220,1.326,7221,1.326,7222,1.326,7223,1.326,7224,1.326,7225,1.326,7226,1.326,7227,1.326,7228,4.75,7229,1.215,7230,1.326,7231,2.413,7232,1.326,7233,1.326,7234,1.326,7235,1.326,7236,4.09,7237,1.326,7238,1.326,7239,1.326,7240,1.326,7241,1.326,7242,1.326,7243,1.326,7244,1.326,7245,1.326,7246,1.326,7247,1.326,7248,1.326,7249,1.326,7250,1.326,7251,1.326,7252,1.326,7253,2.413,7254,1.326,7255,1.326,7256,3.321,7257,2.413,7258,2.211,7259,1.326,7260,1.326,7261,1.326,7262,1.326,7263,1.326,7264,1.215,7265,1.326,7266,1.326,7267,1.326,7268,1.326,7269,1.326,7270,1.326,7271,1.326,7272,1.326,7273,1.326,7274,1.326,7275,1.326]],["component/39",[162,0.398]],["keyword/39",[]],["title/40-1",[24,25.32,809,36.327,831,40.774]],["name/40-1",[]],["text/40-1",[]],["component/40-1",[]],["keyword/40-1",[]],["title/40-2",[879,71.55]],["name/40-2",[]],["text/40-2",[]],["component/40-2",[]],["keyword/40-2",[]],["title/40-3",[7276,76.142]],["name/40-3",[]],["text/40-3",[]],["component/40-3",[]],["keyword/40-3",[]],["title/40-4",[8,11.415,419,27.16,616,26.026,809,31.879]],["name/40-4",[]],["text/40-4",[]],["component/40-4",[]],["keyword/40-4",[]],["title/40-5",[258,34.996,2543,35.782,3015,37.606,3737,43.098]],["name/40-5",[]],["text/40-5",[]],["component/40-5",[]],["keyword/40-5",[]],["title/40-6",[2543,56.556]],["name/40-6",[]],["text/40-6",[]],["component/40-6",[]],["keyword/40-6",[]],["title/40-7",[258,55.314]],["name/40-7",[]],["text/40-7",[]],["component/40-7",[]],["keyword/40-7",[]],["title/40-8",[3015,59.44]],["name/40-8",[]],["text/40-8",[]],["component/40-8",[]],["keyword/40-8",[]],["title/40-9",[258,46.202,2543,47.239,3737,38.397]],["name/40-9",[]],["text/40-9",[]],["component/40-9",[]],["keyword/40-9",[]],["title/40-10",[20,15.568,283,23.427,2040,29.945,2955,34.467,7277,40.33]],["name/40-10",[]],["text/40-10",[]],["component/40-10",[]],["keyword/40-10",[]],["title/40-11",[8,9.169,20,14.036,25,16.152,848,33.228,2955,31.077,7277,36.363]],["name/40-11",[]],["text/40-11",[]],["component/40-11",[]],["keyword/40-11",[]],["title/40-12",[8,13.007,53,28.515,2955,44.085]],["name/40-12",[]],["text/40-12",[]],["component/40-12",[]],["keyword/40-12",[]],["title/40-13",[912,48.53,1535,44.512]],["name/40-13",[]],["text/40-13",[]],["component/40-13",[]],["keyword/40-13",[]],["title/40",[8,10.17,13,25.36,20,15.568,787,33.504,809,28.401]],["name/40",[1257,0.693]],["text/40",[2,0.426,3,0.26,6,0.66,7,0.703,8,2.518,9,0.298,11,3.275,12,4.158,13,0.888,14,3.764,15,0.388,17,3.49,19,2.083,20,3.394,22,2.562,24,4.09,25,4.371,28,2.232,32,0.311,34,3.587,35,4.849,38,1.011,39,0.803,42,0.488,45,2.062,46,0.99,49,1.048,50,2.934,51,1.029,52,1.986,53,1.202,54,1.385,56,2.01,57,2.102,58,3.358,59,0.57,60,0.286,61,2.571,67,4.101,70,0.468,71,0.899,76,0.609,77,0.617,78,3.928,79,0.641,80,1.644,81,0.866,82,0.405,83,0.715,84,0.34,85,0.314,88,0.361,89,0.335,92,0.743,93,0.743,94,0.715,95,0.602,96,0.335,102,0.728,104,0.298,105,0.847,106,1.318,108,1.851,113,0.322,115,1.029,122,0.703,125,0.877,128,1.68,130,2.221,131,2.513,139,0.355,143,1.976,145,0.322,147,1.305,150,1.073,151,1.699,154,0.33,157,0.322,167,0.728,168,1.137,192,3.286,193,0.396,194,0.691,199,0.415,205,0.815,210,0.838,211,0.468,216,2.498,219,0.415,220,0.438,222,0.691,223,0.396,226,2.133,228,0.911,229,0.388,230,0.452,232,0.34,233,0.35,235,0.322,236,0.426,237,0.758,238,2.062,241,0.582,244,1.833,245,0.728,246,0.367,247,0.838,249,1.318,257,1.085,258,6.271,262,0.981,277,1.011,278,1.085,283,1.976,284,0.625,285,0.355,289,1.855,290,0.775,292,1.166,294,0.405,295,1.069,297,0.468,298,1.04,324,0.396,339,0.335,340,0.452,341,0.426,346,0.633,350,1.816,351,0.66,352,1.273,353,1.245,354,0.426,356,0.936,357,0.923,361,0.438,373,0.775,375,0.468,377,0.545,382,0.367,385,0.367,386,0.295,389,0.361,390,0.865,391,1.68,395,1.343,399,0.388,401,1.173,403,0.488,411,0.847,413,0.396,416,1.173,418,0.838,419,1.509,421,1.343,427,0.68,438,0.758,439,0.488,447,3.444,450,0.488,469,0.373,474,0.373,476,0.367,477,0.775,481,0.758,483,1.897,494,0.66,502,1.464,505,1.253,528,0.488,533,1.68,534,0.396,535,0.617,537,0.388,539,1.048,540,0.396,554,0.488,557,0.468,558,0.438,576,0.468,578,1.238,587,0.38,599,0.815,600,0.488,607,0.344,611,0.361,613,0.703,614,0.691,616,0.295,620,0.468,622,1.143,638,0.794,640,0.34,642,0.512,646,0.35,647,0.728,662,1.166,666,0.691,669,0.468,679,0.361,682,1.273,688,0.388,700,0.512,711,0.33,714,0.426,725,0.426,738,0.896,742,0.438,744,0.794,745,0.691,746,1.116,753,0.426,766,0.438,778,0.758,787,2.597,792,0.865,797,1.718,809,3.202,815,0.373,817,0.355,822,1.716,824,0.488,831,4.609,833,0.468,834,0.438,842,0.978,843,0.794,847,0.488,849,0.715,860,0.669,870,1.344,877,0.438,878,2.218,879,0.512,880,0.415,888,0.468,889,1.582,890,0.468,893,0.373,894,2.829,903,0.936,906,0.38,908,0.488,909,0.994,910,0.289,920,0.488,927,1.295,928,0.35,931,0.426,938,0.452,945,0.438,950,0.396,959,0.438,976,0.452,1064,0.415,1116,0.452,1141,0.38,1147,0.396,1167,0.34,1168,0.367,1173,0.405,1177,0.438,1185,1.273,1203,0.703,1207,0.68,1298,0.355,1303,0.715,1305,0.415,1310,0.934,1321,0.512,1343,0.468,1346,1.137,1364,0.367,1367,0.512,1368,0.468,1377,0.396,1398,0.311,1408,0.911,1411,1.029,1424,1.245,1441,0.743,1445,0.405,1451,0.388,1458,0.949,1461,0.488,1464,0.388,1475,0.415,1479,0.396,1546,0.38,1549,0.355,1556,0.68,1576,0.512,1620,0.396,1628,1.143,1649,0.438,1659,2.175,1678,0.415,1681,0.775,1686,0.468,1692,0.512,1697,0.452,1706,1.044,1708,0.545,1713,0.728,1720,0.838,1766,0.545,1775,0.438,1790,1.398,1796,0.415,1797,0.896,1798,0.438,1799,0.838,1810,1.412,1813,0.794,1820,1.044,1823,0.775,1826,1.29,1852,0.865,1872,0.426,1876,0.468,1881,0.396,1890,0.468,1918,0.934,1923,0.865,1937,0.405,1949,1.412,1953,0.815,1958,0.438,1961,0.468,2006,0.373,2037,0.488,2040,1.343,2049,0.405,2053,0.512,2055,0.367,2056,0.545,2063,1.245,2070,0.373,2097,0.367,2098,0.794,2107,0.438,2127,0.452,2149,0.545,2166,0.512,2181,0.488,2186,0.512,2193,0.468,2204,0.758,2217,0.865,2226,0.838,2236,0.545,2272,0.512,2288,0.468,2296,0.545,2336,0.758,2341,0.426,2357,1.116,2374,0.758,2389,1.206,2391,0.452,2392,1.429,2413,0.452,2429,0.512,2435,0.488,2439,0.361,2473,0.934,2541,1.245,2543,6.029,2560,0.512,2566,0.468,2574,0.865,2593,0.934,2595,1.206,2604,1.245,2648,0.468,2650,3.335,2675,0.512,2702,0.981,2719,0.512,2734,0.775,2753,0.355,2760,0.488,2762,0.468,2765,0.438,2794,0.426,2800,2.672,2879,0.38,2881,0.838,2887,0.426,2890,0.981,2892,0.512,2924,0.545,2955,4.049,2978,0.405,3014,0.396,3015,4.844,3033,1.859,3068,0.934,3094,0.488,3104,0.438,3105,0.934,3106,0.468,3168,0.815,3174,0.438,3181,0.545,3199,0.405,3201,0.426,3204,0.452,3213,0.468,3273,0.815,3301,1.429,3356,0.488,3362,1.429,3374,0.415,3420,0.438,3425,0.545,3492,1.595,3498,0.865,3601,0.545,3637,0.426,3647,0.488,3681,0.545,3713,0.438,3716,0.865,3736,0.545,3737,3.932,3738,1.924,3764,0.468,3776,0.545,3778,0.896,3781,0.512,3789,0.488,3798,0.438,3800,0.934,3815,0.545,3830,0.512,3847,0.426,3909,0.468,4038,0.468,4086,0.512,4097,0.545,4098,0.452,4143,0.934,4151,0.468,4177,0.488,4200,0.512,4274,0.488,4327,0.512,4385,0.452,4432,1.044,4439,0.488,4523,0.468,4540,0.512,4544,0.488,4658,0.512,4666,0.545,4677,0.512,4684,0.468,5111,0.865,5121,0.545,5162,0.468,5164,0.512,5168,0.512,5171,0.488,5309,0.512,5378,1.044,5456,0.468,5497,1.044,5531,0.545,5576,0.512,5588,0.488,5639,0.545,5716,0.545,5756,0.452,5758,0.512,5773,0.488,5819,0.896,5841,0.545,5918,0.512,5931,0.545,5957,0.896,5967,0.545,6001,0.488,6056,0.545,6059,0.512,6079,1.412,6118,0.545,6130,0.468,6146,0.512,6156,0.545,6242,0.545,6361,0.512,6375,0.545,6391,0.452,6403,0.488,6442,0.512,6451,0.468,6474,0.545,6523,0.512,6634,0.512,6840,0.488,6880,0.512,6890,0.512,6896,0.545,6905,0.512,6938,0.545,6977,0.981,7010,0.545,7019,0.512,7090,0.545,7091,0.452,7157,0.488,7276,2.315,7277,3.902,7278,2.527,7279,0.595,7280,0.595,7281,0.595,7282,0.512,7283,0.595,7284,0.595,7285,0.545,7286,2.175,7287,1.14,7288,0.595,7289,1.64,7290,1.14,7291,0.595,7292,0.595,7293,0.595,7294,1.14,7295,0.595,7296,1.64,7297,1.64,7298,0.595,7299,0.595,7300,0.595,7301,2.527,7302,0.595,7303,1.14,7304,1.14,7305,0.595,7306,0.545,7307,0.595,7308,0.595,7309,0.595,7310,0.595,7311,0.595,7312,0.545,7313,1.14,7314,1.14,7315,0.595,7316,0.595,7317,0.595,7318,0.595,7319,0.595,7320,0.595,7321,0.595,7322,0.595,7323,0.595,7324,1.14,7325,0.595,7326,0.595,7327,2.101,7328,0.595,7329,0.595,7330,0.595,7331,0.595,7332,0.595,7333,0.595,7334,0.595,7335,0.595,7336,0.595,7337,0.595,7338,0.595,7339,2.527,7340,0.595,7341,0.595,7342,1.14,7343,0.595,7344,0.595,7345,0.595,7346,0.595,7347,0.595,7348,0.595,7349,0.595,7350,0.595,7351,0.595,7352,0.595,7353,0.595,7354,0.595,7355,0.595,7356,0.595,7357,0.595,7358,0.595,7359,0.595,7360,0.595,7361,0.595,7362,0.545,7363,1.044,7364,1.14,7365,0.595,7366,0.595,7367,0.595,7368,0.595,7369,0.595,7370,0.595,7371,0.545,7372,0.595,7373,2.175,7374,0.595,7375,0.595,7376,1.14,7377,1.14,7378,0.595,7379,0.595,7380,0.595,7381,0.595,7382,0.595,7383,0.595,7384,0.595,7385,0.595,7386,0.595,7387,0.595,7388,0.595,7389,0.595,7390,0.595,7391,0.595,7392,1.14,7393,0.595,7394,0.595,7395,0.595,7396,0.595,7397,0.595,7398,0.595,7399,0.595,7400,0.545,7401,0.595,7402,0.595,7403,0.595,7404,0.595,7405,0.595,7406,0.595,7407,0.595,7408,0.595,7409,0.595,7410,0.595,7411,0.595,7412,0.595,7413,0.595,7414,0.595,7415,0.595]],["component/40",[162,0.398]],["keyword/40",[]],["title/41-1",[252,47.425]],["name/41-1",[]],["text/41-1",[]],["component/41-1",[]],["keyword/41-1",[]],["title/41-2",[179,40.774,414,29.657,455,45.493]],["name/41-2",[]],["text/41-2",[]],["component/41-2",[]],["keyword/41-2",[]],["title/41-3",[20,19.912,232,34.191,797,31.3]],["name/41-3",[]],["text/41-3",[]],["component/41-3",[]],["keyword/41-3",[]],["title/41-4",[913,52.151]],["name/41-4",[]],["text/41-4",[]],["component/41-4",[]],["keyword/41-4",[]],["title/41-5",[20,15.568,24,19.796,1928,40.33,2548,36.853,7416,42.918]],["name/41-5",[]],["text/41-5",[]],["component/41-5",[]],["keyword/41-5",[]],["title/41-6",[20,19.912,587,38.301,1796,41.759]],["name/41-6",[]],["text/41-6",[]],["component/41-6",[]],["keyword/41-6",[]],["title/41",[8,11.388,21,21.707,935,19.774,940,19.458,1122,20.848,1467,24.763,1468,23.326,1875,22.73]],["name/41",[1467,0.715]],["text/41",[3,1.536,5,1.191,8,2.543,9,2.335,11,4.036,12,3.951,14,4.223,15,1.322,17,3.278,19,3.859,20,3.686,21,1.349,22,0.984,24,2.668,25,4.316,28,3.143,34,1.958,35,4.145,39,0.993,52,4.145,56,1.561,58,0.984,60,0.974,67,3.07,68,2.879,76,1.084,78,2.494,80,1.141,81,1.861,84,1.157,87,1.413,105,1.047,107,1.191,123,3.034,130,3.617,131,2.222,134,2.069,137,1.745,139,1.21,145,3.019,150,1.799,166,1.38,167,1.296,168,3.019,185,2.296,192,0.984,193,1.349,194,1.229,216,1.191,218,1.539,228,1.956,229,2.296,232,3.183,233,1.191,235,1.098,246,2.879,247,1.036,252,2.664,273,1.229,283,1.761,284,1.111,292,1.126,320,1.349,325,3.177,338,1.25,352,1.229,356,1.157,370,1.745,372,2.887,379,1.296,386,1.003,388,2.135,391,1.036,411,1.047,414,1.743,419,1.819,421,4.036,426,1.662,437,1.272,458,1.413,473,2.674,483,1.059,493,1.539,494,2.039,506,1.492,518,0.884,537,2.296,545,1.141,555,1.662,560,1.45,570,1.174,578,4.474,599,1.45,600,1.662,620,1.595,647,2.985,662,1.126,683,1.322,684,1.272,688,1.322,697,1.349,703,1.45,725,1.45,727,1.059,731,2.454,741,1.662,742,2.591,743,1.413,754,1.492,768,1.45,771,1.595,784,1.745,797,4.312,812,2.674,822,2.069,828,1.539,843,1.413,849,1.272,893,1.272,894,5.493,909,1.229,910,0.984,913,6.119,935,1.229,940,2.786,944,1.38,1122,1.296,1141,1.296,1185,2.831,1305,2.454,1333,2.591,1346,1.907,1359,1.413,1371,2.519,1372,1.539,1398,1.059,1411,1.272,1451,2.296,1467,1.539,1468,1.45,1469,1.595,1470,1.45,1471,2.397,1472,1.492,1473,1.174,1476,1.745,1539,1.595,1543,1.595,1552,2.771,1618,1.595,1697,1.539,1796,3.254,1863,1.413,1874,1.595,1881,1.349,1923,2.674,1928,1.745,2006,2.21,2055,1.25,2059,1.492,2082,1.595,2097,1.25,2121,1.662,2135,1.45,2162,1.745,2168,1.413,2195,2.519,2413,1.539,2548,3.673,2554,1.595,2586,1.45,2651,1.595,2654,2.771,2794,1.45,2800,1.492,2925,1.857,3295,2.344,3301,3.795,3361,1.662,3619,3.032,3656,1.45,3847,1.45,3966,1.662,4115,2.591,4126,1.857,4291,2.591,4476,1.857,4560,1.539,4603,2.519,4943,1.595,5084,1.745,5164,1.745,5294,1.595,5373,2.887,5469,5.676,5648,1.745,5782,1.857,5922,1.539,5947,1.662,5996,1.745,6146,1.745,6154,1.745,6391,1.539,6403,1.662,6543,1.857,6841,1.857,7007,1.662,7044,1.745,7264,1.857,7282,1.745,7371,1.857,7373,1.745,7416,1.857,7417,2.028,7418,2.028,7419,2.028,7420,2.028,7421,2.028,7422,3.522,7423,2.028,7424,1.595,7425,2.028,7426,2.028,7427,2.028,7428,2.674,7429,2.028,7430,1.857,7431,3.522,7432,2.028,7433,2.028,7434,2.028,7435,1.857,7436,1.745,7437,2.028,7438,3.522,7439,2.028,7440,2.028,7441,2.028,7442,2.028,7443,2.028,7444,2.028,7445,2.028,7446,1.745,7447,1.857,7448,1.857,7449,2.028,7450,2.028,7451,2.028]],["component/41",[162,0.398]],["keyword/41",[]],["title/42-1",[260,46.345,261,47.386]],["name/42-1",[]],["text/42-1",[]],["component/42-1",[]],["keyword/42-1",[]],["title/42-2",[21,46.345,261,47.386]],["name/42-2",[]],["text/42-2",[]],["component/42-2",[]],["keyword/42-2",[]],["title/42-3",[255,59.948,1077,57.074]],["name/42-3",[]],["text/42-3",[]],["component/42-3",[]],["keyword/42-3",[]],["title/42-4",[13,37.697,260,46.345]],["name/42-4",[]],["text/42-4",[]],["component/42-4",[]],["keyword/42-4",[]],["title/42",[2204,55.314]],["name/42",[2204,0.626]],["text/42",[]],["component/42",[162,0.398]],["keyword/42",[]],["title/43-1",[388,36.327,1832,42.853,5999,51.584]],["name/43-1",[]],["text/43-1",[]],["component/43-1",[]],["keyword/43-1",[]],["title/43-2",[7160,71.55]],["name/43-2",[]],["text/43-2",[]],["component/43-2",[]],["keyword/43-2",[]],["title/43-3",[8,10.17,17,19.497,1875,32.648,1937,31.879,3656,33.504]],["name/43-3",[]],["text/43-3",[]],["component/43-3",[]],["keyword/43-3",[]],["title/43-4",[7,20.108,8,11.388,20,10.838,25,12.472,168,17.656,169,25.658,1194,19.458,1937,22.194]],["name/43-4",[]],["text/43-4",[]],["component/43-4",[]],["keyword/43-4",[]],["title/43-5",[9,23.427,17,19.497,28,19.796,747,36.853,4383,40.33]],["name/43-5",[]],["text/43-5",[]],["component/43-5",[]],["keyword/43-5",[]],["title/43-6",[8,7.08,17,21.833,20,10.838,1875,22.73,2135,23.326,3656,23.326,5605,25.658,7428,24.763]],["name/43-6",[]],["text/43-6",[]],["component/43-6",[]],["keyword/43-6",[]],["title/43-7",[1185,50.387]],["name/43-7",[]],["text/43-7",[]],["component/43-7",[]],["keyword/43-7",[]],["title/43-8",[8,13.943,17,17.58,823,21.578,1185,25.608,1480,28.112]],["name/43-8",[]],["text/43-8",[]],["component/43-8",[]],["keyword/43-8",[]],["title/43-9",[8,8.348,11,17.49,25,14.705,79,21.643,646,22.592,809,23.315,1185,23.315]],["name/43-9",[]],["text/43-9",[]],["component/43-9",[]],["keyword/43-9",[]],["title/43-10",[8,13.943,17,17.58,317,31.077,823,21.578,1480,28.112]],["name/43-10",[]],["text/43-10",[]],["component/43-10",[]],["keyword/43-10",[]],["title/43-11",[8,8.348,11,17.49,25,14.705,79,21.643,317,28.294,646,22.592,809,23.315]],["name/43-11",[]],["text/43-11",[]],["component/43-11",[]],["keyword/43-11",[]],["title/43-12",[8,7.662,11,16.053,25,13.497,147,18.231,768,25.243,809,21.399,1477,26.798,7452,35.297]],["name/43-12",[]],["text/43-12",[]],["component/43-12",[]],["keyword/43-12",[]],["title/43-13",[9,41.562]],["name/43-13",[]],["text/43-13",[]],["component/43-13",[]],["keyword/43-13",[]],["title/43-14",[326,52.869,3013,57.074]],["name/43-14",[]],["text/43-14",[]],["component/43-14",[]],["keyword/43-14",[]],["title/43-15",[8,15.07,238,22.727,390,35.568,5759,38.397]],["name/43-15",[]],["text/43-15",[]],["component/43-15",[]],["keyword/43-15",[]],["title/43-16",[3,30.369,3637,49.802]],["name/43-16",[]],["text/43-16",[]],["component/43-16",[]],["keyword/43-16",[]],["title/43-17",[3,22.932,8,11.415,1480,34.996,3656,37.606]],["name/43-17",[]],["text/43-17",[]],["component/43-17",[]],["keyword/43-17",[]],["title/43-18",[3,26.132,8,13.007,430,47.137]],["name/43-18",[]],["text/43-18",[]],["component/43-18",[]],["keyword/43-18",[]],["title/43-19",[8,10.17,20,15.568,238,22.727,3111,36.853,7453,46.848]],["name/43-19",[]],["text/43-19",[]],["component/43-19",[]],["keyword/43-19",[]],["title/43-20",[3,30.369,1183,51.233]],["name/43-20",[]],["text/43-20",[]],["component/43-20",[]],["keyword/43-20",[]],["title/43-21",[8,13.007,238,29.069,317,44.085]],["name/43-21",[]],["text/43-21",[]],["component/43-21",[]],["keyword/43-21",[]],["title/43-22",[8,13.007,809,36.327,3798,44.085]],["name/43-22",[]],["text/43-22",[]],["component/43-22",[]],["keyword/43-22",[]],["title/43-23",[117,47.386,149,51.233]],["name/43-23",[]],["text/43-23",[]],["component/43-23",[]],["keyword/43-23",[]],["title/43-24",[8,8.348,20,12.779,25,14.705,117,26.169,537,25.068,1943,30.253,4529,29.198]],["name/43-24",[]],["text/43-24",[]],["component/43-24",[]],["keyword/43-24",[]],["title/43-25",[20,11.729,28,14.915,32,18.438,46,16.64,150,18.031,298,17.47,1371,25.243,1376,23.008]],["name/43-25",[]],["text/43-25",[]],["component/43-25",[]],["keyword/43-25",[]],["title/43-26",[5,40.909,117,47.386]],["name/43-26",[]],["text/43-26",[]],["component/43-26",[]],["keyword/43-26",[]],["title/43-27",[5,24.814,20,14.036,28,17.849,117,28.743,562,32.07,3798,31.077]],["name/43-27",[]],["text/43-27",[]],["component/43-27",[]],["keyword/43-27",[]],["title/43-28",[3,20.431,8,10.17,1473,27.116,7454,42.918,7455,42.918]],["name/43-28",[]],["text/43-28",[]],["component/43-28",[]],["keyword/43-28",[]],["title/43-29",[3,18.421,331,45.935,332,40.302,7456,38.697]],["name/43-29",[]],["text/43-29",[]],["component/43-29",[]],["keyword/43-29",[]],["title/43-30",[3,22.932,8,11.415,191,45.268,374,39.923]],["name/43-30",[]],["text/43-30",[]],["component/43-30",[]],["keyword/43-30",[]],["title/43-31",[3,30.369,7457,69.637]],["name/43-31",[]],["text/43-31",[]],["component/43-31",[]],["keyword/43-31",[]],["title/43",[8,12.129,9,17.651,13,19.107,28,14.915,34,14.801,309,26.798,940,21.058]],["name/43",[4,0.693]],["text/43",[0,0.763,3,3.413,5,1.796,6,0.534,7,2.062,8,2.592,9,3.005,11,4.084,12,4.21,13,1.81,14,3.503,17,4.298,18,0.325,19,2.13,20,3.675,22,1.336,23,0.7,24,3.699,25,4.18,28,3.068,29,1.014,32,2.887,34,3.128,35,4.378,36,0.643,37,0.342,38,0.569,39,1.349,44,0.391,45,1.879,46,0.985,47,0.325,48,0.786,49,0.305,50,2.373,52,2.66,53,1.72,56,2.729,57,0.774,58,3.246,59,0.669,60,0.829,61,1.136,62,0.276,63,0.272,64,0.342,65,0.215,66,0.7,67,2.792,71,1.333,73,0.318,76,1.3,77,1.491,78,2.992,79,0.753,80,0.753,81,0.707,84,0.272,85,0.707,86,0.411,87,0.643,88,0.559,91,1.913,93,0.311,94,0.3,95,0.707,96,0.519,101,0.325,103,0.437,105,1.256,106,0.579,107,2.807,113,0.499,114,0.363,115,0.3,117,1.655,121,0.932,123,1.737,125,0.493,128,0.471,130,1.597,131,1.959,134,0.786,135,0.411,136,1.029,138,0.589,139,0.55,140,0.376,141,0.7,142,0.391,143,1.377,144,0.589,145,1.81,146,1.993,149,1.27,150,0.881,151,1.256,155,0.579,159,0.643,161,0.628,163,0.579,165,1.015,167,0.589,168,0.499,170,0.285,171,0.294,173,1.151,179,0.325,185,0.872,186,1.125,188,1.148,189,0.756,190,1.336,192,1.879,193,0.318,195,0.3,211,1.357,213,0.363,219,1.695,223,0.614,225,0.643,226,0.786,227,0.363,228,1.16,229,0.872,230,1.31,232,0.526,233,0.786,236,1.969,237,0.318,238,2.508,240,0.542,241,1.242,243,0.55,244,0.3,245,1.103,246,0.569,247,0.471,252,1.192,257,0.476,259,0.614,264,0.281,265,0.342,268,1.27,271,0.318,273,0.559,276,0.437,278,1.422,282,1.745,283,0.669,284,0.733,285,0.285,287,0.305,289,0.683,292,1.16,293,2.683,298,0.854,300,0.342,304,3.199,309,1.587,315,0.311,317,0.678,320,0.318,324,1.618,325,0.628,326,0.363,327,1.103,329,0.411,332,0.579,333,0.411,340,0.7,341,1.234,343,0.932,345,0.614,346,0.265,347,0.643,350,0.863,351,0.276,354,0.342,356,0.526,357,0.519,362,1.125,363,0.589,369,0.411,374,1.587,375,0.376,376,1.789,379,0.305,381,0.411,382,0.294,386,1.204,387,0.643,388,0.559,389,0.289,390,4.064,391,1.407,393,0.872,395,0.305,399,0.311,411,0.891,414,1.513,419,1.256,421,0.855,427,0.798,430,0.376,433,0.725,434,0.376,437,0.3,446,0.411,447,0.946,448,0.363,449,2.849,450,0.391,453,0.956,462,0.351,463,2.257,468,0.411,469,0.3,472,0.512,473,2.321,474,0.3,475,0.342,476,0.294,477,0.628,478,0.678,481,0.614,483,0.699,487,0.411,489,0.794,490,0.956,491,1.414,494,1.21,501,0.351,502,0.932,505,1.824,506,0.678,508,0.376,516,0.363,518,0.583,519,0.794,520,0.363,523,0.351,534,0.318,535,0.258,537,0.601,545,0.753,547,0.342,552,0.725,558,0.351,559,0.756,562,0.7,563,1.713,570,0.534,575,0.839,578,1.191,582,0.325,608,0.724,609,0.824,611,0.289,616,0.456,619,0.845,620,0.376,621,1.357,622,0.932,640,0.985,646,0.786,647,0.855,648,0.55,650,0.855,653,0.411,661,0.351,662,1.16,666,0.559,670,0.932,676,0.437,679,0.289,683,1.362,684,0.3,688,1.795,693,1.096,697,0.614,707,0.311,708,0.376,711,0.265,712,0.519,725,0.659,727,0.699,731,0.333,732,0.569,744,0.333,746,0.628,747,0.376,751,0.643,753,0.342,763,0.437,764,1.225,767,0.956,768,1.234,770,0.411,771,0.376,777,0.437,783,0.437,785,0.294,786,0.376,787,0.342,789,0.932,792,0.363,797,0.482,799,0.411,800,0.437,809,1.669,811,1.052,812,1.015,813,0.351,816,0.333,817,0.55,818,0.391,823,1.242,835,1.015,841,0.794,842,0.285,855,0.376,857,0.437,859,0.411,860,1.014,874,0.311,877,0.678,886,0.855,889,0.258,894,1.148,897,0.437,902,0.289,903,1.571,908,0.391,909,1.046,910,0.837,912,0.333,913,0.839,918,0.678,919,0.325,926,0.311,935,0.559,940,1.451,950,0.318,976,0.363,1019,0.984,1104,0.289,1111,0.7,1112,0.794,1113,0.376,1122,0.305,1124,0.376,1128,0.391,1129,0.411,1141,0.589,1142,0.984,1145,0.351,1146,0.342,1147,0.318,1183,0.351,1185,1.474,1192,0.333,1194,1.451,1201,0.628,1205,0.318,1207,0.285,1248,0.333,1286,0.342,1298,0.285,1305,0.333,1343,1.052,1346,1.316,1359,0.333,1362,0.376,1364,0.824,1366,0.351,1371,0.342,1376,0.872,1378,0.391,1390,0.725,1397,0.333,1398,0.249,1408,0.265,1409,0.391,1414,0.91,1419,0.614,1441,1.795,1451,0.872,1456,0.311,1464,0.872,1465,0.342,1466,1.096,1467,0.363,1469,0.376,1473,0.774,1475,0.643,1477,0.363,1480,2.226,1527,0.437,1539,0.376,1549,0.285,1552,0.376,1556,0.285,1557,0.411,1562,1.174,1581,0.311,1633,0.845,1645,0.391,1673,0.845,1686,0.376,1692,0.411,1730,0.845,1733,0.7,1739,0.376,1762,0.845,1775,0.678,1792,0.89,1796,0.643,1798,0.351,1813,0.333,1832,0.342,1858,1.096,1864,1.052,1874,0.725,1875,3.47,1890,0.725,1917,0.363,1920,0.411,1931,1.052,1935,0.845,1937,1.174,1952,0.7,1990,0.391,1991,0.411,2006,0.3,2031,0.376,2049,0.325,2055,0.569,2068,0.391,2070,1.311,2079,0.437,2087,0.342,2097,1.288,2127,0.363,2134,0.376,2135,1.234,2138,0.411,2168,1.456,2170,0.411,2176,0.756,2192,0.845,2193,0.376,2195,0.342,2204,0.318,2212,0.376,2221,0.325,2224,0.351,2277,0.391,2279,0.411,2288,1.052,2301,0.351,2303,0.437,2311,0.756,2323,0.7,2333,0.437,2336,0.614,2337,1.225,2342,0.351,2344,0.391,2350,0.391,2374,0.614,2385,0.333,2389,0.351,2413,0.363,2414,0.391,2429,0.411,2430,0.659,2439,0.559,2473,0.391,2478,0.363,2482,0.437,2586,0.659,2594,0.351,2607,0.342,2615,0.391,2650,0.351,2653,1.739,2676,0.351,2703,0.411,2705,0.411,2709,1.151,2753,0.285,2754,0.376,2765,0.351,2794,0.342,2877,0.376,2878,0.411,2879,0.305,2893,0.351,2897,0.794,2926,0.305,2934,0.7,2954,0.363,3013,1.096,3026,0.391,3084,0.342,3086,0.628,3098,0.756,3104,0.351,3105,0.391,3173,1.587,3174,0.351,3177,0.91,3197,1.225,3301,0.91,3346,0.376,3356,0.391,3383,1.151,3428,0.411,3445,0.391,3492,0.363,3498,0.7,3499,0.311,3628,0.437,3631,0.391,3637,0.342,3647,0.756,3656,3.11,3703,0.285,3715,1.225,3728,0.376,3729,1.31,3757,0.437,3777,0.363,3778,0.376,3782,0.391,3788,1.581,3794,1.225,3798,0.984,3832,0.437,3847,0.342,4106,0.845,4116,0.351,4120,0.391,4122,0.376,4148,0.437,4149,0.411,4205,0.437,4270,0.411,4284,0.437,4288,0.391,4291,0.351,4295,0.376,4321,0.376,4379,0.725,4381,0.411,4391,0.411,4491,0.756,4529,0.7,4541,0.725,4544,0.391,4560,0.363,4597,0.351,4603,0.342,4631,1.485,4653,0.411,4663,0.437,4697,0.411,4787,0.411,4797,0.437,4837,0.437,4867,0.411,4943,0.376,5104,0.391,5130,0.391,5162,0.376,5266,0.411,5303,1.151,5375,0.437,5382,0.845,5408,0.411,5454,0.411,5494,0.391,5507,0.437,5565,0.437,5582,0.391,5648,1.151,5750,0.756,5754,0.437,5759,1.096,5764,0.437,5767,0.437,5801,0.437,5807,0.376,5810,0.411,5823,1.414,5851,0.437,5875,1.414,5877,0.391,5892,0.756,5922,0.363,5937,0.391,5945,0.437,5947,0.391,5953,0.437,5960,0.437,5966,0.794,5999,0.411,6001,0.391,6059,0.411,6130,0.376,6180,0.437,6290,0.437,6293,0.437,6391,0.363,6395,0.376,6439,0.376,6451,0.376,6507,0.333,6580,1.096,6627,0.794,6637,0.391,6661,1.799,6685,0.411,6897,0.437,6999,0.411,7007,1.096,7019,0.411,7021,1.225,7043,0.845,7044,0.411,7045,0.794,7046,0.845,7047,0.437,7048,0.437,7049,0.437,7050,0.437,7051,0.437,7091,0.7,7093,0.411,7102,0.437,7135,0.437,7136,0.411,7138,0.437,7139,1.151,7140,0.437,7144,0.376,7145,0.437,7146,0.437,7147,0.437,7148,0.437,7149,1.151,7150,0.437,7160,0.794,7175,0.437,7192,1.357,7193,0.391,7194,0.437,7206,0.437,7212,0.437,7214,0.411,7282,0.794,7363,0.437,7373,0.411,7424,0.725,7428,1.015,7430,0.437,7454,3.312,7455,0.437,7456,0.437,7458,0.922,7459,0.478,7460,0.478,7461,0.478,7462,0.478,7463,0.478,7464,0.478,7465,0.478,7466,0.478,7467,0.478,7468,0.478,7469,2.09,7470,0.478,7471,0.478,7472,0.478,7473,0.437,7474,0.845,7475,0.478,7476,0.478,7477,0.922,7478,0.437,7479,0.478,7480,0.478,7481,0.478,7482,0.478,7483,0.478,7484,0.478,7485,0.478,7486,0.478,7487,0.478,7488,0.478,7489,0.478,7490,0.478,7491,0.478,7492,0.478,7493,0.922,7494,0.478,7495,0.478,7496,0.478,7497,0.437,7498,0.437,7499,0.478,7500,0.478,7501,0.437,7502,0.478,7503,1.726,7504,0.922,7505,0.922,7506,0.922,7507,0.922,7508,0.922,7509,0.478,7510,0.478,7511,0.478,7512,0.437,7513,0.478,7514,0.756,7515,0.478,7516,0.437,7517,0.478,7518,0.922,7519,0.478,7520,0.478,7521,0.437,7522,0.478,7523,0.478,7524,1.337,7525,1.337,7526,0.922,7527,0.437,7528,0.478,7529,0.478,7530,0.478,7531,0.478,7532,0.478,7533,0.478,7534,0.478,7535,0.478,7536,0.478,7537,0.922,7538,0.478,7539,0.478,7540,0.478,7541,0.478,7542,0.478,7543,0.478,7544,0.478,7545,0.478,7546,0.478,7547,0.478,7548,0.478,7549,0.478,7550,0.478,7551,0.845,7552,0.478,7553,0.478,7554,0.478,7555,0.478,7556,0.922,7557,0.437,7558,0.437,7559,0.478,7560,0.478,7561,0.437,7562,0.478,7563,0.478,7564,0.437,7565,0.922,7566,0.922,7567,0.478,7568,0.478,7569,0.478,7570,0.478,7571,0.478,7572,0.478,7573,0.478,7574,0.478,7575,0.478,7576,0.437,7577,0.478,7578,0.478,7579,0.478,7580,0.478,7581,0.437,7582,0.478,7583,0.478,7584,0.437,7585,0.376,7586,0.411,7587,0.478,7588,0.478,7589,0.478,7590,0.437,7591,0.478,7592,0.437,7593,0.478,7594,0.437]],["component/43",[162,0.398]],["keyword/43",[]],["title/44-1",[20,17.474,185,34.276,280,37.606,609,32.419]],["name/44-1",[]],["text/44-1",[]],["component/44-1",[]],["keyword/44-1",[]],["title/44-2",[91,41.365,324,34.996,414,26.026,797,27.468]],["name/44-2",[]],["text/44-2",[]],["component/44-2",[]],["keyword/44-2",[]],["title/44-3",[8,10.17,17,19.497,797,24.472,1875,32.648,2212,36.853]],["name/44-3",[]],["text/44-3",[]],["component/44-3",[]],["keyword/44-3",[]],["title/44-4",[3,20.431,8,10.17,25,17.914,1546,29.945,1792,31.179]],["name/44-4",[]],["text/44-4",[]],["component/44-4",[]],["keyword/44-4",[]],["title/44-5",[8,11.415,751,36.646,1470,37.606,7595,48.173]],["name/44-5",[]],["text/44-5",[]],["component/44-5",[]],["keyword/44-5",[]],["title/44-6",[28,22.22,145,28.465,756,41.365,1470,37.606]],["name/44-6",[]],["text/44-6",[]],["component/44-6",[]],["keyword/44-6",[]],["title/44-7",[302,57.074,5750,57.074]],["name/44-7",[]],["text/44-7",[]],["component/44-7",[]],["keyword/44-7",[]],["title/44-8",[52,24.563,228,29.201,792,39.923,6869,43.098]],["name/44-8",[]],["text/44-8",[]],["component/44-8",[]],["keyword/44-8",[]],["title/44-9",[7144,54.78,7596,69.637]],["name/44-9",[]],["text/44-9",[]],["component/44-9",[]],["keyword/44-9",[]],["title/44-10",[1376,54.176]],["name/44-10",[]],["text/44-10",[]],["component/44-10",[]],["keyword/44-10",[]],["title/44-11",[139,49.584]],["name/44-11",[]],["text/44-11",[]],["component/44-11",[]],["keyword/44-11",[]],["title/44-12",[8,9.169,17,17.58,25,16.152,301,25.608,318,34.62,811,33.228]],["name/44-12",[]],["text/44-12",[]],["component/44-12",[]],["keyword/44-12",[]],["title/44-13",[20,19.912,418,44.085,2204,39.879]],["name/44-13",[]],["text/44-13",[]],["component/44-13",[]],["keyword/44-13",[]],["title/44-14",[703,59.44]],["name/44-14",[]],["text/44-14",[]],["component/44-14",[]],["keyword/44-14",[]],["title/44-15",[8,13.007,248,33.275,812,45.493]],["name/44-15",[]],["text/44-15",[]],["component/44-15",[]],["keyword/44-15",[]],["title/44-16",[8,13.007,248,33.275,2877,47.137]],["name/44-16",[]],["text/44-16",[]],["component/44-16",[]],["keyword/44-16",[]],["title/44-17",[3,22.932,8,11.415,248,29.201,7597,43.098]],["name/44-17",[]],["text/44-17",[]],["component/44-17",[]],["keyword/44-17",[]],["title/44-18",[3,15.393,8,12.129,50,15.648,138,22.562,216,20.736,248,19.601,7597,28.929]],["name/44-18",[]],["text/44-18",[]],["component/44-18",[]],["keyword/44-18",[]],["title/44-19",[3,22.932,8,11.415,248,29.201,3656,37.606]],["name/44-19",[]],["text/44-19",[]],["component/44-19",[]],["keyword/44-19",[]],["title/44-20",[8,13.007,248,33.275,7188,51.584]],["name/44-20",[]],["text/44-20",[]],["component/44-20",[]],["keyword/44-20",[]],["title/44-21",[8,10.17,20,15.568,219,32.648,248,26.015,7598,40.33]],["name/44-21",[]],["text/44-21",[]],["component/44-21",[]],["keyword/44-21",[]],["title/44-22",[8,13.007,248,33.275,7436,51.584]],["name/44-22",[]],["text/44-22",[]],["component/44-22",[]],["keyword/44-22",[]],["title/44",[3,14.224,8,11.388,797,17.038,1470,23.326,1471,22.194,1473,18.879,2338,26.732,7428,24.763]],["name/44",[1470,0.673]],["text/44",[0,1.28,3,3.417,5,0.495,8,2.553,11,4.114,12,4.201,14,3.652,15,1.033,17,4.535,19,0.776,20,3.489,22,1.632,23,1.203,24,3.374,25,3.964,28,1.977,32,1.757,34,2.993,35,4.425,39,0.413,45,1.865,47,1.527,48,1.318,50,2.236,52,3.585,53,0.401,56,2.384,58,0.408,61,0.74,62,0.487,65,0.714,67,0.995,68,0.519,71,0.462,73,1.055,76,1.2,77,1.215,78,3.191,79,0.474,80,0.892,81,1.186,82,1.078,85,0.445,87,1.104,90,0.639,91,1.246,92,0.549,95,0.445,100,0.502,104,0.792,105,0.435,107,3.159,108,0.892,113,0.456,114,0.639,123,0.405,124,0.847,125,0.847,128,3.052,130,2.809,131,2.4,132,0.69,134,1.976,136,0.502,137,0.725,138,3.223,139,0.945,143,1.122,144,0.538,145,4.995,150,1.146,151,1.464,154,0.468,166,0.573,167,0.538,185,1.033,190,0.538,192,2.269,206,0.639,210,0.62,214,0.62,216,2.748,219,1.564,220,1.166,222,0.51,226,0.495,228,3.603,229,3.049,233,0.931,234,0.725,241,1.146,243,0.945,244,0.994,246,0.519,247,2.186,248,3.603,249,1.408,252,0.904,253,0.502,257,1.159,259,0.56,261,0.573,268,0.62,270,0.502,278,0.818,280,1.605,282,0.904,285,0.502,289,1.719,290,1.078,292,1.574,298,1.111,300,1.133,301,1.718,302,1.839,313,2.44,317,0.62,318,4.662,324,1.493,327,0.538,341,2.749,346,0.468,347,1.564,350,0.421,351,1.64,356,1.28,357,0.474,358,0.538,386,2.118,387,0.587,388,0.51,389,0.51,391,1.448,393,0.549,394,0.56,411,1.986,412,0.502,413,1.055,416,0.602,418,1.166,419,0.435,427,1.691,440,1.417,444,0.69,447,1.553,449,1.651,469,1.408,471,1.166,473,5.101,475,0.602,476,0.977,477,1.078,478,0.62,486,0.538,490,0.602,492,0.639,494,1.299,496,0.69,502,2.345,505,0.945,518,0.691,520,0.639,521,0.662,533,0.43,534,1.055,536,1.299,540,0.56,570,0.917,575,0.528,577,1.932,578,1.099,582,0.573,608,0.858,609,2.074,616,0.784,622,0.587,624,2.151,629,1.166,640,0.48,650,0.538,662,1.574,664,0.62,670,0.587,681,0.961,682,0.51,688,1.033,702,0.662,703,1.133,708,0.662,727,0.828,732,0.519,744,0.587,751,2.679,752,0.771,756,2.229,772,1.013,784,1.364,789,1.564,797,2.809,799,0.725,802,0.602,811,5.285,812,3.25,813,0.62,815,0.528,822,1.976,842,0.945,843,2.679,860,0.495,876,1.133,877,0.62,892,1.452,894,1.493,903,2.442,909,1.718,913,0.528,928,0.931,935,0.51,940,1.339,941,1.388,948,0.62,1186,1.839,1196,1.928,1197,1.975,1205,1.493,1209,0.639,1240,0.587,1323,1.928,1346,0.456,1355,0.602,1376,0.549,1414,1.078,1448,0.662,1451,0.549,1458,1.299,1464,1.463,1469,1.246,1470,6.252,1471,0.573,1473,0.487,1475,1.564,1480,1.886,1511,1.104,1542,1.364,1543,1.246,1546,1.811,1552,4.7,1555,1.299,1557,1.364,1570,1.765,1595,0.573,1658,0.69,1739,1.246,1748,0.639,1763,0.69,1792,0.56,1796,0.587,1839,0.725,1855,0.639,1860,0.69,1861,0.725,1872,0.602,1875,0.587,1922,0.56,1982,1.299,1988,1.932,2006,0.528,2020,0.69,2055,1.383,2087,0.602,2121,1.299,2127,2.554,2135,1.133,2168,0.587,2195,0.602,2204,1.886,2221,0.573,2224,0.62,2238,0.639,2278,0.771,2290,1.932,2301,0.62,2311,1.299,2323,1.203,2336,1.493,2338,0.69,2342,0.62,2381,1.299,2391,0.639,2439,0.961,2548,0.662,2586,1.133,2604,0.639,2638,0.771,2646,0.725,2653,0.602,2676,0.62,2732,1.203,2754,0.662,2757,0.725,2877,0.662,2879,1.013,2961,3.508,2978,0.573,3018,0.587,3084,1.133,3098,1.299,3173,1.203,3177,2.289,3295,2.849,3301,1.928,3384,0.639,3420,0.62,3475,3.346,3498,1.203,3650,4.536,3656,0.602,3825,0.725,4158,0.771,4291,0.62,4321,1.246,4340,0.662,4364,0.771,4411,0.662,4459,0.771,4491,2.323,4513,0.725,4575,0.725,4599,0.771,4603,0.602,4697,0.725,4817,0.771,4913,0.771,5084,1.364,5239,1.364,5294,1.246,5373,1.299,5380,3.309,5383,0.662,5400,0.725,5409,0.725,5582,0.69,5605,0.662,5819,0.662,5870,0.771,5875,0.69,5916,0.771,5943,0.725,5947,0.69,5965,0.69,6093,0.771,6102,0.771,6155,0.725,6383,0.771,6395,1.765,6451,0.662,6522,0.725,6580,0.69,6661,0.725,6662,2.056,6869,3.508,6974,0.771,6994,0.725,7007,0.69,7015,1.452,7045,0.725,7093,1.932,7144,0.662,7172,0.725,7178,1.452,7188,1.932,7193,1.299,7306,2.596,7428,2.151,7436,1.364,7498,1.452,7514,1.299,7521,0.771,7595,1.452,7597,4.133,7598,1.364,7599,0.842,7600,0.725,7601,0.842,7602,0.842,7603,1.584,7604,0.842,7605,0.842,7606,1.364,7607,0.842,7608,0.842,7609,0.842,7610,0.842,7611,0.842,7612,1.584,7613,0.842,7614,0.842,7615,2.056,7616,1.452,7617,0.842,7618,0.842,7619,1.584,7620,1.584,7621,0.842,7622,0.842,7623,0.842,7624,0.842,7625,0.842,7626,0.842,7627,0.842,7628,0.771,7629,0.842,7630,0.771,7631,0.842,7632,0.842,7633,0.842,7634,0.771,7635,0.842,7636,0.771,7637,0.842,7638,1.584,7639,0.842,7640,0.842,7641,0.842,7642,0.842,7643,0.842,7644,1.452,7645,1.584,7646,0.842,7647,0.842,7648,0.842,7649,0.842,7650,0.842,7651,0.842,7652,0.842,7653,1.584]],["component/44",[162,0.398]],["keyword/44",[]],["title/45-1",[1488,57.074,1634,57.074]],["name/45-1",[]],["text/45-1",[]],["component/45-1",[]],["keyword/45-1",[]],["title/45-2",[382,42.932,1596,51.233]],["name/45-2",[]],["text/45-2",[]],["component/45-2",[]],["keyword/45-2",[]],["title/45-3",[7654,76.142]],["name/45-3",[]],["text/45-3",[]],["component/45-3",[]],["keyword/45-3",[]],["title/45-4",[269,49.802,947,47.386]],["name/45-4",[]],["text/45-4",[]],["component/45-4",[]],["keyword/45-4",[]],["title/45-5",[157,37.697,7655,63.796]],["name/45-5",[]],["text/45-5",[]],["component/45-5",[]],["keyword/45-5",[]],["title/45-6",[157,32.437,7585,47.137,7586,51.584]],["name/45-6",[]],["text/45-6",[]],["component/45-6",[]],["keyword/45-6",[]],["title/45-7",[157,32.437,263,45.493,7585,47.137]],["name/45-7",[]],["text/45-7",[]],["component/45-7",[]],["keyword/45-7",[]],["title/45-8",[8,10.17,25,17.914,157,25.36,264,27.521,7585,36.853]],["name/45-8",[]],["text/45-8",[]],["component/45-8",[]],["keyword/45-8",[]],["title/45-9",[8,13.007,157,32.437,7656,54.895]],["name/45-9",[]],["text/45-9",[]],["component/45-9",[]],["keyword/45-9",[]],["title/45-10",[8,13.007,157,32.437,7657,54.895]],["name/45-10",[]],["text/45-10",[]],["component/45-10",[]],["keyword/45-10",[]],["title/45-11",[8,13.007,157,32.437,7658,54.895]],["name/45-11",[]],["text/45-11",[]],["component/45-11",[]],["keyword/45-11",[]],["title/45-12",[50,17.049,52,17.964,157,20.818,2238,29.198,7659,35.232,7660,35.232,7661,35.232]],["name/45-12",[]],["text/45-12",[]],["component/45-12",[]],["keyword/45-12",[]],["title/45-13",[4125,71.55]],["name/45-13",[]],["text/45-13",[]],["component/45-13",[]],["keyword/45-13",[]],["title/45-14",[8,11.415,193,34.996,220,38.687,388,31.879]],["name/45-14",[]],["text/45-14",[]],["component/45-14",[]],["keyword/45-14",[]],["title/45-15",[7662,76.142]],["name/45-15",[]],["text/45-15",[]],["component/45-15",[]],["keyword/45-15",[]],["title/45-16",[8,13.007,292,33.275,300,42.853]],["name/45-16",[]],["text/45-16",[]],["component/45-16",[]],["keyword/45-16",[]],["title/45-17",[8,13.007,292,33.275,616,29.657]],["name/45-17",[]],["text/45-17",[]],["component/45-17",[]],["keyword/45-17",[]],["title/45-18",[8,13.007,2916,45.493,4255,51.584]],["name/45-18",[]],["text/45-18",[]],["component/45-18",[]],["keyword/45-18",[]],["title/45-19",[8,13.007,388,36.327,725,42.853]],["name/45-19",[]],["text/45-19",[]],["component/45-19",[]],["keyword/45-19",[]],["title/45-20",[5,40.909,518,30.369]],["name/45-20",[]],["text/45-20",[]],["component/45-20",[]],["keyword/45-20",[]],["title/45-21",[1098,54.78,1534,57.074]],["name/45-21",[]],["text/45-21",[]],["component/45-21",[]],["keyword/45-21",[]],["title/45-22",[1670,49.111,7663,54.895,7664,54.895]],["name/45-22",[]],["text/45-22",[]],["component/45-22",[]],["keyword/45-22",[]],["title/45-23",[8,10.17,7665,42.918,7666,42.918,7667,42.918,7668,46.848]],["name/45-23",[]],["text/45-23",[]],["component/45-23",[]],["keyword/45-23",[]],["title/45-24",[7669,63.796,7670,69.637]],["name/45-24",[]],["text/45-24",[]],["component/45-24",[]],["keyword/45-24",[]],["title/45-25",[28,19.796,107,27.521,7671,42.918,7672,42.918,7673,42.918]],["name/45-25",[]],["text/45-25",[]],["component/45-25",[]],["keyword/45-25",[]],["title/45-26",[8,10.17,179,31.879,311,35.568,731,32.648,7600,40.33]],["name/45-26",[]],["text/45-26",[]],["component/45-26",[]],["keyword/45-26",[]],["title/45-27",[7674,69.637,7675,69.637]],["name/45-27",[]],["text/45-27",[]],["component/45-27",[]],["keyword/45-27",[]],["title/45-28",[8,13.007,305,47.137,1370,44.085]],["name/45-28",[]],["text/45-28",[]],["component/45-28",[]],["keyword/45-28",[]],["title/45-29",[8,13.007,71,32.847,252,34.191]],["name/45-29",[]],["text/45-29",[]],["component/45-29",[]],["keyword/45-29",[]],["title/45-30",[8,10.17,28,19.796,7119,42.918,7424,36.853,7676,46.848]],["name/45-30",[]],["text/45-30",[]],["component/45-30",[]],["keyword/45-30",[]],["title/45-31",[2204,55.314]],["name/45-31",[]],["text/45-31",[]],["component/45-31",[]],["keyword/45-31",[]],["title/45-32",[1931,54.78,6635,54.78]],["name/45-32",[]],["text/45-32",[]],["component/45-32",[]],["keyword/45-32",[]],["title/45-33",[138,44.512,7677,69.637]],["name/45-33",[]],["text/45-33",[]],["component/45-33",[]],["keyword/45-33",[]],["title/45-34",[8,13.007,138,38.301,3778,47.137]],["name/45-34",[]],["text/45-34",[]],["component/45-34",[]],["keyword/45-34",[]],["title/45-35",[117,56.556]],["name/45-35",[]],["text/45-35",[]],["component/45-35",[]],["keyword/45-35",[]],["title/45-36",[1,56.556]],["name/45-36",[]],["text/45-36",[]],["component/45-36",[]],["keyword/45-36",[]],["title/45-37",[2,59.44]],["name/45-37",[]],["text/45-37",[]],["component/45-37",[]],["keyword/45-37",[]],["title/45-38",[4,61.148]],["name/45-38",[]],["text/45-38",[]],["component/45-38",[]],["keyword/45-38",[]],["title/45-39",[4152,71.55]],["name/45-39",[]],["text/45-39",[]],["component/45-39",[]],["keyword/45-39",[]],["title/45",[981,57.074,2451,54.78]],["name/45",[7678,0.941]],["text/45",[0,0.15,1,0.179,2,1.18,3,0.628,4,1.363,5,1.204,6,0.707,7,0.319,8,2.555,9,1.704,11,3.807,12,4.096,13,0.893,14,3.983,16,0.697,17,3.89,19,1.879,20,3.197,21,0.813,22,1.653,24,3.685,25,4.045,28,3.204,30,0.2,31,0.845,32,0.752,33,0.146,34,3.684,35,4.011,36,0.36,37,1.325,39,0.705,41,0.227,45,3.222,46,0.358,47,0.677,48,1.315,50,3.268,51,1.162,52,3.493,53,1.549,56,2.784,57,0.299,58,2.972,59,0.611,62,0.152,63,0.15,65,1.963,66,0.392,67,3.405,68,0.469,70,0.207,71,1.867,72,0.36,73,0.344,74,0.194,75,0.172,76,0.141,77,0.143,78,3.598,79,0.56,80,0.56,81,0.273,82,0.517,83,1.285,84,0.295,85,0.872,87,0.184,89,0.291,90,0.2,91,1.298,94,0.165,95,1.878,96,0.928,97,0.241,100,0.729,101,4.274,104,0.926,105,1.517,107,4.331,108,1.043,109,1.035,113,0.661,114,0.577,117,1.769,118,0.227,119,0.344,120,0.712,121,0.184,122,0.753,123,2.564,124,1.482,125,0.991,128,1.5,130,2.683,131,3.285,132,0.424,134,1.726,135,0.227,136,0.157,138,2.081,139,0.729,141,0.2,142,0.216,143,0.498,144,0.168,145,0.779,146,0.424,147,0.267,148,0.227,149,0.38,150,0.624,151,2.249,153,0.179,154,0.678,155,0.165,157,3.961,158,0.227,159,0.184,161,0.179,163,0.165,166,0.179,167,0.636,168,0.28,170,0.157,171,0.162,179,0.831,182,0.2,185,0.496,186,1.335,187,0.352,190,0.168,192,1.926,193,0.813,194,0.313,195,0.624,206,0.577,216,2.088,217,0.207,218,0.392,219,0.53,220,0.38,223,0.175,225,0.184,227,0.2,228,0.799,229,0.649,230,0.2,232,1.169,233,0.717,235,0.539,237,0.175,238,0.369,240,0.447,241,1.237,243,1.752,244,1.631,245,0.636,246,0.613,247,1.5,248,0.287,249,0.477,252,0.697,253,0.157,254,0.697,255,0.655,256,0.473,257,1.517,260,0.813,261,1.394,263,0.577,264,1.527,265,0.37,266,0.216,267,0.175,269,3.746,270,0.594,272,0.517,273,0.16,274,0.207,277,0.162,278,1.981,280,1.029,282,1.382,283,1.386,284,0.789,285,0.454,287,0.486,288,0.406,289,1.663,291,0.194,292,4.396,294,0.179,298,0.816,300,1.18,301,0.16,302,0.216,304,1.214,305,2.18,306,0.184,308,0.2,311,0.755,312,0.188,314,0.623,316,0.577,317,0.559,318,0.424,320,0.344,321,0.857,323,0.194,338,0.162,342,0.477,343,0.184,344,0.544,345,0.506,346,0.799,347,0.184,350,3.215,351,1.794,352,0.16,353,0.2,354,0.188,356,0.434,357,0.291,358,0.168,361,0.732,362,0.796,363,0.781,365,0.38,373,0.352,374,0.392,379,0.636,381,0.445,382,1.811,384,0.216,386,0.816,387,0.184,388,0.74,389,0.16,390,0.755,391,0.735,395,1.31,396,0.517,398,0.603,399,1.335,406,0.227,409,1.123,410,0.517,411,0.957,412,1.752,413,0.958,414,0.492,418,0.732,419,1.156,424,0.473,425,0.227,427,0.729,437,0.624,440,0.258,455,0.2,458,0.53,469,0.324,471,0.194,472,0.287,474,0.766,476,0.319,478,0.194,481,0.175,483,0.752,486,0.33,487,1.051,488,0.216,489,0.445,490,0.188,492,0.392,494,0.707,501,0.194,502,0.36,505,1.222,506,0.194,516,0.577,518,0.332,522,0.227,523,0.194,525,0.2,531,0.227,532,0.227,534,0.175,536,0.216,537,0.172,539,0.168,545,0.148,550,0.783,553,0.216,555,0.216,558,0.194,562,0.2,570,0.299,575,0.165,577,0.227,578,0.373,582,0.517,587,0.168,591,0.544,604,0.241,607,0.44,608,0.28,609,0.613,611,0.16,613,0.162,614,0.461,615,1.972,616,0.376,621,2.438,622,1.003,624,0.2,627,0.473,629,0.194,632,0.227,633,0.2,638,0.36,640,1.169,644,0.194,646,0.304,647,0.168,648,0.308,649,0.216,650,0.168,659,0.227,662,1.029,664,0.732,666,0.16,667,0.598,669,0.207,670,1.003,674,0.697,683,1.075,684,0.624,688,0.337,690,0.207,697,0.175,701,0.624,725,0.188,727,0.138,731,0.36,737,0.168,741,0.216,742,0.38,743,0.53,745,0.74,746,1.122,748,0.227,751,0.184,755,0.227,756,0.207,765,1.093,766,0.38,767,1.029,768,0.712,772,1.184,773,0.207,774,0.227,780,0.445,785,0.162,786,0.207,789,1.291,794,0.241,795,0.241,797,0.27,802,0.188,809,0.313,811,0.783,813,0.194,815,0.165,816,0.693,817,0.454,819,0.241,822,0.717,828,0.2,833,0.961,834,0.38,837,0.623,838,0.227,842,0.157,843,1.291,849,0.477,854,0.241,855,0.406,867,0.227,869,0.598,870,0.816,874,0.172,876,0.188,877,1.912,880,0.184,886,0.33,889,1.212,893,0.165,894,0.175,896,0.227,902,0.461,903,0.821,909,1.242,910,0.251,913,1.162,920,0.216,924,0.424,926,0.649,927,0.162,928,0.447,931,0.188,935,0.313,938,0.577,940,2.447,943,0.2,945,0.194,947,2.108,948,0.194,965,1.905,981,0.216,1020,0.179,1036,0.172,1054,0.227,1062,0.36,1102,0.424,1104,1,1128,0.424,1137,0.2,1141,0.486,1142,0.194,1146,0.188,1151,0.207,1169,0.477,1174,0.445,1178,0.184,1184,0.486,1185,0.313,1194,0.157,1201,0.179,1203,0.887,1205,0.175,1208,0.227,1209,1.406,1284,0.207,1286,0.37,1298,0.157,1303,0.165,1304,1.051,1310,0.216,1323,0.517,1325,0.194,1333,0.194,1334,0.207,1337,0.179,1342,0.2,1346,1.212,1359,1.291,1360,0.175,1370,0.38,1376,0.649,1377,1.49,1381,2.045,1402,0.392,1411,0.624,1412,0.194,1414,0.517,1435,0.188,1440,0.424,1441,0.337,1444,0.729,1448,0.207,1451,0.496,1453,1.363,1456,0.172,1458,0.152,1462,0.227,1465,0.188,1473,0.44,1481,0.216,1484,0.227,1485,0.216,1488,0.623,1498,0.207,1500,0.207,1502,0.168,1510,0.241,1544,0.227,1549,0.308,1550,0.241,1555,0.816,1559,0.655,1562,0.979,1570,0.207,1571,0.406,1572,0.227,1577,0.473,1578,0.216,1581,0.172,1595,0.352,1596,0.38,1618,0.598,1619,0.2,1620,0.506,1621,0.227,1623,0.473,1634,1.001,1636,0.473,1640,0.912,1641,0.227,1642,0.227,1646,0.33,1652,0.898,1656,0.227,1658,0.424,1663,0.473,1667,0.697,1670,0.816,1671,0.912,1675,0.697,1678,0.184,1681,0.517,1690,0.227,1695,0.216,1713,0.168,1718,0.655,1721,0.216,1739,0.406,1741,0.473,1742,0.216,1748,0.2,1749,0.216,1755,0.577,1759,0.241,1768,0.184,1774,0.598,1775,0.194,1776,0.2,1786,0.241,1796,0.184,1798,0.194,1812,0.194,1823,0.677,1832,0.37,1846,0.216,1869,0.216,1870,0.216,1873,1.051,1881,0.175,1886,0.241,1887,0.2,1897,0.241,1913,0.241,1918,0.424,1920,0.857,1921,0.38,1924,0.207,1926,0.577,1929,0.241,1931,0.598,1937,0.179,1944,0.445,1982,0.216,2006,1.035,2040,0.33,2042,0.227,2050,0.241,2053,0.227,2055,1.38,2059,0.38,2063,0.2,2068,0.216,2069,0.207,2070,0.165,2097,0.887,2114,0.241,2121,0.216,2127,0.755,2135,0.544,2143,0.241,2145,0.677,2162,0.857,2164,0.2,2175,0.697,2204,0.175,2212,0.406,2218,0.697,2221,0.179,2224,0.194,2226,0.559,2238,0.2,2252,0.454,2274,0.486,2275,0.445,2279,0.227,2290,0.227,2311,0.216,2323,0.577,2325,0.241,2341,0.188,2342,0.898,2344,0.216,2352,0.241,2353,0.241,2357,0.179,2360,0.227,2374,0.175,2382,0.194,2384,0.227,2385,0.184,2414,0.216,2421,0.697,2437,0.227,2439,0.313,2448,0.816,2451,0.207,2479,0.241,2481,0.227,2549,0.406,2552,0.241,2566,0.207,2586,0.37,2596,0.216,2631,0.424,2633,0.544,2646,0.227,2649,0.241,2653,0.37,2681,0.241,2686,0.755,2701,0.37,2719,0.227,2721,0.207,2734,0.179,2739,0.227,2748,0.194,2794,0.37,2796,0.227,2872,0.216,2887,0.188,2893,0.38,2894,0.406,2895,0.445,2916,0.577,2934,0.2,2958,0.241,2961,0.424,2968,0.175,2978,0.517,3000,0.227,3007,0.445,3031,0.406,3084,0.37,3095,0.227,3110,0.241,3134,0.241,3168,0.188,3172,0.227,3173,0.392,3174,0.194,3177,1.122,3178,0.207,3186,0.216,3201,0.188,3273,0.37,3295,0.175,3297,0.241,3301,0.179,3384,0.2,3427,0.216,3488,0.227,3499,0.172,3650,0.577,3706,0.2,3720,0.241,3729,0.577,3740,0.473,3750,0.216,3764,0.207,3772,0.241,3778,1.132,3779,0.623,3800,0.216,3803,0.406,3837,0.168,3846,0.241,3909,0.598,3924,0.241,3928,0.241,4056,0.473,4067,0.227,4104,0.2,4115,0.38,4124,0.227,4125,0.227,4131,0.241,4152,0.655,4159,0.857,4187,0.241,4230,0.227,4245,0.241,4255,1.239,4274,0.216,4300,0.227,4340,0.783,4470,0.598,4503,0.227,4504,0.216,4512,1.595,4528,0.241,4541,0.207,4575,0.445,4578,0.697,4603,0.37,4653,0.227,4669,0.623,4700,0.445,4709,0.227,4768,0.697,4787,0.227,4846,0.227,4852,0.216,4874,0.241,4882,0.227,4895,0.227,4907,0.241,4943,0.207,4945,0.241,5093,0.241,5104,0.424,5120,0.241,5127,0.241,5158,0.241,5159,0.655,5171,0.424,5239,0.227,5294,0.406,5303,0.227,5331,3.121,5332,1.318,5337,0.241,5405,0.227,5499,0.241,5500,0.216,5509,0.445,5537,0.241,5563,0.241,5569,0.241,5582,0.424,5586,0.227,5605,0.207,5621,0.473,5629,0.241,5753,0.241,5766,0.227,5768,0.241,5773,0.216,5781,0.857,5792,1.132,5810,0.445,5832,0.227,5875,0.216,5892,0.424,6021,0.697,6090,0.2,6099,0.241,6130,0.961,6139,0.216,6145,0.473,6155,0.857,6195,0.473,6260,1.119,6361,0.227,6372,0.241,6389,0.241,6391,0.2,6395,0.406,6403,0.216,6439,0.406,6442,0.227,6451,0.598,6522,1.239,6523,0.227,6533,0.241,6544,0.227,6629,1.318,6635,0.207,6637,0.216,6815,1.877,6840,0.216,6869,0.623,6873,0.227,6890,0.445,6891,0.445,6892,0.241,6905,0.227,6977,0.227,6999,0.227,7017,0.241,7028,0.241,7080,1.877,7091,0.577,7136,0.227,7139,0.227,7144,1.132,7157,0.216,7163,0.241,7171,0.241,7187,0.912,7193,0.816,7199,0.241,7202,1.119,7203,0.241,7207,0.241,7214,0.227,7229,0.241,7258,4.611,7285,0.241,7286,0.227,7312,0.473,7362,0.912,7400,0.473,7424,0.406,7428,0.392,7435,0.912,7446,0.445,7447,1.511,7448,0.473,7474,0.241,7478,0.473,7497,0.697,7501,0.241,7514,0.216,7516,0.241,7527,0.241,7551,0.241,7557,0.473,7558,0.473,7564,0.473,7581,0.241,7584,0.241,7585,2.18,7586,0.655,7592,0.241,7594,0.241,7597,0.424,7598,0.445,7600,0.445,7606,0.227,7616,0.241,7628,0.241,7634,0.241,7636,0.241,7644,0.241,7654,2.381,7655,1.511,7656,1.318,7657,0.697,7658,2.051,7659,0.473,7660,0.473,7661,0.241,7662,0.697,7663,1.119,7664,0.241,7665,0.473,7666,1.511,7667,0.241,7669,0.697,7671,1.511,7672,1.119,7673,0.241,7679,0.263,7680,0.263,7681,0.263,7682,0.263,7683,0.912,7684,0.263,7685,1.439,7686,0.517,7687,0.263,7688,0.517,7689,0.517,7690,0.263,7691,1.439,7692,0.76,7693,0.263,7694,0.263,7695,0.517,7696,0.263,7697,0.241,7698,0.263,7699,0.263,7700,0.517,7701,0.263,7702,0.263,7703,0.263,7704,0.517,7705,0.263,7706,0.263,7707,0.263,7708,0.263,7709,0.263,7710,0.263,7711,0.263,7712,0.263,7713,0.263,7714,0.263,7715,0.263,7716,0.263,7717,0.263,7718,0.517,7719,0.517,7720,0.517,7721,0.263,7722,0.263,7723,0.263,7724,0.263,7725,0.263,7726,0.263,7727,0.263,7728,0.263,7729,0.76,7730,0.517,7731,0.263,7732,0.517,7733,0.263,7734,0.263,7735,0.263,7736,0.263,7737,0.995,7738,0.263,7739,0.263,7740,1.221,7741,0.517,7742,0.263,7743,0.517,7744,0.517,7745,0.76,7746,0.263,7747,0.263,7748,0.263,7749,0.263,7750,0.517,7751,0.263,7752,0.263,7753,0.76,7754,0.263,7755,0.263,7756,0.263,7757,0.263,7758,0.263,7759,0.263,7760,0.263,7761,0.263,7762,0.263,7763,0.263,7764,0.263,7765,0.263,7766,0.517,7767,0.517,7768,0.263,7769,0.263,7770,0.263,7771,0.263,7772,0.263,7773,0.263,7774,0.263,7775,0.263,7776,0.263,7777,0.263,7778,0.263,7779,0.263,7780,0.263,7781,0.263,7782,0.263,7783,0.263,7784,0.263,7785,0.263,7786,0.517,7787,0.263,7788,0.517,7789,1.439,7790,0.263,7791,0.263,7792,0.263,7793,0.263,7794,0.263,7795,0.263,7796,0.76,7797,0.263,7798,0.76,7799,0.76,7800,0.263,7801,0.517,7802,0.76,7803,0.263,7804,0.263,7805,0.263,7806,0.263,7807,0.263,7808,0.912,7809,0.263,7810,0.263,7811,0.517,7812,0.517,7813,0.517,7814,0.517,7815,0.263,7816,0.263,7817,0.263,7818,0.263,7819,0.263,7820,0.517,7821,0.263,7822,0.517,7823,0.263,7824,0.263,7825,0.263,7826,0.263,7827,0.517,7828,0.263,7829,0.263,7830,0.263,7831,0.517,7832,0.517,7833,0.263,7834,0.263,7835,0.76,7836,0.263,7837,0.263,7838,0.517,7839,0.263,7840,0.263,7841,0.517,7842,0.263,7843,0.263,7844,0.263,7845,0.263,7846,0.263,7847,0.517,7848,0.263,7849,0.263,7850,0.517,7851,0.517,7852,0.263,7853,0.517,7854,0.263,7855,0.76,7856,0.517,7857,0.263,7858,0.263,7859,0.517,7860,0.263,7861,0.263,7862,0.263,7863,0.263,7864,0.263,7865,0.263,7866,0.263,7867,0.263,7868,0.263,7869,0.263,7870,0.263,7871,0.263,7872,0.517,7873,0.263,7874,0.241,7875,0.473,7876,0.263,7877,0.263,7878,0.263,7879,0.263,7880,0.517,7881,0.263,7882,0.263,7883,0.517,7884,0.517,7885,0.263,7886,0.263,7887,0.263,7888,2.422,7889,0.263,7890,0.263,7891,0.263,7892,0.263,7893,0.263,7894,0.263,7895,0.517,7896,0.473,7897,0.517,7898,0.517,7899,0.263,7900,0.263,7901,0.263,7902,0.263,7903,0.263,7904,0.263,7905,0.263,7906,0.517,7907,0.263,7908,0.263,7909,0.263,7910,0.263,7911,0.263,7912,0.263,7913,0.263,7914,0.517,7915,0.517,7916,0.517,7917,0.263,7918,0.263,7919,0.263,7920,0.263,7921,0.263,7922,0.263,7923,0.263,7924,0.263,7925,0.263,7926,0.263,7927,0.263,7928,0.263,7929,0.263,7930,0.263,7931,0.263,7932,0.263,7933,0.263,7934,0.263,7935,0.263,7936,0.263,7937,0.263,7938,0.263,7939,0.263]],["component/45",[162,0.398]],["keyword/45",[]],["title/46-1",[8,10.17,32,24.472,976,35.568,1040,33.504,1185,28.401]],["name/46-1",[]],["text/46-1",[]],["component/46-1",[]],["keyword/46-1",[]],["title/46-2",[8,13.007,161,40.774,1370,44.085]],["name/46-2",[]],["text/46-2",[]],["component/46-2",[]],["keyword/46-2",[]],["title/46-3",[8,15.07,61,21.883,236,33.504,7940,42.918]],["name/46-3",[]],["text/46-3",[]],["component/46-3",[]],["keyword/46-3",[]],["title/46-4",[8,13.007,61,27.99,616,29.657]],["name/46-4",[]],["text/46-4",[]],["component/46-4",[]],["keyword/46-4",[]],["title/46-5",[8,13.007,389,36.327,546,51.584]],["name/46-5",[]],["text/46-5",[]],["component/46-5",[]],["keyword/46-5",[]],["title/46-6",[20,11.729,65,15.915,1104,21.399,7941,35.297,7942,32.336,7943,32.336,7944,48.1]],["name/46-6",[]],["text/46-6",[]],["component/46-6",[]],["keyword/46-6",[]],["title/46-7",[514,34.996,605,43.098,2879,33.612,7944,45.268]],["name/46-7",[]],["text/46-7",[]],["component/46-7",[]],["keyword/46-7",[]],["title/46-8",[8,10.148,65,12.767,78,12.659,373,19.268,548,16.157,785,17.457,1104,17.166,5718,23.207,7945,25.94,7946,25.94]],["name/46-8",[]],["text/46-8",[]],["component/46-8",[]],["keyword/46-8",[]],["title/46-9",[235,28.465,514,34.996,1835,45.268,2861,39.923]],["name/46-9",[]],["text/46-9",[]],["component/46-9",[]],["keyword/46-9",[]],["title/46-10",[8,14.285,60,15.67,61,15.235,65,14.706,1371,23.326,4323,28.078,5724,25.658]],["name/46-10",[]],["text/46-10",[]],["component/46-10",[]],["keyword/46-10",[]],["title/46-11",[396,28.743,514,28.112,5724,33.228,5756,32.07,7947,42.24,7948,42.24]],["name/46-11",[]],["text/46-11",[]],["component/46-11",[]],["keyword/46-11",[]],["title/46-12",[65,23.709,744,36.646,1104,31.879,7949,52.584]],["name/46-12",[]],["text/46-12",[]],["component/46-12",[]],["keyword/46-12",[]],["title/46-13",[1543,65.381]],["name/46-13",[]],["text/46-13",[]],["component/46-13",[]],["keyword/46-13",[]],["title/46-14",[745,42.217,1370,51.233]],["name/46-14",[]],["text/46-14",[]],["component/46-14",[]],["keyword/46-14",[]],["title/46-15",[8,10.17,83,29.395,797,24.472,7950,42.918,7951,42.918]],["name/46-15",[]],["text/46-15",[]],["component/46-15",[]],["keyword/46-15",[]],["title/46-16",[50,17.049,592,28.294,694,27.504,3113,28.294,4183,33.107,6587,33.107,7952,33.107]],["name/46-16",[]],["text/46-16",[]],["component/46-16",[]],["keyword/46-16",[]],["title/46-17",[298,29.657,548,34.191,7953,54.895]],["name/46-17",[]],["text/46-17",[]],["component/46-17",[]],["keyword/46-17",[]],["title/46-18",[20,19.912,185,39.059,2654,47.137]],["name/46-18",[]],["text/46-18",[]],["component/46-18",[]],["keyword/46-18",[]],["title/46-19",[8,8.348,25,14.705,840,31.52,3113,28.294,4183,33.107,6587,33.107,7952,33.107]],["name/46-19",[]],["text/46-19",[]],["component/46-19",[]],["keyword/46-19",[]],["title/46-20",[4122,54.78,7446,59.948]],["name/46-20",[]],["text/46-20",[]],["component/46-20",[]],["keyword/46-20",[]],["title/46-21",[1511,57.922]],["name/46-21",[]],["text/46-21",[]],["component/46-21",[]],["keyword/46-21",[]],["title/46-22",[8,15.07,59,23.427,616,23.187,1922,31.179]],["name/46-22",[]],["text/46-22",[]],["component/46-22",[]],["keyword/46-22",[]],["title/46-23",[59,34.823,92,45.392]],["name/46-23",[]],["text/46-23",[]],["component/46-23",[]],["keyword/46-23",[]],["title/46-24",[8,13.943,59,21.123,60,20.294,61,19.731,5957,33.228]],["name/46-24",[]],["text/46-24",[]],["component/46-24",[]],["keyword/46-24",[]],["title/46-25",[50,23.312,76,28.12,78,23.508,3755,35.782]],["name/46-25",[]],["text/46-25",[]],["component/46-25",[]],["keyword/46-25",[]],["title/46-26",[20,17.474,2035,43.098,2038,43.098,7954,43.098]],["name/46-26",[]],["text/46-26",[]],["component/46-26",[]],["keyword/46-26",[]],["title/46-27",[2035,57.074,7954,57.074]],["name/46-27",[]],["text/46-27",[]],["component/46-27",[]],["keyword/46-27",[]],["title/46-28",[2038,57.074,7954,57.074]],["name/46-28",[]],["text/46-28",[]],["component/46-28",[]],["keyword/46-28",[]],["title/46-29",[8,10.17,1562,31.879,7955,46.848,7956,46.848,7957,46.848]],["name/46-29",[]],["text/46-29",[]],["component/46-29",[]],["keyword/46-29",[]],["title/46-30",[20,19.912,2731,54.895,7958,54.895]],["name/46-30",[]],["text/46-30",[]],["component/46-30",[]],["keyword/46-30",[]],["title/46-31",[8,9.169,60,20.294,61,19.731,4165,36.363,7959,42.24,7960,38.697]],["name/46-31",[]],["text/46-31",[]],["component/46-31",[]],["keyword/46-31",[]],["title/46-32",[8,13.007,3837,38.301,7961,54.895]],["name/46-32",[]],["text/46-32",[]],["component/46-32",[]],["keyword/46-32",[]],["title/46-33",[3404,65.381]],["name/46-33",[]],["text/46-33",[]],["component/46-33",[]],["keyword/46-33",[]],["title/46-34",[912,48.53,1535,44.512]],["name/46-34",[]],["text/46-34",[]],["component/46-34",[]],["keyword/46-34",[]],["title/46",[]],["name/46",[4324,0.656]],["text/46",[1,0.363,6,0.309,7,0.329,8,2.563,9,0.267,11,3.477,12,4.071,13,1.247,14,3.862,15,1.244,17,4.085,18,0.363,19,1.129,20,3.005,22,0.926,23,0.406,24,3.893,25,4.06,28,1.985,29,0.314,31,0.314,32,3.882,33,0.297,34,3.439,35,4.352,37,1.365,39,1.129,44,0.438,45,2.279,46,0.484,48,0.604,49,0.657,50,2.541,51,0.931,52,2.677,53,2.447,54,1.046,56,2.458,57,0.859,58,0.926,59,3.198,60,2.366,61,4.012,62,0.309,63,0.586,65,3.136,67,3.343,68,0.329,76,1.232,77,0.803,78,3.506,81,1.217,83,2.467,84,1.906,85,0.784,88,0.623,92,0.348,94,0.335,95,2.077,96,0.301,100,1.374,104,1.336,106,0.645,109,0.335,110,1.36,113,0.289,120,0.382,123,0.257,124,0.549,125,0.794,126,0.382,128,1.177,130,0.279,131,0.908,134,0.314,136,0.613,139,0.319,143,1.152,145,1.247,147,0.276,150,0.758,151,1.726,154,1.06,155,0.335,157,1.247,158,0.46,161,1.818,167,0.341,168,0.289,171,0.329,179,0.699,185,1.742,186,0.967,187,1.299,190,0.657,192,1.907,193,0.355,194,1.157,195,0.645,198,0.341,205,0.382,213,0.406,214,0.393,219,0.372,222,1.396,225,0.372,226,0.604,228,0.297,232,0.586,233,0.314,235,1.033,236,0.382,237,0.355,241,1.177,243,1.139,244,0.931,245,0.657,246,0.915,247,1.365,248,0.824,249,0.645,253,0.319,257,0.531,259,0.355,260,0.355,261,0.363,262,0.46,267,0.355,268,0.393,270,0.613,271,0.355,272,0.363,274,0.808,277,0.633,278,0.276,282,1.722,283,1.336,284,1.046,287,0.657,289,1.707,292,0.297,293,0.67,294,1.567,295,0.348,298,0.264,301,0.9,303,0.382,306,1.034,309,0.406,315,0.348,316,2.291,320,0.355,323,0.393,332,0.335,338,1.86,342,0.335,343,0.716,346,0.297,350,2.463,351,0.309,356,0.586,357,0.578,362,0.348,363,0.341,369,1.278,370,0.46,371,0.489,373,0.363,379,0.341,382,0.633,385,0.329,387,0.372,389,1.829,391,0.273,394,0.355,396,1.01,398,0.324,404,0.46,410,0.363,411,1.19,412,1.139,413,0.684,431,0.42,438,0.355,440,3.771,444,1.888,447,2.303,455,0.406,462,0.393,465,0.884,466,0.489,468,0.46,469,0.335,475,0.382,476,0.329,483,0.775,491,1.216,492,0.406,494,0.859,502,0.372,506,0.393,513,1.749,514,1.533,518,0.832,523,0.393,533,1.365,534,0.355,537,0.67,538,0.314,539,0.657,540,0.355,544,0.42,545,0.301,546,2.597,548,1.525,552,0.808,554,2.19,562,0.406,566,0.438,582,0.363,583,0.46,587,0.949,591,1.365,592,2.892,606,1.888,607,0.309,608,0.289,609,1.42,611,0.324,614,0.324,615,0.859,616,0.735,623,0.438,637,0.438,638,0.716,640,1.722,641,0.42,644,0.756,647,0.341,648,0.885,655,0.735,656,0.382,662,0.571,664,0.756,666,0.623,671,0.489,679,0.623,681,0.324,682,0.9,686,0.406,689,0.489,694,0.735,709,0.489,724,0.716,732,0.329,737,0.341,739,0.884,742,1.092,745,0.324,754,0.393,765,0.78,766,0.756,768,0.382,770,0.884,772,0.657,785,1.177,786,0.808,789,0.372,790,2.11,791,0.489,792,1.127,797,2.896,809,0.623,810,0.42,818,0.438,834,0.756,835,0.78,849,0.335,889,0.556,898,0.46,902,0.324,903,1.089,909,0.9,913,0.335,920,0.438,928,0.314,941,1.309,943,0.406,976,2.767,989,0.393,1011,0.46,1019,0.393,1036,0.348,1037,0.46,1040,1.911,1041,0.884,1045,0.438,1062,0.716,1104,2.383,1118,0.406,1123,0.46,1146,0.735,1171,0.393,1173,0.363,1178,0.372,1185,2.21,1194,0.613,1202,0.42,1221,0.46,1223,0.46,1240,0.372,1265,0.438,1303,0.335,1308,0.842,1346,1.033,1355,0.382,1359,1.034,1370,1.092,1377,0.355,1398,0.279,1411,0.335,1418,0.382,1444,0.319,1445,0.699,1454,0.716,1458,0.309,1524,0.406,1535,0.341,1536,0.372,1549,0.319,1556,0.885,1562,2.48,1581,0.348,1597,0.438,1618,0.42,1620,0.355,1655,0.438,1678,1.33,1681,0.363,1687,0.42,1695,0.438,1713,0.341,1720,0.393,1721,0.438,1731,1.278,1732,0.941,1733,0.406,1748,0.406,1768,0.372,1770,0.735,1813,0.372,1822,0.808,1830,0.46,1833,0.489,1834,1.36,1835,2.3,1837,0.406,1841,0.842,1852,0.406,1855,0.406,1875,0.372,1876,0.42,1881,0.355,1887,0.406,1922,0.988,1942,0.438,1948,0.46,1955,0.406,1982,0.438,1984,0.42,1991,0.46,2035,1.216,2036,0.393,2038,0.842,2055,0.915,2097,0.915,2098,0.372,2099,0.42,2101,0.46,2116,0.382,2132,0.46,2145,0.363,2168,1.33,2205,0.489,2221,0.699,2240,0.46,2247,0.46,2273,0.489,2276,0.438,2300,0.842,2327,0.46,2336,0.355,2338,0.438,2355,0.489,2374,0.355,2392,1.01,2410,0.489,2411,0.46,2424,0.46,2425,0.438,2437,1.643,2478,0.406,2549,0.808,2574,0.406,2575,0.438,2590,0.438,2593,0.842,2594,2.458,2595,0.393,2602,0.489,2607,0.382,2608,0.489,2614,0.489,2653,0.382,2654,0.42,2675,0.884,2706,0.941,2720,1.365,2721,0.808,2732,0.406,2748,0.393,2759,0.808,2789,1.061,2794,0.382,2801,0.406,2814,0.42,2825,0.42,2856,0.438,2861,2.029,2874,1.278,2875,0.489,2881,0.393,2887,0.382,2895,0.46,2946,0.46,2950,0.46,2968,0.684,2972,0.382,2978,0.699,3011,0.884,3012,0.438,3018,0.716,3019,0.438,3060,0.438,3064,0.489,3086,1.01,3090,0.489,3093,0.438,3098,0.438,3099,0.393,3113,0.756,3168,0.382,3190,0.46,3201,1.365,3213,0.42,3249,0.393,3256,1.643,3273,3.004,3292,0.438,3293,2.102,3353,0.941,3374,0.372,3404,2.867,3459,0.46,3499,1.501,3527,1.167,3561,0.46,3639,0.489,3643,0.808,3672,0.46,3694,0.438,3713,0.393,3755,2.859,3766,0.438,3774,0.941,3777,2.029,3779,0.842,3837,1.708,3988,0.489,4073,1.983,4115,0.393,4122,4.361,4146,0.42,4225,0.884,4247,0.46,4276,3.138,4288,0.438,4379,0.42,4385,1.127,4389,0.438,4390,0.941,4468,0.489,4493,0.489,4495,0.489,4512,0.46,4529,0.406,4543,0.941,4596,0.941,4608,0.438,4611,0.489,4688,0.489,4700,0.46,4841,1.278,4889,0.46,4893,0.438,4943,0.808,5034,1.216,5067,0.46,5086,0.489,5162,0.808,5182,0.438,5321,0.489,5379,0.489,5383,0.808,5406,0.842,5408,0.46,5412,0.46,5456,0.42,5532,0.46,5549,0.489,5561,0.46,5576,0.884,5586,0.46,5598,0.489,5718,4.037,5724,2.628,5740,0.46,5745,0.46,5759,0.438,5766,0.884,5791,0.941,5877,0.438,5918,0.46,5929,0.489,5930,0.46,5937,0.438,5948,0.489,5957,0.808,5987,0.884,6079,0.884,6090,0.406,6103,0.489,6104,0.489,6154,0.46,6167,1.36,6171,0.438,6177,0.941,6291,0.489,6307,2.448,6395,0.42,6402,0.489,6439,0.42,6443,0.489,6606,0.489,6611,0.489,6612,1.36,6634,0.46,6717,0.941,6840,0.438,6847,0.489,6873,0.46,6913,0.489,7100,0.489,7286,0.46,7424,0.42,7473,0.489,7512,0.489,7514,0.438,7561,0.489,7576,0.489,7590,0.941,7606,0.46,7615,0.941,7630,0.489,7683,0.489,7697,0.489,7808,0.489,7874,0.489,7875,0.489,7896,0.489,7940,0.941,7942,1.36,7943,0.941,7944,5.233,7945,0.941,7946,0.489,7950,2.448,7951,0.489,7952,1.643,7953,0.489,7954,1.216,7958,0.941,7960,0.489,7961,1.36,7962,0.534,7963,0.534,7964,0.534,7965,1.027,7966,0.534,7967,0.534,7968,0.534,7969,0.534,7970,0.534,7971,0.534,7972,0.534,7973,1.027,7974,0.534,7975,0.534,7976,0.534,7977,0.534,7978,0.534,7979,0.534,7980,1.484,7981,1.027,7982,0.534,7983,0.534,7984,0.534,7985,1.484,7986,0.534,7987,0.534,7988,0.534,7989,1.027,7990,1.027,7991,0.534,7992,0.534,7993,0.534,7994,0.534,7995,0.534,7996,1.027,7997,0.534,7998,2.672,7999,0.534,8000,1.908,8001,1.027,8002,1.484,8003,0.534,8004,0.534,8005,0.534,8006,0.534,8007,0.534,8008,1.027,8009,0.534,8010,0.534,8011,0.534,8012,0.534,8013,0.534,8014,0.534,8015,0.534,8016,0.534,8017,0.534,8018,0.534,8019,0.534,8020,0.534,8021,1.908,8022,1.484,8023,0.534,8024,0.534,8025,0.534,8026,0.534,8027,1.027,8028,0.534,8029,0.534,8030,1.027,8031,2.303,8032,1.027,8033,1.484,8034,0.534,8035,0.534,8036,0.534,8037,1.027,8038,0.534,8039,1.027,8040,1.484,8041,0.534,8042,1.027,8043,0.534,8044,0.534,8045,0.534,8046,0.534,8047,0.534,8048,0.534,8049,0.534,8050,0.534,8051,0.534,8052,0.534,8053,0.534,8054,1.027,8055,1.027,8056,0.534,8057,0.534,8058,0.534,8059,0.534,8060,0.534,8061,0.534,8062,0.534,8063,0.534,8064,0.534,8065,0.534,8066,0.534,8067,1.484,8068,1.027,8069,0.534,8070,0.534,8071,0.534,8072,0.534,8073,0.534,8074,1.484,8075,1.484,8076,1.027,8077,1.027,8078,0.534,8079,0.534,8080,0.534,8081,0.534,8082,0.534,8083,0.534,8084,0.534,8085,0.534,8086,1.027,8087,1.027,8088,0.534,8089,0.534,8090,0.534,8091,0.534,8092,0.534,8093,0.534,8094,0.534,8095,0.534,8096,0.534,8097,0.534,8098,0.534,8099,0.534,8100,0.534,8101,0.534,8102,0.534,8103,1.027,8104,0.534,8105,0.534,8106,0.534,8107,0.534,8108,1.027,8109,1.908,8110,0.534,8111,0.534,8112,0.534,8113,0.534,8114,0.534,8115,0.534,8116,0.534,8117,0.534,8118,0.534,8119,0.534,8120,0.534,8121,0.534,8122,0.534,8123,0.534,8124,0.534,8125,0.534,8126,0.534,8127,0.534,8128,0.534,8129,0.534,8130,0.534,8131,0.534,8132,0.534,8133,0.534,8134,0.534,8135,0.534,8136,1.027,8137,0.534,8138,0.534,8139,0.534,8140,0.534,8141,0.534,8142,0.534,8143,0.534,8144,0.534,8145,0.534,8146,0.534,8147,0.534,8148,0.534]],["component/46",[162,0.398]],["keyword/46",[]]],"invertedIndex":[["",{"_index":440,"title":{"14-7":{},"15-5":{},"16-24":{},"26-35":{},"35-23":{}},"name":{},"text":{"2":{},"3":{},"8":{},"14":{},"15":{},"16":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["0",{"_index":153,"title":{},"name":{},"text":{"1":{},"2":{},"20":{},"23":{},"24":{},"26":{},"28":{},"31":{},"35":{},"45":{}},"component":{},"keyword":{}}],["0.0",{"_index":6691,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0.00",{"_index":4184,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["0.1.0",{"_index":3707,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["0.3",{"_index":4182,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["0.3.0",{"_index":3701,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["0.5",{"_index":8015,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["0.866667",{"_index":442,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["0.87",{"_index":436,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["000",{"_index":2598,"title":{},"name":{},"text":{"17":{},"29":{}},"component":{},"keyword":{}}],["0118",{"_index":3980,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["0198",{"_index":5659,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["02",{"_index":3666,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["03",{"_index":5973,"title":{},"name":{},"text":{"29":{},"38":{}},"component":{},"keyword":{}}],["03:16:50",{"_index":3394,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["05",{"_index":5698,"title":{},"name":{},"text":{"28":{},"29":{},"30":{}},"component":{},"keyword":{}}],["07",{"_index":5706,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["08:00",{"_index":6267,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["08:12:31",{"_index":6075,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["0x1",{"_index":6787,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0x4",{"_index":6802,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0xff000000",{"_index":6782,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0xffffff00",{"_index":6804,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0z\">{@label}use",{"_index":3995,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["403",{"_index":6125,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["404",{"_index":6124,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["419",{"_index":6486,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["42",{"_index":2778,"title":{},"name":{},"text":{"18":{},"31":{}},"component":{},"keyword":{}}],["43",{"_index":368,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["443",{"_index":5403,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["444",{"_index":5976,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["4480",{"_index":4612,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["45.68.16.159",{"_index":6710,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["4g",{"_index":6603,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["4h",{"_index":3976,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["4h.01m21",{"_index":3978,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["4k",{"_index":8028,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["4x",{"_index":8041,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["4xx",{"_index":595,"title":{},"name":{},"text":{"3":{},"30":{}},"component":{},"keyword":{}}],["5",{"_index":412,"title":{"19-5":{},"23-5":{},"24-5":{}},"name":{},"text":{"2":{},"3":{},"14":{},"15":{},"16":{},"18":{},"24":{},"27":{},"28":{},"35":{},"39":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["50",{"_index":2437,"title":{},"name":{},"text":{"16":{},"45":{},"46":{}},"component":{},"keyword":{}}],["500",{"_index":1837,"title":{},"name":{},"text":{"16":{},"18":{},"23":{},"26":{},"27":{},"46":{}},"component":{},"keyword":{}}],["500,000",{"_index":8038,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["5000",{"_index":1416,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["512x512",{"_index":6467,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["52",{"_index":6695,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["53",{"_index":5329,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["54",{"_index":6745,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["55",{"_index":8090,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["55.65.117.34.bc..http",{"_index":6743,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["555",{"_index":5393,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["56",{"_index":5138,"title":{},"name":{},"text":{"27":{},"28":{},"35":{}},"component":{},"keyword":{}}],["59915",{"_index":6766,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["5].map(item",{"_index":6331,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["5g",{"_index":6604,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["5xx",{"_index":596,"title":{},"name":{},"text":{"3":{},"30":{}},"component":{},"keyword":{}}],["6",{"_index":270,"title":{"19-6":{},"23-6":{},"24-6":{}},"name":{},"text":{"2":{},"8":{},"14":{},"15":{},"16":{},"23":{},"27":{},"28":{},"31":{},"35":{},"39":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["600",{"_index":2865,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["6110",{"_index":5203,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["64",{"_index":4608,"title":{},"name":{},"text":{"26":{},"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["6423",{"_index":5444,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["644",{"_index":4645,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["7",{"_index":1240,"title":{"19-7":{},"23-7":{}},"name":{},"text":{"14":{},"15":{},"27":{},"31":{},"35":{},"44":{},"46":{}},"component":{},"keyword":{}}],["70",{"_index":7930,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["700",{"_index":2869,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["700.000",{"_index":5251,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["7000",{"_index":8082,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["71",{"_index":6746,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["7126968760971714560",{"_index":8093,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["72",{"_index":5562,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["72.0",{"_index":6277,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["723",{"_index":3398,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["755",{"_index":4644,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["7700",{"_index":5663,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["777",{"_index":4643,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["780",{"_index":1788,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["79.5",{"_index":6276,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["7d756dffab6d3cd9c786ff5c659954c22944faef9433eee26f1d84eb5370b394",{"_index":5693,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["7xl",{"_index":3945,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["8",{"_index":100,"title":{"19-8":{},"29-5":{}},"name":{},"text":{"1":{},"14":{},"15":{},"16":{},"18":{},"19":{},"23":{},"24":{},"25":{},"28":{},"29":{},"35":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["8.1",{"_index":5272,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["80",{"_index":1435,"title":{"25-1":{}},"name":{},"text":{"14":{},"15":{},"16":{},"25":{},"27":{},"28":{},"45":{}},"component":{},"keyword":{}}],["80/20",{"_index":1983,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["800",{"_index":3935,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["8000",{"_index":6269,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["8000x",{"_index":4865,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["8001",{"_index":6270,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["8002",{"_index":6271,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["80x",{"_index":8048,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["816",{"_index":5392,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["832",{"_index":5658,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["84",{"_index":1033,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["850",{"_index":1789,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["8601",{"_index":7176,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["8664653403",{"_index":1044,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["87",{"_index":4337,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["8].reduce((acc",{"_index":6332,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["9",{"_index":1036,"title":{"19-9":{},"23-8":{}},"name":{},"text":{"8":{},"14":{},"15":{},"16":{},"23":{},"24":{},"26":{},"28":{},"45":{},"46":{}},"component":{},"keyword":{}}],["9.3",{"_index":6134,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["90",{"_index":4518,"title":{},"name":{},"text":{"26":{},"36":{}},"component":{},"keyword":{}}],["93697",{"_index":4179,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["940",{"_index":5662,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["95",{"_index":6752,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["9560004352",{"_index":1027,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["96",{"_index":4515,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["978",{"_index":984,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["979",{"_index":1043,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["9:30",{"_index":7686,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["_",{"_index":3504,"title":{},"name":{},"text":{"20":{},"22":{},"23":{},"24":{}},"component":{},"keyword":{}}],["__dir__",{"_index":4167,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["__module__.__schema__(:field",{"_index":3092,"title":{},"name":{},"text":{"19":{},"23":{},"24":{}},"component":{},"keyword":{}}],["_changeset",{"_index":3267,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["_cursiva_",{"_index":4448,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["_html",{"_index":4257,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["_param",{"_index":3348,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["_quot",{"_index":3266,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["_session",{"_index":3814,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["_valu",{"_index":2910,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["a.nic.cl",{"_index":5667,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["a1(historia",{"_index":4482,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["a1(rama",{"_index":5933,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["aaaa",{"_index":6508,"title":{"35-31":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["aaron",{"_index":4418,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["abajo",{"_index":7591,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["abandon",{"_index":5078,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["abandonar",{"_index":7406,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["abanico",{"_index":6308,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["abarca",{"_index":6530,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["abarcan",{"_index":6548,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["abarcar",{"_index":2997,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["abarrotado",{"_index":2860,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["abastracción",{"_index":2962,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["abierta",{"_index":4560,"title":{},"name":{},"text":{"26":{},"27":{},"35":{},"38":{},"41":{},"43":{}},"component":{},"keyword":{}}],["abierto",{"_index":1934,"title":{},"name":{},"text":{"16":{},"25":{},"26":{},"27":{},"30":{},"35":{},"36":{},"39":{}},"component":{},"keyword":{}}],["abogacía",{"_index":1639,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["abogado",{"_index":1626,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["abonado",{"_index":4843,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["aborda",{"_index":6875,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["abordar",{"_index":1982,"title":{},"name":{},"text":{"16":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["abrevia",{"_index":6252,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["abreviación",{"_index":7986,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["abreviado",{"_index":4918,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["abreviatura",{"_index":5785,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["abril",{"_index":4945,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{},"keyword":{}}],["abrir",{"_index":6829,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["abrupto",{"_index":4663,"title":{},"name":{},"text":{"26":{},"43":{}},"component":{},"keyword":{}}],["absoluta",{"_index":5339,"title":{"28-4":{}},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["absolutament",{"_index":7298,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["abstraccion",{"_index":7491,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["abstracción",{"_index":832,"title":{},"name":{},"text":{"4":{},"20":{},"35":{}},"component":{},"keyword":{}}],["abstract",{"_index":934,"title":{},"name":{"5":{}},"text":{},"component":{},"keyword":{}}],["abuelo",{"_index":5195,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["abundant",{"_index":922,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["abus",{"_index":7040,"title":{"37-9":{}},"name":{},"text":{},"component":{},"keyword":{}}],["abusiva",{"_index":1729,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["abuso",{"_index":7097,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["ac",{"_index":3043,"title":{},"name":{},"text":{"19":{},"25":{}},"component":{},"keyword":{}}],["acabaron",{"_index":5064,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["académica",{"_index":4873,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["académico",{"_index":4582,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["acarreaba",{"_index":5172,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["acc",{"_index":6333,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["acced",{"_index":3499,"title":{},"name":{},"text":{"20":{},"24":{},"26":{},"28":{},"31":{},"35":{},"36":{},"37":{},"39":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["acceda",{"_index":6658,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["accedan",{"_index":6622,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["accedemo",{"_index":5638,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["acceden",{"_index":7974,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["accedida",{"_index":7605,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["accediendo",{"_index":5135,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["acceler",{"_index":200,"title":{},"name":{},"text":{"2":{},"8":{},"14":{}},"component":{},"keyword":{}}],["accept",{"_index":1472,"title":{},"name":{},"text":{"14":{},"15":{},"19":{},"20":{},"30":{},"38":{},"41":{}},"component":{},"keyword":{}}],["acces",{"_index":5801,"title":{},"name":{},"text":{"28":{},"43":{}},"component":{},"keyword":{}}],["accesibilidad",{"_index":6291,"title":{},"name":{},"text":{"30":{},"46":{}},"component":{},"keyword":{}}],["acceso",{"_index":2879,"title":{"35-49":{},"46-7":{}},"name":{},"text":{"18":{},"26":{},"27":{},"28":{},"30":{},"34":{},"35":{},"37":{},"40":{},"43":{},"44":{}},"component":{},"keyword":{}}],["access",{"_index":3329,"title":{},"name":{},"text":{"19":{},"27":{},"28":{}},"component":{},"keyword":{}}],["accident",{"_index":1490,"title":{"16-9":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["accion",{"_index":1720,"title":{},"name":{},"text":{"16":{},"20":{},"26":{},"30":{},"31":{},"40":{},"46":{}},"component":{},"keyword":{}}],["acción",{"_index":3420,"title":{"20-5":{}},"name":{},"text":{"20":{},"26":{},"30":{},"35":{},"40":{},"44":{}},"component":{},"keyword":{}}],["accustom",{"_index":3240,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["aceleración",{"_index":5153,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["aceleran",{"_index":2783,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["acelerando",{"_index":2713,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["acelerar",{"_index":856,"title":{},"name":{},"text":{"4":{},"26":{}},"component":{},"keyword":{}}],["acept",{"_index":2338,"title":{"44":{}},"name":{},"text":{"16":{},"44":{},"46":{}},"component":{},"keyword":{}}],["acepta",{"_index":3288,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["aceptación",{"_index":7428,"title":{"44":{},"43-6":{}},"name":{},"text":{"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["aceptada",{"_index":2218,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["aceptado",{"_index":1739,"title":{},"name":{},"text":{"16":{},"38":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["aceptan",{"_index":5507,"title":{},"name":{},"text":{"28":{},"43":{}},"component":{},"keyword":{}}],["aceptar",{"_index":2164,"title":{},"name":{},"text":{"16":{},"17":{},"19":{},"26":{},"30":{},"45":{}},"component":{},"keyword":{}}],["acepten",{"_index":3496,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["acerbo",{"_index":4341,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["acerca",{"_index":741,"title":{},"name":{},"text":{"4":{},"27":{},"41":{},"45":{}},"component":{},"keyword":{}}],["acervo",{"_index":7145,"title":{},"name":{},"text":{"38":{},"43":{}},"component":{},"keyword":{}}],["acierto",{"_index":3760,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["acomodars",{"_index":2485,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["acomplamiento",{"_index":4112,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["acoplada",{"_index":7353,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["acoplado",{"_index":4462,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["acoplamiento",{"_index":4106,"title":{},"name":{},"text":{"23":{},"43":{}},"component":{},"keyword":{}}],["acord",{"_index":5372,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["acordado",{"_index":7514,"title":{},"name":{},"text":{"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["acordar",{"_index":7909,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["acostumbrado",{"_index":2857,"title":{},"name":{},"text":{"18":{},"26":{}},"component":{},"keyword":{}}],["acotada",{"_index":2937,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["acotado",{"_index":2273,"title":{},"name":{},"text":{"16":{},"46":{}},"component":{},"keyword":{}}],["acrónimo",{"_index":181,"title":{},"name":{},"text":{"2":{},"28":{},"30":{}},"component":{},"keyword":{}}],["action",{"_index":359,"title":{},"name":{},"text":{"2":{},"3":{},"8":{},"14":{},"15":{},"19":{},"20":{},"26":{}},"component":{},"keyword":{}}],["actionscript",{"_index":5167,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["activ",{"_index":2825,"title":{},"name":{},"text":{"18":{},"28":{},"30":{},"35":{},"46":{}},"component":{},"keyword":{}}],["activa",{"_index":4513,"title":{},"name":{},"text":{"26":{},"36":{},"44":{}},"component":{},"keyword":{}}],["activado",{"_index":7555,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["activament",{"_index":7629,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["active:bg",{"_index":2868,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["actividad",{"_index":66,"title":{},"name":{},"text":{"1":{},"27":{},"35":{},"36":{},"43":{},"45":{}},"component":{},"keyword":{}}],["activo",{"_index":641,"title":{},"name":{},"text":{"3":{},"18":{},"23":{},"27":{},"46":{}},"component":{},"keyword":{}}],["actor",{"_index":7033,"title":{"37-1":{}},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["actual",{"_index":646,"title":{"43-9":{},"43-11":{}},"name":{},"text":{"3":{},"5":{},"14":{},"18":{},"22":{},"26":{},"28":{},"29":{},"30":{},"35":{},"37":{},"38":{},"39":{},"40":{},"43":{},"45":{}},"component":{},"keyword":{}}],["actual_fields_and_typ",{"_index":4193,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["actualic",{"_index":7380,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["actualidad",{"_index":4745,"title":{},"name":{},"text":{"27":{},"29":{},"35":{}},"component":{},"keyword":{}}],["actualiza",{"_index":7378,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["actualizacion",{"_index":7615,"title":{},"name":{},"text":{"44":{},"46":{}},"component":{},"keyword":{}}],["actualización",{"_index":5162,"title":{},"name":{},"text":{"27":{},"28":{},"40":{},"43":{},"46":{}},"component":{},"keyword":{}}],["actualizada",{"_index":2236,"title":{},"name":{},"text":{"16":{},"40":{}},"component":{},"keyword":{}}],["actualizado",{"_index":3174,"title":{},"name":{},"text":{"19":{},"29":{},"35":{},"38":{},"40":{},"43":{},"45":{}},"component":{},"keyword":{}}],["actualizamo",{"_index":3191,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["actualizando",{"_index":7550,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["actualizar",{"_index":3492,"title":{},"name":{},"text":{"20":{},"28":{},"30":{},"39":{},"40":{},"43":{}},"component":{},"keyword":{}}],["actualment",{"_index":967,"title":{},"name":{},"text":{"7":{},"14":{},"16":{},"18":{},"27":{},"28":{},"29":{},"35":{}},"component":{},"keyword":{}}],["actúa",{"_index":7376,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["acuerdan",{"_index":1614,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["acuerdo",{"_index":1555,"title":{},"name":{},"text":{"16":{},"35":{},"44":{},"45":{}},"component":{},"keyword":{}}],["acumul",{"_index":7754,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["acumulación",{"_index":7552,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["acumulada",{"_index":7765,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["acumulado",{"_index":7767,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["acumulando",{"_index":7403,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["acus",{"_index":6670,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["acuñado",{"_index":2627,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["acústica",{"_index":4790,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["ad",{"_index":5961,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["ada",{"_index":2002,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["adaptada",{"_index":6394,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["adaptado",{"_index":2378,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["adaptar",{"_index":5234,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["adaptarla",{"_index":6397,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["adaptars",{"_index":2484,"title":{},"name":{},"text":{"16":{},"28":{},"30":{},"34":{},"35":{}},"component":{},"keyword":{}}],["adapten",{"_index":1668,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["adc",{"_index":1606,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["add",{"_index":3059,"title":{"29-29":{},"29-35":{}},"name":{},"text":{"19":{},"23":{},"29":{}},"component":{},"keyword":{}}],["add_unique_quote_ident",{"_index":3494,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["address",{"_index":5654,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["adecuada",{"_index":1858,"title":{},"name":{},"text":{"16":{},"17":{},"34":{},"43":{}},"component":{},"keyword":{}}],["adecuadament",{"_index":2068,"title":{},"name":{},"text":{"16":{},"37":{},"43":{},"45":{}},"component":{},"keyword":{}}],["adecuado",{"_index":4116,"title":{},"name":{},"text":{"23":{},"24":{},"28":{},"30":{},"34":{},"37":{},"43":{}},"component":{},"keyword":{}}],["adelant",{"_index":5916,"title":{},"name":{},"text":{"29":{},"44":{}},"component":{},"keyword":{}}],["adelantado",{"_index":7463,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["ademá",{"_index":240,"title":{},"name":{},"text":{"2":{},"3":{},"16":{},"18":{},"19":{},"21":{},"22":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"39":{},"43":{},"45":{}},"component":{},"keyword":{}}],["adher",{"_index":5969,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["adherencia",{"_index":7544,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["adicion",{"_index":1453,"title":{},"name":{},"text":{"14":{},"15":{},"18":{},"20":{},"23":{},"35":{},"45":{}},"component":{},"keyword":{}}],["adicional",{"_index":3909,"title":{},"name":{},"text":{"23":{},"30":{},"35":{},"40":{},"45":{}},"component":{},"keyword":{}}],["adicionalment",{"_index":550,"title":{},"name":{},"text":{"3":{},"19":{},"29":{},"39":{},"45":{}},"component":{},"keyword":{}}],["adjuntando",{"_index":5990,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["adjuntar",{"_index":7637,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["adjunto",{"_index":7494,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["admin",{"_index":3328,"title":{},"name":{},"text":{"19":{},"20":{},"28":{}},"component":{},"keyword":{}}],["admincl@nic.cl",{"_index":5664,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["administr",{"_index":5661,"title":{},"name":{},"text":{"28":{},"30":{}},"component":{},"keyword":{}}],["administra",{"_index":1760,"title":{},"name":{},"text":{"16":{},"28":{}},"component":{},"keyword":{}}],["administración",{"_index":5759,"title":{"43-15":{}},"name":{},"text":{"28":{},"43":{},"46":{}},"component":{},"keyword":{}}],["administrado",{"_index":7520,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["administrador",{"_index":5769,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["administrar",{"_index":5750,"title":{"44-7":{}},"name":{},"text":{"28":{},"35":{},"43":{}},"component":{},"keyword":{}}],["administrativa",{"_index":6449,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["admit",{"_index":1443,"title":{},"name":{},"text":{"14":{},"15":{},"30":{}},"component":{},"keyword":{}}],["adob",{"_index":5140,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["adopción",{"_index":7493,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["adopta",{"_index":3679,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["adoptado",{"_index":4754,"title":{},"name":{},"text":{"27":{},"35":{}},"component":{},"keyword":{}}],["adoptar",{"_index":6392,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["adquiri",{"_index":5062,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["adquirida",{"_index":2244,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["adquirir",{"_index":740,"title":{},"name":{},"text":{"4":{},"28":{}},"component":{},"keyword":{}}],["adquirirlo",{"_index":5634,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["adquisicion",{"_index":1510,"title":{"16-28":{}},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["adr",{"_index":1477,"title":{"43-12":{}},"name":{"38":{}},"text":{"14":{},"15":{},"38":{},"43":{}},"component":{},"keyword":{}}],["adulterada",{"_index":7098,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["adulterado",{"_index":6982,"title":{},"name":{},"text":{"36":{},"37":{}},"component":{},"keyword":{}}],["adulterar",{"_index":6975,"title":{},"name":{},"text":{"36":{},"37":{}},"component":{},"keyword":{}}],["adversa",{"_index":2151,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["advertencia",{"_index":7928,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["advisori",{"_index":7053,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["aerolínea",{"_index":2370,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["afect",{"_index":7768,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["afecta",{"_index":6883,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["afectaba",{"_index":5155,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["afectado",{"_index":6998,"title":{},"name":{},"text":{"36":{},"39":{}},"component":{},"keyword":{}}],["afectar",{"_index":1618,"title":{},"name":{},"text":{"16":{},"26":{},"41":{},"45":{},"46":{}},"component":{},"keyword":{}}],["afectarán",{"_index":5803,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["afectarían",{"_index":7263,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["afecten",{"_index":7918,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["afinación",{"_index":782,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["afinar",{"_index":7260,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["afirmar",{"_index":5407,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["afortunado",{"_index":2222,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["after:absolut",{"_index":3938,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["after:bord",{"_index":3940,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["after:inset",{"_index":3939,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["after:point",{"_index":3936,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["afterword",{"_index":961,"title":{},"name":{"6":{}},"text":{},"component":{},"keyword":{}}],["afuera",{"_index":2455,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ag",{"_index":6197,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["age:18",{"_index":6244,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["age=0",{"_index":3406,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["agencia",{"_index":1512,"title":{"16-31":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["agenda",{"_index":1561,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["agendado",{"_index":7834,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["agendar",{"_index":7596,"title":{"44-9":{}},"name":{},"text":{},"component":{},"keyword":{}}],["agent",{"_index":6070,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["agilidad",{"_index":43,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["agiliza",{"_index":6284,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["agilizan",{"_index":2707,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["agota",{"_index":6872,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["agotamiento",{"_index":5321,"title":{},"name":{},"text":{"27":{},"46":{}},"component":{},"keyword":{}}],["agplv3",{"_index":1457,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["agreement",{"_index":1610,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["agrega",{"_index":5987,"title":{},"name":{},"text":{"29":{},"35":{},"46":{}},"component":{},"keyword":{}}],["agregado",{"_index":6143,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["agregamo",{"_index":3510,"title":{},"name":{},"text":{"20":{},"23":{},"28":{}},"component":{},"keyword":{}}],["agregan",{"_index":6934,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["agregando",{"_index":6939,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["agregar",{"_index":3201,"title":{"20-7":{},"23-1":{}},"name":{},"text":{"19":{},"20":{},"28":{},"40":{},"45":{},"46":{}},"component":{},"keyword":{}}],["agrupa",{"_index":6948,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["agrupación",{"_index":250,"title":{},"name":{},"text":{"2":{},"4":{},"18":{}},"component":{},"keyword":{}}],["agrupada",{"_index":242,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["agrupado",{"_index":5958,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["agrupan",{"_index":3455,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["agréguel",{"_index":1801,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["agua",{"_index":2367,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ahora",{"_index":2968,"title":{},"name":{},"text":{"18":{},"19":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"30":{},"45":{},"46":{}},"component":{},"keyword":{}}],["ahorr",{"_index":3773,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["ahorra",{"_index":838,"title":{},"name":{},"text":{"4":{},"28":{},"45":{}},"component":{},"keyword":{}}],["ahorrar",{"_index":160,"title":{},"name":{},"text":{"1":{},"22":{},"29":{}},"component":{},"keyword":{}}],["ahorro",{"_index":2254,"title":{},"name":{},"text":{"16":{},"22":{}},"component":{},"keyword":{}}],["ai21",{"_index":2610,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["aim",{"_index":4963,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["air",{"_index":1854,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aislamiento",{"_index":7526,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["aislar",{"_index":3711,"title":{},"name":{},"text":{"22":{},"35":{}},"component":{},"keyword":{}}],["ajena",{"_index":2206,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ajeno",{"_index":2194,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ajust",{"_index":2739,"title":{},"name":{},"text":{"18":{},"27":{},"45":{}},"component":{},"keyword":{}}],["ajustado",{"_index":6610,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ajustan",{"_index":5468,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["ajustars",{"_index":2483,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["al",{"_index":45,"title":{"16-21":{},"23-4":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"14":{},"15":{},"16":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["alcanc",{"_index":7424,"title":{"45-30":{}},"name":{},"text":{"41":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["alcanz",{"_index":5250,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["alcanzar",{"_index":189,"title":{},"name":{},"text":{"2":{},"16":{},"35":{},"43":{}},"component":{},"keyword":{}}],["aleatoria",{"_index":3277,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["alejado",{"_index":3725,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["alejart",{"_index":2799,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["alemán",{"_index":4808,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["alentador",{"_index":5271,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["alert",{"_index":632,"title":{},"name":{},"text":{"3":{},"23":{},"45":{}},"component":{},"keyword":{}}],["alerta",{"_index":345,"title":{"3-1":{},"3-2":{},"3-3":{},"3-4":{}},"name":{},"text":{"2":{},"3":{},"4":{},"23":{},"39":{},"43":{},"45":{}},"component":{},"keyword":{}}],["alertar",{"_index":895,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["alex",{"_index":1038,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["alfa/aceptación",{"_index":7457,"title":{"43-31":{}},"name":{},"text":{},"component":{},"keyword":{}}],["alfabético",{"_index":7382,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["alfr",{"_index":4779,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["algo",{"_index":2701,"title":{},"name":{},"text":{"18":{},"27":{},"28":{},"29":{},"30":{},"32":{},"35":{},"45":{}},"component":{},"keyword":{}}],["algoritmo",{"_index":2425,"title":{},"name":{},"text":{"16":{},"18":{},"36":{},"46":{}},"component":{},"keyword":{}}],["alguien",{"_index":1869,"title":{},"name":{},"text":{"16":{},"26":{},"28":{},"45":{}},"component":{},"keyword":{}}],["alguna",{"_index":772,"title":{"16-17":{}},"name":{},"text":{"4":{},"16":{},"28":{},"29":{},"30":{},"32":{},"35":{},"38":{},"39":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["alguno",{"_index":1408,"title":{"29-1":{},"29-11":{},"29-27":{}},"name":{},"text":{"14":{},"15":{},"16":{},"18":{},"21":{},"22":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"35":{},"36":{},"37":{},"39":{},"40":{},"43":{}},"component":{},"keyword":{}}],["algún",{"_index":667,"title":{},"name":{},"text":{"3":{},"16":{},"28":{},"39":{},"45":{}},"component":{},"keyword":{}}],["alia",{"_index":3135,"title":{},"name":{},"text":{"19":{},"20":{},"23":{},"24":{}},"component":{},"keyword":{}}],["alienado",{"_index":7483,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["align",{"_index":7673,"title":{"45-25":{}},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["alimentación",{"_index":4914,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["alimentándos",{"_index":2067,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["alineación",{"_index":5083,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["alineada",{"_index":7507,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["alineado",{"_index":7498,"title":{},"name":{},"text":{"43":{},"44":{}},"component":{},"keyword":{}}],["alineamiento",{"_index":7441,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["alinear",{"_index":7845,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["alink=\"#ff4c4c",{"_index":5092,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["all_quot",{"_index":3605,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["alla",{"_index":2111,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["allend",{"_index":1022,"title":{},"name":{},"text":{"8":{},"14":{},"27":{}},"component":{},"keyword":{}}],["allow",{"_index":3327,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["allow_nil",{"_index":3479,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["alma",{"_index":3763,"title":{"26-18":{}},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["almacena",{"_index":6001,"title":{},"name":{},"text":{"29":{},"35":{},"40":{},"43":{}},"component":{},"keyword":{}}],["almacenada",{"_index":7087,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["almacenado",{"_index":4379,"title":{},"name":{},"text":{"26":{},"35":{},"37":{},"43":{},"46":{}},"component":{},"keyword":{}}],["almacenamiento",{"_index":4122,"title":{"46-20":{}},"name":{},"text":{"23":{},"35":{},"43":{},"46":{}},"component":{},"keyword":{}}],["almacenan",{"_index":5067,"title":{},"name":{},"text":{"27":{},"36":{},"46":{}},"component":{},"keyword":{}}],["almacenando",{"_index":8134,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["almacenar",{"_index":1454,"title":{},"name":{},"text":{"14":{},"15":{},"18":{},"19":{},"23":{},"26":{},"30":{},"36":{},"46":{}},"component":{},"keyword":{}}],["almacenarlo",{"_index":6176,"title":{},"name":{},"text":{"30":{},"38":{}},"component":{},"keyword":{}}],["almacén",{"_index":8055,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["almeno",{"_index":2995,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["almuerzo",{"_index":7688,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["aloja",{"_index":4325,"title":{},"name":{},"text":{"26":{},"28":{},"29":{}},"component":{},"keyword":{}}],["alojamiento",{"_index":5751,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["alojan",{"_index":3341,"title":{},"name":{},"text":{"19":{},"35":{}},"component":{},"keyword":{}}],["alpha",{"_index":7251,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["alpin",{"_index":2023,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["alpine.j",{"_index":2883,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["alrededor",{"_index":1731,"title":{},"name":{},"text":{"16":{},"27":{},"46":{}},"component":{},"keyword":{}}],["alta",{"_index":190,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"16":{},"18":{},"22":{},"27":{},"28":{},"30":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["altament",{"_index":700,"title":{},"name":{},"text":{"3":{},"22":{},"40":{}},"component":{},"keyword":{}}],["alterado",{"_index":6937,"title":{},"name":{},"text":{"35":{},"36":{}},"component":{},"keyword":{}}],["alterar",{"_index":2589,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["alternativa",{"_index":2252,"title":{"22-10":{},"26-7":{},"28-26":{},"32-3":{}},"name":{},"text":{"16":{},"18":{},"22":{},"26":{},"28":{},"29":{},"32":{},"34":{},"35":{},"36":{},"38":{},"39":{},"45":{}},"component":{},"keyword":{}}],["alternativo",{"_index":7168,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["alto",{"_index":265,"title":{},"name":{},"text":{"2":{},"14":{},"15":{},"16":{},"22":{},"30":{},"43":{},"45":{}},"component":{},"keyword":{}}],["amazon",{"_index":1111,"title":{},"name":{},"text":{"8":{},"14":{},"16":{},"28":{},"30":{},"43":{}},"component":{},"keyword":{}}],["amba",{"_index":911,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["ambient",{"_index":0,"title":{"1":{},"1-1":{},"1-2":{},"1-3":{},"1-4":{},"24-1":{},"29-20":{},"29-21":{}},"name":{},"text":{"1":{},"2":{},"4":{},"16":{},"18":{},"19":{},"24":{},"28":{},"29":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["ambigüedad",{"_index":6258,"title":{},"name":{},"text":{"30":{},"39":{}},"component":{},"keyword":{}}],["ambigüo",{"_index":2119,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ambo",{"_index":2766,"title":{},"name":{},"text":{"18":{},"19":{},"22":{},"28":{},"35":{}},"component":{},"keyword":{}}],["america/santiago",{"_index":7694,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["amig",{"_index":3757,"title":{},"name":{},"text":{"22":{},"43":{}},"component":{},"keyword":{}}],["amigo",{"_index":1636,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["amistoso",{"_index":2075,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["amo",{"_index":4508,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["amontonado",{"_index":7305,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["amplia",{"_index":2031,"title":{},"name":{},"text":{"16":{},"22":{},"30":{},"35":{},"43":{}},"component":{},"keyword":{}}],["ampliabl",{"_index":6066,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["ampliación",{"_index":8103,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["ampliament",{"_index":2417,"title":{},"name":{},"text":{"16":{},"30":{},"35":{}},"component":{},"keyword":{}}],["ampliando",{"_index":2415,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ampliaron",{"_index":4427,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["amplificador",{"_index":4850,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["amplio",{"_index":2933,"title":{},"name":{},"text":{"18":{},"37":{}},"component":{},"keyword":{}}],["amus",{"_index":1271,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["analiza",{"_index":579,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["analizado",{"_index":1764,"title":{},"name":{},"text":{"16":{},"26":{}},"component":{},"keyword":{}}],["analizamo",{"_index":3844,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["analizan",{"_index":6897,"title":{},"name":{},"text":{"35":{},"43":{}},"component":{},"keyword":{}}],["analizando",{"_index":6813,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["analizar",{"_index":582,"title":{},"name":{},"text":{"3":{},"4":{},"26":{},"30":{},"35":{},"38":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["analysi",{"_index":1289,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["analyt",{"_index":1290,"title":{},"name":{},"text":{"14":{},"15":{},"35":{}},"component":{},"keyword":{}}],["ancho",{"_index":5136,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["andreessen",{"_index":5076,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["andrej",{"_index":2628,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["android",{"_index":1196,"title":{"27-28":{},"32-1":{}},"name":{},"text":{"14":{},"15":{},"16":{},"25":{},"27":{},"32":{},"34":{},"44":{}},"component":{},"keyword":{}}],["anexa",{"_index":2925,"title":{},"name":{},"text":{"18":{},"41":{}},"component":{},"keyword":{}}],["anexo",{"_index":7469,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["angular",{"_index":1961,"title":{},"name":{},"text":{"16":{},"18":{},"29":{},"32":{},"40":{}},"component":{},"keyword":{}}],["anidada",{"_index":3670,"title":{},"name":{},"text":{"22":{},"31":{}},"component":{},"keyword":{}}],["anim",{"_index":5176,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["animacion",{"_index":1998,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["animación",{"_index":4729,"title":{"27-21":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["annalyn’",{"_index":1224,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["ano",{"_index":2656,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["anomalía",{"_index":794,"title":{},"name":{},"text":{"4":{},"45":{}},"component":{},"keyword":{}}],["anonimato",{"_index":6855,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["anonym",{"_index":1233,"title":{},"name":{},"text":{"14":{},"15":{},"27":{}},"component":{},"keyword":{}}],["anotacion",{"_index":602,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["answer",{"_index":6772,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ant",{"_index":570,"title":{},"name":{},"text":{"3":{},"4":{},"16":{},"18":{},"19":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"37":{},"39":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["antel",{"_index":6591,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["antelación",{"_index":7753,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["antena",{"_index":4849,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["anterior",{"_index":437,"title":{},"name":{},"text":{"2":{},"16":{},"18":{},"20":{},"22":{},"23":{},"24":{},"26":{},"28":{},"29":{},"35":{},"41":{},"43":{},"45":{}},"component":{},"keyword":{}}],["anteriorment",{"_index":5411,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["antigua",{"_index":2150,"title":{},"name":{},"text":{"16":{},"18":{},"30":{},"34":{}},"component":{},"keyword":{}}],["antiguo",{"_index":1865,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["antigüedad",{"_index":1309,"title":{},"name":{},"text":{"14":{},"15":{},"16":{}},"component":{},"keyword":{}}],["antigüo",{"_index":2317,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["antonio",{"_index":4794,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["antora",{"_index":1378,"title":{},"name":{},"text":{"14":{},"15":{},"38":{},"43":{}},"component":{},"keyword":{}}],["anual",{"_index":5131,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["anunciado",{"_index":7228,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["anunciant",{"_index":7020,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["anunciar",{"_index":7210,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["anuncio",{"_index":4929,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["anyway",{"_index":3335,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["análisi",{"_index":523,"title":{},"name":{},"text":{"2":{},"4":{},"16":{},"38":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["análsi",{"_index":2672,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["apach",{"_index":2025,"title":{},"name":{},"text":{"16":{},"18":{},"28":{}},"component":{},"keyword":{}}],["apache2",{"_index":2979,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["apagada",{"_index":3176,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["apagado",{"_index":156,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["apagón",{"_index":451,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["aparato",{"_index":5187,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["aparec",{"_index":1751,"title":{},"name":{},"text":{"16":{},"37":{}},"component":{},"keyword":{}}],["aparecen",{"_index":4384,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["apareci",{"_index":5202,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["aparecían",{"_index":1735,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aparición",{"_index":5283,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["apariencia",{"_index":5782,"title":{},"name":{},"text":{"28":{},"41":{}},"component":{},"keyword":{}}],["apariencia/presentación",{"_index":5836,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["apart",{"_index":7839,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["api",{"_index":823,"title":{"19":{},"20":{},"23":{},"24":{},"30":{},"14-7":{},"15-5":{},"30-7":{},"30-8":{},"30-9":{},"30-20":{},"43-8":{},"43-10":{}},"name":{},"text":{"4":{},"14":{},"15":{},"17":{},"18":{},"19":{},"20":{},"23":{},"24":{},"26":{},"27":{},"30":{},"32":{},"36":{},"39":{},"43":{}},"component":{},"keyword":{}}],["api/quot",{"_index":3275,"title":{},"name":{},"text":{"19":{},"24":{}},"component":{},"keyword":{}}],["api/quotes/random",{"_index":3276,"title":{},"name":{},"text":{"19":{},"24":{}},"component":{},"keyword":{}}],["apirest",{"_index":3017,"title":{},"name":{"19":{}},"text":{},"component":{},"keyword":{}}],["aplic",{"_index":6169,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["aplica",{"_index":4274,"title":{},"name":{},"text":{"25":{},"35":{},"40":{},"45":{}},"component":{},"keyword":{}}],["aplicacion",{"_index":533,"title":{"27":{},"32":{},"37":{},"27-13":{},"27-22":{},"27-32":{}},"name":{},"text":{"3":{},"4":{},"5":{},"7":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"22":{},"26":{},"27":{},"28":{},"30":{},"32":{},"34":{},"35":{},"36":{},"37":{},"40":{},"44":{},"46":{}},"component":{},"keyword":{}}],["aplicación",{"_index":447,"title":{"35-46":{}},"name":{},"text":{"2":{},"3":{},"4":{},"14":{},"15":{},"16":{},"18":{},"19":{},"20":{},"21":{},"24":{},"27":{},"28":{},"30":{},"32":{},"34":{},"35":{},"37":{},"40":{},"43":{},"44":{},"46":{}},"component":{},"keyword":{}}],["aplicada",{"_index":7983,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["aplicado",{"_index":7220,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["aplican",{"_index":7787,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["aplicando",{"_index":2727,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["aplicar",{"_index":2732,"title":{},"name":{},"text":{"18":{},"20":{},"38":{},"39":{},"44":{},"46":{}},"component":{},"keyword":{}}],["aplicarlo",{"_index":7978,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["aplicars",{"_index":6857,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["apliqu",{"_index":7534,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["aportando",{"_index":2387,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aportar",{"_index":7906,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["apoy",{"_index":7142,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["apoya",{"_index":7141,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["apoyar",{"_index":7905,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["apoyo",{"_index":458,"title":{},"name":{},"text":{"2":{},"14":{},"15":{},"16":{},"27":{},"28":{},"38":{},"41":{},"45":{}},"component":{},"keyword":{}}],["app",{"_index":1195,"title":{"34":{}},"name":{},"text":{"14":{},"15":{},"27":{},"34":{}},"component":{},"keyword":{}}],["app.webmanifest",{"_index":6455,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["appicon.png",{"_index":6469,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["appicon@2x.png",{"_index":6472,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["appicon_rounded.png",{"_index":6471,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["appl",{"_index":1826,"title":{"27-24":{}},"name":{},"text":{"16":{},"27":{},"32":{},"40":{}},"component":{},"keyword":{}}],["applet",{"_index":5772,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["applic",{"_index":989,"title":{},"name":{},"text":{"8":{},"14":{},"19":{},"26":{},"27":{},"37":{},"46":{}},"component":{},"keyword":{}}],["application.compile_env(:stoic_quot",{"_index":3322,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["application/json",{"_index":3402,"title":{},"name":{},"text":{"19":{},"30":{}},"component":{},"keyword":{}}],["application/manifest+json",{"_index":6457,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["approve_ord",{"_index":3452,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["appstor",{"_index":6374,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{},"keyword":{}}],["apreciacion",{"_index":7189,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["apreciar",{"_index":7312,"title":{},"name":{},"text":{"40":{},"45":{}},"component":{},"keyword":{}}],["aprend",{"_index":1173,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"18":{},"26":{},"28":{},"29":{},"38":{},"40":{},"46":{}},"component":{},"keyword":{}}],["aprenden",{"_index":2580,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["aprendiendo",{"_index":2050,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["aprendizaj",{"_index":1205,"title":{"16-56":{},"29-15":{}},"name":{},"text":{"14":{},"15":{},"17":{},"18":{},"22":{},"26":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["aprobacion",{"_index":7436,"title":{"44-22":{}},"name":{},"text":{"41":{},"44":{}},"component":{},"keyword":{}}],["aprobación",{"_index":318,"title":{"44-12":{}},"name":{},"text":{"2":{},"44":{},"45":{}},"component":{},"keyword":{}}],["aprobado",{"_index":132,"title":{},"name":{},"text":{"1":{},"29":{},"44":{},"45":{}},"component":{},"keyword":{}}],["apropiadament",{"_index":5875,"title":{},"name":{},"text":{"29":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["apropiado",{"_index":2279,"title":{},"name":{},"text":{"16":{},"43":{},"45":{}},"component":{},"keyword":{}}],["apropiar",{"_index":1630,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aprovechar",{"_index":6306,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["aproximada",{"_index":7853,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["aproximado",{"_index":7985,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["apunta",{"_index":6832,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["apuntan",{"_index":6830,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["apuntando",{"_index":6838,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["apuntar",{"_index":322,"title":{},"name":{},"text":{"2":{},"35":{}},"component":{},"keyword":{}}],["apuntara",{"_index":4110,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["aqu",{"_index":3672,"title":{},"name":{},"text":{"22":{},"26":{},"46":{}},"component":{},"keyword":{}}],["aquel",{"_index":1553,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aquello",{"_index":3741,"title":{},"name":{},"text":{"22":{},"26":{},"28":{},"35":{},"37":{}},"component":{},"keyword":{}}],["ar",{"_index":5459,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["arab",{"_index":5974,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["arca",{"_index":2229,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["architectur",{"_index":1123,"title":{},"name":{},"text":{"8":{},"14":{},"46":{}},"component":{},"keyword":{}}],["archive.instal",{"_index":3436,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["archivo",{"_index":54,"title":{"29-29":{},"30-13":{}},"name":{},"text":{"1":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"46":{}},"component":{},"keyword":{}}],["archivo1",{"_index":4629,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["archivo2",{"_index":4630,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["area",{"_index":6640,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["area:mark",{"_index":6237,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["autorización",{"_index":3427,"title":{},"name":{},"text":{"20":{},"26":{},"30":{},"45":{}},"component":{},"keyword":{}}],["autorizada",{"_index":135,"title":{},"name":{},"text":{"1":{},"43":{},"45":{}},"component":{},"keyword":{}}],["autorizado",{"_index":142,"title":{},"name":{},"text":{"1":{},"28":{},"43":{},"45":{}},"component":{},"keyword":{}}],["autorizar",{"_index":7927,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["autoría",{"_index":1794,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["autoselect",{"_index":6811,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["autossl",{"_index":5794,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["autosuficient",{"_index":7297,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["autónomo",{"_index":1545,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["avail",{"_index":581,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["avanc",{"_index":1359,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"17":{},"36":{},"41":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["avanza",{"_index":6984,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["avanzada",{"_index":3730,"title":{},"name":{},"text":{"22":{},"27":{}},"component":{},"keyword":{}}],["avanzar",{"_index":7883,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["avecina",{"_index":7583,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["aventurars",{"_index":5887,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["avisado",{"_index":7887,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["aviso",{"_index":2250,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["aw",{"_index":1114,"title":{},"name":{},"text":{"8":{},"14":{},"18":{}},"component":{},"keyword":{}}],["awk",{"_index":2018,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ayer",{"_index":677,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["ayuda",{"_index":223,"title":{"29-9":{}},"name":{},"text":{"2":{},"4":{},"16":{},"26":{},"28":{},"29":{},"35":{},"40":{},"43":{},"45":{}},"component":{},"keyword":{}}],["ayudan",{"_index":211,"title":{},"name":{},"text":{"2":{},"4":{},"38":{},"40":{},"43":{}},"component":{},"keyword":{}}],["ayudando",{"_index":804,"title":{},"name":{},"text":{"4":{},"36":{}},"component":{},"keyword":{}}],["ayudar",{"_index":387,"title":{},"name":{},"text":{"2":{},"4":{},"17":{},"27":{},"39":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["ayudarlo",{"_index":2313,"title":{},"name":{},"text":{"16":{},"26":{}},"component":{},"keyword":{}}],["ayudarán",{"_index":7143,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["ayuden",{"_index":7492,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["az7t?trk=public_profile_like_view",{"_index":8094,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["azur",{"_index":2989,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["añad",{"_index":748,"title":{},"name":{},"text":{"4":{},"29":{},"45":{}},"component":{},"keyword":{}}],["añadido",{"_index":3846,"title":{},"name":{},"text":{"23":{},"45":{}},"component":{},"keyword":{}}],["añadiendo",{"_index":3194,"title":{},"name":{},"text":{"19":{},"28":{},"30":{},"31":{}},"component":{},"keyword":{}}],["añadimo",{"_index":3187,"title":{},"name":{},"text":{"19":{},"23":{},"24":{},"31":{}},"component":{},"keyword":{}}],["añadir",{"_index":344,"title":{"19-4":{}},"name":{},"text":{"2":{},"4":{},"18":{},"19":{},"23":{},"30":{},"45":{}},"component":{},"keyword":{}}],["añadiremo",{"_index":4043,"title":{},"name":{},"text":{"23":{},"26":{}},"component":{},"keyword":{}}],["año",{"_index":195,"title":{},"name":{},"text":{"2":{},"14":{},"15":{},"16":{},"18":{},"22":{},"27":{},"28":{},"29":{},"30":{},"32":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["añádal",{"_index":1804,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aún",{"_index":1768,"title":{},"name":{},"text":{"16":{},"18":{},"24":{},"28":{},"29":{},"38":{},"39":{},"45":{},"46":{}},"component":{},"keyword":{}}],["b",{"_index":1062,"title":{"29-32":{}},"name":{},"text":{"8":{},"14":{},"22":{},"23":{},"27":{},"29":{},"45":{},"46":{}},"component":{},"keyword":{}}],["b.nic.cl",{"_index":5670,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["b1",{"_index":4483,"title":{},"name":{},"text":{"26":{},"29":{}},"component":{},"keyword":{}}],["b1(host",{"_index":4484,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["b1(rama",{"_index":5934,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["b2(rama",{"_index":5935,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["b2[concepto",{"_index":4485,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["b2g",{"_index":5276,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["b3[cpanel",{"_index":4486,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["b4[sistema",{"_index":4487,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["b5[html",{"_index":4488,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["b6[github",{"_index":4489,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["backbon",{"_index":6551,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["backdoor",{"_index":7064,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["backend",{"_index":1184,"title":{"18-13":{},"18-26":{}},"name":{},"text":{"14":{},"15":{},"16":{},"18":{},"22":{},"25":{},"28":{},"30":{},"32":{},"37":{},"45":{}},"component":{},"keyword":{}}],["background=\"../../img/bg_stars.jpg",{"_index":5088,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["background_color",{"_index":6462,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["backlog",{"_index":487,"title":{},"name":{},"text":{"2":{},"43":{},"45":{}},"component":{},"keyword":{}}],["bad_valu",{"_index":3152,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["baja",{"_index":478,"title":{},"name":{},"text":{"2":{},"3":{},"26":{},"37":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["baja/media",{"_index":5595,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["bajo",{"_index":1141,"title":{},"name":{},"text":{"10":{},"14":{},"15":{},"16":{},"18":{},"23":{},"27":{},"29":{},"35":{},"40":{},"41":{},"43":{},"45":{}},"component":{},"keyword":{}}],["bajos→ca",{"_index":7948,"title":{"46-11":{}},"name":{},"text":{},"component":{},"keyword":{}}],["baker",{"_index":1070,"title":{},"name":{},"text":{"8":{},"14":{},"38":{}},"component":{},"keyword":{}}],["balanc",{"_index":7957,"title":{"46-29":{}},"name":{},"text":{},"component":{},"keyword":{}}],["balanceador",{"_index":8109,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["balanceo",{"_index":7955,"title":{"46-29":{}},"name":{},"text":{},"component":{},"keyword":{}}],["bancaria",{"_index":1592,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["banco",{"_index":1518,"title":{"16-37":{}},"name":{},"text":{"16":{},"18":{},"37":{}},"component":{},"keyword":{}}],["banda",{"_index":5137,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["bandeja",{"_index":2251,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["bandera",{"_index":4709,"title":{"27-1":{}},"name":{},"text":{"27":{},"45":{}},"component":{},"keyword":{}}],["bar",{"_index":3692,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["bar/1",{"_index":3677,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["barato",{"_index":8097,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["barco",{"_index":4749,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["barra",{"_index":2034,"title":{},"name":{},"text":{"16":{},"26":{},"28":{}},"component":{},"keyword":{}}],["basa",{"_index":2554,"title":{},"name":{},"text":{"17":{},"30":{},"35":{},"36":{},"41":{}},"component":{},"keyword":{}}],["basada",{"_index":527,"title":{"3-3":{}},"name":{},"text":{"3":{},"4":{},"16":{},"22":{},"26":{},"28":{},"30":{}},"component":{},"keyword":{}}],["basado",{"_index":3018,"title":{},"name":{},"text":{"19":{},"26":{},"27":{},"29":{},"30":{},"34":{},"36":{},"44":{},"46":{}},"component":{},"keyword":{}}],["basan",{"_index":7326,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["basars",{"_index":5932,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["base",{"_index":60,"title":{"19-1":{},"19-4":{},"23-6":{},"46-10":{},"46-24":{},"46-31":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"8":{},"14":{},"15":{},"16":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"34":{},"35":{},"36":{},"37":{},"40":{},"41":{},"43":{},"46":{}},"component":{},"keyword":{}}],["base/7",{"_index":3990,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["base64",{"_index":6964,"title":{"36-5":{}},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["bash",{"_index":2016,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["basic",{"_index":1215,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"19":{},"30":{}},"component":{},"keyword":{}}],["basico",{"_index":4647,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["bastant",{"_index":2803,"title":{},"name":{},"text":{"18":{},"32":{}},"component":{},"keyword":{}}],["batalla",{"_index":2083,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["batería",{"_index":1840,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["baz",{"_index":3691,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["baz/1",{"_index":3676,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["bb",{"_index":4726,"title":{"27-15":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["bcrypt",{"_index":6963,"title":{"36-4":{}},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["bd",{"_index":3206,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["beam",{"_index":2669,"title":{"18-14":{}},"name":{},"text":{"18":{},"22":{}},"component":{},"keyword":{}}],["beer",{"_index":4902,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["begin",{"_index":3245,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["beginn",{"_index":8137,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["beginner’",{"_index":1010,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["behind",{"_index":1051,"title":{},"name":{},"text":{"8":{},"14":{},"19":{}},"component":{},"keyword":{}}],["bello",{"_index":1805,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["beneficiarán",{"_index":7608,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["beneficio",{"_index":560,"title":{"4-2":{}},"name":{},"text":{"3":{},"4":{},"16":{},"29":{},"34":{},"37":{},"41":{}},"component":{},"keyword":{}}],["berner",{"_index":1030,"title":{},"name":{},"text":{"8":{},"14":{},"27":{},"30":{}},"component":{},"keyword":{}}],["bert",{"_index":5105,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["best",{"_index":3578,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["beta",{"_index":3731,"title":{},"name":{},"text":{"22":{},"39":{}},"component":{},"keyword":{}}],["beta.5",{"_index":6024,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["between",{"_index":6152,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["beyer",{"_index":1061,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["bg",{"_index":2812,"title":{},"name":{},"text":{"18":{},"23":{}},"component":{},"keyword":{}}],["bgcolor=\"#000",{"_index":5857,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["bgcolor=\"#000000",{"_index":5087,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["bi",{"_index":4903,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["bibliografía",{"_index":969,"title":{"8-1":{},"14-10":{}},"name":{},"text":{},"component":{},"keyword":{}}],["bibliographi",{"_index":970,"title":{},"name":{"8":{}},"text":{},"component":{},"keyword":{}}],["biblioteca",{"_index":814,"title":{},"name":{},"text":{"4":{},"14":{},"15":{},"18":{}},"component":{},"keyword":{}}],["bidireccional",{"_index":4833,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["bien",{"_index":226,"title":{},"name":{},"text":{"2":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"22":{},"26":{},"28":{},"29":{},"34":{},"38":{},"39":{},"40":{},"43":{},"44":{},"46":{}},"component":{},"keyword":{}}],["bienvenida",{"_index":4172,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["bienvenido",{"_index":2645,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["bifurcación",{"_index":4299,"title":{"26-2":{}},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["bigg",{"_index":1002,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["bigint",{"_index":7999,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["bigseri",{"_index":3183,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["billon",{"_index":6614,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["billón",{"_index":7992,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["binaria",{"_index":6950,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["binario",{"_index":2759,"title":{},"name":{},"text":{"18":{},"30":{},"35":{},"36":{},"46":{}},"component":{},"keyword":{}}],["bind",{"_index":7393,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["bird",{"_index":1255,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["bit",{"_index":4276,"title":{},"name":{},"text":{"25":{},"35":{},"46":{}},"component":{},"keyword":{}}],["bitcoin",{"_index":6991,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["biz",{"_index":5475,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["black",{"_index":5859,"title":{"37-2":{}},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["blackberri",{"_index":4739,"title":{"27-29":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["blade",{"_index":2973,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["blanco",{"_index":4617,"title":{},"name":{},"text":{"26":{},"37":{}},"component":{},"keyword":{}}],["blanda",{"_index":2480,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["blank",{"_index":4213,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["blast",{"_index":6204,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["blazor",{"_index":1979,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["blob",{"_index":8005,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["blob(1mb",{"_index":8085,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["bloc",{"_index":5184,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["blockchain",{"_index":6992,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["blog",{"_index":1097,"title":{},"name":{},"text":{"8":{},"14":{},"18":{},"39":{}},"component":{},"keyword":{}}],["bloqu",{"_index":6979,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["bloqueo",{"_index":6869,"title":{"44-8":{}},"name":{},"text":{"35":{},"44":{},"45":{}},"component":{},"keyword":{}}],["blue",{"_index":2849,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["bo",{"_index":5106,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["board",{"_index":1263,"title":{},"name":{},"text":{"14":{},"15":{},"27":{}},"component":{},"keyword":{}}],["bodi",{"_index":3894,"title":{},"name":{},"text":{"23":{},"26":{},"27":{},"29":{},"30":{}},"component":{},"keyword":{}}],["body>+cambiame{msg}stoicquot",{"_index":3870,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["framework7",{"_index":6398,"title":{"34-2":{}},"name":{},"text":{"32":{},"34":{}},"component":{},"keyword":{}}],["frameworkmi",{"_index":5863,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["h1>world",{"_index":4955,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["h2",{"_index":3989,"title":{},"name":{},"text":{"23":{},"26":{},"29":{}},"component":{},"keyword":{}}],["h2>mi",{"_index":5865,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["h3",{"_index":4444,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["h3>mi",{"_index":5867,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["ha",{"_index":346,"title":{},"name":{},"text":{"2":{},"3":{},"14":{},"15":{},"18":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"35":{},"36":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["haber",{"_index":5171,"title":{},"name":{},"text":{"27":{},"29":{},"40":{},"45":{}},"component":{},"keyword":{}}],["habido",{"_index":6103,"title":{},"name":{},"text":{"30":{},"46":{}},"component":{},"keyword":{}}],["habilidad",{"_index":508,"title":{"16-20":{}},"name":{},"text":{"2":{},"16":{},"17":{},"43":{}},"component":{},"keyword":{}}],["habilita",{"_index":6157,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["habilitada",{"_index":618,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["habilitado",{"_index":4148,"title":{},"name":{},"text":{"23":{},"43":{}},"component":{},"keyword":{}}],["habilitar",{"_index":556,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["habilitar/deshabilitar",{"_index":7369,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["habilitarlo",{"_index":2128,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["habiten",{"_index":7739,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["habitu",{"_index":7290,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["habitual",{"_index":6623,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["habitualment",{"_index":1612,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["habla",{"_index":2117,"title":{},"name":{},"text":{"16":{},"29":{},"38":{}},"component":{},"keyword":{}}],["había",{"_index":5288,"title":{},"name":{},"text":{"27":{},"29":{}},"component":{},"keyword":{}}],["habían",{"_index":1738,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["hace",{"_index":647,"title":{"16-21":{}},"name":{},"text":{"3":{},"16":{},"18":{},"26":{},"28":{},"29":{},"39":{},"40":{},"41":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["hacemo",{"_index":221,"title":{},"name":{},"text":{"2":{},"26":{}},"component":{},"keyword":{}}],["hacen",{"_index":1797,"title":{},"name":{},"text":{"16":{},"28":{},"29":{},"30":{},"40":{}},"component":{},"keyword":{}}],["hacer",{"_index":342,"title":{},"name":{},"text":{"2":{},"16":{},"18":{},"19":{},"20":{},"22":{},"26":{},"27":{},"28":{},"29":{},"32":{},"37":{},"45":{},"46":{}},"component":{},"keyword":{}}],["hacerla",{"_index":7582,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["hacerlo",{"_index":1651,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["hacers",{"_index":7511,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["hacia",{"_index":512,"title":{},"name":{},"text":{"2":{},"16":{},"23":{},"27":{},"29":{},"35":{}},"component":{},"keyword":{}}],["haciendo",{"_index":1845,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["hack",{"_index":2661,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["hacker",{"_index":7034,"title":{"37-2":{},"37-3":{},"37-4":{}},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["hacía",{"_index":2693,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["haga",{"_index":7935,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["han",{"_index":502,"title":{},"name":{},"text":{"2":{},"16":{},"27":{},"30":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["hanami",{"_index":2935,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["handle_event(\"inc_temperatur",{"_index":2909,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["handle_event(\"sav",{"_index":4050,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["handle_event(\"valid",{"_index":4047,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["happi",{"_index":3553,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["har",{"_index":7440,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["hard",{"_index":7170,"title":{},"name":{},"text":{"38":{},"39":{}},"component":{},"keyword":{}}],["hardwar",{"_index":3777,"title":{},"name":{},"text":{"22":{},"25":{},"27":{},"35":{},"43":{},"46":{}},"component":{},"keyword":{}}],["harmonyo",{"_index":6370,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["harán",{"_index":5540,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["hash",{"_index":6259,"title":{"36-1":{}},"name":{},"text":{"30":{},"36":{}},"component":{},"keyword":{}}],["hasta",{"_index":287,"title":{},"name":{},"text":{"2":{},"16":{},"17":{},"22":{},"26":{},"27":{},"28":{},"35":{},"36":{},"39":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["hasvalidtoken",{"_index":7127,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["hat",{"_index":4534,"title":{"37-2":{},"37-3":{},"37-4":{}},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["hax",{"_index":5177,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["hay",{"_index":614,"title":{},"name":{},"text":{"3":{},"14":{},"15":{},"16":{},"22":{},"24":{},"27":{},"28":{},"29":{},"30":{},"32":{},"36":{},"37":{},"40":{},"45":{},"46":{}},"component":{},"keyword":{}}],["haya",{"_index":3838,"title":{},"name":{},"text":{"23":{},"28":{}},"component":{},"keyword":{}}],["hayan",{"_index":7611,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["haz",{"_index":2286,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["head",{"_index":3852,"title":{},"name":{},"text":{"23":{},"29":{},"35":{}},"component":{},"keyword":{}}],["header",{"_index":3932,"title":{"30-1":{}},"name":{},"text":{"23":{},"27":{},"35":{}},"component":{},"keyword":{}}],["heat",{"_index":6220,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["hecha",{"_index":5175,"title":{},"name":{},"text":{"27":{},"28":{},"32":{}},"component":{},"keyword":{}}],["hecho",{"_index":1479,"title":{},"name":{},"text":{"14":{},"15":{},"18":{},"22":{},"24":{},"27":{},"29":{},"30":{},"32":{},"34":{},"40":{}},"component":{},"keyword":{}}],["height=\"0",{"_index":3906,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["heinrich",{"_index":4809,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["hellman",{"_index":6969,"title":{"36-9":{}},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["hello",{"_index":1213,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["help",{"_index":3698,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["helpwhat'",{"_index":4990,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"../datasources/www/servers.html\">w3",{"_index":4999,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"../readme.html\">get",{"_index":5047,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"/assets/css/app.css",{"_index":3874,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["href=\"administration/mailing/overview.html\">mail",{"_index":4975,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"bibliography.html\">bibliographyserversfrequ",{"_index":4984,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"help.html\">helphow",{"_index":5043,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"history.html\">historylin",{"_index":5010,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"linemode/defaults/distribution.html",{"_index":5051,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"mailrobot/overview.html",{"_index":5022,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"news/9211.html\">w3",{"_index":4981,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"next/worldwideweb.html\">nextsteppeoplepolicysoftwar",{"_index":5004,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"status.html#35\">violaexecut",{"_index":4972,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"technical.html\">technicaltoolsun",{"_index":5229,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["model",{"_index":2541,"title":{"17":{}},"name":{},"text":{"17":{},"22":{},"31":{},"35":{},"40":{}},"component":{},"keyword":{}}],["modelar",{"_index":3423,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["modelo",{"_index":2543,"title":{"35-45":{},"40-5":{},"40-6":{},"40-9":{}},"name":{},"text":{"17":{},"19":{},"27":{},"30":{},"35":{},"40":{}},"component":{},"keyword":{}}],["modern",{"_index":8143,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["moderna",{"_index":1955,"title":{},"name":{},"text":{"16":{},"18":{},"22":{},"32":{},"35":{},"46":{}},"component":{},"keyword":{}}],["modernizado",{"_index":6619,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["moderno",{"_index":1984,"title":{},"name":{},"text":{"16":{},"18":{},"27":{},"30":{},"46":{}},"component":{},"keyword":{}}],["modicamo",{"_index":4107,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["modif",{"_index":5919,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["modifiacion",{"_index":3487,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["modifica",{"_index":6357,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["modificacion",{"_index":3107,"title":{},"name":{},"text":{"19":{},"26":{}},"component":{},"keyword":{}}],["modificación",{"_index":4604,"title":{},"name":{},"text":{"26":{},"30":{},"38":{}},"component":{},"keyword":{}}],["modificada",{"_index":7894,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["modificado",{"_index":3924,"title":{},"name":{},"text":{"23":{},"45":{}},"component":{},"keyword":{}}],["modificamo",{"_index":4095,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["modificando",{"_index":6301,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["modificar",{"_index":919,"title":{"19-8":{},"20-4":{}},"name":{},"text":{"4":{},"16":{},"19":{},"23":{},"25":{},"26":{},"31":{},"43":{}},"component":{},"keyword":{}}],["modificaremo",{"_index":4091,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["modo",{"_index":1616,"title":{"26-39":{},"26-40":{},"26-41":{}},"name":{},"text":{"16":{},"18":{},"21":{},"24":{},"26":{},"29":{},"35":{}},"component":{},"keyword":{}}],["modul",{"_index":2768,"title":{},"name":{},"text":{"18":{},"19":{},"23":{},"24":{}},"component":{},"keyword":{}}],["moduledoc",{"_index":3131,"title":{},"name":{},"text":{"19":{},"24":{}},"component":{},"keyword":{}}],["modulo",{"_index":3303,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["molecul",{"_index":6196,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["moledora",{"_index":1506,"title":{"16-24":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["momento",{"_index":486,"title":{},"name":{},"text":{"2":{},"16":{},"19":{},"22":{},"23":{},"26":{},"27":{},"28":{},"29":{},"36":{},"39":{},"44":{},"45":{}},"component":{},"keyword":{}}],["monetario",{"_index":8069,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["mongo",{"_index":2028,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["monitoreada",{"_index":7929,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["monitorean",{"_index":1701,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["monitoreando",{"_index":7721,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["monitorear",{"_index":536,"title":{},"name":{},"text":{"3":{},"4":{},"44":{},"45":{}},"component":{},"keyword":{}}],["monitoreo",{"_index":562,"title":{"43-27":{}},"name":{},"text":{"3":{},"4":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["monitorización",{"_index":1945,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["monkey",{"_index":2985,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["monolito",{"_index":879,"title":{"40-2":{}},"name":{},"text":{"4":{},"40":{}},"component":{},"keyword":{}}],["monolítica",{"_index":7301,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["monolítico",{"_index":7296,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["montada",{"_index":4845,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["montar",{"_index":3826,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["monto",{"_index":1741,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["montón",{"_index":7311,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["moodl",{"_index":2383,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["moral",{"_index":1718,"title":{},"name":{},"text":{"16":{},"37":{},"45":{}},"component":{},"keyword":{}}],["moralidad",{"_index":7075,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["moralment",{"_index":1722,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["morderno",{"_index":6419,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["more",{"_index":3529,"title":{},"name":{},"text":{"20":{},"28":{},"35":{}},"component":{},"keyword":{}}],["mors",{"_index":4711,"title":{"27-3":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["mosaic",{"_index":4728,"title":{"27-18":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["mostrado",{"_index":5850,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["mostrando",{"_index":7623,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["mostrar",{"_index":3362,"title":{},"name":{},"text":{"19":{},"23":{},"26":{},"27":{},"28":{},"29":{},"36":{},"37":{},"39":{},"40":{}},"component":{},"keyword":{}}],["mostraremo",{"_index":3836,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["mostrarlo",{"_index":1455,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["mostrars",{"_index":6305,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["motiva",{"_index":2312,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["motivar",{"_index":7186,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["motivo",{"_index":3816,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["motor",{"_index":2590,"title":{},"name":{},"text":{"17":{},"18":{},"35":{},"46":{}},"component":{},"keyword":{}}],["motorola",{"_index":4861,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["mount",{"_index":3925,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["mount(_param",{"_index":3813,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["mount(param",{"_index":3823,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["mover",{"_index":335,"title":{},"name":{},"text":{"2":{},"24":{},"27":{}},"component":{},"keyword":{}}],["movers",{"_index":7076,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["moviendo",{"_index":7837,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["movimiento",{"_index":41,"title":{},"name":{},"text":{"1":{},"16":{},"45":{}},"component":{},"keyword":{}}],["movistar",{"_index":6592,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["mozilla",{"_index":5278,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["mpf",{"_index":1407,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["ms",{"_index":5724,"title":{"46-10":{},"46-11":{}},"name":{},"text":{"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["mttr",{"_index":175,"title":{"2-11":{}},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["mtu",{"_index":6776,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["much",{"_index":3242,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["mucha",{"_index":1713,"title":{},"name":{},"text":{"16":{},"18":{},"22":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"40":{},"45":{},"46":{}},"component":{},"keyword":{}}],["mucho",{"_index":1556,"title":{},"name":{},"text":{"16":{},"17":{},"18":{},"22":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"38":{},"40":{},"43":{},"46":{}},"component":{},"keyword":{}}],["muebl",{"_index":7713,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["muert",{"_index":2207,"title":{},"name":{},"text":{"16":{},"35":{}},"component":{},"keyword":{}}],["muerto",{"_index":858,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["muestr",{"_index":4090,"title":{},"name":{},"text":{"23":{},"26":{}},"component":{},"keyword":{}}],["muestra",{"_index":249,"title":{},"name":{},"text":{"2":{},"3":{},"22":{},"23":{},"24":{},"26":{},"28":{},"29":{},"35":{},"39":{},"40":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["muestran",{"_index":6359,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["muev",{"_index":4624,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["multa",{"_index":7048,"title":{},"name":{},"text":{"37":{},"43":{}},"component":{},"keyword":{}}],["multidisciplinario",{"_index":7964,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["multifuncional",{"_index":2045,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["multimedia",{"_index":6356,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["multinivel",{"_index":4524,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["multiplataforma",{"_index":1198,"title":{},"name":{},"text":{"14":{},"15":{},"25":{}},"component":{},"keyword":{}}],["multiplexación",{"_index":6876,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["multiplexar",{"_index":6877,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["mundial",{"_index":2125,"title":{},"name":{},"text":{"16":{},"17":{},"26":{},"27":{},"28":{}},"component":{},"keyword":{}}],["mundo",{"_index":1536,"title":{"16":{}},"name":{},"text":{"16":{},"18":{},"22":{},"26":{},"27":{},"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["murdock",{"_index":4555,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["murphi",{"_index":1066,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["music",{"_index":2054,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["mutacion",{"_index":3421,"title":{"20-7":{}},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["mutat",{"_index":3513,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["mutex",{"_index":8019,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["mutualidad",{"_index":1685,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["mutuo",{"_index":1615,"title":{},"name":{},"text":{"16":{},"35":{}},"component":{},"keyword":{}}],["muy",{"_index":89,"title":{},"name":{},"text":{"1":{},"3":{},"5":{},"14":{},"15":{},"16":{},"17":{},"18":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"34":{},"35":{},"36":{},"40":{},"45":{}},"component":{},"keyword":{}}],["mv",{"_index":4318,"title":{"26-31":{}},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["mvc",{"_index":2955,"title":{"40-10":{},"40-11":{},"40-12":{}},"name":{},"text":{"18":{},"19":{},"22":{},"40":{}},"component":{},"keyword":{}}],["mvp",{"_index":7328,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["mvvm",{"_index":7277,"title":{"40-10":{},"40-11":{}},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["mvw",{"_index":7330,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["mx",{"_index":5465,"title":{"35-32":{}},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["my_namespac",{"_index":2771,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["myip",{"_index":6505,"title":{"35-25":{}},"name":{},"text":{},"component":{},"keyword":{}}],["mypage.html",{"_index":6068,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["mysql",{"_index":1993,"title":{},"name":{},"text":{"16":{},"18":{},"28":{}},"component":{},"keyword":{}}],["má",{"_index":53,"title":{"24-7":{},"30-5":{},"30-6":{},"40-12":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["máquina",{"_index":3755,"title":{"46-25":{}},"name":{},"text":{"22":{},"27":{},"28":{},"29":{},"30":{},"35":{},"37":{},"38":{},"46":{}},"component":{},"keyword":{}}],["máxima",{"_index":99,"title":{},"name":{},"text":{"1":{},"2":{}},"component":{},"keyword":{}}],["máximo",{"_index":1381,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"39":{},"45":{}},"component":{},"keyword":{}}],["médica",{"_index":7661,"title":{"45-12":{}},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["médico",{"_index":7731,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["mérito",{"_index":5170,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["método",{"_index":2430,"title":{"30-2":{},"30-6":{}},"name":{},"text":{"16":{},"27":{},"28":{},"30":{},"36":{},"43":{}},"component":{},"keyword":{}}],["métrica",{"_index":179,"title":{"2":{},"4-6":{},"41-2":{},"45-26":{}},"name":{},"text":{"2":{},"3":{},"4":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["métrico",{"_index":887,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["méxico",{"_index":5466,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["mínima",{"_index":7766,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["mínimo",{"_index":413,"title":{},"name":{},"text":{"2":{},"3":{},"14":{},"15":{},"16":{},"18":{},"30":{},"40":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["módem",{"_index":4912,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["módulo",{"_index":3086,"title":{"22-2":{}},"name":{},"text":{"19":{},"21":{},"22":{},"23":{},"24":{},"26":{},"28":{},"43":{},"46":{}},"component":{},"keyword":{}}],["móvil",{"_index":942,"title":{"14-8":{},"15-6":{}},"name":{},"text":{"5":{},"14":{},"15":{},"16":{},"27":{},"32":{},"34":{}},"component":{},"keyword":{}}],["móvile",{"_index":949,"title":{"27":{},"32":{},"16-15":{},"27-22":{},"27-32":{}},"name":{},"text":{"5":{},"7":{},"14":{},"15":{},"16":{},"18":{},"22":{},"27":{},"30":{},"32":{},"34":{},"36":{},"37":{}},"component":{},"keyword":{}}],["múltipl",{"_index":106,"title":{},"name":{},"text":{"1":{},"4":{},"16":{},"18":{},"23":{},"25":{},"26":{},"27":{},"28":{},"31":{},"35":{},"40":{},"43":{},"46":{}},"component":{},"keyword":{}}],["músculo",{"_index":2086,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["música",{"_index":1438,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"25":{},"27":{}},"component":{},"keyword":{}}],["n",{"_index":1045,"title":{},"name":{},"text":{"8":{},"14":{},"26":{},"46":{}},"component":{},"keyword":{}}],["n=\"55",{"_index":4954,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["nabu",{"_index":4725,"title":{"27-12":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["naci",{"_index":2742,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["nacieron",{"_index":6375,"title":{},"name":{},"text":{"32":{},"40":{}},"component":{},"keyword":{}}],["nacimiento",{"_index":5054,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["nacion",{"_index":2397,"title":{},"name":{},"text":{"16":{},"27":{},"28":{}},"component":{},"keyword":{}}],["nacional",{"_index":7586,"title":{"45-6":{}},"name":{},"text":{"43":{},"45":{}},"component":{},"keyword":{}}],["nacionalment",{"_index":7779,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["nada",{"_index":1818,"title":{},"name":{},"text":{"16":{},"22":{},"30":{},"36":{}},"component":{},"keyword":{}}],["nadi",{"_index":2149,"title":{},"name":{},"text":{"16":{},"40":{}},"component":{},"keyword":{}}],["name",{"_index":720,"title":{"28-15":{},"35-34":{},"35-35":{}},"name":{},"text":{"3":{},"19":{},"28":{},"30":{},"34":{},"35":{}},"component":{},"keyword":{}}],["name:john",{"_index":6243,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["name=\"author",{"_index":4008,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"csrf",{"_index":3859,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"quot",{"_index":4026,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"sourc",{"_index":4020,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"token",{"_index":7122,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["name=\"viewport",{"_index":3854,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=0",{"_index":4960,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=13",{"_index":5003,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=14",{"_index":5035,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=15",{"_index":5039,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=24",{"_index":4971,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=25",{"_index":5017,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=26",{"_index":5015,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=27",{"_index":5009,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=29",{"_index":4974,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=30",{"_index":4977,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=34",{"_index":4980,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=35",{"_index":5013,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=37",{"_index":5042,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=40",{"_index":5031,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=41",{"_index":4983,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=44",{"_index":4989,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=45",{"_index":4995,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=46",{"_index":5001,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=47",{"_index":5027,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=48",{"_index":5046,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=49",{"_index":5050,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=51",{"_index":5019,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=52",{"_index":5024,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=53",{"_index":5021,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=z54",{"_index":4998,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name={@nam",{"_index":4078,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["nameserv",{"_index":5606,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["namespac",{"_index":5441,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["nation",{"_index":5073,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["nativ",{"_index":2010,"title":{},"name":{},"text":{"16":{},"32":{}},"component":{},"keyword":{}}],["nativa",{"_index":2007,"title":{"32-2":{}},"name":{},"text":{"16":{},"32":{},"34":{}},"component":{},"keyword":{}}],["nativescript",{"_index":6379,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{},"keyword":{}}],["nativo",{"_index":2009,"title":{"32-5":{},"34-1":{}},"name":{},"text":{"16":{},"18":{},"32":{},"34":{}},"component":{},"keyword":{}}],["natur",{"_index":2559,"title":{},"name":{},"text":{"17":{},"27":{}},"component":{},"keyword":{}}],["natural",{"_index":2600,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["naturaleza",{"_index":1662,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["nav",{"_index":2807,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["navegación",{"_index":6447,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["navegador",{"_index":1350,"title":{"27-18":{},"29-16":{},"31-5":{}},"name":{},"text":{"14":{},"15":{},"18":{},"23":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"35":{},"36":{}},"component":{},"keyword":{}}],["navegar",{"_index":4664,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["navidad",{"_index":7584,"title":{},"name":{},"text":{"43":{},"45":{}},"component":{},"keyword":{}}],["navig",{"_index":5080,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["nc",{"_index":1158,"title":{},"name":{},"text":{"10":{},"14":{},"35":{}},"component":{},"keyword":{}}],["ncsa",{"_index":5071,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["ncsa_mosaic/2.0",{"_index":6071,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["nd6",{"_index":6788,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["nda",{"_index":1604,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ndice",{"_index":3012,"title":{"19-3":{}},"name":{},"text":{"19":{},"21":{},"46":{}},"component":{},"keyword":{}}],["ndole",{"_index":1893,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["necesaria",{"_index":1451,"title":{},"name":{},"text":{"14":{},"15":{},"17":{},"22":{},"28":{},"30":{},"35":{},"40":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["necesariament",{"_index":3172,"title":{},"name":{},"text":{"19":{},"23":{},"45":{}},"component":{},"keyword":{}}],["necesario",{"_index":494,"title":{},"name":{},"text":{"2":{},"5":{},"14":{},"15":{},"16":{},"19":{},"20":{},"23":{},"26":{},"28":{},"32":{},"35":{},"38":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["necesidad",{"_index":246,"title":{},"name":{},"text":{"2":{},"16":{},"18":{},"22":{},"27":{},"28":{},"34":{},"35":{},"36":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["necesit",{"_index":920,"title":{},"name":{},"text":{"4":{},"40":{},"45":{},"46":{}},"component":{},"keyword":{}}],["necesita",{"_index":2978,"title":{},"name":{},"text":{"18":{},"19":{},"28":{},"30":{},"35":{},"38":{},"40":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["necesitaba",{"_index":4782,"title":{},"name":{},"text":{"27":{},"30":{}},"component":{},"keyword":{}}],["necesitamo",{"_index":3093,"title":{},"name":{},"text":{"19":{},"20":{},"31":{},"46":{}},"component":{},"keyword":{}}],["necesitan",{"_index":15,"title":{},"name":{},"text":{"1":{},"4":{},"16":{},"26":{},"30":{},"34":{},"35":{},"38":{},"40":{},"41":{},"44":{},"46":{}},"component":{},"keyword":{}}],["necesitando",{"_index":2902,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["necesitar",{"_index":8106,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["necesitará",{"_index":5357,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["necesitaría",{"_index":8067,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["necesitemo",{"_index":8006,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["necesiten",{"_index":780,"title":{},"name":{},"text":{"4":{},"18":{},"45":{}},"component":{},"keyword":{}}],["necess",{"_index":3226,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["need",{"_index":3600,"title":{},"name":{},"text":{"20":{},"29":{}},"component":{},"keyword":{}}],["negativa",{"_index":7468,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["negativament",{"_index":7264,"title":{},"name":{},"text":{"39":{},"41":{}},"component":{},"keyword":{}}],["negativo",{"_index":511,"title":{},"name":{},"text":{"2":{},"28":{}},"component":{},"keyword":{}}],["negocio",{"_index":894,"title":{},"name":{},"text":{"4":{},"16":{},"19":{},"28":{},"32":{},"35":{},"40":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["negrita",{"_index":4447,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["negro",{"_index":7059,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["neighbour",{"_index":3594,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["neociti",{"_index":5589,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["nest.j",{"_index":1977,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["net",{"_index":2346,"title":{"18-22":{}},"name":{},"text":{"16":{},"18":{},"28":{}},"component":{},"keyword":{}}],["netcat",{"_index":6820,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["netherland",{"_index":8049,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["netmask",{"_index":6781,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["netscap",{"_index":5079,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["netstat",{"_index":6501,"title":{"35-21":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["network",{"_index":2424,"title":{},"name":{},"text":{"16":{},"35":{},"46":{}},"component":{},"keyword":{}}],["neuronal",{"_index":2565,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["never",{"_index":3576,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["new",{"_index":1098,"title":{"45-21":{}},"name":{},"text":{"8":{},"14":{},"23":{},"37":{}},"component":{},"keyword":{}}],["new(attr",{"_index":4108,"title":{},"name":{},"text":{"23":{},"24":{}},"component":{},"keyword":{}}],["new/1",{"_index":4214,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["new_valu",{"_index":3157,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["news:comp.infosystems.www.servers.unix",{"_index":5390,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["news:formulario",{"_index":3840,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["p>nuevo",{"_index":6340,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["package.json",{"_index":6029,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["packet",{"_index":5740,"title":{},"name":{},"text":{"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["pacman",{"_index":1226,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["pactar",{"_index":1664,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["padr",{"_index":3830,"title":{},"name":{},"text":{"23":{},"27":{},"40":{}},"component":{},"keyword":{}}],["pagan",{"_index":2325,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["pagar",{"_index":1572,"title":{},"name":{},"text":{"16":{},"28":{},"45":{}},"component":{},"keyword":{}}],["page",{"_index":1073,"title":{},"name":{},"text":{"8":{},"14":{},"15":{},"23":{},"24":{},"26":{},"28":{},"35":{}},"component":{},"keyword":{}}],["page.ex",{"_index":3818,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["page.html.heex",{"_index":3819,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["page_titl",{"_index":3927,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["pagecontrol",{"_index":3314,"title":{},"name":{},"text":{"19":{},"23":{}},"component":{},"keyword":{}}],["pagina",{"_index":4395,"title":{},"name":{},"text":{"26":{},"30":{}},"component":{},"keyword":{}}],["pago",{"_index":1593,"title":{},"name":{},"text":{"16":{},"18":{},"28":{}},"component":{},"keyword":{}}],["paguen",{"_index":2191,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["palabra",{"_index":2107,"title":{},"name":{},"text":{"16":{},"17":{},"26":{},"28":{},"35":{},"36":{},"40":{}},"component":{},"keyword":{}}],["paleta",{"_index":4281,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["palmpilot",{"_index":5199,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["pandemia",{"_index":2471,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["panel",{"_index":3428,"title":{},"name":{},"text":{"20":{},"28":{},"43":{}},"component":{},"keyword":{}}],["pantalla",{"_index":1697,"title":{},"name":{},"text":{"16":{},"26":{},"27":{},"29":{},"40":{},"41":{}},"component":{},"keyword":{}}],["papel",{"_index":5886,"title":{},"name":{},"text":{"29":{},"36":{}},"component":{},"keyword":{}}],["paper",{"_index":5033,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["paquet",{"_index":5756,"title":{"35-13":{},"35-27":{},"46-11":{}},"name":{},"text":{"28":{},"35":{},"40":{}},"component":{},"keyword":{}}],["par",{"_index":2375,"title":{},"name":{},"text":{"16":{},"18":{},"20":{},"35":{}},"component":{},"keyword":{}}],["para",{"_index":11,"title":{"24-7":{},"43-9":{},"43-11":{},"43-12":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"10":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["paradigm",{"_index":2618,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["paraguay",{"_index":6590,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["paralela",{"_index":329,"title":{},"name":{},"text":{"2":{},"35":{},"43":{}},"component":{},"keyword":{}}],["paralelo",{"_index":8105,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["param",{"_index":2773,"title":{},"name":{},"text":{"18":{},"19":{},"23":{},"24":{}},"component":{},"keyword":{}}],["parametro",{"_index":4265,"title":{},"name":{},"text":{"24":{},"31":{}},"component":{},"keyword":{}}],["parcel",{"_index":3003,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["parch",{"_index":7191,"title":{"39-2":{}},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["parcial",{"_index":5781,"title":{},"name":{},"text":{"28":{},"39":{},"45":{}},"component":{},"keyword":{}}],["parcialment",{"_index":7881,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["parec",{"_index":3785,"title":{},"name":{},"text":{"22":{},"27":{},"28":{}},"component":{},"keyword":{}}],["parecen",{"_index":5319,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["pareto",{"_index":1824,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["park",{"_index":1272,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["part",{"_index":842,"title":{},"name":{},"text":{"4":{},"14":{},"15":{},"16":{},"17":{},"19":{},"22":{},"24":{},"25":{},"26":{},"28":{},"30":{},"36":{},"40":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["partial",{"_index":3568,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["participa",{"_index":7884,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["participant",{"_index":4932,"title":{},"name":{},"text":{"27":{},"35":{},"38":{}},"component":{},"keyword":{}}],["participar",{"_index":1448,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"44":{},"45":{}},"component":{},"keyword":{}}],["particular",{"_index":4753,"title":{},"name":{},"text":{"27":{},"28":{},"35":{}},"component":{},"keyword":{}}],["partido",{"_index":2072,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["partiendo",{"_index":4382,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["partir",{"_index":714,"title":{},"name":{},"text":{"3":{},"17":{},"20":{},"26":{},"29":{},"30":{},"34":{},"40":{}},"component":{},"keyword":{}}],["parámetro",{"_index":2595,"title":{},"name":{},"text":{"17":{},"19":{},"23":{},"26":{},"30":{},"40":{},"46":{}},"component":{},"keyword":{}}],["pasa",{"_index":876,"title":{},"name":{},"text":{"4":{},"16":{},"22":{},"29":{},"36":{},"39":{},"44":{},"45":{}},"component":{},"keyword":{}}],["pasado",{"_index":2686,"title":{},"name":{},"text":{"18":{},"19":{},"27":{},"29":{},"30":{},"45":{}},"component":{},"keyword":{}}],["pasamo",{"_index":3673,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["pasan",{"_index":7808,"title":{},"name":{},"text":{"45":{},"46":{}},"component":{},"keyword":{}}],["pasando",{"_index":924,"title":{},"name":{},"text":{"4":{},"16":{},"23":{},"45":{}},"component":{},"keyword":{}}],["pasar",{"_index":1652,"title":{},"name":{},"text":{"16":{},"26":{},"27":{},"29":{},"34":{},"39":{},"45":{}},"component":{},"keyword":{}}],["pasarla",{"_index":7857,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pascal",{"_index":7356,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["pase",{"_index":7023,"title":{},"name":{},"text":{"36":{},"39":{}},"component":{},"keyword":{}}],["pasean",{"_index":5296,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["paso",{"_index":518,"title":{"19-1":{},"19-2":{},"19-3":{},"19-4":{},"19-5":{},"19-6":{},"19-7":{},"19-8":{},"19-9":{},"19-10":{},"20-1":{},"20-2":{},"20-7":{},"20-9":{},"23-1":{},"23-2":{},"23-3":{},"23-4":{},"23-5":{},"23-6":{},"23-7":{},"23-8":{},"24-1":{},"24-2":{},"24-3":{},"24-4":{},"24-5":{},"24-6":{},"24-8":{},"45-20":{}},"name":{},"text":{"2":{},"14":{},"15":{},"16":{},"27":{},"28":{},"29":{},"30":{},"35":{},"38":{},"39":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["pasándol",{"_index":3358,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["patch",{"_index":6015,"title":{},"name":{},"text":{"29":{},"30":{},"39":{}},"component":{},"keyword":{}}],["patent",{"_index":4829,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["paternidad",{"_index":7660,"title":{"45-12":{}},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["path",{"_index":3968,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["path.expand(\"../stoic_quotes_test.db",{"_index":4166,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["patrick",{"_index":6667,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["patron",{"_index":787,"title":{"40":{}},"name":{},"text":{"4":{},"16":{},"17":{},"20":{},"22":{},"40":{},"43":{}},"component":{},"keyword":{}}],["patrón",{"_index":3737,"title":{"40-5":{},"40-9":{}},"name":{},"text":{"22":{},"40":{}},"component":{},"keyword":{}}],["pattern",{"_index":1257,"title":{"22-3":{}},"name":{"40":{}},"text":{"14":{},"15":{},"20":{},"22":{},"39":{}},"component":{},"keyword":{}}],["paul",{"_index":974,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["pausada",{"_index":7804,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pausan",{"_index":7805,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pauta",{"_index":7979,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["paypal",{"_index":5508,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["paí",{"_index":2448,"title":{},"name":{},"text":{"16":{},"28":{},"35":{},"45":{}},"component":{},"keyword":{}}],["país",{"_index":2450,"title":{},"name":{},"text":{"16":{},"32":{},"37":{}},"component":{},"keyword":{}}],["pb",{"_index":3988,"title":{},"name":{},"text":{"23":{},"46":{}},"component":{},"keyword":{}}],["pc",{"_index":4913,"title":{},"name":{},"text":{"27":{},"44":{}},"component":{},"keyword":{}}],["pccw",{"_index":6556,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["pda",{"_index":5179,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["pdf",{"_index":4464,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["pdu",{"_index":6928,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["pedagógico",{"_index":3128,"title":{},"name":{},"text":{"19":{},"23":{}},"component":{},"keyword":{}}],["pedirán",{"_index":7733,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["peer",{"_index":7324,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["pega",{"_index":2364,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pegar",{"_index":4694,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["pelican",{"_index":4404,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["peligro",{"_index":1702,"title":{},"name":{},"text":{"16":{},"26":{}},"component":{},"keyword":{}}],["pemiten",{"_index":4093,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["pena",{"_index":2214,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["penal",{"_index":1821,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pendient",{"_index":5294,"title":{},"name":{},"text":{"27":{},"37":{},"41":{},"44":{},"45":{}},"component":{},"keyword":{}}],["pensaban",{"_index":2129,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pensada",{"_index":7537,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["pensado",{"_index":30,"title":{},"name":{},"text":{"1":{},"16":{},"18":{},"34":{},"39":{},"45":{}},"component":{},"keyword":{}}],["pensamo",{"_index":7970,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["pensando",{"_index":3424,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["pensar",{"_index":3658,"title":{},"name":{},"text":{"22":{},"30":{}},"component":{},"keyword":{}}],["peopl",{"_index":5037,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["pequeña",{"_index":237,"title":{},"name":{},"text":{"2":{},"5":{},"14":{},"16":{},"18":{},"32":{},"35":{},"40":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["pequeño",{"_index":295,"title":{},"name":{},"text":{"2":{},"3":{},"16":{},"18":{},"19":{},"22":{},"28":{},"35":{},"36":{},"37":{},"40":{},"46":{}},"component":{},"keyword":{}}],["per",{"_index":6587,"title":{"46-16":{},"46-19":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["perder",{"_index":1809,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["perderlo",{"_index":5631,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["perecen",{"_index":2202,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["perf",{"_index":6022,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["perfeccionar",{"_index":2096,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["perfección",{"_index":3714,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["perfecta",{"_index":2793,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["perfectament",{"_index":1766,"title":{},"name":{},"text":{"16":{},"40":{}},"component":{},"keyword":{}}],["perfecto",{"_index":2852,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["perfil",{"_index":5336,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["perfom",{"_index":191,"title":{"43-30":{}},"name":{},"text":{"2":{},"4":{}},"component":{},"keyword":{}}],["perform",{"_index":1054,"title":{},"name":{},"text":{"8":{},"14":{},"45":{}},"component":{},"keyword":{}}],["periferia",{"_index":925,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["periférico",{"_index":6633,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["perimetr",{"_index":6653,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["periodicidad",{"_index":7587,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["periodo",{"_index":114,"title":{},"name":{},"text":{"1":{},"3":{},"28":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["periódicament",{"_index":111,"title":{},"name":{},"text":{"1":{}},"component":{},"keyword":{}}],["periódo",{"_index":1318,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["perl",{"_index":2964,"title":{},"name":{},"text":{"18":{},"26":{},"28":{},"30":{}},"component":{},"keyword":{}}],["permanec",{"_index":3790,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["permanecen",{"_index":6659,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["permiso",{"_index":4321,"title":{"26-36":{}},"name":{},"text":{"26":{},"29":{},"43":{},"44":{}},"component":{},"keyword":{}}],["permit",{"_index":39,"title":{"26-1":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"14":{},"15":{},"16":{},"18":{},"19":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["permita",{"_index":36,"title":{},"name":{},"text":{"1":{},"14":{},"15":{},"19":{},"28":{},"35":{},"37":{},"43":{},"45":{}},"component":{},"keyword":{}}],["permitan",{"_index":230,"title":{},"name":{},"text":{"2":{},"37":{},"38":{},"40":{},"43":{},"45":{}},"component":{},"keyword":{}}],["permiten",{"_index":188,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"17":{},"24":{},"28":{},"32":{},"34":{},"35":{},"38":{},"43":{}},"component":{},"keyword":{}}],["permiti",{"_index":5059,"title":{},"name":{},"text":{"27":{},"30":{}},"component":{},"keyword":{}}],["permitida",{"_index":1382,"title":{},"name":{},"text":{"14":{},"15":{},"35":{}},"component":{},"keyword":{}}],["permitido",{"_index":1342,"title":{},"name":{},"text":{"14":{},"15":{},"29":{},"34":{},"39":{},"45":{}},"component":{},"keyword":{}}],["permitiendo",{"_index":159,"title":{},"name":{},"text":{"1":{},"4":{},"18":{},"27":{},"30":{},"36":{},"38":{},"43":{},"45":{}},"component":{},"keyword":{}}],["permitieron",{"_index":2927,"title":{},"name":{},"text":{"18":{},"26":{}},"component":{},"keyword":{}}],["permitir",{"_index":31,"title":{},"name":{},"text":{"1":{},"2":{},"4":{},"14":{},"15":{},"16":{},"18":{},"19":{},"24":{},"27":{},"28":{},"30":{},"32":{},"35":{},"38":{},"39":{},"45":{},"46":{}},"component":{},"keyword":{}}],["permitirl",{"_index":7022,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["permitirán",{"_index":5359,"title":{},"name":{},"text":{"28":{},"29":{}},"component":{},"keyword":{}}],["permitía",{"_index":4931,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["pero",{"_index":108,"title":{},"name":{},"text":{"1":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"37":{},"39":{},"40":{},"44":{},"45":{}},"component":{},"keyword":{}}],["persistencia",{"_index":7289,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["persistent",{"_index":6868,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["person",{"_index":27,"title":{},"name":{},"text":{"1":{},"14":{},"15":{},"16":{},"26":{},"27":{}},"component":{},"keyword":{}}],["persona",{"_index":134,"title":{},"name":{},"text":{"1":{},"5":{},"14":{},"15":{},"16":{},"17":{},"18":{},"26":{},"28":{},"29":{},"30":{},"37":{},"38":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["persona1",{"_index":7178,"title":{},"name":{},"text":{"38":{},"44":{}},"component":{},"keyword":{}}],["persona2",{"_index":7179,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["persona3",{"_index":7180,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["persona4",{"_index":7182,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["persona5",{"_index":7183,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["persona6",{"_index":7184,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["personaj",{"_index":1314,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["personal",{"_index":5194,"title":{},"name":{},"text":{"27":{},"35":{}},"component":{},"keyword":{}}],["personalización",{"_index":2747,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["personalizada",{"_index":628,"title":{},"name":{},"text":{"3":{},"4":{},"14":{},"15":{},"28":{},"36":{}},"component":{},"keyword":{}}],["personalizado",{"_index":1325,"title":{},"name":{},"text":{"14":{},"15":{},"18":{},"28":{},"29":{},"35":{},"45":{}},"component":{},"keyword":{}}],["personalizar",{"_index":2798,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["perspectiva",{"_index":7429,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["pertenec",{"_index":6093,"title":{},"name":{},"text":{"30":{},"44":{}},"component":{},"keyword":{}}],["pertenecen",{"_index":5478,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["pertenencia",{"_index":7925,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pertinencia",{"_index":7892,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pertinent",{"_index":7920,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["período",{"_index":636,"title":{},"name":{},"text":{"3":{},"27":{}},"component":{},"keyword":{}}],["pesar",{"_index":3776,"title":{},"name":{},"text":{"22":{},"40":{}},"component":{},"keyword":{}}],["peso",{"_index":2446,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["peso_imagen",{"_index":8086,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["petabyt",{"_index":7996,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["petal",{"_index":2021,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["peter",{"_index":8011,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["peticion",{"_index":589,"title":{},"name":{},"text":{"3":{},"4":{},"18":{},"28":{},"30":{},"37":{}},"component":{},"keyword":{}}],["petición",{"_index":4389,"title":{},"name":{},"text":{"26":{},"30":{},"35":{},"46":{}},"component":{},"keyword":{}}],["petoff",{"_index":1065,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["phalcon",{"_index":2939,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["phd",{"_index":1084,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["phi",{"_index":6273,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["phish",{"_index":7041,"title":{"37-10":{},"37-11":{}},"name":{},"text":{},"component":{},"keyword":{}}],["phoenix",{"_index":1008,"title":{"22-9":{},"22-10":{}},"name":{},"text":{"8":{},"14":{},"15":{},"16":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"32":{},"34":{}},"component":{},"keyword":{}}],["phoenix.component.live_titl",{"_index":3864,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["phoenix.control",{"_index":3345,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["phoenix.html.form.normalize_value(\"textarea",{"_index":4080,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["phoenix.livedashboard.rout",{"_index":3336,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["phoenix.liveview",{"_index":3821,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["phoenix.liveviewtest",{"_index":4254,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["phoenix_live_view",{"_index":3866,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["phone",{"_index":4740,"title":{"27-30":{}},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["phone.com//dtd",{"_index":5223,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["php",{"_index":1903,"title":{"18-17":{}},"name":{},"text":{"16":{},"18":{},"22":{},"26":{},"28":{},"37":{}},"component":{},"keyword":{}}],["phx",{"_index":2906,"title":{},"name":{},"text":{"18":{},"23":{}},"component":{},"keyword":{}}],["phx.gen",{"_index":3630,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["phx.gen.context",{"_index":3038,"title":{},"name":{},"text":{"19":{},"24":{}},"component":{},"keyword":{}}],["phx.new",{"_index":3029,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["phx.server",{"_index":3385,"title":{},"name":{},"text":{"19":{},"21":{},"23":{}},"component":{},"keyword":{}}],["phx:theme",{"_index":3889,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["phx_new",{"_index":3434,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["pi",{"_index":4294,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["pianista",{"_index":2046,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pica",{"_index":7666,"title":{"45-23":{}},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pide",{"_index":5538,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["piden",{"_index":2142,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pie",{"_index":4428,"title":{},"name":{},"text":{"26":{},"29":{}},"component":{},"keyword":{}}],["piedra",{"_index":7398,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["pierd",{"_index":1807,"title":{},"name":{},"text":{"16":{},"29":{}},"component":{},"keyword":{}}],["pierden",{"_index":6532,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["pieza",{"_index":2053,"title":{},"name":{},"text":{"16":{},"40":{},"45":{}},"component":{},"keyword":{}}],["pila",{"_index":6898,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["pill",{"_index":2808,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["pin",{"_index":7095,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["pincelada",{"_index":936,"title":{},"name":{},"text":{"5":{},"14":{}},"component":{},"keyword":{}}],["ping",{"_index":5353,"title":{"28-23":{},"35-19":{}},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["pinterest",{"_index":3770,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["pionero",{"_index":2923,"title":{},"name":{},"text":{"18":{},"27":{}},"component":{},"keyword":{}}],["pipe",{"_index":1264,"title":{"22-4":{},"26-35":{}},"name":{},"text":{"14":{},"15":{},"22":{},"26":{}},"component":{},"keyword":{}}],["pipe_through",{"_index":3283,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["pipe_through(:api",{"_index":3315,"title":{},"name":{},"text":{"19":{},"24":{}},"component":{},"keyword":{}}],["pipe_through(:brows",{"_index":3313,"title":{},"name":{},"text":{"19":{},"23":{},"24":{}},"component":{},"keyword":{}}],["pipelin",{"_index":333,"title":{},"name":{},"text":{"2":{},"19":{},"43":{}},"component":{},"keyword":{}}],["piso",{"_index":5657,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["pizza",{"_index":2199,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["placeholder:text",{"_index":4014,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["placeholder=\"lorem",{"_index":4063,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["placeholder=\"marcu",{"_index":4057,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["placeholder=\"medit",{"_index":4060,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["plan",{"_index":1469,"title":{},"name":{},"text":{"14":{},"15":{},"41":{},"43":{},"44":{}},"component":{},"keyword":{}}],["plane",{"_index":5303,"title":{},"name":{},"text":{"27":{},"43":{},"45":{}},"component":{},"keyword":{}}],["planificación",{"_index":771,"title":{},"name":{},"text":{"4":{},"27":{},"37":{},"41":{},"43":{}},"component":{},"keyword":{}}],["planificado",{"_index":5375,"title":{},"name":{},"text":{"28":{},"43":{}},"component":{},"keyword":{}}],["planificar",{"_index":1362,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"38":{},"43":{}},"component":{},"keyword":{}}],["plano",{"_index":6171,"title":{},"name":{},"text":{"30":{},"36":{},"38":{},"46":{}},"component":{},"keyword":{}}],["planteado",{"_index":8070,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["plantilla",{"_index":703,"title":{"38-1":{},"44-14":{}},"name":{},"text":{"3":{},"18":{},"22":{},"34":{},"41":{},"44":{}},"component":{},"keyword":{}}],["plantuml",{"_index":7486,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["plataforma",{"_index":352,"title":{"16-56":{}},"name":{},"text":{"2":{},"14":{},"15":{},"16":{},"22":{},"25":{},"26":{},"27":{},"28":{},"30":{},"32":{},"34":{},"40":{},"41":{},"45":{}},"component":{},"keyword":{}}],["platanu",{"_index":2256,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["play",{"_index":5249,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["player",{"_index":4594,"title":{},"name":{},"text":{"26":{},"27":{}},"component":{},"keyword":{}}],["playground",{"_index":977,"title":{"20-8":{}},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["playstor",{"_index":6373,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{},"keyword":{}}],["plazo",{"_index":280,"title":{"44-1":{}},"name":{},"text":{"2":{},"14":{},"15":{},"16":{},"39":{},"44":{},"45":{}},"component":{},"keyword":{}}],["pleas",{"_index":5712,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["plesk",{"_index":5585,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["plu",{"_index":2386,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["plug",{"_index":3735,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["plug(:accept",{"_index":3289,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug(:fetch_live_flash",{"_index":3308,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug(:fetch_sess",{"_index":3307,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug(:protect_from_forgeri",{"_index":3311,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug(:put_root_layout",{"_index":3309,"title":{},"name":{},"text":{"19":{},"23":{}},"component":{},"keyword":{}}],["plug(:put_secure_browser_head",{"_index":3312,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug.basicauth",{"_index":3331,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug.swoosh.mailboxpreview",{"_index":3340,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plugin",{"_index":2737,"title":{},"name":{},"text":{"18":{},"27":{}},"component":{},"keyword":{}}],["plural",{"_index":3039,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["pm",{"_index":674,"title":{},"name":{},"text":{"3":{},"45":{}},"component":{},"keyword":{}}],["po",{"_index":7080,"title":{},"name":{},"text":{"37":{},"45":{}},"component":{},"keyword":{}}],["poca",{"_index":669,"title":{},"name":{},"text":{"3":{},"16":{},"27":{},"40":{},"45":{}},"component":{},"keyword":{}}],["pocket",{"_index":5191,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["poco",{"_index":1881,"title":{},"name":{},"text":{"16":{},"18":{},"23":{},"26":{},"27":{},"28":{},"39":{},"40":{},"41":{},"45":{},"46":{}},"component":{},"keyword":{}}],["podcast",{"_index":2443,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["podemo",{"_index":438,"title":{},"name":{},"text":{"2":{},"19":{},"23":{},"24":{},"26":{},"28":{},"29":{},"31":{},"35":{},"40":{},"46":{}},"component":{},"keyword":{}}],["poder",{"_index":379,"title":{},"name":{},"text":{"2":{},"16":{},"18":{},"24":{},"26":{},"27":{},"29":{},"30":{},"36":{},"41":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["poderosa",{"_index":4511,"title":{},"name":{},"text":{"26":{},"27":{}},"component":{},"keyword":{}}],["poderoso",{"_index":4516,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["podr",{"_index":1656,"title":{},"name":{},"text":{"16":{},"37":{},"45":{}},"component":{},"keyword":{}}],["podremo",{"_index":3087,"title":{},"name":{},"text":{"19":{},"26":{},"31":{},"35":{}},"component":{},"keyword":{}}],["podrá",{"_index":1914,"title":{},"name":{},"text":{"16":{},"28":{}},"component":{},"keyword":{}}],["podrán",{"_index":1663,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["podría",{"_index":2392,"title":{},"name":{},"text":{"16":{},"17":{},"18":{},"26":{},"27":{},"28":{},"32":{},"34":{},"40":{},"46":{}},"component":{},"keyword":{}}],["podríamo",{"_index":7862,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["podrían",{"_index":3728,"title":{},"name":{},"text":{"22":{},"34":{},"37":{},"38":{},"43":{}},"component":{},"keyword":{}}],["podía",{"_index":3781,"title":{},"name":{},"text":{"22":{},"27":{},"40":{}},"component":{},"keyword":{}}],["podían",{"_index":4934,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["poetri",{"_index":1229,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["point",{"_index":1222,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["pointer",{"_index":4992,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["polar",{"_index":1725,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["polici",{"_index":1232,"title":{},"name":{},"text":{"14":{},"15":{},"35":{}},"component":{},"keyword":{}}],["politica",{"_index":1026,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["poll",{"_index":2900,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["política",{"_index":1019,"title":{"39":{},"39-3":{}},"name":{},"text":{"8":{},"14":{},"35":{},"43":{},"46":{}},"component":{},"keyword":{}}],["político",{"_index":7066,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["pondr",{"_index":1541,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["poner",{"_index":4677,"title":{},"name":{},"text":{"26":{},"29":{},"40":{}},"component":{},"keyword":{}}],["ponerla",{"_index":5420,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["pong",{"_index":4297,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["pool",{"_index":4169,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["pool_siz",{"_index":4168,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["pop",{"_index":5798,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["popular",{"_index":1502,"title":{"16-19":{}},"name":{},"text":{"18":{},"22":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"34":{},"35":{},"36":{},"45":{}},"component":{},"keyword":{}}],["popularidad",{"_index":4839,"title":{},"name":{},"text":{"27":{},"32":{},"35":{}},"component":{},"keyword":{}}],["por",{"_index":50,"title":{"4-1":{},"4-3":{},"22-10":{},"27-7":{},"28-3":{},"28-17":{},"29-3":{},"44-18":{},"45-12":{},"46-16":{},"46-25":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"10":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["porcentaj",{"_index":509,"title":{},"name":{},"text":{"2":{},"3":{},"16":{}},"component":{},"keyword":{}}],["porcion",{"_index":7751,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["porqu",{"_index":1649,"title":{},"name":{},"text":{"16":{},"22":{},"26":{},"28":{},"29":{},"35":{},"40":{}},"component":{},"keyword":{}}],["port",{"_index":6268,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["portabilidad",{"_index":1856,"title":{},"name":{},"text":{"16":{},"25":{}},"component":{},"keyword":{}}],["portafolio",{"_index":2418,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["portapapel",{"_index":4695,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["portrait",{"_index":6475,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["portátil",{"_index":1838,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["posean",{"_index":1563,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["poseen",{"_index":4587,"title":{},"name":{},"text":{"26":{},"35":{}},"component":{},"keyword":{}}],["posibilidad",{"_index":1582,"title":{},"name":{},"text":{"16":{},"26":{}},"component":{},"keyword":{}}],["posibl",{"_index":505,"title":{},"name":{},"text":{"2":{},"14":{},"15":{},"16":{},"17":{},"22":{},"27":{},"28":{},"29":{},"35":{},"37":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["posiblement",{"_index":5626,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["posicion",{"_index":4764,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["posicionar",{"_index":5376,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["posicionart",{"_index":2110,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["posición",{"_index":5440,"title":{},"name":{},"text":{"28":{},"37":{}},"component":{},"keyword":{}}],["positiva",{"_index":7467,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["positivo",{"_index":672,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["possibl",{"_index":3243,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["post",{"_index":3293,"title":{},"name":{},"text":{"19":{},"23":{},"26":{},"30":{},"46":{}},"component":{},"keyword":{}}],["post_statu",{"_index":4498,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["posterior",{"_index":2934,"title":{},"name":{},"text":{"18":{},"27":{},"35":{},"36":{},"43":{},"45":{}},"component":{},"keyword":{}}],["posteriorment",{"_index":4947,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["postgr",{"_index":1908,"title":{},"name":{},"text":{"16":{},"18":{},"19":{},"20":{}},"component":{},"keyword":{}}],["postgres,graphql",{"_index":3466,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["postgresql",{"_index":8060,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["postman",{"_index":6052,"title":{"30-21":{}},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["postor",{"_index":7074,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["posts_por_dia",{"_index":8075,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["postulacion",{"_index":2210,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["postular",{"_index":1583,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["potenci",{"_index":2588,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["potencia",{"_index":6307,"title":{},"name":{},"text":{"31":{},"46":{}},"component":{},"keyword":{}}],["potencial",{"_index":796,"title":{},"name":{},"text":{"4":{},"28":{}},"component":{},"keyword":{}}],["potenciar",{"_index":2685,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["potent",{"_index":5182,"title":{},"name":{},"text":{"27":{},"30":{},"32":{},"46":{}},"component":{},"keyword":{}}],["power",{"_index":3560,"title":{},"name":{},"text":{"20":{},"24":{},"30":{}},"component":{},"keyword":{}}],["pr",{"_index":97,"title":{},"name":{},"text":{"1":{},"45":{}},"component":{},"keyword":{}}],["practica",{"_index":2048,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["practicando",{"_index":2051,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["practicar",{"_index":2093,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pragmat",{"_index":2533,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pragmático",{"_index":3680,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["prd",{"_index":1467,"title":{"41":{}},"name":{"41":{}},"text":{"14":{},"15":{},"41":{},"43":{}},"component":{},"keyword":{}}],["pre",{"_index":1871,"title":{"29-20":{}},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["precaución",{"_index":4365,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["precedi",{"_index":5056,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["precio",{"_index":1852,"title":{},"name":{},"text":{"16":{},"27":{},"28":{},"32":{},"40":{},"46":{}},"component":{},"keyword":{}}],["precisa",{"_index":846,"title":{},"name":{},"text":{"4":{},"17":{},"30":{}},"component":{},"keyword":{}}],["precisión",{"_index":8002,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["precompilada",{"_index":3746,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["preconstruida",{"_index":2844,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["preconstruido",{"_index":2791,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["precursor",{"_index":4721,"title":{"27-9":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["precursora",{"_index":5190,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["predec",{"_index":7829,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["predecesor",{"_index":5265,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["predefinida",{"_index":4377,"title":{},"name":{},"text":{"26":{},"30":{}},"component":{},"keyword":{}}],["predefinido",{"_index":4069,"title":{},"name":{},"text":{"23":{},"24":{}},"component":{},"keyword":{}}],["predeterminada",{"_index":2904,"title":{},"name":{},"text":{"18":{},"28":{},"35":{}},"component":{},"keyword":{}}],["predeterminado",{"_index":2801,"title":{},"name":{},"text":{"18":{},"19":{},"24":{},"26":{},"28":{},"46":{}},"component":{},"keyword":{}}],["predilecto",{"_index":1980,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["preentrenan",{"_index":2563,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["preescrita",{"_index":2782,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["preestablecida",{"_index":4668,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["prefer",{"_index":5956,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["preferencia",{"_index":1861,"title":{},"name":{},"text":{"16":{},"36":{},"44":{}},"component":{},"keyword":{}}],["preferida",{"_index":4542,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["preferido",{"_index":968,"title":{},"name":{},"text":{"7":{},"14":{},"26":{}},"component":{},"keyword":{}}],["preferir",{"_index":7479,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["prefier",{"_index":2969,"title":{},"name":{},"text":{"18":{},"29":{},"32":{}},"component":{},"keyword":{}}],["prefieren",{"_index":5903,"title":{},"name":{},"text":{"29":{},"30":{}},"component":{},"keyword":{}}],["prefixlen",{"_index":6784,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["pregunta",{"_index":1796,"title":{"41-6":{}},"name":{},"text":{"16":{},"17":{},"38":{},"40":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["preguntando",{"_index":7836,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["preguntar",{"_index":4622,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["preinstalada",{"_index":5204,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["premiado",{"_index":7755,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["prendía",{"_index":7571,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["preocupacion",{"_index":7287,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["preocupars",{"_index":8053,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["prepago",{"_index":7760,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["prepar",{"_index":3502,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["prepara",{"_index":7622,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["preparación",{"_index":7160,"title":{"43-2":{}},"name":{},"text":{"38":{},"43":{}},"component":{},"keyword":{}}],["preparada",{"_index":6411,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["preparado",{"_index":1990,"title":{},"name":{},"text":{"16":{},"28":{},"39":{},"43":{}},"component":{},"keyword":{}}],["preparar",{"_index":7628,"title":{},"name":{},"text":{"44":{},"45":{}},"component":{},"keyword":{}}],["preparars",{"_index":2076,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["prepárat",{"_index":2219,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["preseleccionada",{"_index":2949,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["presenc",{"_index":1083,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["presenci",{"_index":1691,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["presencia",{"_index":4504,"title":{},"name":{},"text":{"26":{},"28":{},"35":{},"45":{}},"component":{},"keyword":{}}],["presencial",{"_index":7709,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["present",{"_index":2226,"title":{},"name":{},"text":{"16":{},"18":{},"19":{},"30":{},"35":{},"40":{},"45":{}},"component":{},"keyword":{}}],["presenta",{"_index":6880,"title":{},"name":{},"text":{"35":{},"38":{},"40":{}},"component":{},"keyword":{}}],["presentacion",{"_index":4436,"title":{},"name":{},"text":{"26":{},"27":{}},"component":{},"keyword":{}}],["presentación",{"_index":2063,"title":{},"name":{},"text":{"16":{},"27":{},"29":{},"32":{},"40":{},"45":{}},"component":{},"keyword":{}}],["presentado",{"_index":6891,"title":{},"name":{},"text":{"35":{},"38":{},"45":{}},"component":{},"keyword":{}}],["presentador",{"_index":7329,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["presentan",{"_index":2889,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["presentar",{"_index":5239,"title":{},"name":{},"text":{"27":{},"44":{},"45":{}},"component":{},"keyword":{}}],["presentars",{"_index":2058,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["preserv",{"_index":3567,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["press",{"_index":1058,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["prestacion",{"_index":1689,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["prestar",{"_index":7931,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["prestashop",{"_index":4655,"title":{},"name":{},"text":{"26":{},"28":{}},"component":{},"keyword":{}}],["prestashop/como",{"_index":4652,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["preston",{"_index":6262,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["presupuestado",{"_index":7863,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["presupuestaria",{"_index":7427,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["presupuesto",{"_index":1409,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"43":{}},"component":{},"keyword":{}}],["pretend",{"_index":6255,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["prevenir",{"_index":7521,"title":{},"name":{},"text":{"43":{},"44":{}},"component":{},"keyword":{}}],["previa",{"_index":7465,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["previament",{"_index":5621,"title":{},"name":{},"text":{"28":{},"45":{}},"component":{},"keyword":{}}],["previen",{"_index":800,"title":{},"name":{},"text":{"4":{},"43":{}},"component":{},"keyword":{}}],["preview",{"_index":1100,"title":{},"name":{},"text":{"8":{},"14":{},"19":{}},"component":{},"keyword":{}}],["previo",{"_index":2477,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["previsión",{"_index":1594,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["prevista",{"_index":7256,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["previsto",{"_index":7826,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["primari",{"_index":2813,"title":{},"name":{},"text":{"18":{},"20":{},"26":{}},"component":{},"keyword":{}}],["primaria",{"_index":3011,"title":{"19-3":{}},"name":{},"text":{"19":{},"46":{}},"component":{},"keyword":{}}],["primario",{"_index":5549,"title":{},"name":{},"text":{"28":{},"46":{}},"component":{},"keyword":{}}],["primer",{"_index":306,"title":{"27-18":{},"28-11":{}},"name":{},"text":{"2":{},"26":{},"27":{},"28":{},"35":{},"45":{},"46":{}},"component":{},"keyword":{}}],["primer/segundo",{"_index":4616,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["primera",{"_index":315,"title":{"27-13":{}},"name":{},"text":{"2":{},"26":{},"27":{},"28":{},"32":{},"34":{},"35":{},"37":{},"39":{},"43":{},"46":{}},"component":{},"keyword":{}}],["primero",{"_index":1678,"title":{},"name":{},"text":{"16":{},"19":{},"20":{},"23":{},"28":{},"29":{},"40":{},"45":{},"46":{}},"component":{},"keyword":{}}],["primo",{"_index":2599,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["primordial",{"_index":5260,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["princip",{"_index":122,"title":{},"name":{},"text":{"1":{},"2":{},"3":{},"16":{},"18":{},"19":{},"23":{},"26":{},"27":{},"28":{},"29":{},"34":{},"35":{},"40":{},"45":{}},"component":{},"keyword":{}}],["principal",{"_index":18,"title":{},"name":{},"text":{"1":{},"3":{},"16":{},"18":{},"19":{},"25":{},"26":{},"35":{},"43":{},"46":{}},"component":{},"keyword":{}}],["principalment",{"_index":613,"title":{},"name":{},"text":{"3":{},"5":{},"14":{},"15":{},"18":{},"19":{},"20":{},"26":{},"27":{},"28":{},"32":{},"35":{},"37":{},"40":{},"45":{}},"component":{},"keyword":{}}],["principio",{"_index":1813,"title":{},"name":{},"text":{"16":{},"18":{},"26":{},"27":{},"35":{},"36":{},"40":{},"43":{},"46":{}},"component":{},"keyword":{}}],["prioridad",{"_index":300,"title":{"45-16":{}},"name":{},"text":{"2":{},"16":{},"35":{},"38":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["prioritaria",{"_index":7811,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["prioriza",{"_index":2298,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["priorización",{"_index":7478,"title":{},"name":{},"text":{"43":{},"45":{}},"component":{},"keyword":{}}],["priorizada",{"_index":7886,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["priorizar",{"_index":7193,"title":{},"name":{},"text":{"39":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["priorizarla",{"_index":485,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["priv/repo",{"_index":3215,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["priv/repo/migrations/*_create_quotes.ex",{"_index":3052,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["priv/repo/quotes.json",{"_index":3216,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["priv/repo/seeds.ex",{"_index":3255,"title":{},"name":{},"text":{"19":{},"21":{}},"component":{},"keyword":{}}],["priv/repo/structure.sql",{"_index":3626,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["privacidad",{"_index":1494,"title":{"16-10":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["privada",{"_index":3655,"title":{},"name":{},"text":{"22":{},"28":{},"35":{},"36":{},"37":{},"39":{}},"component":{},"keyword":{}}],["privadament",{"_index":7259,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["privado",{"_index":2190,"title":{},"name":{},"text":{"16":{},"28":{},"37":{}},"component":{},"keyword":{}}],["privat",{"_index":3407,"title":{"35-35":{}},"name":{},"text":{"19":{},"28":{},"35":{}},"component":{},"keyword":{}}],["privilegio",{"_index":5788,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["pro",{"_index":1857,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["proactiva",{"_index":568,"title":{},"name":{},"text":{"3":{},"4":{}},"component":{},"keyword":{}}],["proactivo",{"_index":793,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["probabilidad",{"_index":693,"title":{},"name":{},"text":{"3":{},"16":{},"37":{},"43":{}},"component":{},"keyword":{}}],["probabl",{"_index":2275,"title":{},"name":{},"text":{"16":{},"39":{},"45":{}},"component":{},"keyword":{}}],["probablement",{"_index":1721,"title":{},"name":{},"text":{"16":{},"28":{},"45":{},"46":{}},"component":{},"keyword":{}}],["probada",{"_index":7574,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["probado",{"_index":5944,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["probar",{"_index":341,"title":{"20-8":{}},"name":{},"text":{"2":{},"16":{},"20":{},"24":{},"40":{},"43":{},"44":{}},"component":{},"keyword":{}}],["probaremo",{"_index":4235,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["problema",{"_index":228,"title":{"37-5":{},"44-8":{}},"name":{},"text":{"2":{},"3":{},"4":{},"16":{},"18":{},"22":{},"24":{},"26":{},"27":{},"29":{},"34":{},"35":{},"37":{},"38":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["problemática",{"_index":7323,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["procedimiento",{"_index":5130,"title":{},"name":{},"text":{"27":{},"30":{},"35":{},"43":{}},"component":{},"keyword":{}}],["procesada",{"_index":6099,"title":{},"name":{},"text":{"30":{},"45":{}},"component":{},"keyword":{}}],["procesado",{"_index":6104,"title":{},"name":{},"text":{"30":{},"46":{}},"component":{},"keyword":{}}],["procesador",{"_index":1830,"title":{},"name":{},"text":{"16":{},"26":{},"46":{}},"component":{},"keyword":{}}],["procesamiento",{"_index":4390,"title":{},"name":{},"text":{"26":{},"46":{}},"component":{},"keyword":{}}],["procesando",{"_index":6098,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["procesar",{"_index":3297,"title":{},"name":{},"text":{"19":{},"45":{}},"component":{},"keyword":{}}],["proceso",{"_index":145,"title":{"44-6":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"16":{},"17":{},"18":{},"20":{},"25":{},"26":{},"27":{},"30":{},"32":{},"34":{},"35":{},"37":{},"38":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["processwir",{"_index":1966,"title":{},"name":{},"text":{"16":{},"18":{},"28":{},"37":{}},"component":{},"keyword":{}}],["procura",{"_index":2172,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["prod",{"_index":4152,"title":{"45-39":{}},"name":{},"text":{"24":{},"45":{}},"component":{},"keyword":{}}],["produc",{"_index":4463,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["producción",{"_index":5,"title":{"1-4":{},"29-20":{},"29-21":{},"43-26":{},"43-27":{},"45-20":{}},"name":{},"text":{"1":{},"2":{},"3":{},"16":{},"19":{},"24":{},"29":{},"39":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["producido",{"_index":503,"title":{},"name":{},"text":{"2":{},"35":{}},"component":{},"keyword":{}}],["producir",{"_index":2100,"title":{},"name":{},"text":{"16":{},"26":{},"27":{}},"component":{},"keyword":{}}],["product",{"_index":21,"title":{"41":{},"29-21":{},"42-2":{}},"name":{},"text":{"1":{},"8":{},"14":{},"15":{},"19":{},"29":{},"41":{},"45":{}},"component":{},"keyword":{}}],["productividad",{"_index":3743,"title":{},"name":{},"text":{"22":{},"32":{}},"component":{},"keyword":{}}],["productivo",{"_index":146,"title":{},"name":{},"text":{"1":{},"2":{},"43":{},"45":{}},"component":{},"keyword":{}}],["producto",{"_index":940,"title":{"41":{},"43":{},"16-47":{}},"name":{},"text":{"5":{},"14":{},"15":{},"16":{},"17":{},"22":{},"27":{},"29":{},"30":{},"39":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["products:contactprofilehome12",{"_index":3982,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["spark",{"_index":2951,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["speci",{"_index":6162,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["special",{"_index":2529,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["specif",{"_index":3447,"title":{},"name":{},"text":{"20":{},"28":{}},"component":{},"keyword":{}}],["spike",{"_index":7798,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["spirit",{"_index":3573,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["spring",{"_index":1959,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["springboot",{"_index":2178,"title":{},"name":{},"text":{"16":{},"18":{},"22":{}},"component":{},"keyword":{}}],["sprite",{"_index":4287,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["sql",{"_index":3036,"title":{},"name":{},"text":{"19":{},"21":{},"26":{},"37":{}},"component":{},"keyword":{}}],["sqlinject",{"_index":7037,"title":{"37-7":{}},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["sqlite",{"_index":1383,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["sqlite3",{"_index":3024,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["sqlserver",{"_index":1909,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["squad",{"_index":6191,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["squadnam",{"_index":6190,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["squash",{"_index":4300,"title":{"26-5":{}},"name":{},"text":{"29":{},"45":{}},"component":{},"keyword":{}}],["src",{"_index":6468,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["src=\"/assets/js/app.j",{"_index":3877,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["src=\"/miimagen.gif",{"_index":6081,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["src=\"/phoenix/live_reload/frame\">[ámbito",{"_index":6010,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["titl",{"_index":3867,"title":{},"name":{},"text":{"23":{},"26":{},"30":{}},"component":{},"keyword":{}}],["title=\"carta",{"_index":5228,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["title>th",{"_index":4951,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["tizen",{"_index":6368,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["tl",{"_index":7903,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["tld",{"_index":5506,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["tld.d",{"_index":5680,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["to_form",{"_index":4040,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["to_form(%{\"author",{"_index":4041,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["to_form(param",{"_index":4049,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["tocan",{"_index":2147,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["toda",{"_index":903,"title":{},"name":{},"text":{"4":{},"16":{},"18":{},"19":{},"21":{},"23":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"35":{},"37":{},"38":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["todavía",{"_index":2959,"title":{},"name":{},"text":{"18":{},"27":{},"35":{},"38":{}},"component":{},"keyword":{}}],["todo",{"_index":128,"title":{},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"34":{},"35":{},"37":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["toefl",{"_index":2441,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["toggle=\"tab",{"_index":2832,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["token",{"_index":2605,"title":{"36-8":{}},"name":{},"text":{"17":{},"23":{},"30":{},"35":{},"36":{},"37":{}},"component":{},"keyword":{}}],["tolerancia",{"_index":8124,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["tom",{"_index":6261,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["toma",{"_index":267,"title":{},"name":{},"text":{"2":{},"4":{},"16":{},"18":{},"22":{},"26":{},"32":{},"35":{},"38":{},"45":{},"46":{}},"component":{},"keyword":{}}],["tomada",{"_index":7139,"title":{},"name":{},"text":{"38":{},"43":{},"45":{}},"component":{},"keyword":{}}],["tomamo",{"_index":8080,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["toman",{"_index":1695,"title":{},"name":{},"text":{"16":{},"38":{},"45":{},"46":{}},"component":{},"keyword":{}}],["tomando",{"_index":5286,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["tomar",{"_index":767,"title":{},"name":{},"text":{"4":{},"16":{},"18":{},"27":{},"28":{},"38":{},"43":{},"45":{}},"component":{},"keyword":{}}],["tomaron",{"_index":7504,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["tome",{"_index":2130,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["tomemo",{"_index":1724,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["toml",{"_index":6051,"title":{"30-19":{}},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tomo",{"_index":3299,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["tom’",{"_index":6253,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tonn",{"_index":6211,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tono",{"_index":5236,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["top",{"_index":5454,"title":{},"name":{},"text":{"28":{},"37":{},"43":{}},"component":{},"keyword":{}}],["topic",{"_index":1075,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["torno",{"_index":7792,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["total",{"_index":37,"title":{},"name":{},"text":{"1":{},"2":{},"26":{},"30":{},"39":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["totalidad",{"_index":6128,"title":{},"name":{},"text":{"30":{},"39":{}},"component":{},"keyword":{}}],["totalment",{"_index":6977,"title":{},"name":{},"text":{"36":{},"40":{},"45":{}},"component":{},"keyword":{}}],["touch",{"_index":4316,"title":{"26-29":{}},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["tower",{"_index":6194,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tra",{"_index":1747,"title":{},"name":{},"text":{"16":{},"26":{},"27":{},"28":{},"32":{}},"component":{},"keyword":{}}],["trabaj",{"_index":158,"title":{},"name":{},"text":{"1":{},"45":{},"46":{}},"component":{},"keyword":{}}],["trabaja",{"_index":1680,"title":{},"name":{},"text":{"16":{},"30":{}},"component":{},"keyword":{}}],["trabajaba",{"_index":4860,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["trabajado",{"_index":7740,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["trabajador",{"_index":1544,"title":{},"name":{},"text":{"16":{},"26":{},"45":{}},"component":{},"keyword":{}}],["trabajan",{"_index":2166,"title":{},"name":{},"text":{"16":{},"37":{},"40":{}},"component":{},"keyword":{}}],["trabajando",{"_index":1492,"title":{"16-9":{}},"name":{},"text":{},"component":{},"keyword":{}}],["trabajar",{"_index":869,"title":{},"name":{},"text":{"4":{},"16":{},"26":{},"29":{},"45":{}},"component":{},"keyword":{}}],["trabajarán",{"_index":1565,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["trabajen",{"_index":2767,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["trabajo",{"_index":382,"title":{"16-1":{},"16-6":{},"45-2":{}},"name":{},"text":{"2":{},"16":{},"18":{},"27":{},"29":{},"35":{},"37":{},"39":{},"40":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["trace",{"_index":730,"title":{"4-5":{}},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["tracerout",{"_index":6500,"title":{"35-20":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["track",{"_index":3163,"title":{},"name":{},"text":{"19":{},"23":{}},"component":{},"keyword":{}}],["trade",{"_index":1880,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["tradicion",{"_index":2895,"title":{},"name":{},"text":{"18":{},"45":{},"46":{}},"component":{},"keyword":{}}],["tradicional",{"_index":2858,"title":{},"name":{},"text":{"18":{},"19":{},"34":{}},"component":{},"keyword":{}}],["tradicionalment",{"_index":1601,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["traduccion",{"_index":5566,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["traducción",{"_index":5530,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["traducir",{"_index":2585,"title":{},"name":{},"text":{"17":{},"28":{}},"component":{},"keyword":{}}],["traer",{"_index":5312,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["traffic",{"_index":586,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["trailer",{"_index":6941,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["trama",{"_index":6931,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transaccion",{"_index":1410,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["transfer",{"_index":6108,"title":{"35-44":{}},"name":{},"text":{"30":{},"35":{}},"component":{},"keyword":{}}],["transferencia",{"_index":4841,"title":{},"name":{},"text":{"27":{},"35":{},"46":{}},"component":{},"keyword":{}}],["transferir",{"_index":8066,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["transferirlo",{"_index":6178,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["transferirs",{"_index":5069,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["transform",{"_index":1280,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["transforma",{"_index":2752,"title":{},"name":{},"text":{"18":{},"35":{}},"component":{},"keyword":{}}],["transformacion",{"_index":2715,"title":{},"name":{},"text":{"18":{},"31":{}},"component":{},"keyword":{}}],["transformada",{"_index":6943,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transformador",{"_index":2555,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["transformando",{"_index":6524,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transformar",{"_index":8068,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["transformars",{"_index":5290,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["transición",{"_index":4883,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["transitoria",{"_index":5939,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["translat",{"_index":5975,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["transmición",{"_index":6673,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transmisión",{"_index":6233,"title":{},"name":{},"text":{"30":{},"35":{},"36":{}},"component":{},"keyword":{}}],["transmisión/protocolo",{"_index":6894,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transmiss",{"_index":6496,"title":{"35-14":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transmit",{"_index":5741,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["transmiti",{"_index":4819,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["transmitida",{"_index":6927,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transmitir",{"_index":4748,"title":{},"name":{},"text":{"27":{},"30":{},"36":{}},"component":{},"keyword":{}}],["transparencia",{"_index":7794,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["transpilación",{"_index":2725,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["transpilador",{"_index":5822,"title":{"29-13":{}},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["transport",{"_index":1522,"title":{"16-41":{},"35-47":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transporta",{"_index":6535,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transportar",{"_index":6912,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transversal",{"_index":3915,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["trasera",{"_index":7085,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["trasladar",{"_index":420,"title":{},"name":{},"text":{"2":{}},"component":{},"keyword":{}}],["trasmisión",{"_index":6064,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["trata",{"_index":224,"title":{},"name":{},"text":{"2":{},"16":{},"27":{},"28":{},"35":{},"36":{}},"component":{},"keyword":{}}],["trataba",{"_index":4891,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["tratamiento",{"_index":1688,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["tratando",{"_index":930,"title":{},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["travel",{"_index":6225,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["travé",{"_index":785,"title":{"46-8":{}},"name":{},"text":{"4":{},"17":{},"20":{},"26":{},"27":{},"28":{},"30":{},"32":{},"35":{},"36":{},"37":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["trayecto",{"_index":1491,"title":{"16-9":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["traza",{"_index":729,"title":{"4-5":{}},"name":{},"text":{"4":{}},"component":{},"keyword":{}}],["trazabilidad",{"_index":837,"title":{},"name":{},"text":{"4":{},"26":{},"35":{},"45":{}},"component":{},"keyword":{}}],["tre",{"_index":2357,"title":{},"name":{},"text":{"16":{},"22":{},"23":{},"28":{},"35":{},"36":{},"37":{},"39":{},"40":{},"45":{}},"component":{},"keyword":{}}],["treinta",{"_index":3754,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["tremendo",{"_index":2468,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["trend",{"_index":643,"title":{},"name":{},"text":{"3":{}},"component":{},"keyword":{}}],["trenzado",{"_index":6920,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["trip",{"_index":5745,"title":{},"name":{},"text":{"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["triumph",{"_index":2528,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["triunfaría",{"_index":5231,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["triunfo",{"_index":5207,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["troncal",{"_index":6552,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tronco",{"_index":432,"title":{"29-19":{}},"name":{},"text":{"2":{},"26":{},"29":{}},"component":{},"keyword":{}}],["troyano",{"_index":7063,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["true",{"_index":3500,"title":{},"name":{},"text":{"20":{},"22":{},"23":{},"24":{},"30":{}},"component":{},"keyword":{}}],["trunk",{"_index":433,"title":{"29-19":{}},"name":{},"text":{"2":{},"14":{},"15":{},"43":{}},"component":{},"keyword":{}}],["tráfico",{"_index":513,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["trámite",{"_index":1577,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["ttl",{"_index":6511,"title":{"35-37":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ttl=58",{"_index":5722,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["tu",{"_index":1698,"title":{},"name":{},"text":{"16":{},"18":{},"19":{},"20":{},"26":{},"28":{},"29":{},"32":{},"34":{},"35":{},"36":{}},"component":{},"keyword":{}}],["tue",{"_index":6073,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tupla",{"_index":4118,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["turn",{"_index":6202,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["turno",{"_index":4056,"title":{},"name":{},"text":{"23":{},"45":{}},"component":{},"keyword":{}}],["tutori",{"_index":3019,"title":{},"name":{},"text":{"19":{},"23":{},"24":{},"46":{}},"component":{},"keyword":{}}],["tutorial",{"_index":2420,"title":{"26-37":{},"26-43":{}},"name":{},"text":{"16":{},"24":{}},"component":{},"keyword":{}}],["tuvimo",{"_index":5572,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["tv",{"_index":4856,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["twitter",{"_index":7973,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["txt/spf",{"_index":6509,"title":{"35-33":{}},"name":{},"text":{},"component":{},"keyword":{}}],["type",{"_index":3401,"title":{},"name":{},"text":{"19":{},"20":{},"24":{},"29":{},"30":{},"34":{}},"component":{},"keyword":{}}],["type=\"button",{"_index":2833,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["type=\"hidden",{"_index":7121,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["type=\"reset",{"_index":4030,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type=\"submit",{"_index":4032,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type=\"text",{"_index":4007,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type=\"text/javascript",{"_index":3876,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type=\"textarea",{"_index":4062,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["typescript",{"_index":6428,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["técnica",{"_index":2097,"title":{},"name":{},"text":{"16":{},"17":{},"18":{},"22":{},"24":{},"26":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["técnico",{"_index":2323,"title":{},"name":{},"text":{"16":{},"27":{},"28":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["télex",{"_index":4716,"title":{"27-6":{},"27-11":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["término",{"_index":547,"title":{},"name":{},"text":{"3":{},"17":{},"18":{},"27":{},"28":{},"36":{},"39":{},"43":{}},"component":{},"keyword":{}}],["típica",{"_index":5521,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["típicament",{"_index":6539,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["típico",{"_index":3660,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["título",{"_index":2169,"title":{},"name":{},"text":{"16":{},"23":{}},"component":{},"keyword":{}}],["títulointroducción",{"_index":6235,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tóxica",{"_index":2160,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["u",{"_index":2006,"title":{},"name":{},"text":{"16":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"37":{},"40":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["uat",{"_index":1470,"title":{"44":{},"44-5":{},"44-6":{}},"name":{"44":{}},"text":{"14":{},"15":{},"41":{},"44":{}},"component":{},"keyword":{}}],["ubicacion",{"_index":6645,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ubicación",{"_index":5383,"title":{},"name":{},"text":{"28":{},"34":{},"35":{},"44":{},"46":{}},"component":{},"keyword":{}}],["ubicada",{"_index":3051,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["ubicado",{"_index":3064,"title":{},"name":{},"text":{"19":{},"46":{}},"component":{},"keyword":{}}],["ubicars",{"_index":8115,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["ubuntu",{"_index":4648,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["ucla",{"_index":4878,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["udp",{"_index":6497,"title":{"35-15":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["udp4",{"_index":6765,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ufinet",{"_index":6571,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ui",{"_index":7282,"title":{},"name":{},"text":{"40":{},"41":{},"43":{}},"component":{},"keyword":{}}],["ui/ux",{"_index":7907,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["ul",{"_index":2805,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ul>th",{"_index":4956,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["webassembl",{"_index":2666,"title":{"18-4":{}},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["webdesignplayground",{"_index":973,"title":{},"name":{},"text":{"8":{},"14":{}},"component":{},"keyword":{}}],["webhost",{"_index":5786,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["webmanifest",{"_index":6454,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["webmin",{"_index":5804,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["webpack",{"_index":2665,"title":{"18-2":{}},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["websit",{"_index":4376,"title":{},"name":{},"text":{"26":{},"28":{}},"component":{},"keyword":{}}],["websocket",{"_index":2898,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["webview",{"_index":6365,"title":{"32-7":{}},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["well",{"_index":3223,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["werner",{"_index":6263,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["whatev",{"_index":3601,"title":{},"name":{},"text":{"20":{},"40":{}},"component":{},"keyword":{}}],["whatsapp",{"_index":5261,"title":{},"name":{},"text":{"27":{},"35":{}},"component":{},"keyword":{}}],["whenc",{"_index":3232,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["white",{"_index":2824,"title":{"37-4":{}},"name":{},"text":{"18":{},"23":{},"29":{}},"component":{},"keyword":{}}],["white\">sto",{"_index":3955,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["white/10",{"_index":3941,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["white/5",{"_index":4011,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["whm",{"_index":5354,"title":{"28-25":{}},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["whoi",{"_index":5351,"title":{"28-20":{},"35-18":{}},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["whois.nic.cl",{"_index":5652,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["wholesal",{"_index":6542,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["wide",{"_index":4035,"title":{"27":{},"27-16":{}},"name":{},"text":{"23":{},"27":{}},"component":{},"keyword":{}}],["width",{"_index":3856,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["width=\"0",{"_index":3907,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["width=\"2",{"_index":3972,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["wifi",{"_index":6601,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["wiki",{"_index":4342,"title":{},"name":{},"text":{"26":{},"38":{}},"component":{},"keyword":{}}],["wikipedia",{"_index":1566,"title":{},"name":{},"text":{"16":{},"28":{}},"component":{},"keyword":{}}],["wilkins EEx.eval_string \"Hola, <%= @name %>\", assigns: [name: \"Camilo\"] \"Hola, Camilo\" La relación entre los datos, plantillas, script y alertas se puede diagramar de la siguiente manera. Figure 1. Diagrama de Relación Datos, Script, Plantillas y Alertas Además de estandarizar y automatizar la generación de alertas, se recomienda automatizar el proceso de deployment de las mismas, utilizando algún workflow de Github actions por ejemplo.","title":"Golden Signals","component":"ROOT","version":"","name":"golden","url":"/devops/golden.html","titles":[{"text":"Alertas","hash":"alertas","id":1},{"text":"Alertas de Límite Fijo","hash":"alertas-de-límite-fijo","id":2},{"text":"Alertas Basadas en Tendencias","hash":"alertas-basadas-en-tendencias","id":3},{"text":"Automatización y Estandarización de Alertas","hash":"automatización-y-estandarización-de-alertas","id":4}]},"4":{"id":4,"text":"La observabilidad e instrumentación se refiere al proceso de añadir código o herramientas a un sistema para adquirir y analizar datos acerca de su comportamiento y desempeño. Estos datos pueden ser usados para obtener conocimientos sobre el funcionamiento interno del sistema, permitir resolver problemas y mejorar su desempeño en general. La observabilidad e instrumentación consiste en añadir capacidades de monitoreo y generación de registros (logs) a un sistema. Esto es añadir código para registrar métricas como los tiempos de respuesta, tasa de error y utilización de recursos. También añade registrar eventos y capturar trazas de error (stack traces) para proporcionar información detallada sobre la ejecución de un sistema. También puede incluir herramientas de traza distribuidas para tener un seguimiento de un request cuando viaja por múltiples componentes de un sistema. Esto puede ayudar a descubrir cuellos de botella y problemas de desempeño (perfomance). Al instrumentar un sistema para observabilidad, los desarrolladores y operadores pueden obtener una comprehensión más profunda de cómo el sistema se comporta en tiempo real. Esto permite a ellos identificar y resolver rápidamente los problemas, mejorar el desempeño del sistema y tomar decisiones informadas sobre escalamiento y planificación de capacidad. La observabilidad e instrumentación es usada para obtener información sobre el comportamiento y desempeño de un sistema. Algunas razones para implementar son: Resolver problemas e incidentes: Al instrumentar un sistema los desarrolladores y operadores pueden obtener datos sobre el comportamiento y desempeño. Estos datos pueden ser usados para identificar e solucionar incidentes, como tiempos de respuesta lentos, errores o cuellos de botella de recursos. Ayudan a identificar rápidamente la causa raíz de un prolema y resolverlo eficientemente. Mejora de desempeño: Proporciona visibilidad en el desempeño de un sistema. Al obtener métricas como tiempos de respuesta, tasas de error y utilización de recursos, los desarrolladores pueden identificar áreas que necesiten optimización. Se puede tomar decisiones informadas para afinación del desempeño, escalamiento y optimización de la asignación de recursos. Planificación de capacidad y escalamiento: Al monitorear y analizar los datos obtenidos a través de la observabilidad e instrumentación, los desarrolladores pueden entender las exigencias y los patrones de uso de recursos de un sistema. Ésta información es valiosa para la planificación de recursos y decisiones de escalamiento. Ayuda a determinar cuando añadir más recursos o escalar horizontalmente para manejar el tráfico o exigencias de la tarea. Monitoreo y alertas proactivas: La observabilidad e instrumentación permiten el monitoreo proactivo de un sistema. Al establecer alertas basadas en límites o anomalías los desarrolladores pueden ser notificados de potenciales incidentes antes de que los usuarios finales sean impactados. Esto permite una mitigación proactiva y previene potenciales cortes de servicio o degradación del desempeño. Comprender el comportamiento del sistema: Proporciona conocimiento profundo de cómo un sistema se comporta en tiempo real, ayudando a entender el flujo de de peticiones (requests), dependencias entre componentes y el impacto de los cambios. Este conocimiento es crucial para depurar incidentes complejos, optimizar desempeño y realizar decisiones de arquitectura informadas. La observabilidad e instrumentación puede ser usada por una gran variedad de stakeholders involucrados en el desarrollo y operaciones de un sistema. Ayuda a la colaboración, resolución de problemas, optimización de desempeño y toma de decisiones informada. El uso de bibliotecas de observabilidad da varios beneficios importantes como los siguientes: Estandarización de la instrumentación: Las bibliotecas de observabilidad proporcionan una forma estandarizada de instrumentar código para propósitos de observabilidad. Ofrecen integraciones listas para usar y una API que facilita obtener y exponer puntos de datos relevantes, métricas, logs y trazas. Esto permite una consistencia y uniformidad de cómo la instrumentación es implementada a través de distintos componentes de un sistema. Implementación simplificada: Las bibliotecas de observabilidad crean una capa de abstracción a las complejidades de instrumentar código para observabilidad. Esto proporciona interfaces de fácil uso y frameworks que simplifican el procesos de añadir monitoreo, logging y capacidades de trazabilidad a un sistema. Esto ahorra tiempo de desarrollo y esfuerzo, permitiendo a equipos enfocarse en construir y mejorar sus aplicaciones. Obtención de datos consistente: Un SDK de observabilidad permite obtener datos de forma confiable y consistente de diferentes partes del sistema. Pueden manejar los detalles de obteneción de datos, agrupación y formateo, lo que permite obtener datos de forma estandarizada y precisa. La consistencia es de vital importancia para un análisis efectivo y resolución de problemas. Optimización del desempeño: Los SDK tienen capacidades de optimizar el desempeño. Proporcionan información sobre cuellos de botella del sistema, utilización de recursos y tiempos de respuesta, permitiendo a los desarrolladores identificar las áreas que necesitan optimización. Al utilizar los datos obtenidos desde la observabilidad e instrumentación, los equipos pueden mejorar iterativamente mejorando el desempeño de las aplicaciones. Resolución y depuración de problemas mejorada: Los SDK dan mejores herramientas para resolver problemas y depuración de errores ya que proporcionan información detallada acerca del comportamiento del sistema. Ayudan a capturar y registrar eventos, capturar stacks de error y permitir una trazabilidad distribuida. Esto logra facilitar comprender el flujo de las requests e identificar problemas. Permitiendo acelerar el proceso de identificar y resolver problemas, reduciendo los tiempos muertos y mejorando la robustez del sistema. Colaboración y visibilidad funcional cruzada: Utilizar SDK también proporciona y promueve la colaboración y visibilidad funcional cruzada (cross-functional). Equipos diversos como desarrolladores, operarios y QA pueden obtener el mismo conjunto de herramientas de observabilidad y datos para obtener información sobre el comportamiento del sistema. Ésta visibilidad compartida promueve mejor comunicación, facilita el análisis de causa raíz y permite a los equipos trabajar juntos para mejorar la robustez y desempeño de los sistemas. Un sistema correctamente instrumentado debe emitir tazas, métricas y registros que permiten tener una observabilidad del sistema y su entorno. Las trazas proporcionan una vista de águila de lo que pasa cuando una solicitud (request) es realizada al sistema. Independiente si una aplicación es un monolito con una base de datos única o un sofisticado sistema de servicios interconectado, las trazas son escenciales para comprender todo el recorrido que una solicitud tiene en la aplicación. Las métricas son una medición de un servicio capturada en el tiempo de ejecución. El capturar una medición se conoce como evento métrico (metric event), el cual consiste no solo en la medición como tal, si no también el tiempo en el que fue capturada y la metada asociada. Las métricas de aplicación y request son indicadores importantes de la disponibilidad y desempeño de un sistema. Métricas personalizadas proporcionan conocimiento sobre los indicadores que impactan la experiencia de usuario o negocio. Los datos obtenidos pueden ser usados para alertar de un corte de servicios o gatillar decisiones programadas para escalar o desplegar una aplicación automáticamente dependiendo de la alta demanda. Un registro (log) es un texto con marca de tiempo (timestamp), el cual esta estructurado (recomendado) o no estructurado con metadata opcional. De todas las señales de telemetría, los registros (logs) son los más usados y venerables. La mayoría de lenguajes de programación tienen capacidades de generar registros o bibliotecas estandarizadas y robustas de registros (logging). Open Telemetry facilita la instrumentación de los sistemas. Para que un sistema sea observable debe ser instrumentado, esto significa que los componentes del sistema deben emitir traces (trazas), metrics (métricas) y logs (registros). Al usar Open Telemetry se puede instrumentar de dos formas: Utilizar soluciones basadas en código a través del uso de SDK oficiales disponibles para gran cantidad de tecnologías. Utilizar soluciones basadas en \"Zero Code\". Ambas opciones son complementarias y pueden ser usadas al mismo tiempo. La solución utilizando el SDK permite obtener una telemetría rica y profunda de la aplicación. Permite usar el API de Open Telemetry para generar telemetría del sistema, lo que es un gran complemento de la telemetría generada por la opción de \"Zero Code\". Es una gran opción para comenzar o cuando no se puede modificar la aplicación que necesite ser instrumentada. Proporcionan telemetría abundante de las bibliotecas usadas o del ambiente donde el sistema se ejecuta. Una forma de verlo es que dan información sobre qué es lo que está pasando en la periferia del sistema. Siempre es recomendable utilizar el SDK de Open Telemetry, sin embargo en el caso de no estar disponible para el sistema o las tecnologías usadas, se debe recurrir a la instrumentación manual, tratando de crear una capa de abstracción compatible con Open Telemetry. Figure 1. Uso de OpenTelemetry","title":"Observabilidad e Instrumentación","component":"ROOT","version":"","name":"observability","url":"/devops/observability.html","titles":[{"text":"¿Por qué usar Observabilidad e Instrumentación?","hash":"por-qué-usar-observabilidad-e-instrumentación","id":1},{"text":"Beneficios","hash":"beneficios","id":2},{"text":"¿Por qué usar un SDK?","hash":"por-qué-usar-un-sdk","id":3},{"text":"Componentes de la Instrumentación","hash":"componentes-de-la-instrumentación","id":4},{"text":"Trazas (traces)","hash":"trazas-traces","id":5},{"text":"Métricas (metrics)","hash":"métricas-metrics","id":6},{"text":"Registros (logs)","hash":"registros-logs","id":7},{"text":"Open Telemetry","hash":"open-telemetry","id":8},{"text":"SDK","hash":"sdk","id":9},{"text":"Zero Code","hash":"zero-code","id":10},{"text":"Uso","hash":"uso","id":11}]},"5":{"id":5,"text":"El siguiente documento da una pequeña pincelada sobre los conceptos necesarios para ser un desarrollador \"Full-Stack\". Una persona capaz de entender los distintos componentes que engloban un producto de software, principalmente en el área Web y Móvil. Se comienza con la introducción a la historia de la tecnología, para luego ir al estado del ecosistema laboral actual, para continuar con una descripción de distintas tecnologías utilizadas en proyectos web y móviles. Finalmente termina con una descripción sobre el ecosistema de aplicaciones móviles. Es una información muy útil para las personas que están recién comenzando dentro del rubro y también para personas experimentadas que deseen repasar ciertos conceptos.","title":"","component":"ROOT","version":"","name":"abstract","url":"/abstract.html","titles":[{"text":"Introducción","hash":"introducción","id":1}]},"6":{"id":6,"text":"","title":"","component":"ROOT","version":"","name":"afterword","url":"/afterword.html","titles":[{"text":"Epílogo","hash":"epílogo","id":1}]},"7":{"id":7,"text":"Camilo Castro es un Ingeniero en Software especializado en el desarrollo de aplicaciones Web y Móviles. Actualmente su lenguaje de programación preferido es Elixir.","title":"","component":"ROOT","version":"","name":"authors","url":"/authors.html","titles":[{"text":"Sobre el Autor","hash":"sobre-el-autor","id":1}]},"8":{"id":8,"text":"Una lista de recursos complementarios y referenciales. Libros [webdesignplayground] Paul McFedries. 'Web Design Playground: HTML & CSS The Interactive Way'. https://www.manning.com/books/web-design-playground. ISBN 978-1617294402. [ Malcolm McDonald. 'Grokking Web Application Security'. https://www.manning.com/books/grokking-web-application-security. ISBN 978-1633438262. [elixirinaction] Saša Jurić. 'Elixir in Action'. https://www.manning.com/books/elixir-in-action-third-edition. ISBN 978-1633438514. [joyofelixir] Ryan Bigg. 'Joy of Elixir'. https://joyofelixir.com/. [elixirpa] Stefan Wintermeyer. 'An Elixir, Phoenix and Ash Beginner’s Guide'. https://elixir-phoenix-ash.com. [revolucionariosciber] Eden Medina. 'Revolucionarios cibernéticos. Tecnología y política en el Chile de Salvador Allende'. https://lom.cl/products/revolucionarios-ciberneticos-tecnologia-y-politica-en-el-chile-de-salvador-allende. ISBN 978-9560004352. [tejiendolared] Tim Berners-Lee. 'Tejiendo la Red'. ISBN 84-323-1040-9. [systemdesign] Alex Xu. 'System Design Interview: An Insider’s Guide'. ISBN 979-8664653403. [forsgren-2018] Forsgren, N., Humble, J., & Kim, G. (2018). Accelerate: The Science Behind DevOps : Building and Scaling High Performing Technology Organizations. It Revolution Press. [google-sre-2016] Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (2016). Site Reliability Engineering: How Google Runs Production Systems. O’Reilly Media. [baker-2013] Baker, M. (2013). Every page is page one: Topic-Based Writing for Technical Communication and the Web. [armstrong-2003] Armstrong, J. (2003). Making reliable distributed systems in the presence of software errors (PhD dissertation, Mikroelektronik och informationsteknik). Retrieved from https://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-3658 Web [ortega-2024] Ortega, C. (2024, June 6). Desviación estándar: Qué es, usos y cómo obtenerla. QuestionPro. https://www.questionpro.com/blog/es/desviacion-estandar/ [github-blog-2024] New terminology for GitHub previews - the GitHub blog. (2024, October 18). The GitHub Blog. https://github.blog/changelog/2024-10-18-new-terminology-for-github-previews/ [hexdocs-elixir-deprecations-2024] Compatibility and deprecations — Elixir v1.17.3. (2024, October 19). https://hexdocs.pm/elixir/compatibility-and-deprecations.html [amazon-sdlc] ¿Qué es el SDLC? - Explicación del ciclo de vida del desarrollo de software - AWS. (2024, October 22). Amazon Web Services, Inc. https://aws.amazon.com/es/what-is/sdlc/ [cognitect-2011] Documenting architecture decisions. (2011, November 15). Cognitect.com. https://www.cognitect.com/blog/2011/11/15/documenting-architecture-decisions [atlassian-incidents-metrics-2024] Atlassian. (2024, October 23). Common Incident Management Metrics | Atlassian. https://www.atlassian.com/incident-management/kpis/common-metrics","title":"","component":"ROOT","version":"","name":"bibliography","url":"/bibliography.html","titles":[{"text":"Bibliografía","hash":"bibliografía","id":1}]},"9":{"id":9,"text":"","title":"","component":"ROOT","version":"","name":"book","url":"/book.html","titles":[]},"10":{"id":10,"text":"Escrito por Camilo Castro y colaboradores[1]. Para Ninjas.cl[2] y Elixir Chile. Esta obra está bajo una Licencia Creative Commons Atribución-No-Comercial-Compartir-Igual 4.0 Internacional[3] A menos que se especifique explícitamente, el código fuente esta bajo una licencia BSD-2[4]. 1. https://github.com/ElixirCL/elixir-fullstack/graphs/contributors 2. https://ninjas.cl 3. http://creativecommons.org/licenses/by-nc-sa/4.0/ 4. https://opensource.org/licenses/BSD-2-Clause","title":"","component":"ROOT","version":"","name":"colophon","url":"/colophon.html","titles":[{"text":"Colofón","hash":"colofón","id":1}]},"11":{"id":11,"text":"","title":"","component":"ROOT","version":"","name":"dedication","url":"/dedication.html","titles":[]},"12":{"id":12,"text":"","title":"","component":"ROOT","version":"","name":"foreword","url":"/foreword.html","titles":[]},"13":{"id":13,"text":"","title":"","component":"ROOT","version":"","name":"glossary","url":"/glossary.html","titles":[]},"14":{"id":14,"text":"Camilo Castro es un Ingeniero en Software especializado en el desarrollo de aplicaciones Web y Móviles. Actualmente su lenguaje de programación preferido es Elixir. El siguiente documento da una pequeña pincelada sobre los conceptos necesarios para ser un desarrollador \"Full-Stack\". Una persona capaz de entender los distintos componentes que engloban un producto de software, principalmente en el área Web y Móvil. Se comienza con la introducción a la historia de la tecnología, para luego ir al estado del ecosistema laboral actual, para continuar con una descripción de distintas tecnologías utilizadas en proyectos web y móviles. Finalmente termina con una descripción sobre el ecosistema de aplicaciones móviles. Es una información muy útil para las personas que están recién comenzando dentro del rubro y también para personas experimentadas que deseen repasar ciertos conceptos. Para aprender los conceptos de este libro se recomienda una calendarización de 16 semanas. Centrándose principalmente en las siguientes unidades: Unidad 1: HTML, CSS y JS Historia de la Web y Aplicaciones Móviles Ecosistema Tecnológico y Laboral Tecnologías Web (HTML, CSS, JS, Markdown) Conceptos de Github, Hosting, Dominios y Cpanel Proyecto 1: Página Web Estática Unidad 2: Backends Diseño de Sistemas Ingeniería de Software y Devops Protocolo HTTP y Redes Herramientas Bruno, Docker, Servidor en la Nube Uso de Linux Tecnologías Backend Elixir y Phoenix Unidad 3: Seguridad Seguridad en contexto Web y Móvil Proyecto 2: API Rest + Frontend Unidad 4: Apps Móviles Ecosistema Android e iOS Tecnologías multiplataformas Proyecto 3: Videojuego Móvil Las tareas consistirán en desarrollar ejercicios de programación tanto en JavaScript como Elixir, para fomentar el aprendizaje de lenguajes de programación tanto de frontend como de backend. Para esto se utilizará la plataforma Exercism que permitirá desarrollar los ejercicios con una estructura progresiva de dificultad. Se recomienda mínimo dos tareas por semana, una por cada lenguaje. Libros de Apoyo https://github.com/radar/joyofelixir https://github.com/Eloquent-JavaScript-Espanol/Eloquent-JavaScript-ES Semana Tarea JavaScript Tarea Elixir 1 Hello World Hello World 2 Basics: Lucian’s Luscious Lasagna Basics: Lasagna 3 Numbers: Freelancer Rates Floating Point Numbers: Freelancer Rates 4 Booleans: Annalyn’s Infiltration Booleans: Pacman Rules 5 Strings: Poetry Club Door Policy Anonymous Functions: Secrets 6 Arrays: Elyses Enchantments Lists: Strain 7 Conditionals: Vehicle Purchase Cond: Log Level 8 Switch Statement: Mixed Juices Default Arguments: Guessing Game 9 For Loops: Bird Watcher Pattern Matching: Kitchen Calculator 10 Objects: High Score Board Pipe Operator: High School Sweetheart 11 Null and Undefined: Amusement Park Recursion: Bird Count 12 Functions: Lasagna Master Maps: High Score 13 Closures: Coordinate Transformation IO: RPG Character Sheet 14 Array Destructuring: Elyses Destructured Enchantments Docs: City Office 15 Array Analysis: Elyses Analytic Enchantments Case: German Sysadmin 16 Array Transformations: Elyses Transformative Enchantments Enum: Boutique Inventory Los siguientes proyectos son recomendados para reforzar los conocimientos y tener productos que pueden ser utilizados en el currículum vitae. La revista \"Club Nientiendo\" le ha solicitado elaborar un sitio web para un juego \"retro\" a su elección (20 años de antigüedad o más). El sitio web debe contener los siguientes elementos: Imágenes del Gameplay del Juego. Videos de Youtube. Historia, Personajes del Juego. Tips y Secretos del Juego. Review personal. Información sobre la creación del Juego (personas, estudio, periódo histórico). Citar correctamente las fuentes. Visualización en dispositivos móviles (responsive). El sitio web debe estar muy bonito y personalizado para el juego. Puede obtener información e imágenes de los siguientes sitios webs: https://www.spriters-resource.com/ https://nintendo.fandom.com/es/wiki/Nintendo_64 https://es.wikipedia.org/wiki/Anexo:Videojuegos_para_Nintendo_64 https://archive.org/details/club-nintendo-magazine Restricciones y Expectativas Se debe subir y ejecutar en el hosting https://neocities.org en una url pública. Debe ser sin utilizar bibliotecas o frameworks css o templates html. Solo código de [reset.css](https://www.joshwcomeau.com/css/custom-css-reset/) será permitido como dependencia externa. No usar LLM ni otras herramientas que faciliten la programación más allá de un editor de código básico y el navegador. Se recomienda programar como en la vieja escuela para reforzar conocimientos. Debe utilizar la mayor creatividad posible en temas de diseño y contenido, simulando ser parte de una revista de videojuegos. Debe entregar el código fuente en Github. Commits deben ser incrementales con avances relevantes, no simplemente un commit grande con todos los cambios. Plazo recomendado 4 semanas. Libro de Apoyo https://ninjas.cl/books/superclubnet/ El proyecto consiste en planificar una página eCommerce e implementar una API Rest y un Frontend simple para uno de sus componentes. Se recomienda elaborar el informe con Asciidoc que contenga las siguientes características: Selección de Servidor. Diseño de base de datos. Diseño de endpoint Rest. Estimación de Costos de Servidor y Operación. Selección Tecnológica Backend (¿CMS o custom?). Selección Tecnológica Frontend. Selección de Profesionales necesarios. Estimación de Plazos para implementar. Github del proyecto y documentación. Importante Elaborar una API REST para un caso de uso específico. Elaborar el frontend para utilizar la API REST. Elaborar ejemplos de uso en Bruno. Elaborar documentación utilizando Antora docs https://github.com/NinjasCL/antora-docs-bootstrap Plazo Máximo 4 semanas. Tecnologías permitidas Base de Datos: Sqlite Elixir: Phoenix + LiveView (Recomendado) Opcionalmente se puede usar estas tecnologías, ya que utilizan lenguajes para aplicaciones móviles y pueden servir para explorar opciones. Sin embargo se debe justificar en el documento la decisión de usarlas. Kotlin: Ktor + Htmx Swift: Vapor + React.js ¿Por qué API Rest? Hay diversas formas de elaborar un backend y la API Rest es una de las más comunes. Otras opciones son GraphQL, SOAP, GRPC, entre otras. Sin embargo el uso de REST proporciona las bases para elaborar endpoints con otros protocolos. Queda el aprendizaje de otros protocolos como tarea personal de cada uno. Libros de Apoyo https://thephoenixtutorial.org/book https://shankardevy.com/phoenix-inside-out-mpf/ Ejemplo de eCommerce Se puede usar alguno de estos casos de uso como base para el diseño e implementación de la solución. Ecommerce 1 Nivel de Presupuesto: Bajo Estimación de transacciones al día: 10 Estimación de transacciones al día (máximo): 100 Referencia: Tienda de Comida Al Paso (Delivery) Endpoint a Implementar: Gestión del Delivery Ecommerce 2 Nivel de Presupuesto: Bajo Estimación de transacciones al día: 1000 Estimación de transacciones al día (máximo): 5000 Referencia: Tienda de Ferretería Endpoint a Implementar: Gestión de Proveedores Ecommerce 3 Nivel de Presupuesto: Medio Estimación de transacciones al día: 10.000 Estimación de transacciones al día (máximo): 100.000 Referencia: Tienda de Venta de Videojuegos Endpoint a Implementar: Gestión de Carro de Compra Ecommerce 4 Nivel de Presupuesto: Alto Estimación de transacciones al día: 10000000 Estimación de transacciones al día (máximo): 10000000 Referencia: Tienda de Retail Endpoint a Implementar: Gestión de Devoluciones Ecommerce 5 Nivel de Presupuesto: Alto Estimación de transacciones al día: 10000000 Estimación de transacciones al día (máximo): 10000000 Referencia: Tienda de Areolínea Endpoint a Implementar: Gestión de Puntos de Fidelización (Millas Lanpass). Utilizando un framework de videojuegos se debe crear una aplicación que se ejecute en un dispositivo Android, iOS y Web. Se recomienda usar el engine gratuito de videojuegos TIC-80, el cual permite crear el código en distintos lenguajes de programación (Lua, Javascript, Wren, entre otros), crear la música y los gráficos con entornos 2d similares a un Super Nintendo. Otra buena opción es el framework Defold, pero solo admite el lenguaje Lua, aunque puede ser más flexible para usar llamadas HTTP y otras herramientas de apoyo. Temática Para simplificar la elección y diseño de un juego se recomienda participar en las Game Jams de Itch.io. Éstas dan una temática y restricciones necesarias. Desafío Adicional Programar un backend que permita almacenar los High Scores y mostrarlos en un sitio web. Entregables y Expectativas Repositorio público del juego. Con licencia AGPLv3 Definir el nombre de su empresa y logotipo Github pages donde se pueda jugar el juego en su versión web. Por cada commit en el repositorio el juego debe ser compilado y desplegado a github pages. (Usar Github Actions https://github.com/features/actions) Seguir la metodología Trunk Based Development. Documentación con Asciidoc + Antora del proyecto siguiendo el PRD (Product Requirement Document) y plan de pruebas con UAT (User Acceptance Test). (dentro del directorio docs del repositorio) - (Esto incluye personas, casos de uso con storyboards y ADR). Entregar HTML. Manual del jugador. Entregar HTML (página web personalizada). Código bien hecho y correctamente documentado. Usar lenguaje de programación Lua o Javascript. Plazo recomendado entre 4 a 6 semanas. Escrito por Camilo Castro y colaboradores[1]. Para Ninjas.cl[2] y Elixir Chile. Esta obra está bajo una Licencia Creative Commons Atribución-No-Comercial-Compartir-Igual 4.0 Internacional[3] A menos que se especifique explícitamente, el código fuente esta bajo una licencia BSD-2[4]. Una lista de recursos complementarios y referenciales. Libros [webdesignplayground] Paul McFedries. 'Web Design Playground: HTML & CSS The Interactive Way'. https://www.manning.com/books/web-design-playground. ISBN 978-1617294402. [ Malcolm McDonald. 'Grokking Web Application Security'. https://www.manning.com/books/grokking-web-application-security. ISBN 978-1633438262. [elixirinaction] Saša Jurić. 'Elixir in Action'. https://www.manning.com/books/elixir-in-action-third-edition. ISBN 978-1633438514. [joyofelixir] Ryan Bigg. 'Joy of Elixir'. https://joyofelixir.com/. [elixirpa] Stefan Wintermeyer. 'An Elixir, Phoenix and Ash Beginner’s Guide'. https://elixir-phoenix-ash.com. [revolucionariosciber] Eden Medina. 'Revolucionarios cibernéticos. Tecnología y política en el Chile de Salvador Allende'. https://lom.cl/products/revolucionarios-ciberneticos-tecnologia-y-politica-en-el-chile-de-salvador-allende. ISBN 978-9560004352. [tejiendolared] Tim Berners-Lee. 'Tejiendo la Red'. ISBN 84-323-1040-9. [systemdesign] Alex Xu. 'System Design Interview: An Insider’s Guide'. ISBN 979-8664653403. [forsgren-2018] Forsgren, N., Humble, J., & Kim, G. (2018). Accelerate: The Science Behind DevOps : Building and Scaling High Performing Technology Organizations. It Revolution Press. [google-sre-2016] Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (2016). Site Reliability Engineering: How Google Runs Production Systems. O’Reilly Media. [baker-2013] Baker, M. (2013). Every page is page one: Topic-Based Writing for Technical Communication and the Web. [armstrong-2003] Armstrong, J. (2003). Making reliable distributed systems in the presence of software errors (PhD dissertation, Mikroelektronik och informationsteknik). Retrieved from https://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-3658 Web [ortega-2024] Ortega, C. (2024, June 6). Desviación estándar: Qué es, usos y cómo obtenerla. QuestionPro. https://www.questionpro.com/blog/es/desviacion-estandar/ [github-blog-2024] New terminology for GitHub previews - the GitHub blog. (2024, October 18). The GitHub Blog. https://github.blog/changelog/2024-10-18-new-terminology-for-github-previews/ [hexdocs-elixir-deprecations-2024] Compatibility and deprecations — Elixir v1.17.3. (2024, October 19). https://hexdocs.pm/elixir/compatibility-and-deprecations.html [amazon-sdlc] ¿Qué es el SDLC? - Explicación del ciclo de vida del desarrollo de software - AWS. (2024, October 22). Amazon Web Services, Inc. https://aws.amazon.com/es/what-is/sdlc/ [cognitect-2011] Documenting architecture decisions. (2011, November 15). Cognitect.com. https://www.cognitect.com/blog/2011/11/15/documenting-architecture-decisions [atlassian-incidents-metrics-2024] Atlassian. (2024, October 23). Common Incident Management Metrics | Atlassian. https://www.atlassian.com/incident-management/kpis/common-metrics 1. https://github.com/ElixirCL/elixir-fullstack/graphs/contributors 2. https://ninjas.cl 3. http://creativecommons.org/licenses/by-nc-sa/4.0/ 4. https://opensource.org/licenses/BSD-2-Clause","title":"Elixir Full Stack","component":"ROOT","version":"","name":"index","url":"/index.html","titles":[{"text":"Sobre el Autor","hash":"sobre-el-autor","id":1},{"text":"Introducción","hash":"introducción","id":2},{"text":"Syllabus","hash":"syllabus","id":3},{"text":"Tareas","hash":"tareas","id":4},{"text":"Proyectos","hash":"proyectos","id":5},{"text":"Proyecto 1: Sitio Web estático con HTML, CSS y JavaScript","hash":"proyecto-1-sitio-web-estático-con-html-css-y-javascript","id":6},{"text":"Proyecto 2: API Rest + Frontend","hash":"proyecto-2-api-rest-frontend","id":7},{"text":"Proyecto 3: Video Juego Móvil","hash":"proyecto-3-video-juego-móvil","id":8},{"text":"Colofón","hash":"colofón","id":9},{"text":"Bibliografía","hash":"bibliografía","id":10}]},"15":{"id":15,"text":"Para aprender los conceptos de este libro se recomienda una calendarización de 16 semanas. Centrándose principalmente en las siguientes unidades: Unidad 1: HTML, CSS y JS Historia de la Web y Aplicaciones Móviles Ecosistema Tecnológico y Laboral Tecnologías Web (HTML, CSS, JS, Markdown) Conceptos de Github, Hosting, Dominios y Cpanel Proyecto 1: Página Web Estática Unidad 2: Backends Diseño de Sistemas Ingeniería de Software y Devops Protocolo HTTP y Redes Herramientas Bruno, Docker, Servidor en la Nube Uso de Linux Tecnologías Backend Elixir y Phoenix Unidad 3: Seguridad Seguridad en contexto Web y Móvil Proyecto 2: API Rest + Frontend Unidad 4: Apps Móviles Ecosistema Android e iOS Tecnologías multiplataformas Proyecto 3: Videojuego Móvil Las tareas consistirán en desarrollar ejercicios de programación tanto en JavaScript como Elixir, para fomentar el aprendizaje de lenguajes de programación tanto de frontend como de backend. Para esto se utilizará la plataforma Exercism que permitirá desarrollar los ejercicios con una estructura progresiva de dificultad. Se recomienda mínimo dos tareas por semana, una por cada lenguaje. Libros de Apoyo https://github.com/radar/joyofelixir https://github.com/Eloquent-JavaScript-Espanol/Eloquent-JavaScript-ES Semana Tarea JavaScript Tarea Elixir 1 Hello World Hello World 2 Basics: Lucian’s Luscious Lasagna Basics: Lasagna 3 Numbers: Freelancer Rates Floating Point Numbers: Freelancer Rates 4 Booleans: Annalyn’s Infiltration Booleans: Pacman Rules 5 Strings: Poetry Club Door Policy Anonymous Functions: Secrets 6 Arrays: Elyses Enchantments Lists: Strain 7 Conditionals: Vehicle Purchase Cond: Log Level 8 Switch Statement: Mixed Juices Default Arguments: Guessing Game 9 For Loops: Bird Watcher Pattern Matching: Kitchen Calculator 10 Objects: High Score Board Pipe Operator: High School Sweetheart 11 Null and Undefined: Amusement Park Recursion: Bird Count 12 Functions: Lasagna Master Maps: High Score 13 Closures: Coordinate Transformation IO: RPG Character Sheet 14 Array Destructuring: Elyses Destructured Enchantments Docs: City Office 15 Array Analysis: Elyses Analytic Enchantments Case: German Sysadmin 16 Array Transformations: Elyses Transformative Enchantments Enum: Boutique Inventory Los siguientes proyectos son recomendados para reforzar los conocimientos y tener productos que pueden ser utilizados en el currículum vitae. La revista \"Club Nientiendo\" le ha solicitado elaborar un sitio web para un juego \"retro\" a su elección (20 años de antigüedad o más). El sitio web debe contener los siguientes elementos: Imágenes del Gameplay del Juego. Videos de Youtube. Historia, Personajes del Juego. Tips y Secretos del Juego. Review personal. Información sobre la creación del Juego (personas, estudio, periódo histórico). Citar correctamente las fuentes. Visualización en dispositivos móviles (responsive). El sitio web debe estar muy bonito y personalizado para el juego. Puede obtener información e imágenes de los siguientes sitios webs: https://www.spriters-resource.com/ https://nintendo.fandom.com/es/wiki/Nintendo_64 https://es.wikipedia.org/wiki/Anexo:Videojuegos_para_Nintendo_64 https://archive.org/details/club-nintendo-magazine Restricciones y Expectativas Se debe subir y ejecutar en el hosting https://neocities.org en una url pública. Debe ser sin utilizar bibliotecas o frameworks css o templates html. Solo código de [reset.css](https://www.joshwcomeau.com/css/custom-css-reset/) será permitido como dependencia externa. No usar LLM ni otras herramientas que faciliten la programación más allá de un editor de código básico y el navegador. Se recomienda programar como en la vieja escuela para reforzar conocimientos. Debe utilizar la mayor creatividad posible en temas de diseño y contenido, simulando ser parte de una revista de videojuegos. Debe entregar el código fuente en Github. Commits deben ser incrementales con avances relevantes, no simplemente un commit grande con todos los cambios. Plazo recomendado 4 semanas. Libro de Apoyo https://ninjas.cl/books/superclubnet/ El proyecto consiste en planificar una página eCommerce e implementar una API Rest y un Frontend simple para uno de sus componentes. Se recomienda elaborar el informe con Asciidoc que contenga las siguientes características: Selección de Servidor. Diseño de base de datos. Diseño de endpoint Rest. Estimación de Costos de Servidor y Operación. Selección Tecnológica Backend (¿CMS o custom?). Selección Tecnológica Frontend. Selección de Profesionales necesarios. Estimación de Plazos para implementar. Github del proyecto y documentación. Importante Elaborar una API REST para un caso de uso específico. Elaborar el frontend para utilizar la API REST. Elaborar ejemplos de uso en Bruno. Elaborar documentación utilizando Antora docs https://github.com/NinjasCL/antora-docs-bootstrap Plazo Máximo 4 semanas. Tecnologías permitidas Base de Datos: Sqlite Elixir: Phoenix + LiveView (Recomendado) Opcionalmente se puede usar estas tecnologías, ya que utilizan lenguajes para aplicaciones móviles y pueden servir para explorar opciones. Sin embargo se debe justificar en el documento la decisión de usarlas. Kotlin: Ktor + Htmx Swift: Vapor + React.js ¿Por qué API Rest? Hay diversas formas de elaborar un backend y la API Rest es una de las más comunes. Otras opciones son GraphQL, SOAP, GRPC, entre otras. Sin embargo el uso de REST proporciona las bases para elaborar endpoints con otros protocolos. Queda el aprendizaje de otros protocolos como tarea personal de cada uno. Libros de Apoyo https://thephoenixtutorial.org/book https://shankardevy.com/phoenix-inside-out-mpf/ Ejemplo de eCommerce Se puede usar alguno de estos casos de uso como base para el diseño e implementación de la solución. Ecommerce 1 Nivel de Presupuesto: Bajo Estimación de transacciones al día: 10 Estimación de transacciones al día (máximo): 100 Referencia: Tienda de Comida Al Paso (Delivery) Endpoint a Implementar: Gestión del Delivery Ecommerce 2 Nivel de Presupuesto: Bajo Estimación de transacciones al día: 1000 Estimación de transacciones al día (máximo): 5000 Referencia: Tienda de Ferretería Endpoint a Implementar: Gestión de Proveedores Ecommerce 3 Nivel de Presupuesto: Medio Estimación de transacciones al día: 10.000 Estimación de transacciones al día (máximo): 100.000 Referencia: Tienda de Venta de Videojuegos Endpoint a Implementar: Gestión de Carro de Compra Ecommerce 4 Nivel de Presupuesto: Alto Estimación de transacciones al día: 10000000 Estimación de transacciones al día (máximo): 10000000 Referencia: Tienda de Retail Endpoint a Implementar: Gestión de Devoluciones Ecommerce 5 Nivel de Presupuesto: Alto Estimación de transacciones al día: 10000000 Estimación de transacciones al día (máximo): 10000000 Referencia: Tienda de Areolínea Endpoint a Implementar: Gestión de Puntos de Fidelización (Millas Lanpass). Utilizando un framework de videojuegos se debe crear una aplicación que se ejecute en un dispositivo Android, iOS y Web. Se recomienda usar el engine gratuito de videojuegos TIC-80, el cual permite crear el código en distintos lenguajes de programación (Lua, Javascript, Wren, entre otros), crear la música y los gráficos con entornos 2d similares a un Super Nintendo. Otra buena opción es el framework Defold, pero solo admite el lenguaje Lua, aunque puede ser más flexible para usar llamadas HTTP y otras herramientas de apoyo. Temática Para simplificar la elección y diseño de un juego se recomienda participar en las Game Jams de Itch.io. Éstas dan una temática y restricciones necesarias. Desafío Adicional Programar un backend que permita almacenar los High Scores y mostrarlos en un sitio web. Entregables y Expectativas Repositorio público del juego. Con licencia AGPLv3 Definir el nombre de su empresa y logotipo Github pages donde se pueda jugar el juego en su versión web. Por cada commit en el repositorio el juego debe ser compilado y desplegado a github pages. (Usar Github Actions https://github.com/features/actions) Seguir la metodología Trunk Based Development. Documentación con Asciidoc + Antora del proyecto siguiendo el PRD (Product Requirement Document) y plan de pruebas con UAT (User Acceptance Test). (dentro del directorio docs del repositorio) - (Esto incluye personas, casos de uso con storyboards y ADR). Entregar HTML. Manual del jugador. Entregar HTML (página web personalizada). Código bien hecho y correctamente documentado. Usar lenguaje de programación Lua o Javascript. Plazo recomendado entre 4 a 6 semanas.","title":"","component":"ROOT","version":"","name":"syllabus","url":"/syllabus.html","titles":[{"text":"Syllabus","hash":"syllabus","id":1},{"text":"Tareas","hash":"tareas","id":2},{"text":"Proyectos","hash":"proyectos","id":3},{"text":"Proyecto 1: Sitio Web estático con HTML, CSS y JavaScript","hash":"proyecto-1-sitio-web-estático-con-html-css-y-javascript","id":4},{"text":"Proyecto 2: API Rest + Frontend","hash":"proyecto-2-api-rest-frontend","id":5},{"text":"Proyecto 3: Video Juego Móvil","hash":"proyecto-3-video-juego-móvil","id":6}]},"16":{"id":16,"text":"El mundo laboral consiste en diversos escenarios posibles. En el siguiente capítulo se pondrá un breve resumen de lo actualmente disponible. Un trabajador autónomo, trabajador por cuenta propia o simplemente independiente (en inglés, freelance), contratista independiente, es un trabajador que se desempeña de forma independiente, es decir, sin depender de otra organización, ofreciendo su fuerza laboral a clientes con libertad de condiciones. Un autónomo es aquel que invierte su tiempo de acuerdo a sus necesidades y las de sus clientes. En muchos casos no cumplen horarios rutinarios o de oficina, tienen la autonomía de modificar su agenda de acuerdo a la carga de trabajo que posean y en la mayoría de los casos ofrecen sus servicios por medio de contratos, especificando el tiempo que trabajarán para el empleador y bajo qué condiciones. Wikipedia: Freelance Si bien es posible realizar boletas de honorarios, se recomienda la creación de una empresa cuando se disponga de un flujo constante de dinero (necesario para pagar las cotizaciones). Lo ideal es siempre contar con la asesoría de un contador profesional para realizar los trámites respectivos con impuestos internos (SII). El tener una empresa ofrece diversos beneficios como: Posibilidad de postular a proyectos en SERCOTEC. Posibilidad de postular a https://www.mercadopublico.cl/ Posibilidad de comprar con factura. Posibilidad de optar a créditos y ofertas especiales en instituciones bancarias. Pago de cotizaciones y previsión de salud. Lo ideal es tener una empresa si se quiere trabajar remoto a distancia para empresas internacionales. Lo recomendable es siempre realizar un contrato que estipule los derechos y deberes tanto del cliente como del proveedor. Tradicionalmente se firma una cláusula de NDA. Un acuerdo de confidencialidad (ADC), acuerdo de no divulgación (en inglés non-disclosure agreement o NDA) se firman habitualmente cuando dos empresas o individuos acuerdan alguna relación comercial. Los acuerdos de confidencialidad pueden ser mutuos, de modo que las dos partes tienen restricciones de uso de la información proporcionada, o pueden afectar sólo a una de las partes. También es común que un empleado firme un acuerdo de confidencialidad o acuerdo similar en el momento de su contratación. La recomendación siempre es asesorarse con un abogado antes de elaborar o firmar un contrato. Hay empresas que incluso desean apropiar de los productos que se realizan en tiempos fuera del horario laboral. O exigir trabajar fuera de lo razonable sin pagar los valores respectivos. Siempre velar por los derechos laborales e intelectuales. Tener en su grupo de amigos, personas que estudien Contador Auditor y Abogacía. Wikipedia: NDA Desde el Jueves 26 de Marzo de 2020 existe una nueva ley que regula el Teletrabajo y Trabajo a Distancia en Chile. Elementos tales como: Un computador Internet Si un trabajador de su propia voluntad quiere utilizar su propio computador porque es una mejor solución para él, puede hacerlo, pero lo que no puede pasar es que el empleador obligue al trabajador a comprarse un computador o utilizar sus propios elementos de trabajo. Empleador debe garantizar un mínimo de 12 horas continuas de desconexión. Se podrá establecer en esta modalidad Tener horario establecido. Tener libertad de horario. Artículo 152 quáter J* Si la naturaleza de las funciones del trabajador a distancia lo permite, las partes podrán pactar que el trabajador distribuya libremente su jornada en los horarios que mejor se adapten a sus necesidades, respetando siempre los límites máximos de la jornada diaria y semanal, sujetándose a las normas sobre duración de la jornada de los artículos 22 y 28 y las relativas al descanso semanal del Párrafo 4° del Capítulo IV del Libro Primero. Quien trabaja desde su casa y tenga un accidente del trabajo o una enfermedad profesional, quedará cubierto por la mutualidad del empleador, por lo que en consecuencia tendrá derecho a los tratamiento que da la mutualidad y el pago de las prestaciones que da la mutualidad. Esto debe ser un accidente a causa del trabajo. El accidente de trayecto también queda cubierto, ya que esta ley permite combinar tiempo de trabajo presencial con tiempo de trabajo a distancia. Malas prácticas como tener una cámara web encendida todo el día, aplicaciones que toman capturas de pantalla de tu computador, que miden el uso de teclado o que monitorean todo lo que haces en el computador son un peligro latente. ¿Qué pasa con esto? No se puede violar la intimidad ni la privacidad de las personas. Los mecanismos de control que el empleador puede tener son los que respetan los derechos fundamentales de las personas, que respetan los derechos laborales. Esto ya está regulado por dictámenes de la Dirección del Trabajo hace mucho tiempo. Video de 9 punto 5 Teletrabajo en Chile Ley 21.220 En muchas ocasiones nos enfrentaremos a un dilema ético - moral. Donde se solicitarán la ejecución de acciones que probablemente sean ética y moralmente cuestionables. Tomemos como ejemplo el caso de La Polar, donde se realizó la repactación unilateral y abusiva de las deudas de alrededor de 1 millón de clientes. Los consumidores se quejaron de que en sus cuentas aparecían reprogramaciones que nunca habían aceptado, con cuotas y montos que eran fijados por la empresa y encarecerían excesivamente la deuda, o bien se enteraban de ello tras recibir cartas de cobranza o aparecer en Dicom. Los ejecutivos que solicitaron el proyecto fueron los mayores imputados por estas malas prácticas. Pero el equipo de tecnología fue quien logró que los sistemas de software cumplieran las características solicitadas. Un sistema de software, sobre todo en empresas que administra dinero y deudas, es laboriosamente auditado, detallado y analizado. El equipo de tecnología sabía perfectamente las consecuencias de ejecutar las órdenes solicitadas y aún así implementó los sistemas para lograr esas malas prácticas. Siempre puedes utilizar la Objeción de conciencia para no participar en proyectos o realizar acciones que sus consecuencias entren en conflicto con tu marco ético - moral. Muchas veces es una decisión difícil (puede que te cueste el puesto de trabajo). Existe un texto que es atribudo a Al-Juarismi; Matemático, geógrafo y astrónomo de una talla intelectual extraordinaria que vivió entre los años 780 y el 850 de nuestra era. Aunque no es posible verificar que realmente sea de su autoría, su contenido es importante de destacar. A la pregunta que le hacen, sobre el valor del ser humano, este responde: \"`Si tiene ética entonces su valor es igual a 1 (uno). Si además es inteligente, agréguele un cero y su valor será igual a 10. Si también es rico, añádale otro cero y su valor será de 100. Si además tiene bello aspecto, agréguele otro cero y su valor será igual a 1000. Pero si pierde el 1 (uno), que corresponde a la ética, perderá todo su valor, pues solamente le quedarán los ceros. Así de sencillo: Sin valores éticos, ni principios sólidos, lo único que queda son delincuentes, corruptos y personas que no valen nada\"` La Ley 19.223 tipifica figuras penales relativas a la informática en Chile. El computador de un desarrollador debería cumplir el principio de Pareto. Esto quiere decir que pueda realizar al menos el 80% de los proyectos con el mismo equipo. Para el caso de un desarrollador web/móvil, un computador Apple es la opción más versátil. Permite desarrollar para Web, Android e iOS, además de poder ser instalado distribuciones Linux. Debe tener las siguientes características: Tener máximo 5 años de antigüedad (2 a 3 como recomendado, nuevo ideal). Tener procesador M1 o superior. Tener 8 GB de Ram o Superior (16 GB o más Recomendado). Tener un disco duro SSD de 256 GB (500 GB o Superior recomendado). Si es un computador portátil fijar que la batería tenga menos de mil (1000) ciclos. Tiendas https://www.maconline.com/ https://www.facebook.com/netcomputacionchile/ https://www.latercera.com/practico/noticia/lo-estas-haciendo-mal-los-diez-errores-mas-frecuentes-al-usar-un-macbook/OMQDM4KG5ZFHDMU5RGHVXY3BOY/ Mac Mini: Ideal para comenzar, rangos de precios más razonables si se compra usado. Macbook Air: Similar a Mac Mini, pero con pantalla incluida y portabilidad. Macbook Pro: La opción más adecuada para desarrollo móvil. Se recomienda comprar un smartphone destinado a pruebas. De preferencia uno de 2 a 3 años de antigüedad. Considerar que los mercados para desarrollo móvil es recomendable probar dispositivos al menos 3 versiones anteriores a la última disponible, para asegurar la compatibilidad con los dispositivos más antiguos. Cuando las empresas buscan a un Full Stack (\"generalista\"), en realidad lo que están buscando es alguien que les pueda resolver sus problemas utilizando una serie de herramientas pre-definidas. Normalmente alguien que pueda participar en la elaboración de una aplicación desde la fase de toma de requerimientos hasta la fase de paso a producción y mantenimiento. Muchas veces se confunde este concepto con alguien que es un \"Maestro Chasquilla\" o \"Jack of All Trades\". Hace de todo un poco, pero sabe poco y sin conocimiento profundo de los temas. Si no tienes cuidado puedes terminar siendo una persona con mucha experiencia, pero no experticia suficiente como para competir en cargos semi senior o senior, incluso con varios años en la industria. Lo ideal es que elijas un conjunto de herramientas que te sirva para resolver problemas de diversa índole y te conviertas en un experto usándolas. Por ejemplo seleccionas un stack de backend y un framework especifico (ej: elixir, golang, rust, python, php, js, ruby), un stack de frontend (ej: liveview, svelte, vue, react), una base de datos (ej: postgres, sqlserver) y un proveedor de servicios (como amazon, firebase, google cloud, etc). Al realizar los proyectos con la mismas herramientas, poco a poco irás generando experticia y dominio de los temas. Podrás competir con niveles semi senior o senior. Evita tener un currículum desparramado por todos lados. Puedes ser generalista en el sentido de que estás capacitado para elaborar una aplicación desde el inicio hasta el final, pasando por el diseño del sistema, las bases de datos, interfaces de usuarios, configuración de servidores y dominio de las reglas de negocio. Pero siempre con un stack determinado en el cual lo conozcas de principio a fin. Esto te evitará maratones de \"Aprender sobre la marcha\" y sorpresas a las 3 Am del fin de semana. Sin embargo, también realizar proyectos y experimentos con nuevas tecnologías y estrategias es importante o se corre el riesgo de estancarse. Siempre ser flexible y estar abiertos al cambio, de forma estratégica y controlada. Según la definición de Edward Melendez La mayoría de la gente se imagina a un desarrollador capaz de gestionar frontend y backend. Pero, en realidad, un verdadero Full Stack incluye mucho más: Base de datos, servidor, redes, infraestructura en la nube, CI/CD, seguridad, monitorización, contenedores, CDN, copias de seguridad…​ y eso es solo el comienzo. Ser un Full Stack hoy en día no se trata solo de escribir código, sino de comprender todo el ecosistema que impulsa las aplicaciones modernas. Figure 1. Definición de Fullstack por Edward Melendez Lenguaje Backend Frontend Elixir Phoenix Framework LiveView / SurfaceUI Java Spring Boot Angular Ruby Rails Hotwire / Inertia.js PHP Laravel / ProcessWire Vue.js / Inertia.js / Livewire Go Gin / Buffalo HTMx Python Django / Fastapi / Masonite Svelte Javascript RedWood.js / Next.js / Nest.js React.js C# ASP.net Blazor Swift Vapor iOS Kotlin Ktor Android El Stack predilecto del profesor es: Elixir, PHP y Swift debido a que permite abordar gran cantidad de casos de uso, utilizando tecnologías modernas y versátiles. Siguiendo el principio de Pareto de 80/20. Tecnología Descripción Elixir + Postgres: Phoenix Permite elaborar sistemas de backend y frontend sofisticados y modernos. Incluso proyectos de IOT, Machine Learning, Mobile, Web Assembly, entre otros. Preparados para alta escalabilidad y concurrencia. PHP + MySQL: ProcessWire / Laravel / Wordpress Permite elaborar sitios webs rápidamente para entornos de hosting con Cpanel, utilizando las capacidades CMS/CMF de los frameworks. Javascript + Inertia.js + Svelte.js + Esbuild: Web Es el lenguaje predilecto para crear animaciones y manipulación del DOM. Si bien puede ser utilizado en otras áreas, se recomienda utilizarlo solamente para el ambiente web, ya que existen opciones más adecuadas para backend. Ada / C / C++ / Rust / Zig: Low Level Permite elaborar aplicaciones de bajo nivel, sobre todo extensiones para Elixir u otros lenguajes. También recomendado para entornos con Web Assembly. Swift: iOS, Kotlin: Android. Permite crear aplicaciones móviles nativas, en un ecosistema integrado y robusto. De preferencia elegir nativo sobre otras opciones como React Native o Flutter. Lua / C# / Wren: Videojuegos Utilizar estos lenguajes para realizar videojuegos con TIC80, DOME, Unity, Godot u otro engine. Framework recomendado Defold. Bash + Sed + Awk / Python / Go: Scripts y CLI Utilizar para elaborar scripts de sistema y utilidades simples o para Devops. PETAL: Phoenix + Elixir + Tailwind + Alpine + LiveView. LAMP: Linux + Apache + MySQL + PHP (Cpanel) TALL: Tailwind + Alpine + Livewire + Laravel MERN: Mongo + Express + React + Node Las personas en forma de T son empleados con amplia experiencia en diferentes disciplinas (que se ilustra con la barra horizontal de \"T\") y tienen una gran experiencia en su campo o disciplina (que se representa con la barra vertical de \"T\"). Por lo tanto, las personas con forma de T tienen una especialidad y, además, tienen una experiencia más amplia con otras habilidades. A diferencia de la forma de T, la forma de M tiene dos barras verticales. Esas barras representan a personas con múltiples conocimientos en sus campos o disciplina. Una persona con más de una especialidad. Los empleados en forma de M tienen el mismo conocimiento, o más, en las habilidades que se esperan de los empleados en forma de T, y los empleados en forma de M a menudo son miembros de equipos multifuncionales de alto rendimiento. Un pianista concertista practica varias horas al día, aprendiendo música, practicando ejercicios y mejorando sus habilidades. Entrena la misma pieza musical una y otra vez hasta aprender cada pequeño detalle hasta lograr la interpretación musical indicada. Por que cuando sea el momento de presentarse ante un público, el pianista desea entregar su mejor interpretación posible. Desea estar orgulloso y justificar tanto el dinero como el tiempo que han invertido las personas para oirlo en su presentación. Un jugador de fútbol profesional pasa horas en el gimnasio, corriendo, alimentándose adecuadamente y haciendo diversos ejercicios físicos una y otra vez hasta ser un maestro. Verá grabaciones de partidos anteriores y estudiará estrategias sobre como mejorar. También jugará partidos de exhibición y amistosos para prepararse para los partidos de campeonato. Un karateka constantemente está practicando katas (movimientos que imitan una secuencia de batalla), cómo respirar y flexionar los músculos en el tiempo correcto. Realizando los movimientos innumerables veces, mejorando en cada repetición. Los mejores desarrolladores tienen la misma forma de ver la profesión. No van a trabajar todos los días y practicar a expensas del empleador. Van e invierten tiempo personal en aprender nuevas herramientas, lenguajes y perfeccionar sus técnicas y conocimientos. Siempre se aprenderá nuevas cosas en el trabajo, pero como hay dinero de por medio está la expectativa de que se va a producir, no a practicar. Fragmento de: Brian P. Hogan. Exercise for Programmers. En palabras simples. Si seguimos una Distribución Normal, debes posicionarte más alla del promedio (13.6% o más) hacia la derecha. De esta forma podrás superar la constante batalla de competencia al buscar un trabajo. En muchas empresas se habla de distintos niveles de seniority (Junior, Engineer, Senior Engineer, etc.). Sin embargo es un concepto muy ambigüo ya que varía entre cada empresa. Para poder estandarizar un poco, se debe detallar lo que se espera de un profesional en cada nivel. Es la responsabilidad de la empresa y del equipo de trabajo proveer un ambiente donde cada persona sea empoderada para ser y crecer al nivel mundial (world-class) en su rol y habilitarlos para alcanzar más de lo que pensaban posible para ellos mismos. Lo importante es que el profesional tome las riendas de su carrera y dirija su evolución según sus criterios, nunca dejar que una empresa defina tu carrera y sea la única fuente de crecimiento profesional. Esta empresa se dedica a la subcontratación. Clientes vienen y les piden personal para elaborar un proyecto. Normalmente, no tienen muy buenas prácticas y tu sueldo no será el mejor (aunque ellos cobrarán mucho más). El contrato será con la moledora y no con la empresa a la cual realizas el proyecto. Usualmente, te tocan proyectos cachos que nadie más quiere hacer con tecnologías, plazos o condiciones antiguas y adversas. Alta probabilidad de Burn Out. Se les dicen moledoras de carne porque te exprimen cada gota de sudor y sangre de ti, para que finalmente te desechen si ya no soportas las condiciones tóxicas de su ambiente. Hay empresas de subcontratación decentes, pero tienes que hacer un proceso de investigación correspondiente antes de aceptar ingresar a ese tipo de empresas. La mayoría de las moledoras trabajan con clientes que exígen ciertos requisitos. Mientras más títulos y certificaciones tengas, más dinero le podrán cobrar al cliente, por lo que si deseas trabajar en este tipo de organización procura tener buenas certificaciones y estudios. Los proyectos en este tipo de empresa son usualmente para bancos, instituciones de salud, gobierno u otras instituciones de gran envergadura y antigüedad. Por lo que las tecnologías usadas estarán dentro del ámbito Microsoft/Oracle/IBM. Java con Spring, Springboot o Struts. C# con ASP.NET. PHP (Proyectos Legacy). Visual Basic 6 Cobol SQLServer Oracle AS400 Empresas que tienen poco capital y experiencia en el mercado. Alto riesgo. Normalmente, dependen de algún fondo como CORFO o de inversionistas privados. Alta probabilidad de que te paguen poco o nada. Muy inestables ya que dependen de factores ajenos a su control (como que su producto sea un éxito, inversionistas den más dinero). Probablemente te ofrezcan un porcentaje de la empresa a cambio de un sueldo ínfimo o cosas como pizza, cervezas y oficinas \"entretenidas\". No es recomendable aceptar este tipo de ofertas, ya que la mayoría de las startups perecen en los primeros años. También suelen tener roles poco definidos y se deba realizar labores ajenas a tu área. También la posibilidad de marchas de la muerte seguidas para cumplir los caprichos de los inversionistas y las postulaciones a fondos. Investigar y evaluar si trabajar en estas condiciones vale la pena. De preferencia buscar Startups con una liquidez ya consolidada para evitar problemas al recibir sueldos. Normalmente, las startups tienen tan poco presupuesto que cualquier persona que pueda hacer el trabajo es aceptada. Idealmente procura conocer bien las herramientas y prepárate para aprender de muchas áreas distintas. Trabajar para startups es ideal para personas que deseen armar su propia startup en el futuro, si son afortunados, tendrán buenas experiencias y podrán conocer las distintas áreas del negocio, hacer contactos y los requisitos para tener una empresa propia. Una cosa que debes saber y tener presente es el Burn Rate de la Startup. Básicamente es la comparación de cúanto dinero existe en las arcas de la empresa versus cúanto dinero se quema mensualmente para mantenerla a flote. Mientras más alto sea el Burn Rate más rápido la empresa se quedará sin dinero y deberá buscar inversionistas o formas de generar ingresos. Si la empresa no te da esta información actualizada y de forma constante considéralo como una red flag. Las personas tienen derecho a conocer y poder planificar su situación laboral con tiempo, si es que la organización da indicios de no poder seguir funcionando. Una gran parte de las Startups tiene por objetivo ser compradas por empresas más grandes. Ten en consideración de que las condiciones de compra pueden no favorecerte. Si la empresa es adquirida por otra, la nueva empresa no está obligada a darte ningún tipo de compensación y puede despedirte sin aviso. Ten siempre en bandeja una alternativa laboral y colchón de ahorros para mantenerte a flote si pierdes el trabajo. Platanus Ventures Startup Chile Fundación Copec Incubadora Chrysalis Imagine Lab IncubaUC FHC NXTP Elixir Ruby PHP Javascript Python Tailwind Android, iOS Estas empresas se dedican a realizar sistemas para campañas publicitarias o apoyo a estas. Páginas webs, captación de usuarios y sistemas de análisis de campañas son proyectos comunes. El principal drama son los plazos extremadamente acotados (2 a 3 semanas) para sistemas completos. El burn out es muy probable y la calidad del software que se realice debido a estos plazos es cuestionable. Antes de entrar a una agencia procura que cumplan con un buen stack tecnológico y de gestión de proyectos. Con sueldos apropiados. Mucha de estas agencias utilizan la técnica de contratar prácticantes universitarios y elaborar todos los proyectos con una alta rotación de personal. Su prioridad es cumplir con lo que se le prometió al cliente, con el menor plazo y coste posible. Haz una buena investigación y obtención de referencias antes de entrar. Al igual que las startups, mientras el trabajo pueda cumplirse a tiempo y con la menor cantidad de defectos posibles. Idealmente conocer sobre marketing, copywriting, usabilidad y diseño ayuda. Wordpress ProcessWire Bootstrap jQuery Themeforest Plataformas No-Code como Bubble. Similar a la agencia de marketing, existe la fábrica de software. Se diferencian por que su foco no es la publicidad, pero si la elaboración de sistemas de software. Ten cuidado ya que muchas al igual que la agencia, prioriza plazos cortos y bajos costos frente a la calidad del software y la calidad de vida de las personas. Las empresas contratistas normalmente tienen a uno o varios clientes a los cuales les ofrecen servicios de desarrollo y soporte. Los clientes normalmente son bancos, retail o instituciones de servicios públicos. Haz una buena investigación antes de entrar sobre sus prácticas laborales, sueldos e historia. Normalmente, realizan una prueba técnica antes de entrar. Se recomienda conocer bien un área como frontend o backend. Además de conceptos de DDD, Solid y Patrones de Diseño. Java con Spring, Springboot o Struts. C# con ASP.NET. PHP, Javascript (Next.js, Nuxt.js). Las pequeñas y medianas empresas u organizaciones no gubernamentales pueden variar en los sueldos y proyectos que pueden ofrecer. Todas necesitan servicios informáticos para gestionar mejor sus organizaciones. Investiga bien si el sueldo ofrecido cumple tus necesidades, o si la causa de la ONG te motiva a ayudarlos. Similares a la startup, son recomendables para personas que deseen practicar sus habilidades y elaborar proyectos con una causa más elevada. Wordpress Bootstrap jQuery ProcessWire En los bancos y otras instituciones financieras o mineras te puedes encontrar con tecnologías antigüos (sistemas legacy como AS400, Cobol, Visual Basic 6, Dbase, Sybase). Pero también (dependiendo del banco) prácticas y tecnologías más modernas. Los bancos suelen trabajar con tecnologías en las cuales una empresa internacional como Oracle, IBM, Microsoft, SAP, ofrece soporte técnico y capacitación. Pagan millonarias sumas por licencias. El riesgo que tiene esta empresa es quedarse estancado con tecnologías empresariales. Ofrecen relativa estabilidad pero tienen prácticas como vestir formal que poco a poco se estan diluyendo. Ve a este tipo de empresas si deseas dar mantención a sistemas antiguos y una estabilidad laboral con sueldos aceptables, pero proyectos quizás menos entretenidos. La mayoría requiere de título universitario en el área informática o relacionado, para ser aceptado. Burocracia considerable. Java Oracle DB Cobol .NET SAP Angular Gestión de Proyectos Instituciones como Hospitales, Cámara de Diputados, Registro civil y otros relacionados. Cuentan con departamentos de informática. Las principales labores son soporte técnico (reparar computadores, redes y equipos de oficina, gestionar sistemas de información, dar asesoría técnica a los usuarios). Gran parte de sus sistemas son elaborados por contratistas, el desarrollo interno no es mucho (aunque depende de cada institución). El título universitario puede ser opcional, sin embargo tener uno puede significar la diferencia entre ganar el sueldo mínimo y tres veces más. Ya que las remuneraciones están basadas en grados y un título da muchos puntos para mejorar el grado. Usualmente dan contratos a plazo fijo y reemplazos antes de darte un cupo definitivo. Una vez que tienes contrato indefinido puedes tener pega por muchos años. Pero igualmente puedes estar años esperando ese cupo. Los sueldos no son los mejores, pero si se puede hacer carrera y subir el sueldo con los años y estudios. Mucho de los procesos ya están pensados, la burocracia es alta. Gestión de proyectos Análisis y Diseño de Sistemas Base de datos .NET Java PHP Similares a los Bancos e Instituciones Estatales. Las empresas de servicios básicos como agua, luz, gas, internet o de retail como Fallabela o aerolíneas como LAN, cuentan con sistemas legacy y alguno que otro proyecto con nuevas tecnologías. Muchas veces conviene más ser contratista de estas empresas a ser contratado directamente. La recomendación es trabajar como empleado un par de años para conocer su ambiente, además de tener contactos y luego fundar una empresa que les brinde servicios adaptados a sus necesidades. Similar a software factory, los bancos o instituciones estatales. Al igual que con las instituciones estatales, las escuelas de educación básica y media tienen un área informática. Normalmente, dedicada a la gestión de los equipos computacionales y solución de problemas de los usuarios. Quizás tengan sistemas para la gestión de notas, página web y otros como Moodle. Los sueldos no son muy elevados (dependiendo del lugar), pero tiene el plus de estar aportando en hacer una diferencia en la vida de los jóvenes. Si deseas hacer clases o participar en un proyecto educativo quizás este tipo de organización sea para ti. No es necesario tener un título relacionado a la informática, pero si sería de mucha ayuda uno relacionado a la educación. Podrías entrar como servicio técnico con un par de certificaciones técnicas. Aunque si deseas hacer clases, una carrera o magíster en docencia es de ayuda. PHP (Moodle) Java .NET En las universidades se puede trabajar como profesor (de preferencia con un magister en educación) o como miembro del equipo de TI. Las labores son similares a una escuela de educación media y organizaciones estatales. Existen algunas universidades que tienen áreas de investigación y desarrollo que también se puede participar, como por ejemplo el Laboratorio Nacional de Computación de Alto Rendimiento (NLHPC). Magíster en Matemática, Física, Estadísticas, Astronomía, Docencia Python, .NET, Java PHP (Moodle) CUDA Certificación LPIC Certificación CCNA. Normalmente, comenzaron como una Startup, pero llevan más de 5 años y tienen una buena salud financiera. Su producto o servicio es rentable y tiene ingresos constantes. Entra a esta organización si te gusta el servicio o producto que tienen y vez aportando a su evolución. Se diferencia del software factory porque la mayor parte de sus proyectos están relacionados del producto o servicio en vez de un cliente externo. Por ejemplo armar un dashboard que tenga indicadores sobre el avance del producto, mejorar los sistemas de comunicación interna y otros. Similar al software factory y Startup. Se recomienda tomar las siguientes acciones: Participar en comunidades de desarrolladores, ampliando la red de contactos. Los mejores empleos son cuando un amigo te recomienda, saltándose ampliamente el proceso de contratación. Elaborar un portafolio de proyectos y promocionarlos (sin seguir tutoriales). Asistir a charlas y conferencias y realizar networking. Practicar Algoritmos y Coding Challenges (https://exercism.org/, https://leetcode.com/). Practicar Diseño de Sistemas, DDD, Solid, Hexagonal. Practicar responder preguntas con el método STAR. Tener un CV bien redactado, estructurado, honesto y orientado al puesto laboral. Elaborar una carta de presentación. Ser resiliente y postular (En promedio 50 postulaciones entregarán resultados). Aprender Inglés y dar la IETLS o TOEFL según sea necesario. Escuchar Podcast de tecnología y estar atentos a las nuevas tendencias. El trabajar para empresas del extranjero permitirá obtener experiencias únicas que darán un gran peso al currículum. Para esto se recomienda aprender bien inglés (o el idioma predilecto de la empresa o país). Chile tiene varios convenios con distintos países, lo que se conoce como Work and Holiday o tomar cursos de maestrías o inglés afuera. https://www.workingholiday.cl/ https://www.kiwihopp.com/ https://www.efset.org/ https://www.ef.com/cl/ La industria tecnológica vive procesos cíclicos constantemente. Por ejemplo a principio de los 2000 se experimentó lo que fue la Burbuja Punto Com. Donde al principio hubo amplias contrataciones y luego tremendos despidos. Lo mismo sucedió en la época de la pandemia del 2020, donde las empresas comenzaron a contratar masivamente, para luego entrar a un proceso de despidos masivos. Actualmente, las empresas han comenzado a reiniciar sus procesos de contratación y tener un ritmo a niveles previos a la pandemia. Lo importante es tener confianza en las habilidades duras (técnicas) y blandas (comunicación, emocional, resiliencia, saber aprender), además de tener redes de contacto. El tener fundamentos sólidos en lo técnico y en lo profesional, permitirá saber ajustarse, adaptarse y acomodarse a los requisitos de la época y contexto tecnológico-social. https://elixircl.github.io/ https://devschile.cl/ https://programadoreschile.org/ https://jschile.org https://9punto5.cl/blog/ https://elixirconf.com/ https://jsconf.cl/ https://dev.events/elixir https://www.meetup.com/es/ioslove/ https://flisol.info/ https://smartlogic.io/podcast/elixir-wizards https://www.elixirnewbie.com/ https://www.thoughtworks.com/radar https://grox.io/ https://learn-elixir.dev/ https://codely.com/ https://www.essentialdeveloper.com/ https://pragprog.com/ https://www.packtpub.com/ https://leanpub.com/ https://talently.tech/ https://aws.amazon.com/es/builders-library https://frontendmasters.com/ https://ocw.mit.edu/ https://www.coursera.org/ https://pll.harvard.edu/course/cs50-introduction-computer-science https://www.getonbrd.com/ https://www.terminal.io/ https://www.toptal.com/ https://www.turing.com/ https://elixirjobs.net/ https://relocate.me/ https://www.fiverr.com/ https://www.upwork.com/ Camilo Castro: Peso Técnico Range: Why Generalists Triumph in a Specialized World McFunley: Choose Boring Technology Pragmatic Thinking and Learning T Shaped Skills M Shaped Skills Exercise for Programmers Principio de Pareto.","title":"Mundo Laboral y su Estado del Arte","component":"ROOT","version":"","name":"jobs","url":"/ecosystem/jobs.html","titles":[{"text":"Trabajo Independiente (Freelance)","hash":"trabajo-independiente-freelance","id":1},{"text":"Creación de una Empresa","hash":"creación-de-una-empresa","id":2},{"text":"Contratos","hash":"contratos","id":3},{"text":"Tip","hash":"tip","id":4},{"text":"Ley de Chilena de Teletrabajo","hash":"ley-de-chilena-de-teletrabajo","id":5},{"text":"El empleador debe proporcionar los elementos de trabajo","hash":"el-empleador-debe-proporcionar-los-elementos-de-trabajo","id":6},{"text":"Derecho a desconexión digital","hash":"derecho-a-desconexión-digital","id":7},{"text":"Cumplir horario o libertad de horario","hash":"cumplir-horario-o-libertad-de-horario","id":8},{"text":"Accidente laboral y de trayecto trabajando desde casa","hash":"accidente-laboral-y-de-trayecto-trabajando-desde-casa","id":9},{"text":"Privacidad","hash":"privacidad","id":10},{"text":"Ética Laboral","hash":"ética-laboral","id":11},{"text":"Ley 19.223","hash":"ley-19-223","id":12},{"text":"Elegir un Computador","hash":"elegir-un-computador","id":13},{"text":"Opciones","hash":"opciones","id":14},{"text":"Dispositivos Móviles","hash":"dispositivos-móviles","id":15},{"text":"¿Qué significa ser Full Stack (Generalista)?","hash":"qué-significa-ser-full-stack-generalista","id":16},{"text":"Algunas Combinaciones Full-Stack","hash":"algunas-combinaciones-full-stack","id":17},{"text":"Stack Sugerido","hash":"stack-sugerido","id":18},{"text":"Stacks Populares","hash":"stacks-populares","id":19},{"text":"Habilidades con forma de \"T\" y \"M\"","hash":"habilidades-con-forma-de-t-y-m","id":20},{"text":"La práctica hace al maestro","hash":"la-práctica-hace-al-maestro","id":21},{"text":"Seniority","hash":"seniority","id":22},{"text":"Tipos de Empresa","hash":"tipos-de-empresa","id":23},{"text":"Moledora de carne (☠️)","hash":"moledora-de-carne","id":24},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes","id":25},{"text":"Startup","hash":"startup","id":26},{"text":"Burn Rate","hash":"burn-rate","id":27},{"text":"Adquisiciones","hash":"adquisiciones","id":28},{"text":"Enlaces a Startups en Chile","hash":"enlaces-a-startups-en-chile","id":29},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-2","id":30},{"text":"Agencia de marketing","hash":"agencia-de-marketing","id":31},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-3","id":32},{"text":"Software factory y contratistas","hash":"software-factory-y-contratistas","id":33},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-4","id":34},{"text":"Pymes y ONGs","hash":"pymes-y-ongs","id":35},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-5","id":36},{"text":"Bancos y minería","hash":"bancos-y-minería","id":37},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-6","id":38},{"text":"Instituciones estatales","hash":"instituciones-estatales","id":39},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-7","id":40},{"text":"Transporte, retail y servicios básicos","hash":"transporte-retail-y-servicios-básicos","id":41},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-8","id":42},{"text":"Escuelas de educación básica, media","hash":"escuelas-de-educación-básica-media","id":43},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-9","id":44},{"text":"Universidades e institutos","hash":"universidades-e-institutos","id":45},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-10","id":46},{"text":"Empresas con producto y/o servicio definido","hash":"empresas-con-producto-yo-servicio-definido","id":47},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-11","id":48},{"text":"Conseguir empleo","hash":"conseguir-empleo","id":49},{"text":"Tener Experiencia Internacional","hash":"tener-experiencia-internacional","id":50},{"text":"Estar Atento a los Ciclos","hash":"estar-atento-a-los-ciclos","id":51},{"text":"Importancia de los Fundamentos","hash":"importancia-de-los-fundamentos","id":52},{"text":"Comunidades en Chile","hash":"comunidades-en-chile","id":53},{"text":"Eventos y Meetups","hash":"eventos-y-meetups","id":54},{"text":"Noticias","hash":"noticias","id":55},{"text":"Plataformas de Aprendizaje","hash":"plataformas-de-aprendizaje","id":56},{"text":"Empleos con Contrato","hash":"empleos-con-contrato","id":57},{"text":"Empleos como Freelance","hash":"empleos-como-freelance","id":58},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":59}]},"17":{"id":17,"text":"La historia de ChatGPT comienza con los avances en modelos de lenguaje grande (LLM) de OpenAI, evolucionando desde GPT-1 en 2018 hasta GPT-3 en 2020, culminando con el lanzamiento público de ChatGPT el 30 de noviembre de 2022, un chatbot que utiliza el modelo GPT-3.5 y se basa en la arquitectura Transformador, convirtiéndose rápidamente en un fenómeno mundial por su capacidad de generar texto y conversaciones de manera natural. OpenAI cambió los procesos de empresas enteras hasta la forma en que se concebía la educación. Los modelos de lenguaje de gran tamaño, también conocidos como LLM, son modelos de aprendizaje profundo muy grandes que se preentrenan con grandes cantidades de datos. El transformador subyacente es un conjunto de redes neuronales que consta de un codificador y un decodificador con capacidades de autoatención. El codificador y el decodificador extraen significados de una secuencia de texto y comprenden las relaciones entre las palabras y las frases que contiene. Los transformadores LLM son capaces de entrenarse sin supervisión, aunque una explicación más precisa es que los transformadores llevan a cabo un autoaprendizaje. Es a través de este proceso que los transformadores aprenden a entender la gramática, los idiomas y los conocimientos básicos. Los modelos de lenguaje de gran tamaño son increíblemente flexibles. Un modelo puede realizar tareas completamente diferentes, como responder preguntas, resumir documentos, traducir idiomas y completar oraciones. Los LLM tienen el potencial de alterar la creación de contenido y la forma en que las personas utilizan los motores de búsqueda y los asistentes virtuales. Los LLM son grandes, muy grandes. Pueden considerar miles de millones de parámetros y tienen muchos usos posibles. A continuación, se indican varios ejemplos: El modelo GPT-3 de OpenAI tiene 175 000 millones de parámetros. Su primo, ChatGPT, puede identificar patrones a partir de datos y generar resultados naturales y legibles. Si bien no sabemos el tamaño de Claude 2, puede aceptar entradas con hasta 100 000 tokens en cada indicación, lo que significa que puede funcionar en cientos de páginas de documentación técnica o, incluso, en un libro completo. El modelo Jurassic-1 de AI21 Labs tiene 178 000 millones de parámetros y un vocabulario simbólico de partes de 250 000 palabras y capacidades de conversación similares. El modelo Command de Cohere tiene capacidades similares y puede funcionar en más de 100 idiomas diferentes. El Paradigm de LightOn ofrece modelos básicos con capacidades declaradas que superan las del GPT-3. Todos estos LLM vienen con las API que permiten a los desarrolladores crear aplicaciones únicas de IA generativa. El \"Vibe coding\" es un término despectivo utilizado para describir una persona que depende exclusivamente de las herramientas IA para desarrollar un producto de software. Fue acuñado por Andrej Karpathy en febrero del 2025, definiendo a una persona que crea software solo por \"Las Vibras\" que da una solución, dejando todo el desarrollo a las herramientas IA, quedando la persona relegada a un puesto de supervisor más que de creador. Normalmente es utilizado por personas que no tienen una formación adecuada en desarrollo de software y omiten las buenas prácticas necesarias para lograr un producto robusto y de calidad. La contraparte de \"Vibe Coding\" sería \"Assisted Development\" (Desarrollo asistido) donde una persona utiliza las herramientas para mejorar sus procesos y entendimiento del proyecto. Tiene los conocimientos y habilidades necesarias para entregar un producto de calidad. El uso de las herramientas es bienvenido, pero no es limitante y pueden ser omitidas en su gran mayoría, es decir, la persona podría desarrollar el producto de software sin requerir obligatoriamente las IA. Entre los usos éticos de las herramientas LLM y GPT en desarrollo de software están: Ayudar a crear documentación de funciones y del proyecto. Ayudar a descubrir errores de lógica en el código. Ayudar en refactorizar el código. Ayudar a escribir pruebas de código. Crear prototipos desechables para validar supuestos. https://expansion.mx/tecnologia/2023/11/30/chatgpt-historia-impacto-a-un-ano-lanzamiento https://aws.amazon.com/es/what-is/large-language-model/ https://www.erlang-solutions.com/blog/how-chatgpt-improved-my-elixir-code-some-hacks-are-included/ https://en.wikipedia.org/wiki/Vibe_coding","title":"Large Language Models (LLM)","component":"ROOT","version":"","name":"llm","url":"/ecosystem/llm.html","titles":[{"text":"Vibe Coding y Assisted Development","hash":"vibe-coding-y-assisted-development","id":1},{"text":"Uso Ético","hash":"uso-ético","id":2},{"text":"Referencias","hash":"referencias","id":3}]},"18":{"id":18,"text":"Como un vistazo actual de las tecnologías disponibles para desarrollar sistemas web de frontend y backend. Se dará un análsis rápido y general de una pequeña selección de las opciones disponibles. En el mundo del desarrollo web, Javascript es el motor de las aplicaciones web dinámicas, interactivas y de una sola página. Sin embargo, a medida que crece la complejidad de las aplicaciones web modernas, también lo hace el número de bibliotecas, frameworks y dependencias de Javascript. Esto conduce a una base de código hinchada e ineficiente, que compromete el rendimiento y la experiencia del usuario. Para hacer frente a este reto, se introdujeron los bundlers de Javascript. Estos asistentes de optimización están especializados en refinar el código y potenciar el rendimiento. En el pasado, los desarrolladores solían incrustar las etiquetas

Formulario Estóico

Estos HTML adicionales están definidos en el directorio layouts/. Son heredados desde el archivo root.html.heex el cual se encuentra en el directorio lib/stoic_quotes_web/components/layouts/. Los contenidos de este archivo son transversales para todas las vistas. Si se desea utilizar otro archivo se debe modificar el router. router.ex plug(:put_root_layout, html: {StoicQuotesWeb.Layouts, :root}) lib/stoic_quotes_web/components/layouts/root.html.heex <.live_title default=\"StoicQuotes\" suffix=\" · Phoenix Framework\"> {assigns[:page_title]} {@inner_content} {assigns[:page_title]}: Imprime el contenido que puede ser modificado usando la estructura sockets en la función mount usando socket = assign(socket, page_title: 'Mi Título'). {@inner_content}: Imprime un texto que puede ser reemplazado por una vista de un LiveView. Editamos nuestro formulario (lib/stoic_quotes_web/quotes_form.html.heex) con el HTML necesario. lib/stoic_quotes_web/quotes_form.html.heex

Stoic Quotes Form

<%# Alert Section %>
12 unread messages. Tap to see.

Stoic Quote Information

Use this form to add a new Stoic Quote

Lo que mostrará una página similar a lo siguiente: Para esto utilizaremos las herramientas proporcionadas por LiveView la cual permite enviar eventos y valores hacia el controlador. Configuramos el valor de cada input para que sea enviado al controlador. Para esto creamos una nueva estructura que almacenará los valores, utilizamos una función llamada empty_form() que utiliza la función de Phoenix to_form() para entregar la estructura que usaremos en el formulario. defp empty_form() do to_form(%{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) end def mount(_params, _session, socket) do {:ok, socket |> assign(form: empty_form())} end También añadiremos dos eventos \"validate\" y \"save\" que por el momento solamente devuelven los valores del formulario. Luego serán mejorados. quotes_form.ex def handle_event(\"validate\", params, socket) do IO.inspect(params, label: :validate) form = to_form(params) {:noreply, socket |> assign(form: form) } end def handle_event(\"save\", params, socket) do IO.inspect(params, label: :save) form = to_form(params) {:noreply, socket |> assign(form: form) } end Quedando el archivo de la siguiente forma: quotes_form.ex defmodule StoicQuotesWeb.Live.QuotesForm do use StoicQuotesWeb, :live_view defp empty_form() do to_form(%{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) end def mount(_params, _session, socket) do {:ok, socket |> assign(form: empty_form())} end def handle_event(\"validate\", params, socket) do IO.inspect(params, label: :validate) form = to_form(params) {:noreply, socket |> assign(form: form) } end def handle_event(\"save\", params, socket) do IO.inspect(params, label: :save) form = to_form(params) {:noreply, socket |> assign(form: form) } end end También es necesario utilizar el elemento .form para asociar el formulario al controlador. Notar los eventos que se manejaran, phx-change y phx-submit. quotes_form.html.heex <.form for={@form} phx-change=\"validate\" phx-submit=\"save\"> ... Ahora es turno de asociar los elementos para que sean enviados en los eventos del formulario. Para esto utilizamos los elementos .input. Author quotes_form.html.heex <.input autofocus=\"true\" placeholder=\"Marcus Aurelius\" phx-debounce=\"blur\" field={@form[:author]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" /> Source quotes_form.html.heex <.input placeholder=\"Meditations\" phx-debounce=\"blur\" field={@form[:source]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" /> Quote quotes_form.html.heex <.input type=\"textarea\" rows=\"5\" placeholder=\"Lorem Ipsum\" phx-debounce=\"blur\" field={@form[:quote]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" /> ¿Dónde están estos elementos de <.form> e <.input>? Estos elementos están definidos en lib/stoic_quotes_web/components/core_components.ex donde corresponden a una función que devuelve un html según los parámetros. Estos son componentes que vienen predefinidos en Phoenix y son opcionales de utilizar, pero recomendados. lib/stoic_quotes_web/components/core_components.ex ... def input(%{type: \"textarea\"} = assigns) do ~H\"\"\"
<.error :for={msg <- @errors}>{msg}
\"\"\" end ... Alertas Para generar alertas utilizaremos el componente el cual está dentro del archivo lib/stoic_quotes_web/components/layouts.ex. Este es un mensaje de alerta que cambia de color dependiendo del tipo de alerta (éxito o error). Se utiliza la función put_flash() en el socket para enviar mensajes. quotes_form.html.heex Quedando el formulario como lo siguiente: quotes_form.html.heex

Stoic Quotes Form

<.form for={@form} phx-change=\"validate\" phx-submit=\"save\">

Stoic Quote Information

Use this form to add a new Stoic Quote

<.input autofocus=\"true\" required=\"true\" placeholder=\"Marcus Aurelius\" phx-debounce=\"blur\" field={@form[:author]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
<.input placeholder=\"Meditations\" required=\"true\" phx-debounce=\"blur\" field={@form[:source]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
<.input type=\"textarea\" required=\"true\" rows=\"5\" placeholder=\"Lorem Ipsum\" phx-debounce=\"blur\" field={@form[:quote]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
<.button type=\"submit\" class=\"rounded-md btn btn-xl btn-wide bg-indigo-500 px-3 py-2 text-sm font-semibold text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-500\"> Save
Ahora se realizará la validación del formulario, para que muestre errores si se envía un valor que no sea correcto. Para esto modificaremos la función def handle_event(\"validate\", params, socket), donde crearemos un nuevo changeset, el cual será la estructura usada para realizar todas las validaciones. Como ya tenemos un esquema podemos reutilizarlo, sin embargo también existen los changeset sin esquemas (por ejemplo un formulario de contacto) que pemiten realizar validaciones a formularios no asociados a una base de datos o también cuando sea necesario validar múltiples valores no relacionados en la misma tabla. Primero añadimos el módulo y el Logger. quotes_form.ex defmodule StoicQuotesWeb.Live.QuotesForm do use StoicQuotesWeb, :live_view alias StoicQuotes.Quotes alias StoicQuotes.Quotes.Quote require Logger ... Luego modificamos la función para usar el módulo. Notemos que añadimos una nueva función llamada Quote.new que inicia una validación con los parámetros que le hemos dado. Para esto debemos añadir la función al esquema correspondiente. quotes_form.ex def handle_event(\"validate\", params, socket) do changeset = Quote.new(params) form = to_form(params, errors: changeset.errors) Logger.debug(form) {:noreply, socket |> assign(form: form)} end Notar que separamos el changeset del formulario. Esto es por que un formulario puede tener distintos campos que no necesariamente tienen relación con el esquema y sus validaciones. Por lo que siempre es recomendable tener entidades separadas para mayor mantenibilidad y bajo acoplamiento. Ahora modicamos el esquema para que tenga la función new. @doc false def new(attrs \\\\ %{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) do case changeset(%__MODULE__{}, attrs) do {_, changeset} -> changeset changeset -> changeset end end lib/stoic_quotes/quotes/quote.ex defmodule StoicQuotes.Quotes.Quote do use Ecto.Schema import Ecto.Changeset @optional_fields [:id, :inserted_at, :updated_at] schema \"quotes\" do field(:quote, :string) field(:author, :string) field(:source, :string) timestamps(type: :utc_datetime) end def fields() do __MODULE__.__schema__(:fields) end def required_fields() do fields() -- @optional_fields end @doc false def changeset(quote, attrs) do quote |> cast(attrs, fields()) |> validate_required(required_fields()) |> unsafe_validate_unique(:quote, StoicQuotes.Repo) |> unique_constraint(:quote) end @doc false def new(attrs \\\\ %{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) do case changeset(%__MODULE__{}, attrs) do {_, changeset} -> changeset changeset -> changeset end end end MODULE: Este elemento permite utilizar el módulo dentro del mismo. Siempre apuntara al nombre del módulo, por lo que es buena práctica usarlo para reducir el acomplamiento. changeset(%MODULE{}, attrs): Llamamos a la función existente pasando los parámetros adecuados, como un nuevo struct del módulo. {_, changeset} → changeset: La validación unique_constraint(:quote) entrega una tupla {:error, changeset}, por lo cual debemos estandarizar para simplificar el manejo de errores. changeset → changeset: Si la validación entrega el formato estándar entonces la devolvemos tal cual es. Si las validaciones son exitosas, entonces podemos enviarlo para su almacenamiento en la base de datos. Para esto modificamos la función def handle_event(\"save\", params, socket). Debemos evaluar los casos: las validaciones son correcta o no, se guardo exitosamente o no, como también considerar un caso excepcional donde no se retornó el valor esperado al guardar (éxito o fracaso). quotes_form.ex def handle_event(\"save\", params, socket) do changeset = Quote.new(params) form = to_form(params, errors: changeset.errors) Logger.debug(form) socket = case changeset.valid? do true -> case Quotes.create_quote(params) do {:ok, result} -> Logger.debug(\"Insert completed\") Logger.debug(result) socket |> assign(form: empty_form()) |> put_flash(:info, \"Created new Quote\") {:error, error} -> Logger.debug(\"Insert failed\") Logger.debug(error) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") unknown -> Logger.debug(\"Insert operation with unknown state\") Logger.debug(unknown) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") end false -> Logger.debug(\"Changeset with errors can not be saved\") Logger.debug(changeset.errors) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") end {:noreply, socket} end Ahora que tenemos las validaciones listas se modificará un poco el botón guardar para que solo esté activo si el formulario tiene valores válidos. Para esto le añadimos la propiedad disabled que estará en verdadero si no se puede guardar. disabled={@can_save? == false}. Ahora debemos añadir esta nueva variable en nuestro socket y función de validación. Para esto creamos la variable con su valor inicial en mount. def mount(_params, _session, socket) do {:ok, socket |> assign(can_save?: false) |> assign(form: empty_form())} end Y modificamos tanto la función de validación, como la función de guardado. En la función de validación debemos obtener el valor del changeset de validaciones para determinar si el botón puede ser habilitado. def handle_event(\"validate\", params, socket) do changeset = Quote.new(params) form = to_form(params, errors: changeset.errors) Logger.debug(form) {:noreply, socket |> assign(can_save?: changeset.valid?) |> assign(form: form)} end def handle_event(\"save\", params, socket) do ... case Quotes.create_quote(params) do {:ok, result} -> Logger.debug(\"Insert completed\") Logger.debug(result) socket |> assign(can_save?: false) |> assign(form: empty_form()) |> put_flash(:info, \"Created new Quote\") ... Se mostrará el código final de cada archivo. defmodule StoicQuotesWeb.Live.QuotesForm do use StoicQuotesWeb, :live_view alias StoicQuotes.Quotes.Quote alias StoicQuotes.Quotes require Logger defp empty_form() do to_form(%{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) end def mount(_params, _session, socket) do {:ok, socket |> assign(can_save?: false) |> assign(form: empty_form())} end def handle_event(\"validate\", params, socket) do changeset = Quote.new(params) form = to_form(params, errors: changeset.errors) Logger.debug(form) {:noreply, socket |> assign(can_save?: changeset.valid?) |> assign(form: form)} end def handle_event(\"save\", params, socket) do changeset = Quote.new(params) form = to_form(params, errors: changeset.errors) Logger.debug(form) socket = case changeset.valid? do true -> case Quotes.create_quote(params) do {:ok, result} -> Logger.debug(\"Insert completed\") Logger.debug(result) socket |> assign(can_save?: false) |> assign(form: empty_form()) |> put_flash(:info, \"Created new Quote\") {:error, error} -> Logger.debug(\"Insert failed\") Logger.debug(error) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") unknown -> Logger.debug(\"Insert operation with unknown state\") Logger.debug(unknown) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") end false -> Logger.debug(\"Changeset with errors can not be saved\") Logger.debug(changeset.errors) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") end {:noreply, socket} end end

Stoic Quotes Form

<.form for={@form} phx-change=\"validate\" phx-submit=\"save\">

Stoic Quote Information

Use this form to add a new Stoic Quote

<.input autofocus=\"true\" required=\"true\" placeholder=\"Marcus Aurelius\" phx-debounce=\"blur\" field={@form[:author]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
<.input placeholder=\"Meditations\" required=\"true\" phx-debounce=\"blur\" field={@form[:source]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
<.input type=\"textarea\" required=\"true\" rows=\"5\" placeholder=\"Lorem Ipsum\" phx-debounce=\"blur\" field={@form[:quote]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
Ahora se debería tener un formulario que realiza validaciones, muestra mensajes de éxito y error y permite insertar registros en la base de datos. El siguiente tutorial verá cómo realizar pruebas unitarias al código realizado.","title":"LiveView: Stoic API","component":"ROOT","version":"","name":"liveview","url":"/elixir/liveview.html","titles":[{"text":"Paso 1: Agregar nuestra ruta de LiveView","hash":"paso-1-agregar-nuestra-ruta-de-liveview","id":1},{"text":"Paso 2: Crear nuestro controlador de LiveView","hash":"paso-2-crear-nuestro-controlador-de-liveview","id":2},{"text":"Paso 3: Implementar el formulario HTML","hash":"paso-3-implementar-el-formulario-html","id":3},{"text":"Paso 4: Conectar el formulario al controlador","hash":"paso-4-conectar-el-formulario-al-controlador","id":4},{"text":"Paso 5: Implementar validación del formulario","hash":"paso-5-implementar-validación-del-formulario","id":5},{"text":"Paso 6: Implementar el guardado en la base de datos","hash":"paso-6-implementar-el-guardado-en-la-base-de-datos","id":6},{"text":"Paso 7: Botón Guardar","hash":"paso-7-botón-guardar","id":7},{"text":"Paso 9: Siguientes pasos","hash":"paso-9-siguientes-pasos","id":8}]},"24":{"id":24,"text":"En este tutorial se verá como realizar pruebas tanto para la API Rest, los esquemas y el formulario creado en los tutoriales anteriores. En el directorio config/ se encuentra las distintas configuraciones para la conexión con la base de datos y otros elementos para distintos ambientes. dev, prod y test. Además de dos archivos especiales config.exs y runtime.exs. dev: Configuraciones para el ambiente de desarrollo local. prod: Configuraciones para el ambiente en producción. test: Configuraciones para el ambiente de pruebas locales. config.exs: Configuraciones en tiempo de compilación. No puede acceder a variables de entorno en tiempo de ejecución. Además llamará a dev, prod y test respectivamente según la variable de entorno MIX_ENV. runtime.exs: Configuraciones que pueden acceder a variables de entorno en tiempo de ejecución (antes de iniciar la aplicación). Los archivos importantes son config.exs y runtime.exs los otros archivos pueden ser estructurados según sea conveniente para la aplicación, y se pueden importar con import_config/1 dentro de config.exs aunque no dentro de runtime.exs (limitaciones técnicas). Dentro del archivo config/test.exs podemos verificar que la conexión con la base de datos se esté realizando en una nueva base de datos de pruebas en modo Sandbox (que cualquier cambio sea efímero). config/test.exs config :stoic_quotes, StoicQuotes.Repo, database: Path.expand(\"../stoic_quotes_test.db\", __DIR__), pool_size: 5, pool: Ecto.Adapters.SQL.Sandbox También debemos borrar algunos archivos en la suit de pruebas debido a que solo son ejemplos predeterminados creados para probar la página de bienvenida. Se deben borrar los siguientes archivos: stoic_quotes_web/controllers/error_html_test.exs stoic_quotes_web/controllers/error_json_test.exs stoic_quotes_web/controllers/page_controller_test.exs Podemos verificar que la suit de pruebas de ejecuta exitosamente con el comando $ mix test Y ver un resultado similar a lo siguiente: Compiling 23 files (.ex) Running ExUnit with seed: 93697, max_cases: 8 ......... Finished in 0.3 seconds (0.00s async, 0.3s sync) 9 tests, 0 failures ¿Dónde están esas 9 pruebas?. Están en el archivo test/stoic_quotes/quotes_test.exs que fue creado por el generador del contexto (mix phx.gen.context) usado en el tutorial de la api rest. Se realizarán las pruebas de los esquemas creados. Se debe probar que los campos tengan su tipo de datos adecuado. Como recordatorio se muestra el esquema a probar. lib/stoic_quotes/quotes/quote.ex defmodule StoicQuotes.Quotes.Quote do use Ecto.Schema import Ecto.Changeset @optional_fields [:id, :inserted_at, :updated_at] schema \"quotes\" do field(:quote, :string) field(:author, :string) field(:source, :string) timestamps(type: :utc_datetime) end def fields() do __MODULE__.__schema__(:fields) end def required_fields() do fields() -- @optional_fields end @doc false def changeset(quote, attrs) do quote |> cast(attrs, fields()) |> validate_required(required_fields()) |> unsafe_validate_unique(:quote, StoicQuotes.Repo) |> unique_constraint(:quote) end @doc false def new(attrs \\\\ %{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) do case changeset(%__MODULE__{}, attrs) do {_, changeset} -> changeset changeset -> changeset end end end Para crear la prueba se crea un nuevo archivo en test/stoic_quotes/quotes/schema_test.exs test/stoic_quotes/quotes/schema_test.exs defmodule StoicQuotes.Tests.Schemas.Quotes.QuoteSchemaTest do use StoicQuotes.DataCase alias StoicQuotes.Quotes.Quote describe \"quote schema field and types tests\" do test \"that schema has the correct fields and types\" do expected_fields_and_types = [ {:id, :id}, {:quote, :string}, {:author, :string}, {:source, :string}, {:inserted_at, :utc_datetime}, {:updated_at, :utc_datetime} ] actual_fields_and_types = for field <- Quote.__schema__(:fields) do type = Quote.__schema__(:type, field) {field, type} end assert MapSet.new(expected_fields_and_types) == MapSet.new(actual_fields_and_types) end end end defmodule StoicQuotes.Tests.Schemas.Quotes.QuoteSchemaTest: Nombre del módulo siempre debe terminar en Test. use StoicQuotes.DataCase: Usamos las herramientas para crear pruebas unitarias las cuales vienen incluidas en Phoenix. En este caso es una prueba unitaria que utilizará la base de datos. Este módulo esta definido en el archivo test/support/data_case.ex. alias StoicQuotes.Quotes.Quote: Asignamos un alias al esquema para usarlo más fácilmente. describe \"quote schema field and types tests\": Crea un nuevo grupo para que varias pruebas estén cohesionadas en un mismo lugar. test \"that schema has the correct fields and types\": Se crea la prueba unitaria que deberá ser implementada. assert MapSet.new(expected_fields_and_types) == MapSet.new(actual_fields_and_types): El uso de assert permite informar el éxito o fracaso de una prueba, en este caso validamos que dos conjuntos sean iguales. Quote.schema(:type, field): Devuelve el tipo de campo dentro del esquema. Para ejecutar la prueba solo debemos usar mix test, pero si se desea solamente probar un archivo se puede proporcionar en el comando. $ mix test/stoic_quotes/quotes/schema_test.exs O tambien puede ser utilizando la función describe. $ mix test --only describe:\"quote schema field and types tests\" test/stoic_quotes/quotes/schema_test.exs Ahora se realizarán las pruebas de las validaciones, esto permitirá determinar si las validaciones están correctamente establecidas y detectar cualquier problema con ellas. test/stoic_quotes/quotes/schema_test.exs describe \"changeset/2\" do test \"that changeset with valid params is valid\" do params = %{ \"author\" => \"Marcus Aurelius\", \"source\" => \"Meditations\", \"quote\" => \"You have power over your mind — not outside events. Realize this, and you will find strength.\" } changeset = Quote.changeset(%Quote{}, params) assert %Ecto.Changeset{valid?: true, changes: _} = changeset end test \"that changeset with invalid params is invalid\" do params = %{ \"author\" => \"\", \"source\" => \"Meditations\", \"quote\" => \"You have power over your mind — not outside events. Realize this, and you will find strength.\" } changeset = Quote.changeset(%Quote{}, params) assert %Ecto.Changeset{ valid?: false, errors: [{:author, {\"can't be blank\", [validation: :required]}}] } = changeset params = %{ \"author\" => \"Marcus Aurelius\", \"source\" => \"\", \"quote\" => \"You have power over your mind — not outside events. Realize this, and you will find strength.\" } changeset = Quote.changeset(%Quote{}, params) assert %Ecto.Changeset{ valid?: false, errors: [{:source, {\"can't be blank\", [validation: :required]}}] } = changeset params = %{ \"author\" => \"Marcus Aurelius\", \"source\" => \"Meditations\", \"quote\" => \"\" } changeset = Quote.changeset(%Quote{}, params) assert %Ecto.Changeset{ valid?: false, errors: [{:quote, {\"can't be blank\", [validation: :required]}}] } = changeset end end También añadimos una validación para la función new/1 donde comprobaremos que siempre devuelva un changeset. test/stoic_quotes/quotes/schema_test.exs describe \"new/1\" do test \"that returns a changeset\" do params = %{ \"author\" => \"Marcus Aurelius\", \"source\" => \"Meditations\", \"quote\" => \"You have power over your mind — not outside events. Realize this, and you will find strength.\" } changeset = Quote.new(params) assert %Ecto.Changeset{valid?: true, changes: _} = changeset end end Las pruebas de contexto fueron creadas automáticamente por el generador phx.gen.context. Se pueden ver dentro del archivo test/stoic_quotes/quotes_test.exs, pero se recomienda mover el archivo al directorio test/stoic_quotes/quotes/quotes_test.exs para que tenga cohesión con las pruebas del esquema test/stoic_quotes/quotes/schema_test.exs. test/stoic_quotes/quotes_test.exs defmodule StoicQuotes.Tests.Contexts.QuotesContextTest do use StoicQuotes.DataCase alias StoicQuotes.Quotes describe \"quotes\" do alias StoicQuotes.Quotes.Quote import StoicQuotes.QuotesFixtures @invalid_attrs %{author: nil, source: nil, quote: nil} test \"list_quotes/0 returns all quotes\" do quote = quote_fixture() assert Quotes.list_quotes() == [quote] end # ... Lo que se puede destacar es el uso de Fixtures (import StoicQuotes.QuotesFixtures). Esto es una herramienta de pruebas que permite tener un entorno predefinido por ejemplo archivos o valores de base de datos que facilitan la creación de pruebas. Si vamos al archivo test/support/fixtures/quotes_fixtures.ex veremos que simplemente genera un nuevo registro en la base de datos y es utilizado en las pruebas de contexto como quote = quote_fixture(). test/support/fixtures/quotes_fixtures.ex defmodule StoicQuotes.QuotesFixtures do @moduledoc \"\"\" This module defines test helpers for creating entities via the `StoicQuotes.Quotes` context. \"\"\" @doc \"\"\" Generate a quote. \"\"\" def quote_fixture(attrs \\\\ %{}) do {:ok, quote} = attrs |> Enum.into(%{ author: \"some author\", quote: \"some quote\", source: \"some source\" }) |> StoicQuotes.Quotes.create_quote() quote end end Para probar los endpoints rest debemos crear un nuevo archivo en test/stoic_quotes_web/controllers/quotes_controller_test.exs. Para esto probaremos los endpoints definidos en el router router.ex scope \"/api\", StoicQuotesWeb do pipe_through(:api) get(\"/quotes\", QuotesController, :index) get(\"/quotes/random\", QuotesController, :show) end test/stoic_quotes_web/controllers/quotes_controller_test.exs defmodule StoicQuotesWeb.Tests.Controllers.QuotesControllerTest do use StoicQuotesWeb.ConnCase import StoicQuotes.QuotesFixtures describe \"/api/quotes\" do test \"GET /api/quotes\", %{conn: conn} do quote_fixture(%{quote: \"1\"}) quote_fixture(%{quote: \"2\"}) conn = get(conn, ~p\"/api/quotes\") assert [ %{ \"author\" => \"some author\", \"quote\" => \"1\", \"source\" => \"some source\" }, %{ \"author\" => \"some author\", \"quote\" => \"2\", \"source\" => \"some source\" } ] = json_response(conn, 200)[\"data\"] end test \"GET /api/quotes/random\", %{conn: conn} do quote_fixture() conn = get(conn, ~p\"/api/quotes/random\") assert %{ \"author\" => \"some author\", \"quote\" => \"some quote\", \"source\" => \"some source\" } = json_response(conn, 200)[\"data\"] end end end use StoicQuotesWeb.ConnCase: Debemos usar el tipo de prueba ConnCase para poder acceder a levantar el servidor y realizar pruebas. Este módulo esta definido en el archivo test/support/conn_case.ex. conn = get(conn, ~p\"/api/quotes\"): Obtenemos el resultado de llamar al endpoint /api/quotes. json_response(conn, 200)[\"data\"]: Obtenemos la respuesta en formato json y el contenido de la propiedad \"data\" para realizar la comparación. ~p\"/api/quotes\": ~p es un sigilo (macro) de Phoenix que permite verificar que la ruta ingresada existe en el router, lo cual es muy recomendable. Es parte de lo que se conoce como verified routes. Ahora se realizarán las pruebas del formulario hecho con LiveView. El cual se muestra en la siguiente ruta. router.ex scope \"/\", StoicQuotesWeb do pipe_through(:browser) live(\"/\", Live.QuotesForm, :live) end test/stoic_quotes_web/live/quotes_form_test.exs defmodule StoicQuotesWeb.Tests.Live.QuotesFormTest do use StoicQuotesWeb.ConnCase import Phoenix.LiveViewTest describe \"LiveView quotes form page tests\" do test \"that valid form saving is done\", %{conn: conn} do {:ok, lv, _html} = live( conn, ~p\"/\" ) lv |> form(\"form\", %{ \"author\" => \"some author\", \"source\" => \"some source\", \"quote\" => \"some quote\" }) |> render_submit() conn = get(conn, ~p\"/api/quotes\") assert [ %{ \"author\" => \"some author\", \"quote\" => \"some quote\", \"source\" => \"some source\" } ] = json_response(conn, 200)[\"data\"] end test \"that invalid form shows errors\", %{conn: conn} do {:ok, lv, _html} = live( conn, ~p\"/\" ) result = lv |> form(\"form\", %{ \"author\" => \"\", \"source\" => \"\", \"quote\" => \"\" }) |> render_submit() assert result =~ \"can't be blank\" end test \"that valid form cannot save duplicates\", %{conn: conn} do {:ok, lv, _html} = live( conn, ~p\"/\" ) lv |> form(\"form\", %{ \"author\" => \"some author\", \"source\" => \"some source\", \"quote\" => \"some quote\" }) |> render_submit() result = lv |> form(\"form\", %{ \"author\" => \"some author\", \"source\" => \"some source\", \"quote\" => \"some quote\" }) |> render_submit() assert result =~ \"There was an error saving the Quote\" end end end Podemos ver que realizar pruebas con LiveView es muy similar a realizar pruebas con endpoints json. Sin embargo hay algunos códigos que se deben explicar como los siguientes: El siguiente código inicializa la estructura de lv que puede ser usada por otras funciones para renderizar la página. {:ok, lv, _html} = live( conn, ~p\"/\" ) En el siguiente código se llama a funciones especiales de LiveView como form(\"elemento html\", parametros) y render_submit() que permiten realizar el envío de un formulario. lv |> form(\"form\", %{ \"author\" => \"\", \"source\" => \"\", \"quote\" => \"\" }) |> render_submit() LiveView no está solamente asociado a crear pruebas para formularios, se puede probar completamente todo el sitio. En la siguiente fotografía se muestra un ejemplo de prueba aún más completo. Figure 1. por Fredrik Teschke Se ha realizado una aplicación completa con Phoenix y LiveView desde una simple API Rest a una suite de pruebas unitarias. Se pueden ver los siguientes conceptos para profundizar: Desarrollo con TDD (Test Driven Development). Testing Ecto. Property Testing. Testing LiveView.","title":"Testing: Stoic API","component":"ROOT","version":"","name":"testing","url":"/elixir/testing.html","titles":[{"text":"Paso 1: Verificación del Ambiente Testing","hash":"paso-1-verificación-del-ambiente-testing","id":1},{"text":"Paso 2: Pruebas de Ecto Schema","hash":"paso-2-pruebas-de-ecto-schema","id":2},{"text":"Paso 3: Pruebas de Ecto Changeset","hash":"paso-3-pruebas-de-ecto-changeset","id":3},{"text":"Paso 4: Pruebas de Contexto","hash":"paso-4-pruebas-de-contexto","id":4},{"text":"Paso 5: Pruebas de Endpoint Rest","hash":"paso-5-pruebas-de-endpoint-rest","id":5},{"text":"Paso 6: Pruebas de LiveView","hash":"paso-6-pruebas-de-liveview","id":6},{"text":"Más funciones de testing para LiveView","hash":"más-funciones-de-testing-para-liveview","id":7},{"text":"Pasos Finales","hash":"pasos-finales","id":8}]},"25":{"id":25,"text":"Los videojuegos son una parte muy importante de la industria tecnológica y Elixir/Erlang tienen grandes capacidades para elaborar backends para los servidores de los juegos. En este capítulo se verá la creación de un videojuego simple con TIC-80 y luego será compilado para Web, Android e iOS, como forma de comprender mejor este aspecto de la industria y cómo se aplica el proceso de compilación multiplataforma. TIC-80 es una computadora de fantasía gratuita y de código abierto que simula un sistema de 8 bits de la década de 1980, diseñada para crear, jugar y compartir microjuegos. Incluye editores integrados para código, gráficos, mapas y sonido, y soporta múltiples lenguajes como Lua y JavaScript (entre otros). Características principales Computadora de fantasía: Emula un hardware de 8 bits con limitaciones como una paleta de 16 colores, una resolución de 240x136 píxeles y sonido de 4 canales. Herramientas integradas: Ofrece editores para desarrollar juegos de manera integral. Código: Editores para escribir el código del juego. Se pueden usar lenguajes como Lua, JavaScript, Lisp, Python, Ruby, Wren, entre otros. Gráficos: Un editor de sprites para crear elementos visuales. Mapas: Un editor de mapas para diseñar los niveles. Sonido: Herramientas para crear música y efectos de sonido. Código abierto: Es gratuita y de código abierto, lo que permite a los usuarios crear y modificar juegos libremente. Portabilidad: Los juegos creados se pueden exportar como \"cartuchos\" y ejecutarse en diferentes plataformas, incluyendo Windows, macOS, Linux, Android y Raspberry Pi. Interfaz de línea de comandos: Permite ejecutar comandos para gestionar los proyectos directamente desde el entorno. El siguiente es una introducción a TIC-80 Y acá cómo crear un clon del juego Pong.","title":"Videojuegos","component":"ROOT","version":"","name":"games","url":"/games/games.html","titles":[{"text":"TIC-80","hash":"tic-80","id":1}]},"26":{"id":26,"text":"GitHub es un servicio basado en la nube que aloja un sistema de control de versiones (VCS) llamado Git. Éste permite a los desarrolladores colaborar y realizar cambios en proyectos compartidos, a la vez que mantienen un seguimiento detallado de su progreso. El control de versiones es un sistema que ayuda a rastrear y gestionar los cambios realizados en un archivo o conjunto de archivos. Utilizado principalmente por ingenieros de software para hacer un seguimiento de las modificaciones realizadas en el código fuente, el sistema de control de versiones les permite analizar todos los cambios y revertirlos sin repercusiones si se comete un error. Git es un proyecto de código abierto que se inició en 2005 y creció hasta convertirse en uno de los VCS más populares del mercado: cerca del 87% de los desarrolladores utilizan Git para sus proyectos. https://www.hostinger.es/tutoriales/que-es-github https://insights.stackoverflow.com/survey/2018/#work-version-control Gestionar los proyectos con Github Projects. Tener un acerbo documental con Github Wiki. Tener un foro con Github Discussions. Tener una página web estática con Github Pages. Almacenar código y archivos con Github Repos. Tener trazabilidad de las tareas con Github Issues. Realizar acciones y flujos automatizados con Github Actions. Cuando nos gusta el repositorio de alguien y nos gustaría tenerlo en nuestra cuenta de GitHub, hacemos un fork o bifurcación para poder trabajar con él en forma separada. Cuando hacemos un fork de un repositorio, obtenemos una instancia de todo el repositorio con todo su historial. Luego, podemos hacer lo que queramos sin afectar la versión original. https://docs.github.com/es/get-started/quickstart/fork-a-repo Los pull requests son la forma de contribuir a un proyecto grupal o de código abierto. Por ejemplo, un usuario llamado Juan realiza un fork de un repositorio de Luis y le efectúa algunos cambios. Ahora Juan puede hacer un pull request a Luis, pero dependerá de Luis aceptar o declinarlo. Es como decir: \"Luis, ¿podrías por favor extraer (pull) mis cambios?\". En otros sistemas como Gitlab esta acción se le conoce como Merge Request. Todos los commits de la rama se incorporarán al tronco principal. Todos los commits de la rama se fusionarán, solamente un commit con un mensaje nuevo será incorporado al tronco principal. Es la opción recomendada. Reescribe el histórico de commits para incorporar los cambios de la rama. Usar con precaución. https://www.freecodecamp.org/espanol/news/como-hacer-tu-primer-pull-request-en-github/ https://docs.gitlab.com/ee/user/project/merge_requests/ https://www.atlassian.com/git/tutorials/merging-vs-rebasing https://about.gitlab.com/ https://bitbucket.org/ https://about.gitea.com/ https://www.mercurial-scm.org/ https://savannah.gnu.org/ https://github.com/martinvonz/jj Los static website generators son estructuras predefinidas de código sobre las que se pueden crear páginas web estáticas. A diferencia de los sistemas de gestión de contenidos, que recuperan el contenido de las bases de datos, los generadores de páginas estáticas (static site generators) crean los archivos HTML de una página a partir de un script basado en datos de entrada, que están almacenados en un sistema de archivos. Este proceso ya se lleva a cabo durante su desarrollo, mientras se realizan los cambios no solo en el código, sino también en el contenido. En otras palabras, este proceso no se efectúa cuando el usuario accede a la página web a través de su navegador. La instalación y también el manejo de los static site generators se llevan a cabo por medio de la línea de comando. En cuanto al contenido de la página web, está escrito en lenguajes de marcado como, por ejemplo, Markdown. El generador, partiendo de los metadatos que aparecen en el inicio de los archivos, lo que se conoce generalmente como “front matter”, se encarga de que la página web se muestre en el navegador de los visitantes. La diferencia principal entre el static site generator y el CMS se encuentra en el momento en que las páginas web se crean: el static website generator genera la página web durante el proceso de desarrollo, mientras que el CMS lo hace a petición del usuario. Además, el generador elimina la dependencia que existe en relación con las bases de datos u otra fuente de datos externa, así como el procesamiento de datos del lado del servidor al acceder a la página web. Por supuesto, también existe la posibilidad de integrar fuentes de datos externas con una Application Programming Interface (API). https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/que-es-un-static-site-generator/ Jekill es un generador de sitio estático con soporte incorporado para GitHub Pages. Jekyll toma los archivos Markdown y HTML y crea un sitio web estático completo en función de la opción de diseño. https://docs.github.com/es/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll Algunos de los más populares según el lenguaje de programación. Lenguaje Static Site Generator Elixir Serum, Still Go Hugo Rust Zola Python Pelican JavaScript Gatsby Wren Chercan Ruby Jekyll PHP Hyde Swift Publish Kotlin Orquid Markdown es texto sin formato para escribir documentos estructurados, basado en convenciones para indicar el formato en correos electrónicos y publicaciones de Usenet. Fue desarrollado por John Gruber (con la ayuda de Aaron Swartz) y lanzado en 2004 en forma de una descripción de sintaxis y un script Perl (Markdown.pl) para convertir Markdown a HTML. En la próxima década, se desarrollaron docenas de implementaciones en muchos idiomas. Algunos ampliaron la sintaxis original de Markdown con convenciones para notas al pie, tablas y otros elementos del documento. Algunos permitieron que los documentos de Markdown se representaran en formatos distintos de HTML. Sitios web como Reddit, StackOverflow y GitHub tenían millones de personas que usaban Markdown. Y Markdown comenzó a usarse más allá de la web, para escribir libros, artículos, presentaciones de diapositivas, cartas y notas de conferencias. Lo que distingue a Markdown de muchas otras sintaxis de marcado ligeras, que suelen ser más fáciles de escribir, es su legibilidad. Markdown también es usado en algunos lenguajes de programación para generar documentación del código. Elixir Markdown Comments Swift Markdown Comments Ejemplo de Sintaxis Encabezados # H1 ## H2 ### H3 Listas - Item 1 - Item 2 - Item 3 Enlaces [Enlace](https://ninjas.cl) ![Imagen](https://ninjas.cl/imagen.jpg) **Negrita** _Cursiva_ Tablas |Nombre|Descripción| |------|-----------| |Item 1| Ejemplo 1 | |Item 2| Ejemplo 2 | Código ```elixir IO.inspect \"Hola Mundo\" ``` https://spec.commonmark.org/0.30/ https://github.github.com/gfm/ https://rust-lang.github.io/mdBook/ https://mermaid.live/ https://dbml.dbdiagram.io/home/ AsciiDoc es un lenguaje de marcado ligero y semántico diseñado principalmente para escribir documentación técnica. El lenguaje se puede usar para producir una variedad de formatos de salida ricos en presentaciones, todos a partir de contenido codificado en un formato de texto sin formato, conciso y legible por humanos. El lenguaje AsciiDoc no está acoplado al formato de salida que produce. Un procesador AsciiDoc puede analizar y comprender un documento fuente AsciiDoc y convertir la estructura del documento analizado en uno o más formatos de salida, como HTML, PDF, EPUB3, página manual o DocBook. La capacidad de producir múltiples formatos de salida es una de las principales ventajas de AsciiDoc. Esta capacidad permite su uso en generadores de sitios estáticos, IDE, herramientas y servicios git, sistemas CI/CD y otro software. AsciiDoc cierra la brecha entre la facilidad de escritura y los rigurosos requisitos de creación técnica y publicación. AsciiDoc solo requiere un editor de texto para leer o escribir, por lo que ofrece una barra baja para comenzar. Ejemplo de Sintaxis Encabezados = H1 = H2 === H3 Listas - Item 1 - Item 2 - Item 3 Enlaces https://ninjas.cl[Enlace] image:https://ninjas.cl/imagen.jpg[Imagen] *Negrita* _Cursiva_ Tablas |==== |Nombre|Descripción| |Item 1| Ejemplo 1 | |Item 2| Ejemplo 2 | |==== Código [source,elixir] IO.inspect \"Hola Mundo\" https://docs.asciidoctor.org/asciidoc/latest/ Mermaid te permite crear diagramas y visualizaciones usando texto y código. Es una herramienta de creación de diagramas y gráficos basada en JavaScript que genera definiciones de texto inspiradas en Markdown para crear y modificar diagramas dinámicamente. Si estás familiarizado con Markdown, no debería tener problemas para aprender la sintaxis de Mermaid. flowchart TD A1(Historia de la Web) --> |Unidad 1| B1 B1(Hosting y Servidores) --> B2[Conceptos de Servidores] B1 --> B3[Cpanel] B1 --> B4[Sistemas CMS y Static Site Generators] B1 --> B5[HTML, CSS, Markdown] B1 --> B6[Github y Git] Enlaces https://mermaid.js.org/intro/ DBML (Lenguaje de marcado de bases de datos) es un lenguaje DSL de código abierto diseñado para definir y documentar esquemas y estructuras de bases de datos. También viene con una herramienta de línea de comandos y un módulo de código abierto para ayudarlo a convertir entre DBML y SQL. Table users { id integer username varchar role varchar created_at timestamp } Table posts { id integer [primary key] title varchar body text [note: 'Content of the post'] user_id integer status post_status created_at timestamp } Enlaces https://dbml.dbdiagram.io/home/#intro GNU/Linux es hoy por hoy el Sistema Operativo preferido por el mundo de la informática y en general por el mundo corporativo en cuanto a servidores se refiere, y es preferido de manera muy especial en la nube. La confianza depositada en él se refuerza día a día gracias a los casos de éxito y millones de aplicaciones, presencia en servidores de todo tipo en infraestructuras locales, en la nube y dispositivos que corren Linux. He aquí algunos números impresionantes que confirman que Linux es el amo y señor en todas las infraestructuras de servidores a nivel mundial, incluyendo la nube: El 100% de las 500 supercomputadoras más poderosas en el mundo corren Linux. 23 de cada 25 páginas activas de Internet corren Linux, la mayoría de estas están hospedadas en la nube. El 96% de los servidores más poderosos del mundo corren Linux, la mayoría de estos están hospedados en la nube. El 90% de los servidores en los mayores proveedores de servicios de nube son Linux. Dado su extenso uso, recomendamos aprender a utilizarlo y certificar los conocimientos con LPIC-1. La certificación Linux más grande y reconocida del mundo. LPIC-1 es la primera certificación en el programa de certificación profesional Linux multinivel del Linux Professional Institute (LPI). El LPIC-1 validará la capacidad del candidato para realizar tareas de mantenimiento en la línea de comando, instalar y configurar una computadora con Linux y configurar redes básicas. Enlaces https://openwebinars.net/blog/el-poder-de-linux-en-el-cloud-computing/ https://www.lpi.org/es/our-certifications/lpic-1-overview/ Distribuido por Red Hat y ahora parte de IBM, Red Hat o Red Hat Enterprise Linux (RHEL por sus siglas en inglés), como es oficialmente conocido, es una distro sumamente estable, la preferida por la mayoría de las empresas que se dedican a distribuir bases de datos, plataformas de software complejas y demandantes. Las distribuciones basadas en RedHat son las recomendables para entornos con Cpanel. Una excelente alternativa gratuita es Rocky Linux. https://www.hostinger.com/tutorials/centos-replacement https://rockylinux.org/ https://www.redhat.com/en https://www.centos.org/ https://almalinux.org/ El proyecto Debian fue fundado en 1993 por Ian Murdock. Él escribió el manifiesto de Debian, que utilizó como base para la creación de la distribución Linux Debian. Dentro de este texto, los puntos destacables son: mantener la distribución de manera abierta, coherente al espíritu del núcleo Linux y de GNU. Es la distribución recomendada para uso tanto en servidores como escritorio personal. https://servidordebian.org/es/start https://es.wikipedia.org/wiki/Debian_GNU/Linux La distribución de GNU/Linux para equipos Mac ARM. https://asahilinux.org/ FreeBSD y OpenBSD son dos distribuciones y alternativas muy buenas para Linux. La especialidad son servidores, firewalls y otros equipos de red. https://www.freebsd.org/ https://www.openbsd.org/ Noticias sobre las distintas distribuciones de Linux pueden ser encontradas en el sitio https://distrowatch.com/ El FLISoL es el evento de difusión de Software Libre más grande en Latinoamérica y está dirigido a todo tipo de público: estudiantes, académicos, empresarios, trabajadores, funcionarios públicos, entusiastas y aun personas que no poseen mucho conocimiento informático. https://flisol.info/ Lo mejor es experimentar en un entorno que no cause problemas antes de comenzar en serio en un entorno real. Por tanto lo mejor es hacer una instalación virtual. Ahora existen programas excelentes de virtualización. Se recomienda los que van a continuación porque son fáciles de usar y son una excelente plataforma para hacer pruebas. Virtualbox: es un sofware de código abierto que puede ser usado libremente y tiene una lista impresionante de posibilidades. VMWare: dispone de programas gratuitos de virtualización como VMWare Server y VMWare Player, que pueden ser utilizados de forma libre y gratuita. Docker: Docker proporciona un conjunto de herramientas de desarrollo, servicios, contenido de confianza y automatizaciones, que se utilizan individualmente o en conjunto, para acelerar la entrega de aplicaciones seguras. Muestra la ruta del directorio actual. $ pwd /Users/ninjas Muestra los archivos y directorios de la ruta especificada. Predeterminado la ruta actual. El parámetro -a nos permite mostrar archivos ocultos (comienzan por punto). El parámetro -l nos permite mostrar los permisos, grupos, propietarios y fechas de modificación de archivos y directorios. $ ls -la ls -la total 0 drwxr-xr-x 2 ninjas staff 64 Aug 22 21:03 . drwxr-xr-x+ 140 ninjas staff 4480 Aug 22 21:05 .. ls -la directorio: Muestra los contenidos del directorio ls -R: Muestra los contenidos de forma recursiva. Crea un directorio. $ mkdir mi_directorio mkdir -p primer/segundo: Crea tanto el directorio primer como el directorio segundo. Crea un archivo en blanco. Nota: A diferencia de Windows, los archivos en UNIX no necesitan extensión para ser válidos. $ touch archivo Elimina un archivo o directorio. El parámetro r indica recursivo. Necesario para eliminar todos los archivos de un directorio. El parámetro f indica \"forzar\". No preguntará antes de eliminar un archivo. $ rm -rf mi_directorio Mueve un directorio o archivo. Utilizado también para renombrar archivos o directorios. El siguiente ejemplo renombra el directorio1 a directorio2. $ mv directorio1 directorio2 Copia un archivo o directorio. $ cp archivo1 archivo2 $ cp -R directorio1 directorio2 Muestra los contenidos de un archivo. $ cat archivo Cambiar el directorio actual. . Directorio actual .. Directorio anterior Ir a directorio1 $ cd directorio1 Volver al directorio anterior $ cd .. Ir al directorio sub anterior. $ cd ../../ El pipe es una herramienta especial que nos permite concatenar la salida del comando anterior con la entrada del siguiente comando. Comando-1 | Comando-2 | …| Comando-N $ cat contents.txt | grep file 0 Aug 9 13:55 file1 0 Aug 9 13:55 file2 0 Aug 9 13:55 file3 0 Aug 9 13:55 file4 0 Aug 9 13:55 file5 Enlaces https://www.ionos.es/digitalguide/servidores/configuracion/pipes-linux/ Los permisos nos indican quien tiene autorización de ejecución, lectura y escritura de archivos y carpetas. Es un tema extenso pero en general se recomienda tener los siguientes permisos: 777: Peligro, este permiso da acceso total de ejecución, modificación y lectura de forma global. 755: Recomendado para directorios. 644: Recomendado para archivos. Enlaces https://www.profesionalreview.com/2017/01/28/permisos-basicos-linux-ubuntu-chmod/ https://help.wnpower.com/hc/es/articles/360020443892-Cambiar-permisos-chmod-en-Hosting-cPanel https://www.rolige.com/es/blog/consejos-prestashop/como-asignar-los-permisos-correctos-a-mis-ficheros-y-carpetas-de-prestashop https://killercoda.com/pawelpiwosz/course/linuxFundamentals Vi ha sido el primer editor de texto a pantalla completa para sistemas Unix . Además fue creado con la intención de que fuese sencillo en su uso y ligero para no cargar sobremanera el sistema. Para aquellos acostumbrados a usar editores de texto mediante en entornos gráficos, puede resultar un poco abrupto y complejo su aprendizaje, pero si bien porque estamos al cargo de un servidor Linux o porque nuestro entorno gráfico está dando problemas y no carga, deberíamos ser capaces de editar ficheros desde un editor como Vi / Vim. El Modo Comando permite al usuario navegar por el documento así como introducir comandos a ejecutar dentro del propio archivo (buscar, reemplazar, guardar…​), ya que en este modo el programa no interpreta las teclas del teclado por los caracteres que representan, si no por las funciones preestablecidas o comandos asignados a cada tecla. Estos escuetos comandos son combinaciones de letras sensibles a mayúsculas (que corresponden a diferentes órdenes). A algunos de estos comandos podemos introducir un número delante que indicará el número de veces que queremos repetir la acción a ejecutar. Por poner un ejemplo, si el comando yy (o Y ) copia la línea donde se encuentra el cursor, el comando 3yy (o 3Y ) copiará la línea actual y las dos siguientes, sumando un total de 3 líneas. Para entrar al modo comando únicamente deberemos pulsar Esc en nuestro teclado. Ejemplos 0: Ir al principio de la línea. $: Ir al final de la línea. gg: Ir al principio del archivo. G: Ir al final del archivo. i: Pasar al Modo Inserción. o: Modo inserción en línea siguiente. O: Modo inserción en línea anterior. a: Modo inserción en siguiente caracter. A: Modo inserción al final de línea. dd: Cortar la línea actual. 3dd: Cortar 3 líneas. dG: Cortar todo el documento. u: Deshacer cambios. yy: Copiar la línea actual. p: Pegar el contenido del portapapeles. En el Modo ex manipularemos los archivos. Para entrar a este modo deberemos escribir : (dos puntos) seguido directamente por el nombre del comando ‘ex’ que queramos usar. Tras esto, vi volverá automáticamente al modo comando. Ejemplos :0: Ir al principio del archivo. :$: Ir al final del archivo. :w: Guarda los cambios (require que el archivo tenga nombre). :w archivo: Guarda el archivo actual como archivo. :q!: Salir sin guardar cambios. :x: Guardar cambios y salir. :: Ejemplo :2. Ir al número de línea específico. En el Modo inserción simplemente añadiremos texto al fichero. Mientras estemos en este modo, podremos salir al modo comando directamente pulsando Esc. Existen otros modos para Vi / Vim como ‘visual’, ‘selección’, etc. Pero Comando, Ex e Inserción son los más comunes. Enlaces https://openwebinars.net/blog/vim-manual-de-uso-basico/ https://nvchad.com/ https://www.lunarvim.org/ https://spacevim.org/ https://www.spacemacs.org/ https://killercoda.com/vim","title":"Github, Static Site Generators, Markdown, Linux y Vim","component":"ROOT","version":"","name":"chapter","url":"/github/chapter.html","titles":[{"text":"¿Qué nos permite realizar?","hash":"qué-nos-permite-realizar","id":1},{"text":"¿Qué es un Fork (Bifurcación)?","hash":"qué-es-un-fork-bifurcación","id":2},{"text":"¿Qué es un Pull Request?","hash":"qué-es-un-pull-request","id":3},{"text":"Merge commits","hash":"merge-commits","id":4},{"text":"Squash and merge","hash":"squash-and-merge","id":5},{"text":"Rebase and merge","hash":"rebase-and-merge","id":6},{"text":"Alternativas","hash":"alternativas","id":7},{"text":"Static Site Generators","hash":"static-site-generators","id":8},{"text":"Jekyll","hash":"jekyll","id":9},{"text":"Listado de Static Site Generators","hash":"listado-de-static-site-generators","id":10},{"text":"Markdown y Asciidoc","hash":"markdown-y-asciidoc","id":11},{"text":"Complementos","hash":"complementos","id":12},{"text":"Asciidoc","hash":"asciidoc","id":13},{"text":"Mermaid","hash":"mermaid","id":14},{"text":"DBML","hash":"dbml","id":15},{"text":"GNU/Linux","hash":"gnulinux","id":16},{"text":"LPIC-1","hash":"lpic-1","id":17},{"text":"RedHat, CentOS, Rocky y Alma Linux","hash":"redhat-centos-rocky-y-alma-linux","id":18},{"text":"Debian","hash":"debian","id":19},{"text":"Asahi","hash":"asahi","id":20},{"text":"FreeBSD/OpenBSD","hash":"freebsdopenbsd","id":21},{"text":"Distrowatch","hash":"distrowatch","id":22},{"text":"FLISoL","hash":"flisol","id":23},{"text":"Servidores Virtualizados","hash":"servidores-virtualizados","id":24},{"text":"Comandos Básicos","hash":"comandos-básicos","id":25},{"text":"pwd","hash":"pwd","id":26},{"text":"ls","hash":"ls","id":27},{"text":"mkdir","hash":"mkdir","id":28},{"text":"touch","hash":"touch","id":29},{"text":"rm","hash":"rm","id":30},{"text":"mv","hash":"mv","id":31},{"text":"cp","hash":"cp","id":32},{"text":"cat","hash":"cat","id":33},{"text":"cd","hash":"cd","id":34},{"text":"pipe (|)","hash":"pipe","id":35},{"text":"Permisos","hash":"permisos","id":36},{"text":"Tutoriales","hash":"tutoriales","id":37},{"text":"Editor Vim","hash":"editor-vim","id":38},{"text":"Modo Comando","hash":"modo-comando","id":39},{"text":"Modo ex","hash":"modo-ex","id":40},{"text":"Modo Inserción","hash":"modo-inserción","id":41},{"text":"Configuraciones","hash":"configuraciones","id":42},{"text":"Tutoriales","hash":"tutoriales-2","id":43}]},"27":{"id":27,"text":"En el siguiente capítulo detallaremos los inicios de la comunicación a distancia y las diferentes tecnologías utizadas hasta la actualidad. El Código Internacional de Señales de la OMI (Organización Marítima Internacional), esta basado en banderas destinado a transmitir mensajes, ya sea entre dos o más barcos, o entre un barco y la tierra o el puerto, en el cual cada letra o grupo de letras, representadas por banderas, tiene un significado particular. Es el código adoptado internacionalmente. Desde que existe la comunicación por radio, el uso de las banderas de señales para transmitir mensajes ha disminuido notablemente. Sin embargo, se siguen utilizando de forma generalizada las banderas individuales o en combinaciones de dos, para señalizar un aviso determinado. El sistema de \"señales semáforo\", está basado en dos banderas iguales sostenidas una en cada mano del operador, formando distintas posiciones con respecto al cuerpo, era muy utilizado para comunicación diurna antes de la comunicación por radio, hoy en desuso, es solamente una opción de emergencia. Este es un código de deletreo de mensajes, para el cual se utilizan dos banderas Oscar. Durante la noche, la comunicación de emergencia se realiza con luces por medio de código Morse. https://www.buzosargentinos.com.ar/wiki/?a=a&n=86 El artista estadounidense Samuel F. B. Morse, el físico estadounidense Joseph Henry, y el ingeniero mecánico Alfred Vail desarrollaron un sistema de telégrafo eléctrico. Necesitaba un método para transmitir el lenguaje natural utilizando solo pulsos eléctricos y el silencio entre ellos. Alrededor de 1837, Morse, por lo tanto, desarrolló un precursor temprano del código Morse Internacional moderno). Código Morse ARRL El teléfono es un dispositivo de telecomunicación creado para transmitir señales acústicas a distancia por medio de señales eléctricas. Fue inventado por el italiano Antonio Meucci, quien en 1854 construyó su primer prototipo. Teléfono En 1873, el físico escocés James Clerk Maxwell formuló la teoría de las ondas electromagnéticas, que son la base de la radio. En 1887, el físico alemán Heinrich Hertz confirmó las teorías de Maxwell, descubriendo la forma de producir y detectar ondas electromagnéticas, y en 1894 el serbio Nikola Tesla hizo su primera demostración en público donde transmitió en radio. Al poco tiempo, en 1895, el italiano Guillermo Marconi construyó el primer sistema de radio, logrando en 1901 enviar señales a la otra orilla del Atlántico, a través de 3360 km de océano; pero como lo hizo con patentes de Tesla se le atribuye el trabajo a este último. Radio La red télex es una red de teletipos conmutada de cliente a cliente similar a una red telefónica, que utiliza circuitos de conexión de grado telégrafo para mensajes de texto bidireccionales. El télex fue un método importante para enviar mensajes escritos electrónicamente entre empresas durante el período posterior a la Segunda Guerra Mundial. Su uso disminuyó a medida que la máquina de fax creció en popularidad en la década de 1980. Télex CATV es el servicio que ofrece transferencia de imágenes de televisión a los domicilios de los abonados. Existen redes de televisión por cable desde los años 1940. La primera red de cable fue montada en los Estados Unidos por un técnico en Oregón. La red contaba con un sistema de antenas, amplificadores y mezcladores de señal, y la señal era enviada por cables a sus vecinos, haciendo así posible que todos vieran televisión sin necesidad de antenas. Actualmente está extendido por todo el mundo. TV Cable Martin Cooper fue el pionero en esta tecnología. A él se le considera «el padre de la telefonía móvil», al introducir el primer radio-teléfono en 1973, en Estados Unidos, mientras trabajaba para Motorola. En 1983 Motorola lanzó el primer teléfono móvil del mercado: el Motorola DynaTAC 8000x. Su precio era de $3.995 dólares ($10.869 en 2023). Telefonía Celular Motorola DynaTAC ARPANET fue una red de computadoras creada por encargo del Departamento de Defensa de los Estados Unidos (DOD) para utilizarla como medio de comunicación entre las diferentes instituciones académicas y estatales. El primer nodo se creó en la Universidad de California en Los Ángeles (UCLA) y fue la espina dorsal de Internet hasta 1990, tras finalizar la transición al modelo de protocolos TCP/IP, iniciada en 1983. Arpanet El proyecto Synco o proyecto Cybersyn fue el intento chileno de planificación económica controlada en tiempo real, desarrollado en los años del gobierno de Salvador Allende, entre 1971 y 1973. En esencia, se trataba de una red de máquinas de teletipo que comunicaba a las fábricas con un único centro de cómputo en Santiago, donde se controlaba a las máquinas empleando los principios de la cibernética. El principal arquitecto del sistema fue el científico británico Stafford Beer. Cybersyn Revolucionarios Cibernéticos NABU (Natural Access to Bi-directional Utilities) (Acceso natural a servicios públicos bidireccionales) En 1982, se lanzó una computadora personal para el hogar a los consumidores para conectar a familias y empresas en una red mundial. Fundada en Ottawa, Canadá, en 1982, las familias y las escuelas usaban módems de televisión por cable para conectar las PC de NABU a una red nacional. Además de las capacidades de PC estándar, la computadora NABU podría descargar software y contenido de información a través de la alimentación por cable. Las aplicaciones incluían juegos, lenguajes de programación y noticias. NABU El correo electrónico --también llamado simplemente correo-- (en inglés: electronic mail, normalmente abreviado e-mail o email) es un servicio de red que permite a los usuarios enviar y recibir mensajes (también denominados mensajes electrónicos o cartas digitales) mediante redes de comunicación electrónica. […​] El primer mensaje de correo electrónico genuinamente enviado a través de una red data del año 1971. El mensaje, que contenía únicamente el texto «QWERTYUIOP», se envió a través de la red ARPANET. Email Un Bulletin Board System o BBS (en español Sistema de Tablón de anuncios) es un software (un conjunto de programas informáticos instalados en un ordenador) que fue popular en las décadas de 1980 y 1990 en Estados Unidos para redes de ordenadores, ya que permitía a los usuarios participantes conectarse a través de una línea telefónica a una red donde podían ver y consultar distintas informaciones que publicaban usuarios participantes. BBS Tim Berners-Lee, un científico británico, inventó la World Wide Web (WWW) en 1989, mientras trabajaba en el CERN. La web se concibió y desarrolló originalmente para satisfacer la demanda de intercambio automatizado de información entre científicos de universidades e institutos de todo el mundo. El 30 de abril de 1993, el CERN colocó el software de la World Wide Web en el dominio público. Posteriormente, el CERN puso a disposición una versión con una licencia abierta, una forma más segura de maximizar su difusión.
The World Wide Web project

World Wide Web

The WorldWideWeb (W3) is a wide-area hypermedia information retrieval initiative aiming to give universal access to a large universe of documents.

Everything there is online about W3 is linked directly or indirectly to this document, including an executive summary of the project, Mailing lists , Policy , November's W3 news , Frequently Asked Questions .

What's out there?
Pointers to the world's online information, subjects , W3 servers, etc.
Help
on the browser you are using
Software Products
A list of W3 project components and their current state. (e.g. Line Mode ,X11 Viola , NeXTStep , Servers , Tools , Mail robot , Library )
Technical
Details of protocols, formats, program internals etc
Bibliography
Paper documentation on W3 and references.
People
A list of some people involved in the project.
History
A summary of the history of the project.
How can I help ?
If you would like to support the web..
Getting code
Getting the code by anonymous FTP , etc.
CERN El nacimiento de la Web Tejiendo la Red Gopher es uno de los sistemas de Internet para divulgar información que precedió a la world wide web. Fue creado en 1991 en la Universidad de Minnesota y fue el primer sistema que permitió pasar de un sitio a otro seleccionando una opción en el menú de una página. Esa es la razón por la que adquirió mayor popularidad que sus competidores, que acabaron siendo sustituidos por la Web. Los servidores Gopher, igual que los servidores FTP almacenan archivos y documentos que puede verse en línea o transferirse al PC. Gopher Gemini Protocol El navegador Mosaic o NCSA Mosaic fue el primer navegador web gráfico disponible para visualizar páginas web en sistemas operativos como Mac, Windows u otros. Este navegador web fue creado en enero de 1993, en el National Center for Supercomputing Applications (NCSA), por Marc Andreessen. […​] En enero de 1997 se abandonó oficialmente el desarrollo de este navegador para dar paso al desarrollo de Netscape Navigator, de la empresa Netscape Communications fundada por los mismos creadores de Mosaic. Mosaic Space Jam 1996 Antes del desarrollo de CSS, toda la información presentacional de los documentos HTML era incluida en el código HTML. Los colores de las fuentes, los estilos de fondo, la alineación de los elementos, los bordes y tamaños eran descritos explícitamente, a veces de manera redundante, dentro del HTML. CSS permite a los diseñadores mover toda la información presentacional a otro archivo, la hoja de estilos, resultando en un código HTML notablemente más simple. […​] CSS fue propuesto por primera vez por Håkon Wium Lie el 10 de octubre de 1994. Al mismo tiempo, Lie trabajaba con Tim Berners-Lee en el CERN. Muchos otros lenguajes de hojas de estilos fueron propuestos al mismo tiempo, y las discusiones en las listas de correo públicas dentro del W3C dieron lugar a la primera Recomendación CSS por el W3C (CSS1)​ en 1996. En particular, la propuesta de Bert Bos fue influyente; él fue el coautor de CSS1 y es reconocido como el cocreador de CSS. CSS JavaScript (abreviado comúnmente JS) es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. […​] JavaScript fue desarrollado originalmente por Brendan Eich de Netscape con el nombre de Mocha, el cual fue renombrado posteriormente a LiveScript, para finalmente quedar como JavaScript. . […​] Desde el lanzamiento en junio de 1997 del estándar ECMAScript 1, han existido las versiones 2, 3 y 5 (la 4 se abandonó). En junio de 2015 se cerró y publicó la versión ECMAScript 6. […​] Desde 2012, todos los navegadores modernos soportan completamente ECMAScript 5. Los navegadores más antiguos soportan por lo menos ECMAScript 3. La sexta edición se liberó en julio de 2015. […​] La versión 7 de ECMAScript se conoce como ECMAScript 2016 y fue publicada en junio de 2016. Se trata de la primera versión para la que se usa un nuevo procedimiento de publicación anual y un proceso de desarrollo abierto. Javascript A fines de la década de 1990, cuando el ancho de banda todavía era de 56 kbit/s para la mayoría de los usuarios de Internet, muchos artistas de animación de Adobe Flash emplearon animación limitada o animación recortada al crear proyectos destinados a la distribución web. Esto permitió a los artistas lanzar cortometrajes y experiencias interactivas muy por debajo de 1 MB, que podían transmitir audio y animación de alta calidad. Hasta la llegada de HTML5, mostrar el vídeo en una página web requería que el navegador disponga del plugin. En 2010, Apple criticó públicamente la aplicación de Adobe Flash de reproducción de vídeo por no tomar ventaja de la aceleración de hardware, además criticó toda la tecnología Flash en general, argumentando que no es un estándar abierto, y que afectaba el rendimiento de las baterías de sus equipos, razones por las que no lo incluirla en sus dispositivos móviles. Flash Player fue descontinuado el 31 de diciembre de 2020 y su página de descarga desapareció dos días después. En octubre de 2020, Microsoft lanzó una actualización opcional KB4577586 que elimina Flash Player de Windows. Flash fue un sistema para la creación de webs completamente dinámicas. con flash los diseñadores eran capaces de crear animaciones efectos interacción de una manera avanzada, pero sin necesidad de grandes complicaciones con el código. También tenía un lenguaje de programación llamado ActionScript qué permitía a programadores realizar todo tipo de aplicaciones, interacción avanzada, comunicación cliente / servidor, etc. Ostenta el mérito de haber sido precursor de muchas de las utilidades con las que cuentan hoy en día los estándares abiertos de la web, sin embargo era un sistema propietario qué acarreaba además diversos problemas para usuarios, dispositivos y sistemas informáticos que debían reconocer el contenido de las páginas hechas con Flash. Flash Flash Animation Desarrollo Web con Flash Páginas Web Hechas con Flash Haxe. Lenguaje de Programación En 1984 Psion lanzó al mercado la que fue considerada como la primera PDA (Personal Digital Assistant) del mundo. Se llamaba Psion Organiser. No es que esta PDA fuera muy potente, pero tenía un software interno que incluía programas como un editor de texto, agenda, bloc de notas, base de datos de contactos, calculadora y otras funciones simples. De hecho, ni siquiera podías realizar o recibir llamadas con este aparato, pero sentaría las bases para las aplicaciones móviles del futuro. Psion Esta PDA reconocía la escritura y podía conectarse directamente a ordenadores Mac, PC, siendo la precursora de la plataforma iOS. Además, también tenía acceso a una variedad de aplicaciones de proveedores externos, como, por ejemplo, un navegador web, Pocket Quicken (una aplicación para el control de las finanzas personales) o un cliente de email. Este abuelo del iPhone se vendería entre 1993 y 1998 y, en su momento, fue un fracaso comercial ante la irrupción de equipos como la PalmPilot (1997) o los canadienses de BlackBerry (1999). Apple Newton En 1997 apareció el Nokia 6110. Sin embargo, este teléfono móvil tenía preinstalada la primera aplicación móvil de la historia que gozaría de un éxito mundial. El arrollador triunfo del juego de ‘La Serpiente’ sorprendió incluso a sus fabricantes. Snake Nokia 6110 ¿Qué fue del Snake? El nacimiento del WAP (2002) se lo debemos, entre otros, a Sony, Nokia, Motorola y Openwave. Estas cuatro compañías fueron las responsables de la creación de un estándar como el WAP, y que supuso el primer paso para conceder a los teléfonos móviles un completo acceso a internet, que finalmente culminó con la llegada del protocolo HTTP que domina en estos momentos.

Un ejemplo para entrar a página.

Sin embargo, esto no triunfaría, ya que los desarrolladores encontraron grandes problemas a la hora de intentar adaptar el contenido a los múltiples tipos de pantallas de móviles. De esta época nos quedó como legado poder descargar distintos tonos de llamada y fondos de pantalla. ¿Qué fue del WAP? WAP WML El 29 de junio del 2007, Steve Jobs apareció en un escenario para presentar lo nunca visto hasta entonces. La joya de la corona: el iPhone. Apple crearía, en julio del 2008, la App Store, permitiendo a proveedores externos crear aplicaciones para ser comercializadas a través de ella. Arrancó con 500 aplicaciones en oferta. Presentación de Steve Jobs iPhone iPhone 1 Google en 2008 lanzó el primer teléfono móvil con sistema operativo Android. Además de crear una tienda de aplicaciones denominada Android Market y que hoy conocemos como Google Play o Play Store. En sólo 4 años alcanzó las 700.000 aplicaciones. HTC Dream BlackBerry fue una marca de teléfonos inteligentes desarrollada por la compañía canadiense BlackBerry. Marcas como Nokia, HTC o incluso LG, sufrieron una decadencia principalmente por estancarse en lo que en el pasado les funcionaba como el teclado físico y ofrecer productos experimentales para el público. BlackBerry OS, quedaba corto en aplicaciones primordiales como WhatsApp, apps de mensajería, juegos y apps de utilidad. BlackBerry Windows Phone (abreviado WP) fue un sistema operativo móvil actualmente descontinuado,desarrollado por Microsoft como sucesor de Windows Mobile. A diferencia de su predecesor fue enfocado en el mercado de consumo en lugar del mercado empresarial. Con Windows Phone, Microsoft ofreció una nueva interfaz de usuario que integró varios de sus servicios activos. Compitió directamente contra Android de Google y iOS de Apple, con resultados poco alentadores. Su última versión fue Windows Phone 8.1, lanzado el 14 de abril de 2014. Nokia Lumia Windows Phone Firefox OS (nombre clave: Boot to Gecko o B2G) es un sistema operativo móvil descontinuado,basado en HTML5 con núcleo Linux, de código abierto para varias plataformas. Desarrollado por Mozilla Corporation bajo el apoyo de otras empresas y una gran comunidad de voluntarios de todo el mundo. El sistema operativo estuvo diseñado para permitir a las aplicaciones HTML5 comunicarse directamente con el hardware del dispositivo usando JavaScript y Open Web APIs. Firefox OS La aparición de las primeras aplicaciones móviles tenía como razón principal poder organizar el trabajo de ejecutivos y profesionales. Agendas, calculadoras, bloc de notas, editores de texto, hojas de cálculo, contactos, email, etc. Sin embargo, con el paso del tiempo, el sector del entretenimiento fue tomando protagonismo. El teléfono móvil había dejado de ser un aparato con el que hacer y recibir llamadas y mensajes de texto para transformarse es una potente máquina, equiparable a un ordenador, con la que poder llevar a cabo casi cualquier tarea diaria. Ahora, caminas por la calle y ves al 80% de la gente pendiente de su móvil. Escuchan música mientras corren o pasean; leen libros o noticias en el metro o autobús; comprueban si la meteorología les va a estropear los planes del fin de semana; disfrutan — y se enganchan — del último juego de moda…​ Pero, el mayor uso que le damos a nuestros teléfonos móviles, es el social. Sin embargo, entre 2014 y 2018, las aplicaciones que han crecido más rápidamente son las que mejoran — y controlan — nuestra calidad de vida (apps para hacer la compra, para controlar y mejorar nuestro estado de salud, para regular la actividad deportiva…​). El futuro parece traer también las aplicaciones que nos servirán para controlar coches, casas…​ Y focalizadas en la temida y poderosa inteligencia artificial. Hay algunos datos que parecen indicar la existencia de cierto agotamiento en el mercado de las aplicaciones móviles. No es que vayan a desaparecer, sino que se acerca una evolución hacia algo diferente, más centrado en la inteligencia artificial, la realidad aumentada (término que se usa para definir la visión de un entorno físico del mundo real, a través de un dispositivo tecnológico) y las aplicaciones en la nube. Y es que las estadísticas indican que la mitad de las aplicaciones móviles descargadas se usan menos de 10 veces y tan solo el 53% de los usuarios se descargan una aplicación nueva al mes. Las aplicaciones móviles del mañana, si quieren tener éxito, tendrán que centrarse en ser más rápidas, intuitivas y recolectar toda la información posible sobre el usuario, con la intención de desarrollar el producto que más se ajuste a su perfil. Historia de las Apps Móviles Lecturas y actividades que pueden ayudar a dar contexto y ser de interés. Libro Revolucionarios Cibernéticos [revolucionariosciber]. Libro Tejiendo la Web [tejiendolared].","title":"Historia de la World Wide Web y Aplicaciones Móviles","component":"ROOT","version":"","name":"chapter","url":"/history/chapter.html","titles":[{"text":"Mensajes con Banderas","hash":"mensajes-con-banderas","id":1},{"text":"Mensajes con señales semáforo","hash":"mensajes-con-señales-semáforo","id":2},{"text":"Código Morse y Telégrafos","hash":"código-morse-y-telégrafos","id":3},{"text":"El Teléfono","hash":"el-teléfono","id":4},{"text":"La Radio","hash":"la-radio","id":5},{"text":"Los Teletipos (Télex)","hash":"los-teletipos-télex","id":6},{"text":"Televisión por Cable","hash":"televisión-por-cable","id":7},{"text":"Telefonía Celular","hash":"telefonía-celular","id":8},{"text":"Los precursores de Internet","hash":"los-precursores-de-internet","id":9},{"text":"Arpanet (Red Telefónica)","hash":"arpanet-red-telefónica","id":10},{"text":"Cybersyn/Synco (Red Télex)","hash":"cybersynsynco-red-télex","id":11},{"text":"Nabu (Red Cable)","hash":"nabu-red-cable","id":12},{"text":"Primeras Aplicaciones de Red","hash":"primeras-aplicaciones-de-red","id":13},{"text":"Email","hash":"email","id":14},{"text":"BBS","hash":"bbs","id":15},{"text":"La World Wide Web","hash":"la-world-wide-web","id":16},{"text":"Red Gopher","hash":"red-gopher","id":17},{"text":"Mosaic El Primer Navegador Gráfico","hash":"mosaic-el-primer-navegador-gráfico","id":18},{"text":"CSS","hash":"css","id":19},{"text":"Javascript","hash":"javascript","id":20},{"text":"Animación Flash (SWF)","hash":"animación-flash-swf","id":21},{"text":"Aplicaciones Móviles","hash":"aplicaciones-móviles","id":22},{"text":"Psion Organizer","hash":"psion-organizer","id":23},{"text":"Apple Newton","hash":"apple-newton","id":24},{"text":"Nokia","hash":"nokia","id":25},{"text":"Tecnología WAP","hash":"tecnología-wap","id":26},{"text":"iPhone (2007)","hash":"iphone-2007","id":27},{"text":"Android (2008)","hash":"android-2008","id":28},{"text":"BlackBerry","hash":"blackberry","id":29},{"text":"Windows Phone","hash":"windows-phone","id":30},{"text":"Firefox OS","hash":"firefox-os","id":31},{"text":"El Futuro de las Aplicaciones Móviles","hash":"el-futuro-de-las-aplicaciones-móviles","id":32},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":33}]},"28":{"id":28,"text":"Registrar un dominio en Internet es el primer paso para tener presencia en la web. Sin embargo, con solo un dominio no podrás publicar tu sitio web, ya que también necesitarás un web hosting. Es importante recalcar que con la elección y registro de tu dominio en Internet podrás crear cuentas de correos personalizados que te permitirán proyectar profesionalismo y ganarte la confianza de los clientes potenciales. Otro de los puntos importantes de los dominios en Internet es que son términos memorizables y fáciles de recordar por los internautas, porque ¿no te parece que es más sencillo recordar google.com que su dirección IP 172.217.10.110?. Recuerda que será mucho más sencillo encontrarte si eliges un dominio que va acorde a lo que ofreces o quién eres. Elegir la extensión de dominio va a depender de tus objetivos, ya que si tienes planificado un mercado global lo mejor para ti es elegir un dominio genérico. Ahora bien, si tu mercado es nacional, lo más conveniente que uses un dominio geográfico porque ¡sí! tu página web se posicionará mucho mejor en ese país, debido a que Google — u otro buscador — lo considerará como un dominio casi exclusivo para esa región. ¿Qué es un Dominio? Una URI o identificador uniforme de recursos es una cadena de caracteres que generalmente identifica cualquier recurso web mediante un nombre, una ubicación o ambos. Un localizador uniforme de recursos (URL) y un nombre uniforme de recursos (URN) son los dos tipos de URI. esquema:[//autoridad]ruta[?query][#fragmento] Ejemplos: ftp://ftp.is.co.za/rfc/rfc1808.txt http://www.ietf.org/rfc/rfc2396.txt ldap://[2001:db8::7]/c=GB?objectClass?one mailto:John.Doe@example.com news:comp.infosystems.www.servers.unix tel:+1-816-555-1212 telnet://192.0.2.16:80/ urn:oasis:names:specification:docbook:dtd:xml:4.1.2 RFC2141 RFC3986 Mozilla: URI URI URI vs URL Una URL o localizador universal de recursos, por su siglas en inglés, es una dirección completa de un sitio web que lleva a los usuarios a una página específica dentro de ese website. En síntesis, se trata de la dirección web que tiene cada uno de los recursos en Internet que les permite ser encontrados por los navegadores e identificados por diferentes herramientas. Cada elemento que hace parte del WWW, sin importar su formato o propósito, debe tener una dirección URL específica donde está guardada. En cuanto al puerto, es el número específico que identifica qué servicio web estás solicitando en un servidor web. Por ejemplo, el número de puerto predeterminado para la URL HTTP es 80 y para la URL HTTPS es 443. Sin embargo, si el servidor web utiliza un protocolo estándar como HTTP o HTTPS, el puerto suele omitirse en la URL. Básicamente, una URL está compuesta de un protocolo, el dominio y la ruta. Donde el protocolo garantiza la certificación de seguridad SSL, el dominio es la dirección y la ruta es la dirección de la página específica dentro del sitio web. Entonces, es válido afirmar que los dominios para páginas web solo es una parte de los caracteres con los que está hecha un URL. Las partes requeridas de una URL dependen en gran medida del contexto en el que se utiliza la URL. En la barra de direcciones de su navegador, una URL no tiene ningún contexto, por lo que debe proporcionar una URL completa (o absoluta), como las que vimos anteriormente. No necesita incluir el protocolo (el navegador usa HTTP de manera predeterminada) o el puerto (que solo se requiere cuando el servidor web de destino está utilizando algún puerto inusual), pero todas las otras partes de la URL son necesarias. Cuando se usa una URL dentro de un documento, como en una página HTML, las cosas son un poco diferentes. Debido a que el navegador ya tiene la propia URL del documento, puede usar esta información para completar las partes faltantes de cualquier URL disponible dentro de ese documento. Podemos diferenciar entre una URL absoluta y una URL relativa mirando solo la parte de ruta de la URL. Si la parte de ruta de la URL comienza con el carácter \"/\", el navegador buscará ese recurso desde la raíz superior del servidor, sin referencia al contexto dado por el documento actual. El uso de URLs relativas puede ser un riesgo para el robo de contenido ya que la gente no tiene que reescribir ningún enlace interno. Pueden copiar fácilmente tu página y ponerla en un nuevo dominio utilizando un raspador web (web scrapper). URL Descripción https://developer.mozilla.org/es/docs/Learn URL Completa (absoluta) //developer.mozilla.org/es/docs/Learn URL relativa con protocolo implícito (Reutiliza el protocolo inicial) /es/docs/Learn URL relativa con dominio implícito Skills/Infrastructure/Understanding_URLs URL relativa que utiliza el directorio actual. ../CSS/display URL relativa que utiliza el directorio anterior. URL Mozilla. ¿Qué es una URL? Mailchimp: 10 partes de una URL URL Semánticas Aunque en algunos casos un identificador uniforme de recursos (URI) y un localizador de recursos uniforme (URL) pueden utilizarse indistintamente, no son lo mismo. URI significa identificador de recursos uniforme, una cadena de caracteres que generalmente identifica un recurso por un nombre, una ubicación o ambos en Internet. Además, un URI puede diferenciar tipos de archivos y otros recursos. Por otro lado, una URL o localizador de recursos uniforme es una cadena de caracteres que muestra la dirección del recurso y cómo acceder a él en la página web. Como la URL es una parte de la URI, siguen una estructura similar. En resumen, la principal diferencia entre una URI y una URL es que la primera puede ser un nombre, una ubicación o ambos, mientras que la segunda sólo proporciona la ubicación de un recurso. A diferencia de una URL, una URN no proporciona ninguna información sobre la ubicación del recurso, sino que simplemente lo identifica, al igual que una URI pura. En particular, una URN es una URI cuyo esquema es urn y tiene la siguiente estructura, tal como lo describe el RFC 2141: urn:: El marcador de posición IDENTIFICADOR DE ESPACIO DE NOMBRES> representa una cadena que representa la categoría de recursos que desea identificar. es el identificador específico del recurso y su formato depende del identificador del espacio de nombres. urn:isbn:1234567890 urn:ISSN:0167-6423 urn:ietf:rfc:2648 Esos URN identifican objetos de diferentes tipos. Por ejemplo, urn:isbn:1234567890 identifica una publicación a través del sistema ISBN; urn:ISSN:0167-6423 identifica una publicación a través del sistema ISSN; urn:ietf:rfc:2648 es un RFC emitido por el IETF. RFC 2141 RFC 3986 URL, URI, URN Hay tres tipos --o extensiones — de dominios que puedes utilizar para tu empresa y dependerá de lo que más adecuado para tu organización. También llamados territoriales o ccTLD (Country code Top-Level Domain). Este dominio es conformado por dos letras que van asociadas con el país de origen del sitio web. Estos se usan para señalar la ubicación de la empresa. Algunos ejemplos de dominios geográficos son: .cl, para Chile .ar, para Argentina; .br, para Brasil; .co, para Colombia; .mx, para México; entre otros. También conocido como gTLD (Generic Top-Level Domain) Son los más utilizados y comunes a nivel mundial. Estos no se ajustan a un país determinado y definen cuál es el fin del sitio web. Ejemplo: .com, es un sitio web de uso comercial; .net, su significado es red y se relaciona con empresas de servicios de Internet o también para asociar un dominio que ya existe con la terminación .com; .org, organización sin fines de lucro, ONG o instituciones; .edu, se usa para instituciones de educación; .info, sitio informativo; .biz, página de negocios; .gob, reservados exclusivamente para departamentos y entidades gubernamentales; .mil, su uso es únicamente para entidades que pertenecen a las Fuerzas Armadas de un país; entre otros. Los dominios de tercer nivel son aquellos que resultan tras combinar un dominio gTLD y uno ccTLD. En otras palabras, tienen la misma finalidad que los dominios genéricos, pero se limitan territoralmente. Entonces, sería: .com.mx, para entidades comerciales mexicanas; .org.mx, referente a organizaciones no lucrativas mexicanas; .edu.mx, consta de instituciones educativas mexicanas; .gob.mx, entidades del Gobierno de México. Su estructura consta de dos niveles. Sin embargo, en el inicio existe un dominio raíz, que es solo un nombre vacío del que salen los demás dominios de Internet. Ahora bien, ¿en qué consisten? Del dominio raíz sale este primer nivel. Estos pueden ser: .cl, .com, .mx, .org, entre otros. Es el nombre que se eligió para el dominio. En nuestro caso es: ninjascl. Es un derivado del dominio de segundo nivel, que se crea añadiendo una o varias palabras separada(s) por un punto. El www. es el subdominio más común. Sin embargo, también se puede agregar otros para permitir el acceso directo a una determinada sección de la página web. Te recomendamos que para crear subdominios uses nombres cortos y palabras claves que tengan relación con el contenido que quieras mostrar. URL Descripción https://nic.cl Compra de dominios en Chile. Valor promedio $10.000 CLP por año. https://dynadot.com Compra de dominios Internacional. Valor depende del TLD. Aceptan Paypal o tarjetas de crédito internacional como https://www.tenpo.cl/ o https://dalecoopeuch.cl/ https://dynv6.com/ Subdominios gratuitos. Ideal para tener servidores hogareños sin recurrir a un dominio principal. https://www.noip.com Subdominios gratuitos. Ideal para tener servidores hogareños sin recurrir a un dominio principal. El sistema DNS (Domain Name Server) es el sistema más importante para el funcionamiento de internet. Sin DNS’s no funcionarían los nombres de dominios que utilizamos comúnmente. Cada computadora conectada a internet tiene una dirección “lógica” única, algo así como un número telefónico, a la que llamamos dirección IP. Las direcciones IP que se utilizan actualmente (versión 4) constan de cuatro secciones numéricas separadas por un punto. Una dirección IP típica luciría así: 151.120.134.89 (esto es solo un ejemplo). En términos prácticos, el sistema DNS es el que nos permite traducir “www.google.com” o cualquier otro dominio textual, a su equivalente numérico. Cuando una persona escribe una dirección web en la barra de direcciones de su navegador, la computadora irá a buscar jerárquicamente por la traducción de dicha dirección en una dirección IP. Se dice jerárquicamente, ya que normalmente se comienza la búsqueda primero en los DNS’s raíz de internet (que son unos servidores que mantienen largas tablas de enrutamiento que hacen funcionar el corazón de este sistema) y una vez que haya encontrado el mapeo correcto la máquina irá a buscar la dirección concreta del equipo o “host” a los servidores DNS ligados al dominio en particular que estamos buscando. Es por esta razón que cuando una persona va a “dirigir” su dominio a un servidor nuevo, se le pide que ingrese los servidores DNS que harán la función de direccionadores. Un ejemplo de esto es el siguiente: Contratamos el dominio “ejemplo.com” con un proveedor de registro de dominios Deseamos que “ejemplo.com” lleve directamente a nuestra página web que está localizada en la dirección IP 192.185.124.130 Nuestro proveedor del servicio de Hospedaje Web dará de alta el dominio en el servidor. Nuestro proveedor del servicio de Hospedaje Web dará de alta el dominio en los servidores DNS que sean necesarios y nos proporcionará la dirección URL de estos servidores (al menos del servidor DNS primario y secundario, por ejemplo: ns1.ejemplo.com y ns2.ejempo.com) Agregamos los servidores DNS primario y secundario a nuestro dominio directamente con nuestro proveedor de registro de dominios (ya sea por medio de algún panel de control o solicitándolo de otra forma) En este ejemplo, hicimos lo siguiente: 1.- Registramos un nombre de dominio 2.- Dimos de alta el dominio en un servidor 3.- Dirigimos el dominio al servidor por medio de los servidores DNS primario y secundario. Otra situación sumamente común es que cuando cambiamos el direccionamiento de un dominio de unos servidores DNS a otros, nuestro proveedor nos indica que la “propagación” puede tardar 24 a 72 horas (normalmente es mucho menos). ¿Esto qué significa? Lo que sucede es que para no sobrecargar los servidores raíz de internet y disminuir el tráfico por consultas de “traducciones” DNS de nombres de dominio a direcciones IP, el sistema de DNS funciona de tal forma que se guardan registros temporales de ciertas traducciones populares, por ejemplo: si uno hace una consulta para buscar ninjas.cl, el sistema DNS de nuestro proveedor de acceso a internet nos devolverá la IP resultante de dicha consulta. Para hacer esa traducción muy probablemente tuvimos que consultar directamente a un servidor raíz de internet, sin embargo, si nosotros mismos volvemos a buscar esa dirección (o alguien que esté en la misma red o “vecindario” la busca) muy probablemente la traducción ya se encuentre guardada temporalmente en un servidor DNS de nuestro proveedor de acceso a internet, con lo que éste se ahorra el tener que ir a buscar dicha traducción directamente a los servidores raíz de internet. El aspecto negativo de esto (por así llamarlo), es que si cambiamos en este momento el mapeo dominio/IP de ninjas.cl, mucha gente en el mundo que esté accediendo a nuestra página web tendrá un periodo de tiempo de algunas horas en las que probablemente accederá aún a la dirección IP anterior que estará guardada en los servidores DNS de su proveedor de acceso a internet (el término correcto es que tiene el mapeo guardado en “caché”). Este mapeo, ahora incorrecto, se corregirá automáticamente cuando el cambio se “propague” hasta los servidores DNS de dicho proveedor de acceso a internet, lo cual por el tamaño de internet puede tardar varias horas. DNS Entre los hosting web existen principalmente las siguientes opciones: Shared Hosting: Hosting Compartido. Un servidor con Cpanel (o Plesk) en el cual los recursos de la máquina (IP, RAM, CPU, Disco, etc) son compartidos por múltiples usuarios. Ideal para opciones económicas y menos exigencia. Dedicated Hosting: (Hosting Dedicado). Un servidor con Cpanel en el cual los recursos de la máquina (IP, RAM, CPU, Disco, etc) son asignados a un solo usuario. Ideal para opciones que requieran mayor velocidad y recursos. VPS (Virtual Private Server): Servidor Privado Virtual . Un servidor dedicado en el cual se debe instalar todo de forma manual (no tiene Cpanel u otros similares). Ideal para aplicaciones personalizadas (Como Backend) en lenguajes de programación distintos a PHP o que requieran recursos personalizados, más flexibles y que puedan adaptarse a las necesidades de crecimiento de la aplicación. Hosting HTML Estático: Hosting especializado en páginas web estáticas. Solamente permite archivos con lógica en el cliente como HTML, CSS, JS y archivos (imágenes, documentos). No permite lenguajes como PHP, Elixir o Python. Se pueden mencionar neocities y github pages entre los más conocidos. Servidor de Aplicaciones en la Nube: Servidor especializado en tener un ambiente preparado para algunos frameworks de backend, a diferencia de los VPS ya viene con algunas configuraciones y herramientas de apoyo. Alguno de los más conocidos son Heroku.com o Fly.io. URL Descripción https://cpanelhost.cl Hosting económico gama baja/media para servidores en Chile. Valor promedio $10.000 CLP por año. Ideal para tener un servidor de correos propio de forma económica. Páginas webs simples o de poco tráfico. https://silverhost.cl Hosting de gama media en Chile. Valor promedio $30.000 CLP por año. Ideal para páginas web más exigentes o múltiples dominios. https://gohosting.cl Hosting de gama baja/media en servidores internacionales. https://hostgator.com Hosting gama baja/media internacional. Muchos resellers compran a Hostgator y revenden en Chile. Revisar siempre que las ips y nameservers sean de chile antes de seleccionar un hosting chileno. https://www.hostinger.com/ Hosting de gama baja/media internacional https://www.digitalocean.com/ VPS https://www.linode.com/ VPS https://www.vultr.com/ VPS https://neocities.org/ Hosting gratuito de páginas web estáticas https://www.cloudflare.com/ Entre sus servicios gratuitos hospeda páginas web estáticas https://pages.github.com/ Si se tiene un proyecto en Github se puede utilizar su hosting gratuito para web estáticas. Ideal para documentación de proyectos o experimentos https://www.heroku.com/ Servidor de Aplicaciones en la Nube https://fly.io/ Servidor de Aplicaciones en la Nube. Recomendado para Elixir. https://vercel.com/ Servidor de Aplicaciones en la Nube. Especializado en Frontend. https://aws.amazon.com/es/ Plataforma de Servicios en la Nube de Amazon. https://azure.microsoft.com/en-us Plataforma de Servicios en la Nube de Microsoft. https://cloud.google.com/ Plataforma de Servicios en la Nube de Google. Al momento de querer adquirir un dominio se debe verificar que no esté previamente registrado. Podemos utilizar las búsquedas de un proveedor de dominios, pero nos arriesgamos a que nuestra búsqueda quede registrada y posiblemente alguien desee comprar nuestro dominio dejándonos en una posición difícil. La recomendación es siempre comprar un dominión lo más pronto posible, ya que se arriesga a perderlo y verse obligado a pagar copiosas sumas de dinero por adquirirlo. Para asegurárnos que nuestra búsqueda de dominio sea protegida de posibles oportunistas, utilizamos la herramienta whois. Cuando accedemos a los detalles con whois, tendremos acceso a la información de contacto asociada con la persona o empresa que registró el nombre de dominio en la red, es por ello que al usar whois accedemos a detalles como: El nombre y la información de contacto del registrante La fecha de registro El nombre y la información de contacto del registrador Última actualización del registro Fecha de expiración del registro Es por esto que se debe elegir un proveedor de dominios que permita el ocultar información privada, para evitar ser víctima de spam por medio de la obtención de datos usando whois. Al usar el comando whois debemos tener en cuenta los siguientes términos: Registry: hace referencia a la empresa que administra la lista donde se aloja un conjunto de nombres de dominio Registrant: es el propietario legal del dominio Registrar: hace uso de un registrador para realizar el registro Whois $ whois ninjas.cl % IANA WHOIS server % for more information on IANA, visit http://www.iana.org % This query returned 1 object refer: whois.nic.cl domain: CL organisation: NIC Chile (University of Chile) address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile contact: administrative name: TLD Admin Contact organisation: NIC Chile organisation: University of Chile address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile phone: +56 22 940 7700 e-mail: admincl@nic.cl contact: technical name: TLD Technical Contact organisation: NIC Chile organisation: University of Chile address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile phone: +56 22 940 7700 e-mail: techcl@nic.cl nserver: A.NIC.CL 190.124.27.10 2001:1398:121:0:190:124:27:10 nserver: B.NIC.CL 200.7.4.7 2001:1398:274:0:200:7:4:7 nserver: C.NIC.CL 200.16.112.16 2001:1398:275:0:200:16:112:16 nserver: CL-NS.ANYCAST.PCH.NET 2001:500:14:6030:ad:0:0:1 204.61.216.30 nserver: CL1-TLD.D-ZONE.CA 185.159.197.56 2620:10a:80aa:0:0:0:0:56 nserver: CL1.DNSNODE.NET 194.146.106.34 2001:67c:1010:8:0:0:0:53 nserver: CL2-TLD.D-ZONE.CA 185.159.198.56 2620:10a:80ab:0:0:0:0:56 ds-rdata: 21199 8 2 7d756dffab6d3cd9c786ff5c659954c22944faef9433eee26f1d84eb5370b394 whois: whois.nic.cl status: ACTIVE remarks: Registration information: http://www.nic.cl/ created: 1987-12-15 changed: 2021-05-28 source: IANA # whois.nic.cl %% %% This is the NIC Chile Whois server (whois.nic.cl). %% %% Rights restricted by copyright. %% See https://www.nic.cl/normativa/politica-publicacion-de-datos-cl.pdf %% Domain name: ninjas.cl Registrant name: Camilo Registrant organisation: Registrar name: NIC Chile Registrar URL: https://www.nic.cl Creation date: 2023-07-26 16:12:11 CLST Expiration date: 2024-07-26 16:12:11 CLST Name server: ns1.cpanelhost.cl Name server: ns2.cpanelhost.cl %% %% For communication with domain contacts please use website. %% See https://www.nic.cl/registry/Whois.do?d=ninjas.cl %% $ whois ninjas-fake.cl % IANA WHOIS server % for more information on IANA, visit http://www.iana.org % This query returned 1 object refer: whois.nic.cl domain: CL organisation: NIC Chile (University of Chile) address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile contact: administrative name: TLD Admin Contact organisation: NIC Chile organisation: University of Chile address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile phone: +56 22 940 7700 e-mail: admincl@nic.cl contact: technical name: TLD Technical Contact organisation: NIC Chile organisation: University of Chile address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile phone: +56 22 940 7700 e-mail: techcl@nic.cl nserver: A.NIC.CL 190.124.27.10 2001:1398:121:0:190:124:27:10 nserver: B.NIC.CL 200.7.4.7 2001:1398:274:0:200:7:4:7 nserver: C.NIC.CL 200.16.112.16 2001:1398:275:0:200:16:112:16 nserver: CL-NS.ANYCAST.PCH.NET 2001:500:14:6030:ad:0:0:1 204.61.216.30 nserver: CL1-TLD.D-ZONE.CA 185.159.197.56 2620:10a:80aa:0:0:0:0:56 nserver: CL1.DNSNODE.NET 194.146.106.34 2001:67c:1010:8:0:0:0:53 nserver: CL2-TLD.D-ZONE.CA 185.159.198.56 2620:10a:80ab:0:0:0:0:56 ds-rdata: 21199 8 2 7d756dffab6d3cd9c786ff5c659954c22944faef9433eee26f1d84eb5370b394 whois: whois.nic.cl status: ACTIVE remarks: Registration information: http://www.nic.cl/ created: 1987-12-15 changed: 2021-05-28 source: IANA # whois.nic.cl %% %% This is the NIC Chile Whois server (whois.nic.cl). %% %% Rights restricted by copyright. %% See https://www.nic.cl/normativa/politica-publicacion-de-datos-cl.pdf %% ninjas-fake.cl: no entries found. Ping nos ayuda a verificar que un servidor este operativo y escuchando peticiones. Ping Respuesta Exitosa $ ping ninjas.cl PING ninjas.cl (190.107.177.35): 56 data bytes Request timeout for icmp_seq 0 64 bytes from 190.107.177.35: icmp_seq=1 ttl=58 time=23.394 ms 64 bytes from 190.107.177.35: icmp_seq=2 ttl=58 time=28.447 ms 64 bytes from 190.107.177.35: icmp_seq=3 ttl=58 time=15.794 ms 64 bytes from 190.107.177.35: icmp_seq=4 ttl=58 time=22.296 ms 64 bytes from 190.107.177.35: icmp_seq=5 ttl=58 time=16.409 ms 64 bytes from 190.107.177.35: icmp_seq=6 ttl=58 time=14.523 ms 64 bytes from 190.107.177.35: icmp_seq=7 ttl=58 time=14.737 ms 64 bytes from 190.107.177.35: icmp_seq=8 ttl=58 time=20.764 ms --- ninjas.cl ping statistics --- 9 packets transmitted, 8 packets received, 11.1% packet loss round-trip min/avg/max/stddev = 14.523/19.545/28.447/4.682 ms Respuesta de Servidor No Encontrado $ ping ninjas-fake.cl ping: cannot resolve ninjas-fake.cl: Unknown host Respuesta de Servidor que No Responde $ ping 127.0.0.2 PING 127.0.0.2 (127.0.0.2): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1 Request timeout for icmp_seq 2 Request timeout for icmp_seq 3 Request timeout for icmp_seq 4 Request timeout for icmp_seq 5 Request timeout for icmp_seq 6 --- 127.0.0.2 ping statistics --- 8 packets transmitted, 0 packets received, 100.0% packet loss cPanel (acrónimo de control Panel o ‘Panel de control’) es un panel de control para administrar servidores de alojamiento web que proveen herramientas de automatización y una interfaz gráfica basada en páginas web. Es software de tipo propietario y se ha desarrollado para ser compatible con la mayoría de las distribuciones de Linux que usen RPM como gestor de paquetes. Hoy en día, cPanel se ha convertido prácticamente un estándar en servicios de hosting web. Tanto es así que se considera por muchos un criterio fundamental a la hora de elegir un hosting. Su principal ventaja es que el usuario de un hosting web, muchas veces personas sin perfil técnico, dispone de una interfaz web sencilla que le permite administrar los servicios más importantes de su hosting, principalmente: Administración de ficheros: principalmente para la instalación de aplicaciones PHP como ProcessWire, WordPress, Joomla o Prestashop. Configuración de los dominios: necesaria para vincular el sitio web el correo electrónico al (los) dominio(s) que se quiere(n) utilizar. Gestión de cuentas de correo: creación y mantenimiento de cuentas de correo electrónico con dominio propio. Gestión de bases de datos MySQL: creación y mantenimiento de bases de bases de datos, principalmente porque las aplicaciones típicas usadas en un hosting como las arriba mencionadas suelen requerir una base de datos MySQL. Gestión de los recursos: espacio en disco, consumo de ancho de banda mensual, etc. cPanel entrega un gran nivel de control al usuario individual, mientras se mantiene la seguridad. Aunque el administrador de sistema puede desactivar cualquier característica para cada cliente en cualquier momento, el usuario puede usar cualquier elemento que se encuentre disponible. SSH Access: tiene integrado un applet Java que permite una conexión directa con el servidor vía SSH. Se encuentra desactivado en la mayoría de los sitios debido a que es un riesgo para la seguridad del servidor. Crontab: provee una interfaz para el manejo de las listas de tareas. OpenPGP: soporte técnico. CGI Scripts: autoinstala varios scripts para cualquier sitio web. Permite evitar el acceso a direcciones IP específicas. Se distingue, respecto a otros control Panel, por su facilidad para realizar respaldos completos o parciales (algunos proveedores de hospedaje no dan derechos para restaurar respaldos). Tiene una apariencia flexible y fácil de entender, llamada Paper Lantern, también hay otra llamada Jupiter. WHM, abreviatura de WebHost Manager, es una herramienta basada en la web que se utiliza para la administración del servidor. Hay al menos dos niveles de WHM, a menudo denominados \"WHM raíz\" y WHM no raíz (o WHM de revendedor). Root WHM es utilizado por administradores de servidores y WHM no root (con menos privilegios) es utilizado por otros, como departamentos de entidades y revendedores para administrar cuentas de alojamiento a menudo denominadas cuentas cPanel en un servidor web. WHM también se usa para administrar certificados SSL (tanto certificados SSL autogenerados por el servidor como proporcionados por CA), usuarios de cPanel, paquetes de alojamiento, zonas DNS, temas y métodos de autenticación. El SSL automático predeterminado (AutoSSL) proporcionado por cPanel es impulsado por Sectigo (anteriormente Comodo CA). Además, WHM también se puede usar para administrar servicios de FTP, correo (POP, IMAP y SMTP) y SSH en el servidor. Además de ser accesible para el administrador raíz, WHM también es accesible para los usuarios con privilegios de revendedor. Los usuarios revendedores de cPanel tienen un conjunto de funciones más pequeño que el usuario raíz, generalmente limitado por el administrador del servidor, a funciones que determinan que afectarán las cuentas de sus clientes en lugar del servidor en su conjunto. Desde la raíz WHM, el administrador del servidor puede realizar operaciones de mantenimiento, como actualizar y volver a compilar Apache y PHP, instalar módulos Perl y actualizar los RPM instalados en el sistema. Enlaces Wikipedia: Cpanel Wikipedia: WHM Página Oficial de Cpanel WHM Muchas veces Cpanel puede no ser la mejor opción, debido a su precio o sus restricciones tecnológicas. Para esto existen algunas alternativas a considerar: Direct Admin (Pago) Plesk (Pago) Webmin (Gratis) Froxlor (Gratis) Son certificados que permiten a las aplicaciones comunicarse de forma segura. Por ejemplo al momento de enviar un formulario, si la página es solamente http, toda la información enviada podría ser obtenida por un tercero no autorizado. Por esto siempre es importante utilizar certificados SSL (https) al momento de crear sistemas web. En los paneles Cpanel existe una opción llamada AutoSSL que genera certificados. Puede también ser utilizado https://letsencrypt.org/, una opción gratuita que no está ligada a Cpanel. Enlaces SSL Siempre tener en cuenta que estos solo son paneles de administración en servidores (usualmente Linux), por lo que todas las operaciones que realizan estos paneles se pueden realizar mediante la terminal del sistema operativo. Se recomienda mucho aprender Linux/FreeBSD y tomar la certificación respectiva para aprender administrar servidores. https://training.linuxfoundation.org/training/linux-system-administration-essentials-lfs207/ https://training.linuxfoundation.org/certification/linux-foundation-certified-sysadmin-lfcs/ Linux FreeBSD","title":"Hosting, Dominios y Cpanel","component":"ROOT","version":"","name":"chapter","url":"/hosting/chapter.html","titles":[{"text":"¿Qué es una URI?","hash":"qué-es-una-uri","id":1},{"text":"¿Qué es una URL?","hash":"qué-es-una-url","id":2},{"text":"¿Por qué no es lo mismo que un dominio?","hash":"por-qué-no-es-lo-mismo-que-un-dominio","id":3},{"text":"URL absolutas vs URL relativas","hash":"url-absolutas-vs-url-relativas","id":4},{"text":"URL vs URI vs URN","hash":"url-vs-uri-vs-urn","id":5},{"text":"¿Qué tipos de Dominios Existen?","hash":"qué-tipos-de-dominios-existen","id":6},{"text":"Dominios Geográficos","hash":"dominios-geográficos","id":7},{"text":"Dominio de Nivel Superior Genéricos","hash":"dominio-de-nivel-superior-genéricos","id":8},{"text":"Dominios mixtos o de tercer nivel","hash":"dominios-mixtos-o-de-tercer-nivel","id":9},{"text":"Estructura de un Dominio","hash":"estructura-de-un-dominio","id":10},{"text":"Primer nivel","hash":"primer-nivel","id":11},{"text":"Segundo nivel","hash":"segundo-nivel","id":12},{"text":"Subdominio","hash":"subdominio","id":13},{"text":"¿Dónde Compro un Dominio?","hash":"dónde-compro-un-dominio","id":14},{"text":"¿Qué es un Domain Name Server?","hash":"qué-es-un-domain-name-server","id":15},{"text":"Ruta de un DNS","hash":"ruta-de-un-dns","id":16},{"text":"¿Por qué tardan los cambios de servidores DNS en propagar?","hash":"por-qué-tardan-los-cambios-de-servidores-dns-en-propagar","id":17},{"text":"Servidores y Hostings","hash":"servidores-y-hostings","id":18},{"text":"¿Dónde Consigo un Hosting?","hash":"dónde-consigo-un-hosting","id":19},{"text":"Herramienta Whois","hash":"herramienta-whois","id":20},{"text":"Resultado de Dominio Existente","hash":"resultado-de-dominio-existente","id":21},{"text":"Resultado de Dominio Inexistente","hash":"resultado-de-dominio-inexistente","id":22},{"text":"Herramienta Ping","hash":"herramienta-ping","id":23},{"text":"Cpanel","hash":"cpanel","id":24},{"text":"WHM","hash":"whm","id":25},{"text":"Alternativas","hash":"alternativas","id":26},{"text":"Certificados SSL","hash":"certificados-ssl","id":27},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":28}]},"29":{"id":29,"text":"HTML (Lenguaje de Marcas de Hipertexto, del inglés HyperText Markup Language) es el componente más básico de la Web. Define el significado y la estructura del contenido web. Además de HTML, generalmente se utilizan otras tecnologías para describir la apariencia/presentación de una página web (CSS) o la funcionalidad/comportamiento (JavaScript). https://developer.mozilla.org/es/docs/Web/HTML https://html5up.net/ https://templated.co/ informa al navegador qué versión de HTML (o XML) se usó para escribir el documento. Doctype es una declaración no una etiqueta. Además, podemos referirnos a ella como \"document type declaration\" o por las siglas \"DTD\". Para los documentos html el tag recomendado es: https://developer.mozilla.org/es/docs/Glossary/Doctype El utilizar mayúsculas era muy popular en los primeros años, pero hoy en día se recomienda utilizar los tags en minúsculas.
      La etiqueta permite definir que caracteres son los utilizados por el documento. En los primeros días, había muchas opciones como Windows-1252. Sin embargo hoy en día utilizar utf-8 es lo recomendado y cualquier lenguaje humano puede ser mostrado con dicha codificación. https://developer.mozilla.org/es/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML https://blog.hubspot.com/website/what-is-utf-8 https://www.w3.org/International/questions/qa-choosing-encodings En los primeros días, antes de CSS se incluían los estilos dentro de los tags html. Esto llevaba a mucha repetición y suciedad en el código. Siempre utilizar css para dar estilo y formato a los documentos HTML. Es recomendable que el orden sea coherente, por ejemplo, una etiqueta h2 debe venir despúes de una h1.

      Mi Título

      Mi Subtítuo

      Mi Título

      Mi Subtítuo

      Los navegadores hacen todo lo posible para interpretar un documento HTML y mostrar un resultado, aún si las etiquetas son mal usadas o le falta información. El navegador llenará los espacios lo mejor que pueda. Como desarrolladores debemos ser responsables y verificar que las etiquetas se utilicen de forma correcta y esten cerradas apropiadamente. y antes de partir con body --> Si bien esto no es obligatorio para que un documento sea válido y bien estructurado, considerar a las personas con dificultades de visión u otra condición de diferencia dentro de los elementos para facilitarles la experiencia dentro del sistema web. https://www.a11yproject.com/posts/what-is-semantic-html/ Hojas de Estilo en Cascada (del inglés Cascading Style Sheets) o CSS es el lenguaje de estilos utilizado para describir la presentación de documentos HTML o XML (en-US) (incluyendo varios lenguajes basados en XML como SVG, MathML o XHTML). CSS describe como debe ser renderizado el elemento estructurado en la pantalla, en papel, en el habla o en otros medios. Se recomienda aprender a utilizar CSS de forma manual, antes de aventurarse a utilizar frameworks como Bootstrap o Tailwind. https://developer.mozilla.org/es/docs/Web/CSS https://getbootstrap.com/ https://tailwindcss.com/ https://bulma.io/ https://get.foundation/ https://github.com/picocss/pico Nota: Tailwind es una de las opciones más populares del momento y se recomienda su uso por sobre Bootstrap. Existen algunas metodologías para organización del CSS. Se recomiendan utilizar si se debe programar mucho CSS personalizado. Aunque en la actualidad se prefiere utilizar herramientas más automatizadas como Tailwind para nombrar las clases. https://getbem.com/introduction/ http://smacss.com/ https://webuild.envato.com/blog/how-to-scale-and-maintain-legacy-css-with-sass-and-smacss/ Existen algunos transpiladores de CSS como: https://sass-lang.com/ https://lesscss.org/ Aunque actualmente se prefieren otras alternativas como Tailwind por sobre estos lenguajes intermedios, debido a que las nuevas características de CSS3 implementan mucha de las ideas que estas herramientas brindaban en los primeros años de CSS. Flexbox CSS Grid Color Flexbox Froggy Grid Garden Es una versión de Firefox especialmente diseñada para los desarrolladores. Tiene herramientas especiales que permitirán facilitar el trabajar con CSS. https://www.mozilla.org/es-ES/firefox/developer/ ¿Qué es un control de versiones, y por qué debería importarte? Un control de versiones es un sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante. Dicho sistema te permite regresar a versiones anteriores de tus archivos, regresar a una versión anterior del proyecto completo, comparar cambios a lo largo del tiempo, ver quién modificó por última vez algo que pueda estar causando problemas, ver quién introdujo un problema y cuándo, y mucho más. Usar un VCS también significa generalmente que si arruinas o pierdes archivos, será posible recuperarlos fácilmente. Adicionalmente, obtendrás todos estos beneficios a un costo muy bajo. Existen numerosas formas de organizar los proyectos que utilizan Git, tales como Gitflow, Github Flow, Gitlab Flow, pero la más recomendable es el Desarrollo Basado En Tronco. El desarrollo basado en tronco (o main), consiste en separar las ramas por ambiente, teniendo una rama principal que es la fuente de la verdad donde todos los desarrollos deben basarse. flowchart TD A1(Rama Main) --> B1 B1(Rama Staging) --> B2(Rama Production) La rama principal. Todos los Pull Request deben ser hacia esta rama y no deben tener conflictos con ella. Los desarrolladores crean una rama desde el tronco, para luego mandar su Pull Request, el cual debe estar actualizado con la última versión del tronco main, ser aprobado por los responsables mediante un Code Review y pasar todas las pruebas unitarias. Los desarrolladores realizan pruebas en su ambiente local. Cuando el producto está lo suficientemente maduro y estable, pasa a la siguiente rama que es staging. Se realiza un squash commits al pasar a la siguiente rama. Se crea una nueva etiqueta con la versión de staging. Se elimina la rama transitoria que elaboró el desarrollador (ej: camilo/1085) al hacer un merge exitoso con main. Esta es la rama del ambiente de pruebas que replica el ambiente de producción. Este ambiente es el paso anterior a producción y se deben realizar pruebas manuales y automatizadas para validar que el código funcionará y cumplirá las expectativas y requisitos del producto en producción. Una vez se ha validado el producto en este ambiente, pasa a la siguiente rama que es producción. Se realiza un squash commits al pasar a la siguiente rama. Se crea una nueva etiqueta con la versión de producción. Esta es la rama que aloja el producto que es finalmente mostrado al cliente y usuario final. Debe ser el código más estable, probado y robusto posible, que ha pasado por las pruebas locales y de staging anteriores. Nunca se debe pasar un código desde main a production sin antes pasar por staging. Hay diversas formas de versionar el código, entre las más conocidas están: SemVer y Calver. Cada una tiene sus beneficios y complicaciones. Lo importante es que podemos utilizar las Etiquetas de Git (Tags) para poder marcar cada nueva versión del producto de software dentro de la historia. La recomendación es usar SemVer si la cantidad de releases es muy frecuente y Calver cuando se realicen releases menos frecuentes. $ git tag -a v1.4 -m \"v1.4\" $ git tag v0.1 v1.3 v1.4 Un changelog (registro de cambios), es un archivo que contiene una lista cronológicamente ordenada de los cambios más destacables para cada versión de un proyecto. Las personas. Ya sean consumidores o desarrolladores, los usuarios finales del software son seres humanos a los que le importa lo que hay en el software. Cuando el software cambia, la gente quiere saber el porqué y el cómo. Si bien utilizar Conventional Commits ayuda, no es recomendable usar el registro de git como changelog y es preferible utilizar un archivo separado y dedicado. Están hechos para los seres humanos, no para las máquinas. Debe haber una entrada para cada versión. Los mismos tipos de cambios deben ser agrupados. Versiones y secciones deben ser enlazables. La última versión va primero. Debe mostrar la fecha de publicación de cada versión. Indicar si el proyecto sigue el Versionamiento Semántico. Added para funcionalidades nuevas. Changed para los cambios en las funcionalidades existentes. Deprecated para indicar que una característica o funcionalidad está obsoleta y que se eliminará en las próximas versiones. Removed para las características en desuso que se eliminaron en esta versión. Fixed para corrección de errores. Security en caso de vulnerabilidades. # Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [1.1.1] - 2023-03-05 ### Added - Arabic translation (#444). Enlaces https://semver.org/ https://calver.org/ https://git-scm.com/book/es/v2/Fundamentos-de-Git-Etiquetado https://keepachangelog.com/es-ES/1.0.0/ https://github.com/conventional-changelog/conventional-changelog https://github.com/lintingzhen/commitizen-go Inicia un nuevo repositorio de git. $ git init Agrega un archivo al registro de git. $ git add mi_archivo Muestra el estado actual del historial de cambios por guardar. $ git status El historial de cambios se guarda de forma definitiva, adjuntando un mensaje significativo. $ git commit -m 'nuevo cambio' Crea una nueva rama y la asigna como la rama de trabajo actual. $ git checkout -b mi_rama $ git checkout -b camilo/1085 Nota: Se recomendaría crear ramas con el formato (nombre usuario)/(número de issue) para ahorrar espacio y facilitar búsquedas al tener mejor orden. Cambia hacia una rama que ya existe y la asigna como la rama de trabajo actual. Obtiene los cambios de una rama y los combina con los cambios de la rama actual. $ git merge main Añade un nuevo repositorio remoto. $ git remote add git@github.com:elixircl/elixir-fullstack.git origin: Normalmente asignado al repositorio remoto que se tiene permisos de escritura. upstream: Asignado a un repositorio remoto que solamente se tiene lectura. Clona un repositorio remoto. $ git clone git@github.com:elixircl/elixir-fullstack.git Obtiene los cambios del repositorio remoto y las almacena en nuestra rama local. $ git pull origin main Envía nuestros cambios a la rama dentro del repositorio remoto. $ git push origin main La especificación de Commits Convencionales es una convención ligera sobre los mensajes de commits. Proporciona un conjunto sencillo de reglas para crear un historial de commits explícito; lo que hace más fácil escribir herramientas automatizadas encima del historial. Esta convención encaja con SemVer, al describir en los mensajes de los commits las funcionalidades, arreglos, y cambios de ruptura hechos. El mensaje del commit debe ser estructurado de la siguiente manera: [ámbito opcional]: [cuerpo opcional] [nota(s) al pie opcional(es)] fix: un commit de tipo fix corrige un error en la base del código (se correlaciona con PATCH en el Versionado Semántico). feat: un commit de tipo feat introduce una nueva funcionalidad en la base del código (se correlaciona con MINOR en el Versionado Semántico). tipos distintos a fix: y feat: están permitidos, por ejemplo (basados en la convención de Angular) que recomienda build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, y otros. Ejemplos docs(changelog): update changelog to beta.5 fix(release): need to depend on latest rxjs and zone.js The version in our package.json gets copied to the one we publish, and users need the latest of these. Uso de Número de Issue También es válido poner en el ámbito el número de issue relacionado. docs(1085): added conventional commits. https://www.conventionalcommits.org/es/v1.0.0/ https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines https://git-scm.com/book/es/v2 https://trunkbaseddevelopment.com/ https://about.gitlab.com/topics/version-control/what-is-gitlab-flow/ https://about.gitlab.com/blog/2020/03/05/what-is-gitlab-flow/ https://www.atlassian.com/es/continuous-delivery/continuous-integration/trunk-based-development https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow https://docs.github.com/en/get-started/quickstart/github-flow https://killercoda.com/pawelpiwosz/course/gitFundamentals/","title":"HTML, CSS y GIT","component":"ROOT","version":"","name":"chapter","url":"/html/chapter.html","titles":[{"text":"Algunos Templates de Ejemplo","hash":"algunos-templates-de-ejemplo","id":1},{"text":"Buenas Prácticas","hash":"buenas-prácticas","id":2},{"text":"Comenzar por el DOCTYPE","hash":"comenzar-por-el-doctype","id":3},{"text":"Usar minúsculas en los tags","hash":"usar-minúsculas-en-los-tags","id":4},{"text":"Utilizar UTF-8","hash":"utilizar-utf-8","id":5},{"text":"Utilizar CSS","hash":"utilizar-css","id":6},{"text":"Mantener un orden coherente","hash":"mantener-un-orden-coherente","id":7},{"text":"Cerrar los tags","hash":"cerrar-los-tags","id":8},{"text":"Considerar ayuda a no videntes","hash":"considerar-ayuda-a-no-videntes","id":9},{"text":"CSS","hash":"css","id":10},{"text":"Algunos Frameworks de CSS","hash":"algunos-frameworks-de-css","id":11},{"text":"Metodologías","hash":"metodologías","id":12},{"text":"Transpiladores","hash":"transpiladores","id":13},{"text":"Conceptos Importantes","hash":"conceptos-importantes","id":14},{"text":"Herramientas de Aprendizaje","hash":"herramientas-de-aprendizaje","id":15},{"text":"Navegador Firefox Developer","hash":"navegador-firefox-developer","id":16},{"text":"GIT","hash":"git","id":17},{"text":"Metodologías","hash":"metodologías-2","id":18},{"text":"main (tronco, trunk, master)","hash":"main-tronco-trunk-master","id":19},{"text":"staging (ambiente de pruebas pre-producción)","hash":"staging-ambiente-de-pruebas-pre-producción","id":20},{"text":"production (ambiente de producción)","hash":"production-ambiente-de-producción","id":21},{"text":"Versionado","hash":"versionado","id":22},{"text":"Changelog","hash":"changelog","id":23},{"text":"Directrices","hash":"directrices","id":24},{"text":"Tipos de cambios","hash":"tipos-de-cambios","id":25},{"text":"Ejemplo","hash":"ejemplo","id":26},{"text":"Algunos Comandos","hash":"algunos-comandos","id":27},{"text":"git init","hash":"git-init","id":28},{"text":"git add ruta del archivo","hash":"git-add-ruta-del-archivo","id":29},{"text":"git status","hash":"git-status","id":30},{"text":"git commit -m mensaje","hash":"git-commit-m-mensaje","id":31},{"text":"git checkout -b rama","hash":"git-checkout-b-rama","id":32},{"text":"git checkout rama","hash":"git-checkout-rama","id":33},{"text":"git merge nombre","hash":"git-merge-nombre","id":34},{"text":"git remote add nombre repo.remoto.git","hash":"git-remote-add-nombre-repo-remoto-git","id":35},{"text":"git clone repo.remoto.git","hash":"git-clone-repo-remoto-git","id":36},{"text":"git pull nombre del repo remoto","hash":"git-pull-nombre-del-repo-remoto","id":37},{"text":"git push remoto rama","hash":"git-push-remoto-rama","id":38},{"text":"Conventional Commits","hash":"conventional-commits","id":39},{"text":"Tipos","hash":"tipos","id":40},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":41}]},"30":{"id":30,"text":"HTTP es el protocolo en el que se basa la Web. Fue inventado por Tim Berners-Lee entre los años 1989-1991, HTTP ha visto muchos cambios, manteniendo la mayor parte de su simplicidad y desarrollando su flexibilidad. HTTP ha evolucionado, desde un protocolo destinado al intercambio de archivos en un entorno de un laboratorio semi-seguro, al actual laberinto de Internet, sirviendo ahora para el intercambio de imágenes, vídeos en alta resolución y en 3D. https://developer.mozilla.org/es/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP El concepto de cabeceras de HTTP, se presentó tanto para las peticiones (requests) como para las respuestas (responses), permitiendo la trasmisión de meta-data y conformando un protocolo muy versátil y ampliable. Con el uso de las cabeceras de HTTP, se pudieron transmitir otros documentos además de HTML, mediante la cabecera Content-Type. GET /mypage.html HTTP/1.0 User-Agent: NCSA_Mosaic/2.0 (Windows 3.1) 200 OK Date: Tue, 15 Nov 1994 08:12:31 GMT Server: CERN/3.0 libwww/2.17 Content-Type: text/html Una pagina web con una imagen https://es.wikipedia.org/wiki/Anexo:Cabeceras_HTTP HTTP define una serie predefinida de métodos de petición (algunas veces referido como \"verbos\") que pueden utilizarse. El protocolo tiene flexibilidad para ir añadiendo nuevos métodos y para así añadir nuevas funcionalidades. Cada método indica la acción que desea que se efectúe sobre el recurso identificado. Lo que este recurso representa depende de la aplicación del servidor. Por ejemplo, el recurso puede corresponderse con un archivo que reside en el servidor. https://en.wikipedia.org/wiki/HTTP#Request_methods El código de respuesta, estado o retorno es un número que indica que ha pasado con la petición. El resto del contenido de la respuesta dependerá del valor de este código. El sistema es flexible y de hecho la lista de códigos ha ido aumentando para así adaptarse a los cambios e identificar nuevas situaciones. Cada código tiene un significado concreto. Sin embargo el número de los códigos están elegidos de tal forma que según si pertenece a una centena u otra se pueda identificar el tipo de respuesta que ha dado el servidor: Códigos con formato 1xx: Respuestas informativas. Indica que la petición ha sido recibida y se está procesando. Códigos con formato 2xx: Respuestas correctas. Indica que la petición ha sido procesada correctamente. Códigos con formato 3xx: Respuestas de redirección. Indica que el cliente necesita realizar más acciones para finalizar la petición. Códigos con formato 4xx: Errores causados por el cliente. Indica que ha habido un error en el procesado de la petición a causa de que el cliente ha hecho algo mal. Códigos con formato 5xx: Errores causados por el servidor. Indica que ha habido un error en el procesado de la petición a causa de un fallo en el servidor. Enlaces https://es.wikipedia.org/wiki/Anexo:C%C3%B3digos_de_estado_HTTP https://en.wikipedia.org/wiki/List_of_HTTP_status_codes En el año 2000, un nuevo formato para usar HTTP fue diseñado: REST (del inglés: 'Representational State Transfer'). Las acciones de la nueva API, no estaban supeditadas a nuevos métodos HTTP, unicamente al acceso a URIs especificas con métodos HTTP/1.1). Esto permitió que cualquier aplicación Web dispusiera de una API, para permitir la recuperación y modificación de datos, sin tener que actualizar servidores o navegadores; todo lo que se necesitaba era incluido en los archivos servidos por los sitios Web. La contrapartida del modelo REST está en que cada sitio Web define su propia versión no estándar de API RESTful y tiene un control total sobre ella; al contrario del formato *DAV donde clientes y servidores eran interoperables. La arquitectura REST empezó a ser muy común a partir del año 2010. |== | Cabecera | Descripción | Ejemplo | Content-Type | Define el tipo de contenido que se envía en la petición | application/json | Accept | Define el tipo de contenido que se aceptará en la respuesta | application/json |https://developer.mozilla.org/es/docs/Web/HTTP/Headers/Authorization[Authorization]|Permite enviar tokens de autorización.| Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l |== |== | Método | Uso recomendado | Códigos de Estado Comunes | GET | Obtener información | 200, 404, 403 | POST | Permite crear recursos | 201, 202, 404, 403 | PUT | Permite actualizar recursos en su totalidad | 200, 404, 403 | PATCH | Permite actualizar un campo dentro de un recurso | 200, 404, 403 | DELETE | Permite eliminar un recurso | 200, 404, 403 |== Nota: No se recomienda el código de estado 204 (No content) debido a que no entrega ninguna respuesta (body) al cliente. Es mejor siempre devolver un cuerpo con información relacionada a la operación. https://developer.mozilla.org/es/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP https://apisyouwonthate.com/books/ https://www.rfc-editor.org/rfc/rfc9110.html#section-9.3 JSON API es una convención (no un estándar) para expresar datos de APIs en formato JSON o json api. Es decir, es un JavaScript Object Notation en una Interfaz de Programación en Aplicaciones. También puedes pensar en JSON API como un formato que trabaja con HTTP. https://jsonapi.org/ https://keepcoding.io/blog/json-api-que-es-para-que-sirve/ La especificación OpenAPI es un lenguaje de especificación para API HTTP que proporciona un medio estandarizado para definir su API ante otros. Puede descubrir rápidamente cómo funciona una API, configurar la infraestructura, generar código de cliente y crear casos de prueba para sus API. Obtenga más información sobre cómo puede obtener el control de sus API ahora, comprender el ciclo de vida completo de las API y comunicarse con las comunidades de desarrolladores dentro y fuera de su organización. https://www.openapis.org/ SOAP es una tecnología antigua que requiere un contrato de comunicación estricto entre sistemas. Con el tiempo, se han agregado nuevos estándares de servicios web para adaptarse a los cambios tecnológicos, pero generan gastos generales adicionales. REST se desarrolló después de SOAP y soluciona de forma inherente muchas de sus deficiencias. Los servicios web REST también se denominan servicios web RESTful. https://aws.amazon.com/es/compare/the-difference-between-soap-rest/ GraphQL es un lenguaje de consulta para API y un tiempo de ejecución para completar esas consultas con sus datos existentes. GraphQL proporciona una descripción completa y comprensible de los datos de su API, brinda a los clientes el poder de solicitar exactamente lo que necesitan y nada más, facilita la evolución de las API con el tiempo y habilita potentes herramientas para desarrolladores. { hero { name friends { name homeWorld { name climate } species { name lifespan origin { name } } } } } https://graphql.org/ gRPC es un marco moderno de llamada a procedimiento remoto (RPC) de código abierto y alto rendimiento que puede ejecutarse en cualquier entorno. Puede conectar de manera eficiente servicios dentro y entre centros de datos con soporte conectable para equilibrio de carga, rastreo, verificación de estado y autenticación. También es aplicable en la última milla de la informática distribuida para conectar dispositivos, aplicaciones móviles y navegadores a servicios backend. https://grpc.io/ Existen diversos formatos y estándares para compartir datos y configurar los productos de software. Normalmente son formatos de texto plano (pueden ser leidos por un humano) y también hay en formato binario (pueden ser leidos solo por un computador), entre los más populares están JSON, XML, YAML y TOML. Siempre que desee enviar alguna estructura de datos o un objeto a través de redes informáticas, digamos Internet, debe convertirlo en un formato especial para leerlo y almacenarlo. El proceso se conoce comúnmente como serialización y es de enorme importancia en la web. Un ejemplo de uso común de serialización es al leer datos de bases de datos y transferirlos a través de la web. Algunas formaciones de serialización incluyen JSON y XML. JSON (JavaScript Object Notation - Notación de Objetos de JavaScript) es un formato ligero de intercambio de datos. Leerlo y escribirlo es simple para humanos, mientras que para las máquinas es simple interpretarlo y generarlo. Está basado en un subconjunto del Lenguaje de Programación JavaScript, Standard ECMA-262 3rd Edition - Diciembre 1999. JSON es un formato de texto que es completamente independiente del lenguaje pero utiliza convenciones que son ampliamente conocidos por los programadores de la familia de lenguajes C, incluyendo C, C++, C#, Java, JavaScript, Perl, Python, y muchos otros. Estas propiedades hacen que JSON sea un lenguaje ideal para el intercambio de datos. Ejemplo { \"squadName\": \"Super hero squad\", \"homeTown\": \"Metro City\", \"formed\": 2016, \"secretBase\": \"Super tower\", \"active\": true, \"members\": [ { \"name\": \"Molecule Man\", \"age\": 29, \"secretIdentity\": \"Dan Jukes\", \"powers\": [\"Radiation resistance\", \"Turning tiny\", \"Radiation blast\"] }, { \"name\": \"Madame Uppercut\", \"age\": 39, \"secretIdentity\": \"Jane Wilson\", \"powers\": [ \"Million tonne punch\", \"Damage resistance\", \"Superhuman reflexes\" ] }, { \"name\": \"Eternal Flame\", \"age\": 1000000, \"secretIdentity\": \"Unknown\", \"powers\": [ \"Immortality\", \"Heat Immunity\", \"Inferno\", \"Teleportation\", \"Interdimensional travel\" ] } ] } https://developer.mozilla.org/es/docs/Learn/JavaScript/Objects/JSON https://www.ecma-international.org/publications-and-standards/standards/ecma-404/ https://www.json.org/json-es.html El lenguaje de marcado extensible (XML) permite definir y almacenar datos de forma compartible. XML admite el intercambio de información entre sistemas de computación, como sitios web, bases de datos y aplicaciones de terceros. Las reglas predefinidas facilitan la transmisión de datos como archivos XML a través de cualquier red, ya que el destinatario puede usar esas reglas para leer los datos de forma precisa y eficiente. Ejemplo Introducción a Amazon Web Services Mark Wilkins https://aws.amazon.com/es/what-is/xml/ Los formatos de configuración son más adecuados para establecer parámetros en los programas, más que enviar información por las vías de comunicación. Algunos formatos son YAML y TOML. JSON también es comunmente usado como un formato de configuración, aunque algunos prefieren utilizar variantes como JSONC que incluye comentarios. YAML es un lenguaje sencillo que las personas pueden comprender y suele utilizarse en el diseño de archivos de configuración. Para algunas personas, YAML significa otro lenguaje de marcado más; para otras, es un acrónimo recursivo que quiere decir \"YAML no es un lenguaje de marcado\", lo que enfatiza la idea de que se utiliza para los datos, no para los documentos. Ejemplo name:John age:18 Hobbies: Hobby1:Football Hobby2:BasketBall Hobby3:Hockey Job: -System administrator -Programmer https://www.redhat.com/es/topics/automation/what-is-yaml https://yaml.org/ https://geekflare.com/es/yaml-introduction/ TOML se abrevia como Tom’s Obvious Markup Language. TOML pretende ser un formato de archivo de configuración mínimo que sea fácil de leer debido a una semántica obvia. TOML está diseñado para asignarse sin ambigüedades a una tabla hash. TOML debería ser fácil de analizar en estructuras de datos en una amplia variedad de lenguajes. Ejemplo # This is a TOML document title = \"TOML Example\" [owner] name = \"Tom Preston-Werner\" dob = 1979-05-27T07:32:00-08:00 [database] enabled = true ports = [ 8000, 8001, 8002 ] data = [ [\"delta\", \"phi\"], [3.14] ] temp_targets = { cpu = 79.5, case = 72.0 } [servers] [servers.alpha] ip = \"10.0.0.1\" role = \"frontend\" [servers.beta] ip = \"10.0.0.2\" role = \"backend\" https://toml.io/en/ https://www.w3schools.io/file/toml-introduction/ Postman es una plataforma API para crear y utilizar API. Postman simplifica cada paso del ciclo de vida de la API y agiliza la colaboración para que puedas crear mejores API, más rápido. https://www.postman.com/ Kong Insomnia es una plataforma colaborativa de desarrollo de API de código abierto que facilita la creación de API de alta calidad, sin la sobrecarga y el desorden de otras herramientas. https://insomnia.rest/ Hoppscotch es una suite de desarrollo de API liviana basada en web. Fue creada desde cero teniendo en cuenta la facilidad de uso y la accesibilidad, brindando toda la funcionalidad necesaria para los desarrolladores de API con una interfaz de usuario minimalista y discreta. https://hoppscotch.io/","title":"HTTP, JSON y APIS","component":"ROOT","version":"","name":"chapter","url":"/http/chapter.html","titles":[{"text":"Cabeceras (Headers)","hash":"cabeceras-headers","id":1},{"text":"Métodos","hash":"métodos","id":2},{"text":"Códigos de Respuesta","hash":"códigos-de-respuesta","id":3},{"text":"REST","hash":"rest","id":4},{"text":"Cabeceras Más Usadas","hash":"cabeceras-más-usadas","id":5},{"text":"Métodos Más Usados","hash":"métodos-más-usados","id":6},{"text":"JSON API","hash":"json-api","id":7},{"text":"Open API","hash":"open-api","id":8},{"text":"Otros Tipos de APIS","hash":"otros-tipos-de-apis","id":9},{"text":"SOAP","hash":"soap","id":10},{"text":"GraphQL","hash":"graphql","id":11},{"text":"gRPC","hash":"grpc","id":12},{"text":"Formatos de Archivos","hash":"formatos-de-archivos","id":13},{"text":"Formatos de Serialización","hash":"formatos-de-serialización","id":14},{"text":"JSON","hash":"json","id":15},{"text":"XML","hash":"xml","id":16},{"text":"Formatos de Configuración","hash":"formatos-de-configuración","id":17},{"text":"YAML","hash":"yaml","id":18},{"text":"TOML","hash":"toml","id":19},{"text":"Clientes APIs","hash":"clientes-apis","id":20},{"text":"Postman","hash":"postman","id":21},{"text":"Insomnia","hash":"insomnia","id":22},{"text":"Hoppscotch","hash":"hoppscotch","id":23}]},"31":{"id":31,"text":"Las siglas DOM significan Document Object Model, o lo que es lo mismo, la estructura del documento HTML. Una página HTML está formada por múltiples etiquetas HTML, anidadas una dentro de otra, formando un árbol de etiquetas relacionadas entre sí, que se denomina árbol DOM (o simplemente DOM). En Javascript, cuando nos referimos al DOM nos referimos a esta estructura de árbol, mediante la cuál podemos acceder a ella y modificar los elementos del HTML desde Javascript, añadiendo nuevas etiquetas, modificando o eliminando otras, cambiando sus atributos HTML, añadiendo clases, cambiando el contenido de texto, etc. Si únicamente utilizamos HTML/CSS, solo podremos crear páginas «estáticas», es decir, páginas que no pueden mostrarse de una forma diferente dependiendo de acciones del usuario. Si añadimos Javascript, podremos crear páginas «dinámicas», es decir, aprovechar la potencia y flexibilidad que nos da un lenguaje de programación para crear documentos y páginas mucho más ricas, con una experiencia más completa y con las que se pueden automatizar un gran abanico de tareas y acciones. https://lenguajejs.com/javascript/dom/que-es/ (() => { // Variables let mivar = 1313; // Constantes const constante = 42; const funcion = () => 42; const funcion2 = function(parametro) { return parametro; }; console.log(constante); console.log(funcion()); console.log(funcion2(42)) // Objetos const objeto = { valor: \"este es otro valor\", funcion: (parametro) => { return parametro; } }; objeto.clave = \"Una nueva clave\"; console.log(JSON.stringify(objeto)); // Transformacion de un String Json a Objeto const json = JSON.parse(` {\"clave\": \"este es un valor\"} `); console.log(json[\"clave\"]); // Creación de una clase class Clase { metodo(parametro) { return parametro; } } console.log((new Clase()).metodo(42)); })(); Cuando necesitamos manipular el DOM desde la consola del navegador u otros contextos, se recomienda encapsular el código dentro de una función para evitar conflictos. Una forma de realizar esto es utilizar una Función Auto Ejecutable que es invocada automáticamente luego de ser definida. (() => { // Código })(); https://keepcoding.io/blog/funciones-autoejecutables-en-javascript/ (() => { [1, 2, 3].forEach(item => console.log(item + 1)); console.log( [3, 4, 5].map(item => item + 1) ); console.log( [6, 7, 8].reduce((acc, valor) => acc + valor, 0) ); console.log( [10, 11, 12].filter(number => number % 2 = 0) ); })(); El DOM puede ser manipulado al buscar elementos utilizando los atributos id y class (entre otros) del HTML. Ejemplo buscando por id
      Cambiame
      (() => { const elemento = document.getElementById(\"mi-elemento\"); elemento.innerHTML = '

      Nuevo HTML

      '; })(); Ejemplo buscando por tipo de elemento
      (() => { const elementos = document.getElementsByTagName(\"img\"); Array.from(elementos).forEach(elemento => { elemento.src = \"https://place-hold.it/400x400\" }); })(); https://developer.mozilla.org/es/docs/Web/API/Document/getElementById https://developer.mozilla.org/es/docs/Web/API/Document/getElementsByClassName https://developer.mozilla.org/es/docs/Web/API/Document/getElementsByTagName Inspeccionar elementos es una característica de los navegadores web que permite ver y editar el código fuente de un sitio web, incluidos sus archivos HTML, CSS, JavaScript y multimedia. Cuando modificas el código fuente con la herramienta de inspección, los cambios se muestran en vivo dentro de la ventana del navegador. https://firefox-source-docs.mozilla.org/devtools-user/page_inspector/how_to/open_the_inspector/index.html","title":"Frontend con Javascript","component":"ROOT","version":"","name":"chapter","url":"/javascript/chapter.html","titles":[{"text":"Sintaxis Básica","hash":"sintaxis-básica","id":1},{"text":"Función Auto ejecutable","hash":"función-auto-ejecutable","id":2},{"text":"Funcional","hash":"funcional","id":3},{"text":"Manipulación del DOM","hash":"manipulación-del-dom","id":4},{"text":"Inspector del Navegador","hash":"inspector-del-navegador","id":5}]},"32":{"id":32,"text":"Las aplicaciones móviles son ejecutadas en los denominados \"Teléfonos Inteligentes\" o Smartphones. La industria de las aplicaciones móviles está dominada principalmente por dos sistemas operativos: Android (Google) e iOS (Apple). Aunque existen otros menores como Tizen (Samsung) y HarmonyOS (Hwuawei). Plataforma Precio cuenta Dev Lenguajes de Programación Tienda Comentario Android $20 USD (único) Kotlin, Java Playstore Popular en Latinoamérica y países donde no hay Apple Store oficial. iOS $100 USD (al año) Swift, Objective-C Appstore Popular en países donde existen Apple Store oficiales, debido a su más elevado precio. Android utiliza los lenguajes de programación Kotlin y Java. iOS utiliza los lenguajes de programación Swift y Objective-C. En los últimos años nacieron varias formas nuevas de crear aplicaciones móviles. Enfocadas en reutilizar el código y reducir el esfuerzo del desarrollador necesario para dar vida a una aplicación. Se ha seleccionado algunas tecnologías diferentes: Onsen, NativeScript, React Native, Jasonelle, Elixir Desktop y LiveNative. Para permitir una comparación, aunque no es una lista exhaustiva. Entre los frameworks de desarrollo móvil nos encontramos con dos grandes categorías. Son tecnologías que permiten compilar a nativo la aplicación (no utilizan un navegador web como base). Aplicaciones hechas con Kotlin/Swift/C. Aplicaciones hechas con frameworks de videojuegos (Godot, SDL, Unity, Unreal). Aplicaciones que tras un proceso de compilación, ejecutan el código nativo (React Native, Native Script, LiveNative). La mayoría de las opciones utilizan o están inspiradas en tecnologías que surgieron de la web ( Javascript, CSS, HTML). Por lo tanto, en determinadas situaciones es mejor seguir con las tecnologías de desarrollador oficiales para Android o iOS. Algunas razones válidas son: La organización invirtió mucho en Kotlin o Swift Developers. Los desarrolladores son verdaderos expertos en Java, Kotlin, Objective-C o Swift. Tienen muchos años de experiencia y utilizar una de las nuevas tecnologías debería ser un proceso lento. La organización ya tiene implementados procesos de pruebas, herramientas de integración continua, mejores prácticas y otras cosas. Adoptar estas nuevas tecnologías significa rehacer todo el proceso de definición de herramientas adaptadas a las nuevas tecnologías. El uso de nuevas tecnologías debe ser sólo en proyectos experimentales o no críticos. Si no se toma con suficiente cuidado, la organización corre el riesgo de ralentizar la productividad y frustrar a los desarrolladores. Si el cliente requiere algo hecho sólo con código nativo. Los requisitos sólo se pueden realizar con SDK oficiales. Los frameworks tipo WebView permiten crear aplicaciones utilizando las tecnologías web (HTML, JS, CSS). Básicamente son un navegador web que permite utilizar algunas APIs nativas a través de puentes creados con código nativo. Son muy populares sobre todo si ya tienes una aplicación web y debes adaptarla a móvil, o para hacer prototipos rápidos. En ésta categoría están. Jasonelle Onsen Framework7 Ionic Cordova Capacitor Elixir Desktop Útil para crear aplicaciones y prototipos rápidos. Algunos prototipos requerirán integrar herramientas nativas, la web no cuenta con todas las apis que tiene una opción nativa. La experiencia de usuario web (Web UX) es diferente a UX móvil nativo. Tener en cuenta que al diseñar interfaces y experiencias de usuario, especialmente cuando se utilizan entradas seleccionadas u otros componentes. La contraparte nativa podría ser más grande y podría romper el diseño original. Pequeñas aplicaciones Prototipos rápidos Aplicaciones simples de línea de negocios (https://en.wikipedia.org/wiki/Line_of_business). Aplicaciones que utilizan mucho formularios y gráficos para la entrada y presentación de datos. Si la organización está formada principalmente por desarrolladores web, utilizar Onsen o Jasonelle podría ser la primera opción para empezar a crear aplicaciones móviles. Si usan React, entonces React Native podría ser la opción correcta. Si lo prefiere, puede elegir Angular, Framework7, Onsen, Flutter y NativeScript. Elixir Desktop y LiveViewNative son dos opciones muy buenas que permiten utilizar la potente tecnología de Elixir para el desarrollo de aplicaciones móviles. No solamente tendrás una aplicación móvil, si no también el backend completo, por lo que eligiendo la tecnologías de Elixir simplificarás en gran medida los componentes necesarios para tener una aplicación móvil robusta y preparada para el futuro. Table 1. Componentes HTML + JS + CSS Framework Web Categoría Comentario Onsen https://onsen.io/ WebView + Javascript Puedes generar tu aplicación con HTML, CSS y JS. Framework7 https://framework7.io/ WebView + Javascript Similar a Onsen, tiene más popularidad. Table 2. Wrappers Web Nativos Framework Web Categoría Comentario Jasonelle https://jasonelle.com WebView + Javascript Es un envoltorio (wrapper) para una url y convertirla a aplicación. Cordova https://cordova.apache.org/ WebView + Javascript Envoltorio (wrapper) bastante usado aunque no muy morderno. Capacitor https://capacitorjs.com/ WebView + Javascript Alternativa a Cordova más moderna. Elixir Desktop https://github.com/elixir-desktop/desktop WebView + Elixir Ejecuta un servidor web local con el framework Phoenix. Table 3. Frameworks Completos Framework Web Categoría Comentario LiveViewNative https://github.com/liveview-native Nativo + Elixir Permite generar aplicaciones nativas conectándose a un servidor con Phoenix framework. Flutter https://flutter.dev/ Nativo + Dart Permite crear aplicaciones nativas usando componentes comunes. Ionic https://ionicframework.com/ Nativo + Javascript Permite generar aplicaciones con tecnologías web. Alternativa a ReactNative. Native Script https://nativescript.org/ Nativo + Typescript Permite crear aplicaciones nativas usando Typescript y ser un puente para otras tecnologías. React Native https://reactnative.dev/ Nativo + Javascript Enfocado en generar aplicaciones para iOS y Android usando Javascript y el frontend framework React.","title":"Aplicaciones Móviles","component":"ROOT","version":"","name":"chapter","url":"/mobile/chapter.html","titles":[{"text":"Comparación entre Android e iOS","hash":"comparación-entre-android-e-ios","id":1},{"text":"Tecnologías Nativas","hash":"tecnologías-nativas","id":2},{"text":"Tecnologías Alternativas","hash":"tecnologías-alternativas","id":3},{"text":"Categorías","hash":"categorías","id":4},{"text":"Frameworks Nativos","hash":"frameworks-nativos","id":5},{"text":"¿Cuándo usar?","hash":"cuándo-usar","id":6},{"text":"Frameworks WebView","hash":"frameworks-webview","id":7},{"text":"¿Cuándo usar?","hash":"cuándo-usar-2","id":8},{"text":"¿Cúal usar?","hash":"cúal-usar","id":9}]},"33":{"id":33,"text":"","title":"","component":"ROOT","version":"","name":"punteo","url":"/mobile/punteo.html","titles":[]},"34":{"id":34,"text":"Una forma de crear aplicaciones y prototipos es utilizando las Progresive Web Apps (PWA). Esta es una tecnología que permite que las aplicaciones web sean \"instaladas\" en el smartphone como si fuesen una aplicación nativa. El principal beneficio es que son de rápida creación con las tecnologías web tradicionales y si se utilizan las herramientas adecuadas se puede lograr una experiencia de usuario muy similar a los elementos nativos. No necesitan pasar por el proceso de subir la aplicación al Appstore o Playstore, por lo que también permite mayor flexibilidad en los contenidos permitidos. Beneficios Permiten mayor rapidez y flexibilidad en contenidos y estructura de la aplicación. Utilizan tecnologías web tradicionales como Javascript, CSS y HTML. Dificultades No dan acceso a características nativas sin un Wrapper (Jasonelle, Cordova, Capacitor). Pueden ser más inconsistentes y requerir configuraciones especiales para las diferencias entre cada plataforma (Android, iOS). La respuesta depende de muchos factores, pero la gran mayoría de proyectos puede partir como una aplicación web en formato PWA y luego pasar a nativo. Se recomienda optar por nativo solo si se dispone del suficiente capital humano y expertise, o que la solución requiera de tecnologías solamente disponibles para las aplicaciones nativas. Framework7 es una de las alternativas más populares para crear PWA, ya que a diferencia de Onsen, Ionic, NativeScript o ReactNative que son pensados como una aplicación completa, Framework7 es simplemente una serie de componentes de Javascript, HTML y CSS que permiten elaborar una aplicación web con la experiencia de usuario de una aplicación móvil Android o iOS. Además de que Framework7 tiene distintas plantillas de aplicaciones y componentes ya disponibles para crear una aplicación como base en Theme Forest. Figure 1. Framework7 en ThemeForest Framework7 cuenta con dos versiones. La primera es la versión completa con todos sus componentes como el \"router\" y la versión ligera (lite) que solo cuenta con lo básico y los demás componentes como el \"router\" son proporcionados por otro framework de frontend como React, Vue, Svelte o incluso Phoenix. En las soluciones PWA pueden ocurrir ciertos problemas de experiencia de usuario o inconsistencias que no ocurrirían en nativo, por lo que siempre estar atento a como se renderiza la página en los distintos dispositivos y tamaños. En el desarrollo de aplicaciones móviles, contar con el framework adecuado puede marcar la diferencia. Existen muchas otras opciones disponibles que podrían adaptarse mejor a las necesidades del proyecto. Alternativas KonstaUI: Por los creadores de Framework7, son componentes basados en Tailwind pensados para la navegación móvil. Tabler: Un dashboard hecho en Bootstrap para las aplicaciones administrativas. El archivo manifest.json es el encargado de configurar la PWA, por ejemplo su nombre, íconos, colores, entre otras configuraciones. Para esto se debe seguir un formato específico y tenerlo en la misma ubicación del archivo index.html. Su extensión oficial es .webmanifest, por lo que podrías nombrar tu manifiesto como app.webmanifest. Si bien la extensión recomendada es .webmanifest, cualquier nombre de archivo funcionará siempre y cuando se entregue con el tipo de contenido application/manifest+json o con otro tipo de contenido válido para JSON, como text/json. Por lo tanto, muchas PWA, en especial las más antiguas, usan manifest.json. Existen herramientas para facilitar la creación de un manifest como: https://progressier.com/pwa-manifest-generator Ejemplo de manifest.json { \"theme_color\": \"#2196f3\", \"background_color\": \"#2196f3\", \"icons\": [ { \"purpose\": \"maskable\", \"sizes\": \"512x512\", \"src\": \"AppIcon.png\", \"type\": \"image/png\" }, { \"sizes\": \"512x512\", \"src\": \"AppIcon_rounded.png\", \"type\": \"image/png\" }, { \"purpose\": \"any\", \"src\": \"AppIcon@2x.png\", \"sizes\": \"1024x1024\", \"type\": \"image/png\" } ], \"orientation\": \"portrait\", \"display\": \"standalone\", \"dir\": \"auto\", \"lang\": \"es-ES\", \"name\": \"Mi App\", \"short_name\": \"Mi App\", \"description\": \"Descripción\", \"start_url\": \"https://myweb.example\", \"scope\": \"https://myweb.example/\" } https://web.dev/learn/pwa/web-app-manifest?hl=es-419","title":"Progresive Web Apps","component":"ROOT","version":"","name":"pwa","url":"/mobile/pwa.html","titles":[{"text":"¿PWA o Nativo?","hash":"pwa-o-nativo","id":1},{"text":"Framework7","hash":"framework7","id":2},{"text":"Manifest","hash":"manifest","id":3},{"text":"Referencias","hash":"referencias","id":4}]},"35":{"id":35,"text":"SUBTEL (Subsecretaría de Telecomunicaciones): es un organismo dependiente del Ministerio de Transportes y Telecomunicaciones. Su trabajo está orientado a coordinar, promover, fomentar y desarrollar las telecomunicaciones en Chile, transformando a este sector en motor para el desarrollo económico y social del país. https://www.subtel.gob.cl Existen diversas formas de clasificar a los ISP, sin embargo, la tipificación comúnmente utilizada es “TIER”, la cual se relaciona directamente con la cobertura geográfica que abarca. El número de TIER que se le asigna a cada operador depende de la importancia en cobertura que presente en la red, comenzando con los operadores TIER 1 (aquellos de mayor cobertura) y descendiendo a medida que pierden relevancia en el ecosistema IP. Una tipificación alternativa clasifica a los ISP de acuerdo a la cantidad de redes IP que transporta. Independientemente de la clasificación, los operadores que ofrecen servicio de conectividad a otros ISP, típicamente se les denomina como Carriers, Mayoristas o Wholesale. A continuación, se detalla la clasificación considerando cada tipificación posible. Son las redes de los grandes operadores globales (Global Carriers) que tienen tendidos de fibra óptica que abarcan al menos dos continentes. Desde una red TIER 1 se puede acceder a cualquier punto de Internet gracias a que es una condición necesaria para su clasificación que todos los operadores TIER 1 deben estar conectados entre sí. Se puede decir que las redes TIER 1 forman el actual “Backbone” o troncal de Internet. Algunos ejemplos de compañías que poseen redes TIER 1 son: AT&T (Estados Unidos), Orange (Francia), PCCW Global (Hong Kong), Tata Communications (India) y Verizon (Estados Unidos). Los operadores TIER 1 en general despliegan cables submarinos para interconectar continente, además de cables terrestres para cubrir el área intra-continental. Son operadores de ámbito regional que no pueden alcanzar todos los puntos de Internet, por lo tanto, necesitan conectarse a una red TIER 1. Su principal función es ofrecer servicios de conectividad a los operadores TIER 3. Algunos ejemplos de operadores TIER 2 en LATAM son: Columbus Networks, GlobeNet, Internexa, Ufinet, Silica Networks e IFX Corporation. Los operadores TIER 2 en general despliegan cables terrestres para lograr conectividad entre ciudades además de cables submarinos en caso de buscar cubrir grandes distancias. Pertenecen a los operadores que dan servicio de conexión a Internet a los usuarios finales, tales como: residenciales, empresas, universidades, entidades gubernamentales, etc. A estos se les denomina típicamente como ISP (Internet Service Provider) o proveedores de acceso a Internet. Algunos ejemplos en Latinoamérica son: Telecom Argentina, Comteco, Nuevatel, Telefónica Celular de Bolivia, Telefónica Brasil, Claro Brasil, Telefónica Chile, Claro Chile, Entel Chile, Claro Colombia, EPM Telecomunicaciones, Tigo Colombia, CNT, Conecel, Otecel, Claro Perú, Media Networks (Telefónica), Entel Perú, CO.PA.CO, Giganet, Tigo Paraguay, ANTEL, Movistar Uruguay, Telstar. En general las redes TIER 3 despliegan principalmente tendidos de fibra óptica o redes inalámbricas de larga distancia para lograr conectividad entre ciudades de un mismo país. Además, cuentan con redes de acceso orientadas tanto a cobertura masiva como a nichos específicos a través de tecnología satelital, FTTH, WiFi, Ethernet, 4G, 5G, entre otras, dependiendo del tipo de servicio que busque ofrecer. IPv4 (Internet Protocol versión 4) es el formato de dirección estándar que permite que todas las máquinas en Internet se comuniquen entre sí. IPv4 se escribe como una cadena de dígitos de 32 bits y una dirección IPv4 se compone de cuatro números entre 0 y 255, separados por puntos. IPv6 (Internet Protocol versión 6) es un estándar actualizado para identificar ordenadores en Internet. Al igual que IPv4, proporciona un identificador único a cada dispositivo, pero uno que se ha ajustado para adaptarse al creciente número de ordenadores conectados a Internet en la actualidad. IPv6 aumenta el número de direcciones IP posibles desde los 4 mil millones de IPv4 hasta los 340 billones de billones de billones. IPv6 se escribe como una cadena hexadecimal de dígitos de 128 bits, y una dirección IPv6 típica es algo así: 2001:0ab8:85a2:0000:0000:8a3e:0370:7334 IPv6 se ha optimizado para estar al día con el Internet modernizado de la actualidad. Esto significa deshacerse de ciertos componentes del sistema IPv4 que ya no son necesarios. https://www.avg.com/es/signal/ipv4-vs-ipv6 Las empresas usan las Intranets para que los empleados de los diferentes departamentos accedan la información necesaria para el desarrollo de su actividad. La información compartida puede variar según la empresa, son muy habituales las redes para compartir documentos y bases de datos de gestión. Muchas aplicaciones corporativas pueden considerarse dentro de esta definición. https://blog.dataprius.com/index.php/2019/11/22/una-intranet-que-es-y-para-que-sirve-en-la-empresa/ VPN son las siglas de Virtual Private Network. Una conexión VPN lo que te permite es crear una red local sin necesidad que sus integrantes estén físicamente conectados entre sí, sino a través de Internet. Obtienes las ventajas de la red local (y alguna extra), con una mayor flexibilidad, pues la conexión es a través de Internet y puede por ejemplo ser de una punta del mundo a la otra. https://www.xataka.com/basics/que-es-una-conexion-vpn-para-que-sirve-y-que-ventajas-tiene Una red de área local (LAN) es un grupo de computadoras y dispositivos periféricos que comparten una línea de comunicaciones común o un enlace inalámbrico a un servidor dentro de un área geográfica específica. Una red de área local puede servir a tan solo dos o tres usuarios en una oficina en casa o miles de usuarios en la oficina central de una corporación. https://www.computerweekly.com/es/definicion/Red-de-area-local-o-LAN Una red de área amplia (WAN) es la tecnología que conecta entre sí a las oficinas, los centros de datos, las aplicaciones en la nube y el almacenamiento en la nube. Se denomina red de área amplia porque se extiende más allá de un solo edificio o un gran recinto para incluir múltiples ubicaciones repartidas a lo largo de una zona geográfica concreta, o incluso del mundo. Por ejemplo, las empresas con muchas sucursales internacionales utilizan una WAN para conectar las redes de las oficinas entre sí. La WAN más grande del mundo es Internet puesto que se trata de un conjunto de muchas redes internacionales que se conectan entre sí. https://aws.amazon.com/es/what-is/wan/ Una zona desmilitarizada (demilitarized zone, DMZ) es una red perimetral que protege la red de área local (local-area network, LAN) interna contra el tráfico no confiable. Un significado común para una DMZ es una subred que se encuentra entre la Internet pública y las redes privadas. Expone los servicios externos a redes no confiables y agrega una capa adicional de seguridad para proteger los datos confidenciales almacenados en redes internas, utilizando firewalls para filtrar el tráfico. El objetivo final de una DMZ es permitir que una organización acceda a redes no confiables, como Internet, a la vez que garantiza que su red privada o LAN permanecen seguras. https://www.fortinet.com/lat/resources/cyberglossary/what-is-dmz El Protocolo TCP/IP o Transfer Control Protocol consiste en un acuerdo estandarizado sobre el que se realiza la transmisión de datos entre los participantes de una red informática. La importancia de TCP es que asegura que los mensajes son recibidos en el mismo orden en que son enviados. Por lo que es ideal para el envío de documentos como HTML y aplicaciones de Chat. https://ayudaleyprotecciondatos.es/2021/07/29/protocolo-tcp/ Debido a que el protocolo TCP, aunque proporciona seguridad, también retrasa la transmisión, David Patrick Reed publicó en 1980 su idea del protocolo de datagramas de usuario (User datagram protocol o UDP) como una alternativa más simple y rápida al protocolo estándar. El protocolo UDP es una alternativa directa al protocolo más utilizado, el TCP, aunque ambos se diferencian sobre todo en un punto: mientras que la transmisión en el protocolo TCP tiene lugar una vez se ha producido el enlace obligatorio de 3 vías (con acuse de recibo mutuo entre el emisor y el receptor, incluida la sesión de comunicación), el protocolo UDP no utiliza este procedimiento con el fin de mantener el tiempo de transmisión lo más bajo posible. Un ejemplo común es la transmición de video en vivo (VideoLlamadas, Streaming). https://www.ionos.es/digitalguide/servidores/know-how/udp-user-datagram-protocol/ El Protocolo de control de mensajes de Internet (ICMP) se utiliza para diagnosticar problemas de red en Internet. El ICMP se utiliza principalmente para determinar si los datos llegan o no a su destino a su debido tiempo. El ICMP es crucial para informar de errores y realizar pruebas, pero también se puede utilizar en ataques de denegación de servicio distribuido (DDoS) (Ping de la Muerte). https://www.cloudflare.com/es-es/learning/ddos/glossary/internet-control-message-protocol-icmp/ Nos permite revisar si un dominio ya se encuentra registrado. $ whois ninjas.cl % IANA WHOIS server % for more information on IANA, visit http://www.iana.org % This query returned 1 object refer: whois.nic.cl domain: CL [...] Nos permite ver si un servidor está respondiendo. $ ping ninjas.cl PING ninjas.cl (190.107.177.35): 56 data bytes 64 bytes from 190.107.177.35: icmp_seq=0 ttl=58 time=23.956 ms 64 bytes from 190.107.177.35: icmp_seq=1 ttl=58 time=18.623 ms 64 bytes from 190.107.177.35: icmp_seq=2 ttl=58 time=18.846 ms 64 bytes from 190.107.177.35: icmp_seq=3 ttl=58 time=18.614 ms ^C --- ninjas.cl ping statistics --- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 18.614/20.010/23.956/2.280 ms Nos permite tener trazabilidad sobre donde viajan los paquetes. $ traceroute ninjas.cl traceroute to ninjas.cl (190.107.177.35), 64 hops max, 52 byte packets 1 192.168.0.1 (192.168.0.1) 4.532 ms 2.967 ms 3.716 ms 2 * * * 3 192.168.182.186 (192.168.182.186) 14.507 ms 13.943 ms 12.952 ms 4 * * * 5 192.168.99.29 (192.168.99.29) 19.805 ms 16.914 ms 19.183 ms 6 wirenet-265831.scl.pitchile.cl (45.68.16.159) 19.812 ms 17.184 ms 18.760 ms 7 * * * 8 * * * Nos permite ver las conexiones abiertas. $ netstat Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 192.168.0.9.50417 ec2-35-163-144-2.https ESTABLISHED tcp4 0 0 localhost.63342 localhost.50416 ESTABLISHED tcp4 0 0 localhost.50416 localhost.63342 ESTABLISHED tcp6 0 0 2800:150:14a:174.50411 whatsapp-cdn6-sh.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50320 2800:3f0:4003:c0.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50319 2800:3f0:4003:c0.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50299 2800:3f0:4003:c0.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50296 2800:3f0:4003:c0.https ESTABLISHED tcp4 0 0 192.168.0.9.50294 149.154.175.54.https ESTABLISHED tcp4 0 0 192.168.0.9.50139 192.168.0.8.52148 ESTABLISHED tcp4 0 0 192.168.0.9.50159 55.65.117.34.bc..https ESTABLISHED tcp4 0 0 192.168.0.9.50157 ec2-54-71-185-24.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50155 2800:3f0:4003:c0.https ESTABLISHED tcp4 0 0 192.168.0.9.50153 ec2-54-173-95-25.https ESTABLISHED tcp4 0 0 192.168.0.9.50151 ec2-3-232-128-21.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50145 whatsapp-cdn6-sh.https ESTABLISHED tcp4 0 0 192.168.0.9.50141 149.154.175.50.https ESTABLISHED tcp4 0 0 localhost.63342 localhost.49772 ESTABLISHED tcp4 0 0 localhost.49772 localhost.63342 ESTABLISHED tcp4 0 0 192.168.0.9.50968 249.195.120.34.b.443 ESTABLISHED tcp4 0 0 192.168.0.9.50933 17.57.144.40.5223 ESTABLISHED udp4 0 0 *.59915 *.* udp4 0 0 *.xserveraid *.* udp4 0 0 *.* *.* [....] Permite ver los datos de un dominio. $ nslookup > www.ninjas.cl Server: 2800:150:e:4::4 Address: 2800:150:e:4::4#53 Non-authoritative answer: www.ninjas.cl canonical name = ninjas.cl. Name: ninjas.cl Address: 190.107.177.35 Nos permite ver nuestra dirección IP local. $ ifconfig lo0: flags=8049 mtu 16384 options=1203 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=201 gif0: flags=8010 mtu 1280 stf0: flags=0<> mtu 1280 en0: flags=8863 mtu 1500 options=400 ether d4:61:9d:1d:89:90 inet6 fe80::469:56de:4f74:fe68%en0 prefixlen 64 secured scopeid 0x4 inet 192.168.0.9 netmask 0xffffff00 broadcast 192.168.0.255 inet6 2800:150:14a:174f:18f5:d82e:f403:2091 prefixlen 64 autoconf secured inet6 2800:150:14a:174f:8994:3b2d:4707:3179 prefixlen 64 autoconf temporary nd6 options=201 media: autoselect status: active [...] Wireshark nos permite analizar los paquetes enviados y recibidos. Útil para realizar ingeniería inversa sobre servidores propietarios, analizando la comunicación cliente-servidor. https://www.wireshark.org/ Permiten verificar la dirección IP que tenemos asignada. Útil para revisar si la conexión a VPN es exitosa. https://www.myip.com/ https://cmyip.co/ https://downforeveryoneorjustme.com/: Permite verificar si el servicio está disponible. https://builtwith.com/: Permite saber qué tecnologías utilizan los sistemas web. Utilizando el comando nc (netcat) podemos crear un cliente y servidor que nos permita demostrar el envío de un paquete utiizando TCP. Paso 1: Creamos nuestro servidor $ nc -l 3000 Paso 2: Creamos nuestro cliente en la ip local (en otra terminal) $ nc 127.0.0.1 3000 Paso 3: Si utilizamos el comando netstat podremos ver las conexiones abiertas. $ netstat -an | grep 3000 $ netstat -an | grep 3000 tcp4 0 0 127.0.0.1.3000 127.0.0.1.49557 ESTABLISHED tcp4 0 0 127.0.0.1.49557 127.0.0.1.3000 ESTABLISHED tcp4 0 0 *.3000 *.* LISTEN Paso 4: En la terminal del cliente escribimos un mensaje para ser enviado. $ nc 127.0.0.1 3000 hola Paso 5: Verificamos que el servidor lo recibió. $ nc -l 3000 hola Paso 6: Al abrir Wireshark podremos analizar los paquetes TCP enviados. Cuando registra un dominio, se crea un archivo de zona (conjunto de registros DNS) para ese dominio. La configuración contenida en el archivo de zona solo funciona si los servidores de nombres de su dominio apuntan al hosting, si los servidores de nombres apuntan a otra empresa, entonces el dominio estaría utilizando la configuración de DNS de la otra empresa. CNAME (Canonical Name) es un nombre de host que apunta a otro nombre de host (info.mi-dominio.net a info.mi-dominio.com). Los propietarios de dominios generalmente lo usan para apuntar un dominio o subdominio a otro nombre de dominio (los subdominios normales solo pueden apuntar a un directorio dentro de su cuenta de alojamiento). Utilizado normalmente para Github Pages. Asigna una dirección para tu dominio a una IP específica (www a 12.345.678.90). Los símbolos @ y www se utilizan para indicar el propio dominio raíz. Por ejemplo, un registro @ A para dominio.com es lo mismo que dominio.com apuntando a una determinada IP, y cuando agrega www a un registro A es lo mismo que www.dominio.com para apuntar a una determinada IP. Normalmente usado Para controlar qué servidores específicos alojan una función particular asociada con su presencia en línea (sitio web, correo electrónico, etc.). Muchos otros registros DNS requieren un registro A asociado para funcionar correctamente. El registro AAAA especifica la dirección IP (IPv6) para un host dado. Por lo general, resuelve un nombre de dominio (o apunta el nombre de dominio) a la ubicación correcta por medio de la dirección IPv6. Un nombre de host que define los servidores de recepción de correo y la prioridad en la que se usa cada servidor en caso de que un servidor no pueda recibir correo. Para utilizar un servicio de correo electrónico diferente al de su proveedor de alojamiento o para designar servidores personales como respaldos de correo en caso de que las opciones de correo predeterminadas fallen. Utilizado normalmente para servidores de correo externos. Ejemplo Google Workspace. Un Sender Policy Framework (marco de políticas de remitente), ayuda a reducir el spam y la suplantación de dominio. Para verificar la seguridad del dominio, utilícelo con servicios externos, como Google Analytics. Un nombre de host que apunta a un servidor de nombres específico (shop.tu-dominio.com a ns1.example.com). Para administrar todos los demás registros. Los cambios en los registros A, registros MX y otros registros DNS deben realizarse donde se encuentran sus servidores de nombres. Le permite definir sus propios servidores de nombres en lugar de utilizar los genéricos proporcionados por nosotros (ns1.tu-dominio.com en lugar de ns1.empresa-hosting.com). Para mantener el anonimato entre su negocio en línea y su proveedor de alojamiento, o para utilizar alojamiento en su VPS o servidor dedicado. Los registros SRV (servicio) son registros DNS personalizados que se utilizan para establecer conexiones entre un servicio y un nombre de host. Cuando una aplicación necesita encontrar una ubicación de servicio específica, buscará un registro SRV relacionado. No todas las empresas de hosting soportan esta configuración. El valor de tiempo de vida (TTL) determina cuánto tiempo un servidor DNS, como el ISP, almacena en caché el registro. Lo recomendable es dejar el TTL en su configuración predeterminada. Los cambios en los registros DNS, como los registros A, MX y CNAME, suelen tardar de 4 a 8 horas en aplicarse por completo. Enlaces https://www.ipage.com/help/article/dns-management-dns-records-explained https://bind9.readthedocs.io/en/v9.18.18/ HTTP, de sus siglas en inglés: \"Hypertext Transfer Protocol\", es el nombre de un protocolo el cual nos permite realizar una petición de datos y recursos, como pueden ser documentos HTML. Es la base de cualquier intercambio de datos en la Web, y un protocolo de estructura cliente-servidor, esto quiere decir que una petición de datos es iniciada por el elemento que recibirá los datos (el cliente), normalmente un navegador Web. Así, una página web completa resulta de la unión de distintos sub-documentos recibidos, como, por ejemplo: un documento que especifique el estilo de maquetación de la página web (CSS), el texto, las imágenes, vídeos, scripts, etc. https://developer.mozilla.org/es/docs/Web/HTTP/Overview https://bytebytego.ck.page/subscribe Se finalizó y se documentó completamente en 1996. Cada solicitud al mismo servidor requiere una conexión TCP separada. Se publicó en 1997. Una conexión TCP se puede dejar abierta para su reutilización (conexión persistente), pero no resuelve el problema de bloqueo HOL (head-of-line). El Bloqueo HOL es cuando se agota la cantidad de solicitudes paralelas permitidas en el navegador, las solicitudes posteriores deben esperar a que se completen las anteriores. Se publicó en 2015. Aborda el problema de HOL a través de la multiplexación de solicitudes, lo que elimina el bloqueo de HOL en la capa de aplicación, pero HOL todavía existe en la capa de transporte (TCP). HTTP 2.0 introdujo el concepto de \"flujos\" HTTP: una abstracción que permite multiplexar diferentes intercambios HTTP en la misma conexión TCP. El primer borrador de HTTP 3.0 se publicó en 2020. Es el sucesor propuesto de HTTP 2.0. Utiliza QUIC en lugar de TCP para el protocolo de transporte subyacente, eliminando así el bloqueo HOL en la capa de transporte. QUIC se basa en UDP. Presenta flujos como ciudadanos de primera clase en la capa de transporte. Los flujos QUIC comparten la misma conexión QUIC, por lo que no se requieren protocolos de enlace adicionales ni inicios lentos para crear otros nuevos, pero los flujos QUIC se entregan de forma independiente, de modo que en la mayoría de los casos, la pérdida de paquetes que afecta a un flujo no afecta a los demás. Protocolo utilizado para transferencia de archivos. Programas https://filezilla-project.org/ https://cyberduck.io/ El modelo de interconexión de sistemas abiertos (OSI) describe siete capas que los sistemas informáticos utilizan para comunicarse a través de una red. Fue el primer modelo estándar para comunicaciones en red, adoptado por todas las principales empresas de informática y telecomunicaciones a principios de la década de 1980. La Internet moderna no se basa en OSI, sino en el modelo TCP/IP más simple. Sin embargo, el modelo OSI de 7 capas todavía se usa ampliamente, ya que ayuda a visualizar y comunicar cómo funcionan las redes, y ayuda a aislar y solucionar problemas de red. OSI fue presentado en 1983 por representantes de las principales empresas de informática y telecomunicaciones, y fue adoptado por ISO como estándar internacional en 1984. El protocolo más popular en uso en la actualidad es el Protocolo de control de transmisión/Protocolo de Internet (TCP/IP). Actualmente, Internet y la mayoría de las intranets empresariales utilizan TCP/IP debido a su popularidad, flexibilidad, compatibilidad y capacidad de implementación en redes grandes y pequeñas. El modelo TCP/IP consta de cuatro capas en lugar de las siete del modelo OSI. Las cuatro capas del modelo TCP/IP se correlacionan con las siete capas del modelo OSI, pero las capas del modelo TCP/IP combinan varias capas del modelo OSI. Cuando se analizan los diferentes protocolos en la pila de IP, las capas de los modelos OSI y TCP/IP son intercambiables. En otras palabras, la capa de Internet y la capa de red describen lo mismo, al igual que las capas de transporte, las otras dos capas del modelo TCP/IP están compuestas por múltiples capas del modelo OSI. TCP/IP es de código abierto; sus estándares y protocolos se definen en un foro público a través del IETF (Grupo de trabajo de ingeniería de Internet (IETF)) y se publican mediante RFC (Solicitudes de comentarios). El envío de un mensaje a través de las capas varía según su dirección, es decir, el mensaje de origen tiene que empezar desde la capa superior a la inferior, y cuando llega a su destino, empieza desde la capa inferior a la superior. La capa de aplicación es la capa superior del modelo TCP/IP; la capa de aplicación define los protocolos de aplicación TCP/IP y cómo los programas host interactúan con los servicios de la capa de transporte para usar la red. La capa de aplicación incluye todos los protocolos de nivel superior, como DNS, HTTP, Telnet, SSH, FTP, TFTP, SMTP, DHCP, X Window, RDP, etc. La capa de transporte es la tercera capa del modelo TCP/IP, el propósito de la capa de transporte es permitir que los dispositivos host de origen y destino mantengan una conversación. La capa de transporte define el nivel de servicio y el estado de la conexión utilizada para transportar los datos. Los principales protocolos incluidos en la capa de transporte son TCP (Transmission Control Protocol) y UDP (User Datagram Protocol). La capa de Internet es la segunda capa del modelo TCP/IP de cuatro capas. La capa de Internet proporciona la información de la dirección de origen y destino (dirección lógica o dirección IP) para reenviar datos entre hosts a través de la red; la capa de Internet también es responsable de enrutar datagramas IP. Los principales protocolos incluidos en la capa de Internet son IP (Protocolo de Internet), ICMP (Protocolo de mensajes de control de Internet), ARP (Protocolo de resolución de direcciones), RARP (Protocolo de resolución de direcciones inversa) e IGMP (Protocolo de gestión de grupos de Internet). La capa de acceso a la red, también conocida como capa de acceso al medio, es la primera capa del modelo TCP/IP. La capa de acceso a la red define cómo se envían físicamente los datos a través de la red, incluido cómo los dispositivos físicos (hardware) señalan y envían los bits que interactúan directamente con un medio de red, por ejemplo, un cable coaxial, fibra óptica, cable de cobre de par trenzado, de forma inalámbrica, etc Los protocolos incluidos en la capa de acceso a la red son Ethernet, Token Ring, FDDI, X.25, Frame Relay, entre otros, siendo el más popular Ethernet. Ejemplificamos la comunicación por TCP/IP mediante un caso de una página web hospedada en un servidor web, la cual es transmitida hacia un cliente (navegador). Capa PDU (Protocol Data Unit) Mensajes Encapsulados Aplicación Datos Transporte Segmentos Red Paquetes Enlace de Datos Tramas Física Bits El servidor transforma la información a un formato transportable por el medio físico y se envía al cliente. Capa Descripción Aplicación Toma el contenido de la página web creado por un framework o un archivo html. Opcionalmente las encripta (SSL/TLS). Transforma los datos a binario. Se agregan los encabezados del protocolo HTTP (Ej. 200 OK) Transporte Si la página tiene un tamaño mayor a 1500 bytes, el contenido es fragmentado en paquetes más pequeños. Enviado utilizando los protocolos TCP que agregan (encapsulan) sus propios encabezados (por ejemplo puertos de origen y destino). Red Los contenidos ya no serán alterados. Entra en acción el protocolo IP y encapsula agregando sus encabezados (Ej. IP de origen e IP destino), esto se conoce como información de direccionamiento lógico. Enlace de Datos Encapsula y agrega un encabezado header (dirección MAC origen {servidor} y dirección MAC destino {cliente}) y un encabezado trailer (Detección de Errores) Física Luego de ser encapsulada por todas las capas anteriores. No se agregan más encabezados y es transformada a un medio físico como señales eléctricas, ondas electromagnéticas o señales de luz y es enviada hacia el cliente web. El cliente aplica el proceso inverso y finalmente muestra el resultado en el navegador web. Capa Descripción Física Decodifica el mensaje transformando las señales eléctricas, electromagnéticas o de luz a código binario. Enlace de Datos Desencapsula, quitando los encabezados de header y trailer respectivos. Red Desencapsula, quitando los encabezados de IP respectivos. Transporte Desencapsula, quitando los encabezados de TCP respectivos. Agrupa todos los segmentos (o fragmentos) para formar un solo archivo Aplicación Desencapsula, quitando los encabezados de HTTP. Transformando la información binaria a caracteres legibles por el ser humano y finalmente construir el sitio web en el navegador. https://ccnadesdecero.es/ https://www.youtube.com/@MasteringIT https://jmcristobal.com/2017/04/26/tcpip-model/ https://www.imperva.com/learn/application-security/osi-model/ https://www.ietf.org/ https://datatracker.ietf.org/doc/html/rfc1180 https://www.ionos.com/digitalguide/server/know-how/introduction-to-tcpip/","title":"Redes e Internet","component":"ROOT","version":"","name":"chapter","url":"/networking/chapter.html","titles":[{"text":"ISP: Internet Service Provider","hash":"isp-internet-service-provider","id":1},{"text":"Tier 1","hash":"tier-1","id":2},{"text":"Tier 2","hash":"tier-2","id":3},{"text":"Tier 3","hash":"tier-3","id":4},{"text":"Dirección IP","hash":"dirección-ip","id":5},{"text":"IPv4","hash":"ipv4","id":6},{"text":"IPv6","hash":"ipv6","id":7},{"text":"Intranet","hash":"intranet","id":8},{"text":"VPN","hash":"vpn","id":9},{"text":"LAN","hash":"lan","id":10},{"text":"WAN","hash":"wan","id":11},{"text":"DMZ","hash":"dmz","id":12},{"text":"Paquetes","hash":"paquetes","id":13},{"text":"TCP (Transmission Control Protocol)","hash":"tcp-transmission-control-protocol","id":14},{"text":"UDP (User Datagram Protocol)","hash":"udp-user-datagram-protocol","id":15},{"text":"ICMP (Internet Control Message Protocol)","hash":"icmp-internet-control-message-protocol","id":16},{"text":"Herramientas","hash":"herramientas","id":17},{"text":"whois","hash":"whois","id":18},{"text":"ping","hash":"ping","id":19},{"text":"traceroute","hash":"traceroute","id":20},{"text":"netstat","hash":"netstat","id":21},{"text":"nslookup","hash":"nslookup","id":22},{"text":"ifconfig / ip","hash":"ifconfig-ip","id":23},{"text":"Wireshark","hash":"wireshark","id":24},{"text":"Myip","hash":"myip","id":25},{"text":"Otros Servicios","hash":"otros-servicios","id":26},{"text":"Ejercicio 1: Demostración de envío de Paquetes TCP","hash":"ejercicio-1-demostración-de-envío-de-paquetes-tcp","id":27},{"text":"Registros DNS (Zona)","hash":"registros-dns-zona","id":28},{"text":"CNAME","hash":"cname","id":29},{"text":"A Record","hash":"a-record","id":30},{"text":"AAAA Record","hash":"aaaa-record","id":31},{"text":"MX Record","hash":"mx-record","id":32},{"text":"TXT/SPF Record","hash":"txtspf-record","id":33},{"text":"Name Server Record","hash":"name-server-record","id":34},{"text":"Private Name Server","hash":"private-name-server","id":35},{"text":"SRV Record","hash":"srv-record","id":36},{"text":"TTL (Time To Live)","hash":"ttl-time-to-live","id":37},{"text":"Protocolos","hash":"protocolos","id":38},{"text":"HTTP","hash":"http","id":39},{"text":"HTTP 1.0","hash":"http-1-0","id":40},{"text":"HTTP 1.1","hash":"http-1-1","id":41},{"text":"HTTP 2.0","hash":"http-2-0","id":42},{"text":"HTTP 3.0","hash":"http-3-0","id":43},{"text":"FTP (File Transfer Protocol)","hash":"ftp-file-transfer-protocol","id":44},{"text":"Modelo TCP/IP","hash":"modelo-tcpip","id":45},{"text":"Capa 4. Capa de aplicación","hash":"capa-4-capa-de-aplicación","id":46},{"text":"Capa 3. Capa de transporte","hash":"capa-3-capa-de-transporte","id":47},{"text":"Capa 2. Capa de Internet","hash":"capa-2-capa-de-internet","id":48},{"text":"Capa 1. Capa de acceso a la red","hash":"capa-1-capa-de-acceso-a-la-red","id":49},{"text":"Ejemplo: Página Web","hash":"ejemplo-página-web","id":50},{"text":"Servidor","hash":"servidor","id":51},{"text":"Cliente","hash":"cliente","id":52},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":53}]},"36":{"id":36,"text":"La criptografía juega un papel fundamental en la seguridad de aplicaciones web y móviles. Permite transmitir información de forma que solo pueda ser vista y comprendida por el emisor y el receptor designado, ayudando a que terceros no puedan visualizar o adulterar el contenido original. El hash es una forma de codificar un dato para detectar cualquier cambio de forma sencilla. El menor cambio mostrará una secuencia de caracteres totalmente distinta. El hash tiene la característica que es solo de una vía, un contenido no puede volver a su versión original si pasa por una función de hash. Los hash son usados, por ejemplo, por las criptomonedas al momento de verificar los bloques utilizando técnicas como el Árbol de Merkle. También son usados para verificar si un archivo ha sido descargado correctamente y no ha sido adulterado al verificar su hash. MD5 es un hash creado en 1991 que fue muy popular en las aplicaciones webs de los 90s y principios del 2000. Hoy en día no es recomendado para nada más que verificar la integridad de datos. Ya que con el avance tecnológico el poder de cómputo avanza hasta lograr quebrar este algoritmo, provocando que pueda ser descubierto el dato original (usando tablas de palabras) o existan colisiones, es decir dos o más datos con el mismo hash. Es un hash muy popular originado en 1993, su versión SHA-256 es utilizado por criptomonedas como Bitcoin para verificar los bloques del blockchain. Sin enmbargo no es recomendable para almacenar contraseñas, debido a que el SHA está optimizado para velocidad. Bcrypt es un hash originado en 1999, recomendado para ocultar contraseñas en las bases de datos. Tiene la característica de ser resistente a ataques de tablas de palabras (rainbow tables) y fuerza bruta, por lo que no se ve afectado por el aumento del poder de cómputo en el tiempo. Base64 es una forma de codificar binario en texto plano. Sirve por ejemplo para incrustrar imágenes en sitios web dentro del mismo archivo html. Hay que tener en cuenta de que algunos caracteres de Base64 no son compatibles con las URL, por lo que se debe ver una variante que no tenga los caracteres como / si se usará para enviar datos por url (URL Safe Base64). HMAC son las siglas de Código de Autenticación de Mensajes basado en Hash (por sus siglas en inglés, Hash-based Message Authentication Code). Se trata de un método de seguridad que utiliza una función hash criptográfica y una clave secreta compartida para verificar la integridad y la autenticidad de un mensaje. Esto significa que garantiza que el mensaje no ha sido alterado durante la transmisión y que proviene de la fuente esperada. Un JWT (JSON Web Token) es un estándar abierto para transmitir de forma segura información entre partes como un objeto JSON. Se utiliza comúnmente para la autenticación, permitiendo que el servidor verifique la identidad del usuario en cada solicitud posterior sin necesidad de consultar la base de datos repetidamente. Está compuesto por tres partes separadas por puntos: un encabezado (metadata), una carga útil (claims de datos) y una firma (para verificar la integridad del token). Ejemplode JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30 Las cookies son pequeños archivos de texto que los sitios web envían a tu navegador y que se almacenan en tu dispositivo (computadora, tablet, etc.). Se utilizan para que los sitios web \"recuerden\" información sobre tu visita, como el inicio de sesión, preferencias y actividad, para ofrecerte una experiencia más personalizada y útil. También pueden servir para registrar cómo interactúas con un sitio, lo que permite a los desarrolladores y anunciantes entender mejor a los usuarios. Una alternativa a las cookies de sesión es el uso de tokens de autenticación, el cual es más popular en situaciones de comunicación via API REST. Un token de autenticación es un dato que verifica la identidad de un usuario o dispositivo para permitirle acceder a aplicaciones, servicios o APIs sin necesidad de ingresar credenciales cada vez. Funciona como un \"pase\" digital que se genera después de un inicio de sesión exitoso y se envía en solicitudes posteriores para mantener la sesión activa. Los tokens pueden ser digitales, como los tokens web (JWT), o físicos, como los que se conectan a través de USB o se reciben en un smartphone. https://www.cloudflare.com/es-es/learning/privacy/what-are-cookies/ El intercambio de claves Diffie-Hellman es un protocolo criptográfico que permite a dos partes crear de forma segura una clave secreta compartida sobre un canal público e inseguro, sin que esa clave viaje nunca por la red. Este método se basa en la matemática de las funciones de un solo sentido y es fundamental para el cifrado de comunicaciones, ya que las claves resultantes se usan para asegurar la comunicación posterior. Es muy común verlo utilizado para verificar conexiones ssh y generar llaves únicas para las criptomonedas. En términos simples existe una llave privada que será solo conocida por el autor y una llave pública que será divulgada públicamente. Lo que se encripta con la llave privada puede ser decodificado solamente por la llave pública, lo que se encripta con la llave pública puede solamente ser decodificado por la llave privada. Esto se conoce como encriptación asimétrica.","title":"Criptografía y Autenticación","component":"ROOT","version":"","name":"cryptography","url":"/security/cryptography.html","titles":[{"text":"Hash","hash":"hash","id":1},{"text":"MD5","hash":"md5","id":2},{"text":"SHA","hash":"sha","id":3},{"text":"Bcrypt","hash":"bcrypt","id":4},{"text":"Base64","hash":"base64","id":5},{"text":"HMAC","hash":"hmac","id":6},{"text":"JWT","hash":"jwt","id":7},{"text":"Sesiones, Tokens y Cookies","hash":"sesiones-tokens-y-cookies","id":8},{"text":"Diffie-Hellman","hash":"diffie-hellman","id":9}]},"37":{"id":37,"text":"En el ciclo de desarrollo se debe resolver tempranamente los requerimientos de seguridad, regulaciones, cumplimiento y riesgos asociados. Por lo que se deben considerar en las primeras etapas de planificación del proyecto. Es adecuado seguir las recomendaciones de seguridad de la última versión del Owasp Top 10. Beneficios de considerar Reducir la probabilidad de una falla de seguridad y sus consecuencias, como pérdida de reputación comercial o multas. Evitar fisuras que permitan liberar información delicada que pueden costar millones de dólares por incidente. Para mayor información se recomiendan los siguientes recursos: https://github.com/mirego/elixir-security-advisories https://softwarepatternslexicon.com/patterns-elixir/23/2/ https://hacksplaining.com/lessons https://www.manning.com/books/grokking-web-application-security Entre los actores de la seguridad se encuentran principalmente tres y se diferencian con un \"color de sombrero\". Los hackers de sobrero negro. Son los actores maliosos, también conocidos como crackers. Trabajan para fines no éticos y crean virus, troyanos, backdoors, keyloggers, entre otras herramientas para obtener beneficios económicos o mandar mensajes políticos. Son los criminales de la ciber seguridad. Algunos contratados por organizaciones criminales e individuos de baja fibra moral. Los hackers de sombrero gris son aquellos que intentan vulnerar los sistemas pero sin el conocimiento de las organizaciones, aunque pueden ofrecerlo sus descubrimientos a la organización o al mejor postor. Están en una zona gris donde depende de la moralidad de la persona en qué área moverse. Podrían ser actores contratados por el gobierno para realizar ataques de ciber guerra. Los hackers de sombrero blanco. Son investigadores de la ciber seguridad contratados por las empresas para intentar vulnerar a los sistemas antes de que los actores maliciosos descubran vulnerabilidades. Utilizan las mismas herramientas y metodologías de los atacantes, pero siempre en pos de mejorar la seguridad de la organización para la cual trabajan. La seguridad es un tema amplio, por lo que se mostrará solo un pequeño punteo de los problemas más comunes que pueden aparecer en aplicaciones web y móviles. Se recomienda la lectura de libros especializados en el tema, como Grokking Web Application Security para profundizar. Los ataques de Cross Site Scripting (XSS) consisten en lograr subir un script ejecutable como Javascript o PHP al sitio web, debido a que los formularios no son adecuadamente protegidos, validados ni verificados en el frontend o en el backend. Por lo que un atacante puede subir código ejecutable que permita obtener acceso a datos valiosos como las contraseñas, cookies o incluso acceso al servidor al instalar puertas traseras (backdoors) dentro del código ejecutable. Los ataques de SQLInjections son similares a los XSS, pero están más orientados a ejecutar consultas SQL y realizar operaciones para obtener la base de datos o dañar la información almacenada. El ataque Man in The Middle (Hombre en el medio). Consiste en escuchar las comunicaciones entre un dispositivo y el internet. Esto es posible con que el dispositivo se conecte a una red no segura o que este utilizando un proxy que desvié las comunicaciones al computador de un tercero antes de llegar a internet. Normalmente las comunicaciones deben estar encriptadas con SSL pero no todos los sitios web y aplicaciones están correctamente configuradas. En las aplicaciones móviles para proteger de un MITM se utiliza la técnica de fijación de SSL o SSL Pinning el cual consiste en tener un certificado de SSL almacenado en la aplicación, por lo que siempre se podrá verificar la autenticidad de un certificado y no podrá ser adulterado por un proxy atacante. El envenenamiento de las dependencias o abuso de la cadena de dependencias, consiste en que las dependencias de una aplicación son adulteradas por un tercero en la fuente original. Por lo que es un ataque masivo a todas las aplicaciones que utilicen la dependencia. Esto ocurre por problemas de seguridad en el origen de las dependencias o por que los autores originales de la misma fueron atacados para robar sus contraseñas o dispositivos. Para evitar estos ataques se debe estar pendiente de cualquier vulnerabilidad en los canales oficiales y seguir las recomendaciones de seguridad del framework usado. Más Info. Es el envío de emails o links que simulan ser una página oficial como un banco o tienda. Solicita a la persona datos privados usando formularios adulterados con urls sospechosas similares a una página oficial. Hay una nueva modalidad de ataque a los desarrolladores, sobre todo los que buscan trabajo de enviar un proyecto para ser mejorado dentro del contexto de reclutamiento para una posición de trabajo. Este proyecto tiene dependencias o código malicioso que puede robar contraseñas u otras cosas importantes, como acceso a código de proyectos empresariales. Se recomienda siempre utilizar una máquina virtual con Linux (recomendanción Debian) antes de ejecutar cualquier código para un tercero, sobre todo para cuando se tenga estos procesos de reclutamiento. Desconfiar si el reclutador es de países sospechosos o insiste en ejecutar el código antes de comenzar cualquier formalidad en el proceso de reclutamiento. Cross Site Request Forgery (Falsificación de Peticiones de Sitio Cruzado) Los formularios pueden ser incrustrados en otras páginas que simulan ser la original. Si el sitio no protege sus formularios contra este ataque puede hacer que sus usuarios sean víctima de ataques MITM o clonación de datos, también el sitio puede ser sobrepasado con envíos masivos de peticiones (DDoS) o utilización de recursos para envío de SPAM y otras prácticas nocivas. Los stacks tecnológicos actuales proveen protección contra este ataque al generar un token único que se incrusta en el formulario. Este token solo puede ser validado por el backend, por lo que un atacante no podrá adulterar el formulario. El siguiente es un ejemplo utilizando el framework ProcessWire de PHP. frontend // Incluir en los campos del formulario CSRF->renderInput(); ?>\"> backend // verificar si el token es válido if($session->CSRF->hasValidToken()) { // se puede continuar } else { // el formulario es sospechoso throw new WireException('CSRF check failed!'); } Es la práctica de convencer a personas para que liberen información privada a través de engaños o manipulación emocional. Es una técnica usada normalmente por estafadores de teléfono para acceder a dineros o claves de tarjeta de crédito.","title":"Seguridad de las Aplicaciones","component":"ROOT","version":"","name":"security","url":"/security/security.html","titles":[{"text":"Actores","hash":"actores","id":1},{"text":"Black Hat Hackers","hash":"black-hat-hackers","id":2},{"text":"Grey Hat Hackers","hash":"grey-hat-hackers","id":3},{"text":"White Hat Hackers","hash":"white-hat-hackers","id":4},{"text":"Problemas de Seguridad Comunes","hash":"problemas-de-seguridad-comunes","id":5},{"text":"XSS","hash":"xss","id":6},{"text":"SQLInjections","hash":"sqlinjections","id":7},{"text":"MITM","hash":"mitm","id":8},{"text":"Dependency Chain Abuse","hash":"dependency-chain-abuse","id":9},{"text":"Phishing","hash":"phishing","id":10},{"text":"Developer Phishing","hash":"developer-phishing","id":11},{"text":"CSRF","hash":"csrf","id":12},{"text":"Social Engineering","hash":"social-engineering","id":13}]},"38":{"id":38,"text":"Las elecciones de tecnología y soluciones propuestas para completar un projecto están influenciadas por diversas decisiones tomadas por los miembros del equipo involucrados en el proyecto durante la fase de desarrollo. Las ADR ayudan a nuevos integrantes del equipo a comenzar más rápido y a documentar los factores que jugaron un rol importante para llegar a una decisión, dando contexto y respondiendo las preguntas ¿Qué?, ¿Por qué?, ¿Cómo?, ¿Cuándo? y ¿Dónde? de cada decisión ([cognitect-2011]). En la comunicación técnica no se habla mucho sobre cómo se apoya las decisiones. En muchos casos se habla sobre apoyo a las tareas. La información que las personas necesitan para completar las tareas no es unicamente la relativa a sobre cómo operar las máquinas o procesos, mas bien se necesita información que apoye la toma de decisiones. Documentar los procesos no es suficiente, ya que es necesario documentar el contexto, permitiendo a los usuarios conocer las decisiones que deben tomar, sus consecuencias como también recursos y referencias que ayudarán a determinar la decisión a tomar ([baker-2013]). Entre alguna de las ventajas de usar ADR se puede mencionar: Ayudan a reducir el número de reuniones. Permiten tener un acervo documental para tomar decisiones más complejas. Dan contexto y permiten analizar distintas opciones para encausar el proyecto al mejor camino de forma más certera. Permiten una conversación abierta a los integrantes del equipo y reducen el tiempo de explicación sobre las deciciones tomadas en un área. Recomendaciones Todas las decisiones importantes deben ser documentadas con ADR. Los miembros del equipo deben aprender el formato para crear y leer ADR. Las discuciones sobre los ADR deben ser realizadas en herramientas de colaboración que reduzcan los tiempos de reuniones al permitir que cada miembro pueda comentar asíncronamente. Los miembros del equipo deben mantener actualizados los ADR cambiando su estado, datos y metadatos según la evolución histórica de las decisiones. Los ADR son escenciales para ver la evolución histórica de un proyecto, como una central de todas las decisiones. Por lo que son vitales para planificar nuevas características y evolución futura del proyecto. Almacenarlos en un directorio llamado decisions (decisiones) dentro del código del proyecto con archivos en formato de texto plano como Asciidoc o dentro de un repositorio documental público y común (antora, wiki, confluence). Table 1. Tabla de Estados de un ADR Estado Descripción Borrador (Draft) El ADR todavía está en preparación. Propuesta (Proposed) El ADR se ha creado y está siendo discutido por los involucrados. Aceptado (Accepted) El ADR fue aceptado para su implementación. Completado (Ready) El ADR fue aceptado e implementado correctamente. Obsoleto Suave (Soft Deprecated) Un ADR completado será obsoleto. Aún no existe un ADR completado alternativo. Obsoleto Fuerte (Hard Deprecated) Un ADR completado está obsoleto y existe un ADR completado que lo reemplaza. Cerrado (Declined) El ADR no llegó a una conclusión definitiva en un tiempo determinado o no se completo lo suficiente para ser relevante en el contexto actual. Estado: Borrador Fecha Creación: 2024-03-22 (ISO 8601) Fecha Última Modificación: 2024-03-22 (ISO 8601) Participantes: (Quienes pueden opinar) @Persona1 @Persona2 @Persona3 Decisores: (Quienes toman la decisión) @Persona4 @Persona5 @Persona6 Contexto El contexto permite a los decidores realizar su análisis y aplicar su juicio. Se recomienda dar la mayor cantidad de información posible. Entre algunas cosas que puede llevar el contexto se encuentra: Breve descripción de la situación actual, Diagramas de arquitectura, flujo, estado, secuencias, componentes, entre otros. ¿Cuál es el problema a resolver?, ¿Qué factores claves pueden motivar la decisión? (complejidad, riesgos, optimización, calendarios y otras prioridades). Lista de opciones y alternativas Se presenta una lista de opciones y alternativas con sus respectivos análisis (descripción, diagramas, ventajas, desventajas, posibles consecuencias de su elección) que permitan elegir una decisión final. Decisión Se da una decisión final por los involucrados considerando todos los factores y opciones presentados en el contexto y alternativas. Observaciones y Notas Se da apreciaciones sobre posibles problemas o consideración que podrían tener con la decisión y los pasos a seguir para continuar con su implementación. Normalmente realizadas en el proceso de discución, se deben documentar en este segmento. Preguntas Abiertas Se da una lista de preguntas a tener en consideración y sus respuestas. Normalmente realizadas en el proceso de discución, se deben documentar en este segmento.","title":"Arquitecture Decision Records","component":"ROOT","version":"","name":"adr","url":"/swe/adr.html","titles":[{"text":"Plantilla","hash":"plantilla","id":1}]},"39":{"id":39,"text":"Como una forma de priorizar contratos preparados para el futuro, que reducen lo más posible cambios en el lado del cliente cuando las APIs evolucionen. Se recomienda utilizar el formato de versiones vMAJOR.MINOR.PATCH. MAJOR: Generado manualmente (número autoincremental) al momento de eliminar características marcadas como \"obsoleta de forma fuerte\". El incremento reinicia el número de MINOR y PATCH. MINOR: Generado manualmente (número autoincremental) al momento de marcar características como \"obsoleta de forma fuerte\" o cuando se desee reiniciar el número de PATCH. Se recomienda realizar una nueva versión MINOR cada 6 meses. PATCH: Generado automáticamente (número autoincremental) cuando se hace un nuevo commit a la rama main. No tiene un límite máximo definido. Queda a jurisdicción del equipo fijar los criterios para aumentar la versión MINOR o MAJOR. Las versiones MINOR y PATCH son retrocompatibles, esto quiere decir que las APIs bien definidas y documentadas en una versión seguirán funcionado en futuras versiones. Si bien la gran mayoría de los consumidores seguirán siendo compatibles con el tiempo, es imposible garantizar que cambios futuros no rompan algún contrato. En algunas situaciones específicas y poco probables se debe recurrir a romper el contrato establecido: Seguridad: Un incidente de seguridad en la implementación donde su solución requiera quebrar la retrocompatibilidad. En dicho caso se debe marcar en la documentación como seguridad y anunciar en los canales de comunicación para permitir a los consumidores actualizar raudamente sus clientes. Fallos de Comportamiendo: Cuando una API tiene un comportamiento inadecuado (resultados erróneos o similar), un consumidor que la utilice puede verse afectado, por lo que la retrocompabilidad no está garantizada. Corrección de ambigüedades o herramientas: Cuando herramientas asociadas o comportamientos no están los suficientemente claros o detallados y se deben mejorar para reducir la ambigüedad. Adicionalmente algunas características pueden ser marcadas como Experimentales, las cuales no ofrecen ninguna garantía evolutiva y pueden cambiar o ser eliminadas en su totalidad hasta que no se les considere como Estables. Se recomienda aplicar corrección de errores solamente a la versión MINOR actual. Los parches de seguridad deben ser aplicados para las últimas 5 versiones MINOR disponibles. En la siguiente tabla se muestra como el lenguaje de programación Elixir ([hexdocs-elixir-deprecations-2024]) da soporte a las distintas versiones. Table 1. Versiones soportadas en Elixir Versión de Elixir Tipo de soporte 1.17 Corrección de errores y parches de seguridad 1.16 Solamente parches de seguridad 1.15 Solamente parches de seguridad 1.14 Solamente parches de seguridad 1.13 Solamente parches de seguridad Cuando una característica se marca como obsoleta (deprecated) pasa por tres etapas: La característica tiene un estado \"obsoleta de forma suave\" (soft-deprecation). Esto significa mencionar en el archivo CHANGELOG y la documentación que la característica esta marcada como obsoleta, pero dentro del código no se mostrará ninguna alerta cuando se ejecute el código. Los desarrolladores no están obligados a realizar cambios en su código cuando una característica esta con estado \"obsoleta de forma suave\". La característica tiene un estado de \"obsoleta de forma fuerte\" (hard-deprecation). Esto significa que el uso de la característica emitira alertas anunciado su estado, además de proporcionar la alternativa o documentación correspondiente. Para que una característica pase a \"obsoleta de forma fuerte\" su alternativa DEBE existir desde por al menos TRES versiones menores (MINOR). Se recomienda a los desarrolladores migrar a la alternativa. La característica marcada como \"obsoleta de forma fuerte\" es removida solo al paso de versiones mayores. Es decir si la versión actual es v1.x solamente serán removidas en v2.x. La siguiente es una tabla de ejemplo que contiene una lista de características marcadas como obsoletas. La primera columna indica la versión donde fue marcada como \"obsoleta de forma fuerte\". La segunda columna describe brevemente la característica obsoleta y la tercera columna explica su reemplazo y en qué versión estuvo disponible. Table 2. Tabla de Obsolescencia del Lenguaje Elixir Versión Característica Obsoleta Alternativa (disponible desde) v1.17 Single-quoted charlists ('foo') ~c\"foo\" (v1.0) v1.17 left..right in patterns and guards left..right//step (v1.11) v1.17 ExUnit.Case.register_test/4 register_test/6 (v1.10) v1.17 :all in IO.read/2 and IO.binread/2 :eof (v1.13) Dentro del desarrollo de software se conoce como Alpha o Beta las versiones de productos o servicios que aún no están en su versión final y se esperan cambios parciales o totales hasta llegar a su versión definitiva. Sin embargo dichos términos no son lo suficientemente claros o consistentes para ayudar a comprender a los clientes los estados de las nuevas funciones de un sistema y como encajan los cambios en sus flujos de trabajo. Para esto y utilizando la terminología de Github ([github-blog-2024]), se proporciona la siguiente tabla que permite categorizar correctamente el estado de madurez y disponibilidad de un producto, característica o servicio. Terminología Descripción Prevista Privada No anunciado. Disponibilidad privada. Pensado para un selecto grupo de colaboradores internos o consumidores específicos. Prevista Técnica Anunciado privadamente. Disponibilidad privada. Pensado para un selecto grupo de colaboradores internos o consumidores específicos. Normalmente usado para afinar detalles y comprobar funcionalidad antes de la disponibilidad pública. Prevista Pública Anunciado públicamente. Disponibilidad pública. Puede estar abierto para todos o estar limitado a un grupo de consumidores detrás de una lista de espera. Algunos detalles pueden cambiar antes de la versión final. Disponibilidad General Versión final implementada en producción. Esta abierto a todos los consumidores que cumplan los criterios para acceder a la funcionalidad. Cambios drásticos en el producto o servicio no están permitidos ya que afectarían negativamente a los consumidores. Cualquier cambio al contrato inicial debe ser anunciado, gradual, incremental y retrocompatible dentro de las versiones MINOR y solo permitido cambios fuertes al pasar a una versión MAJOR. Cerrando (Closing Down) Señala que un producto o servicio está siendo cerrado y dejará de estar disponible en un plazo establecido. Atardecer (Sunset) El producto o característica ha llegado al fin de su ciclo de vida. No estará disponible, soportado o mantenido.","title":"Versionado y Política de Compatibilidad y Obsolescencia","component":"ROOT","version":"","name":"deprecation","url":"/swe/deprecation.html","titles":[{"text":"Características experimentales","hash":"características-experimentales","id":1},{"text":"Corrección de Errores y Parches de Seguridad","hash":"corrección-de-errores-y-parches-de-seguridad","id":2},{"text":"Política de Obsolescencia","hash":"política-de-obsolescencia","id":3},{"text":"Tabla de Obsolescencia","hash":"tabla-de-obsolescencia","id":4},{"text":"Estados de un Sistema","hash":"estados-de-un-sistema","id":5}]},"40":{"id":40,"text":"Un estilo arquitectónico establece un marco de referencia a partir del cual es posible construir aplicaciones que comparten un conjunto de atributos y características mediante el cual es posible identificarlos y clasificarlos. La arquitectura en capas es una de las más utilizadas, no solo por su simplicidad, sino porque también es utilizada por defecto cuando no estamos seguros que arquitectura debemos de utilizar para nuestra aplicación. La arquitectura en capas consta en dividir la aplicación en capas, con la intención de que cada capa tenga un rol muy definido, como podría ser, una capa de presentación (UI), una capa de reglas de negocio (servicios) y una capa de acceso a datos (DAO), sin embargo, este estilo arquitectónico no define cuantas capas debe de tener la aplicación, sino más bien, se centra en la separación de la aplicación en capas (Aplica el principio Separación de preocupaciones (SoC)). En la práctica, la mayoría de las veces este estilo arquitectónico es implementado en 4 capas, presentación, negocio, persistencia y base de datos, sin embargo, es habitual ver que la capa de negocio y persistencia se combinan en una solo capa, sobre todo cuando la lógica de persistencia está incrustada dentro de la capa de negocio. Un detalle a tener en cuenta en esta arquitectura, es que cada capa debe de ser un componente independiente, de tal forma que se puedan desplegar por separado, incluso, es habitual que estos componentes residan en servidores separados pero que se comunican entre sí. Referencias https://reactiveprogramming.io/blog/es/estilos-arquitectonicos/capas El estilo arquitectónico monolítico consiste en crear una aplicación autosuficiente que contenga absolutamente toda la funcionalidad necesaria para realizar la tarea para la cual fue diseñada, sin contar con dependencias externas que complementen su funcionalidad. En este sentido, sus componentes trabajan juntos, compartiendo los mismos recursos y memoria. En pocas palabras, una aplicación monolítica es una unidad cohesiva de código. Una falsa creencia es que, una aplicación monolítica es un caos por dentro, donde todo el código está amontonado, no hay una estructura clara y que por lo general tiene miles de clases u objetos, sin embargo, esto es solo una mala fama que se le ha dado, si bien es verdad que se podía dar el caso, recordemos que eso también se podría dar en cualquier estilo de arquitectura, pues eso dependen más bien del programador y no del estilo arquitectónico. Otra falsa creencia es creer que las aplicaciones Monolíticas son solo las aplicaciones grandísimas que hacen un montón de cosas, pero lo cierto es que un monolítico puede ser de una sola clase, o de miles, lo que define un estilo monolítico no es el número de clases, archivos o líneas de código, lo que lo define es que es autosuficiente, es decir, que tiene toda la funcionalidad para operar por sí mismo y sin depender de nadie más. En la imagen podemos apreciar cómo funciona el proceso de compilación de una aplicación Monolítica, el cual todos los paquetes junto con sus dependencias son compilados y da como resultado un solo artefacto, el cual incluye todo el código junto con las dependencias. En este ejemplo decimos que hemos creado un EXE, pero se pudo haber creado un Jar en el caso de Java o un JS en el caso de JavaScript, dependiendo la tecnología utilizada tendremos un artefacto diferente, pero al final, todos contendrán todo el código con sus dependencias. Referencias https://reactiveprogramming.io/blog/es/estilos-arquitectonicos/monolitico El estilo de Microservicios consiste en crear pequeños componentes de software que solo hacen una tarea, la hace bien y son totalmente autosuficientes, lo que les permite evolucionar de forma totalmente independiente del resto de componentes. Un Microservicios es un pequeño programa que se especializa en realizar una pequeña tarea y se enfoca únicamente en eso, por ello, decimos que los Microservicios son Altamente Cohesivos, pues toda las operaciones o funcionalidad que tiene dentro está extremadamente relacionadas para resolver un único problema. En este sentido, podemos decir que los Microservicios son todo lo contrario a las aplicaciones Monolíticas, pues en una arquitectura de Microservicios se busca desmenuzar una gran aplicación en muchos y pequeños componentes que realizar de forma independiente una pequeña tarea de la problemática general. REST Cliente Servidor Service Oriented Peer 2 Peer Event Driven MicroKernel MVC (Modelo-Vista-Controlador) es un patrón en el diseño de software comúnmente utilizado para implementar interfaces de usuario, datos y lógica de control. Enfatiza una separación entre la lógica de negocios y su visualización. Esta \"separación de preocupaciones\" proporciona una mejor división del trabajo y una mejora de mantenimiento. Algunos otros patrones de diseño se basan en MVC, como MVVM (Modelo-Vista-VistaModelo), MVP (Modelo-Vista-Presentador) y MVW (Modelo-Vista-Whatever). El patrón Modelo-Vista-Controlador (MVC), es uno de los primeros que se debería aprender. Es tan fundamental que ha sobrevivido décadas en la industria y sus ideas se han esparcido por muchas plataformas. Es el padre de muchos otros patrones derivados como MVVM (Modelo-Vista-VistaModelo), entre otros. Este patrón es esencial debido a que ayuda a responder una de las preguntas más comunes: ¿Dónde debería poner esta pieza de código?. El patrón MVC es uno de arquitectura. Entrega un mapa de la estructura de la aplicación y como su nombre dice, consiste en tres capas: modelo, vista y controlador. El siguiente diagrama de Apple muestra un poco la relación de las vistas y controladores. https://developer.apple.com/library/archive/featuredarticles/ViewControllerPGforiPhoneOS/index.html El principal problema de MVC y por qué razón nacieron otros patrones derivados es debido a la tendencia de que los controladores crecían de forma exponencial. Incluso llegando a ser llamado \"Massive View Controllers\", por la cantidad de responsabilidades que tenían que cumplir. En su origen en SmallTalk el patrón representaba tres conceptos fundamentales. El Modelo (Datos y sus validaciones), la Vista (Presentación) y el Controlador (Lógica de Negocios) que tenían una relación como se muestra en la siguiente figura. MVC en SmallTalk En la figura las líneas continuas implican una asociación directa. Las líneas discontinuas, una asociación indirecta por parte de un observador. Por lo tanto, se puede notar que el modelo desconoce la vista y el controlador, excepto indirectamente mediante notificaciones, y por lo tanto, el código del modelo es reutilizable. El controlador y la vista se vinculan al modelo, no al revés. La función de la vista y el controlador está fuertemente acoplada, pero no significa que el controlador tenga la responsabilidad sobre múltiples vistas. Apple se desvió de la versión de SmallTalk original al promover un controlador masivo para múltiples vistas y modelos, por lo que se entiende una diferencia entre SmallTalk MVC y Cocoa MVC (Apple). Esto pudo ser consecuencia de las limitaciones en lenguajes como C y Pascal que no contaban con las características de SmallTalk que facilitaban la observabilidad de propiedades. Para entender bien este patrón se debe mencionar que el Modelo es un objeto que puede ser observado y que encapsula la lógica compleja de las relaciones entre sus propiedades. Es decir, si ocurre un cambio de estado debe lanzar un evento que notifique a la vista y esta a su vez al controlador para que estos puedan actualizar sus estados internos. El modelo es independiente y no interactúa directamente con la vista o el controlador. El estado de la vista siempre debe ser el último estado del modelo. Como mínimo una vista debe ser notificada de las siguientes cosas: ¿Qué cambió?. Puede ser una notificación tan simple como \"El modelo asociado a la vista\". El nuevo valor a mostrar. Para una implementación robusta el Modelo debe ser capaz de notificar exactamente las partes que han cambiado y cómo han cambiado. De esta forma logrando ser compatible con cualquier tipo de vista presente o futura. Como este patrón es compuesto, puede llegar a ocurrir que se necesite un modelo exclusivo para la vista y su estado actual (tamaño de ventana, entre otros), el cual también debe ser observable. Es decir, una vista puede estar escuchando notificaciones de múltiples modelos, incluso uno exclusivo para su estado interno. La identificación y correcta definición del Modelo es vital para un sistema bien diseñado. Es común identificar modelos generales como \"Imagen\", pero un mejor modelo debe considerar los detalles adicionales como \"Imagen con configuraciones\". Una buena técnica es crear modelos según los parámetros de las funciones de la lógica de negocios. Un ejemplo sería un botón asociado a eliminar una selección de archivos. Ésta eliminación de archivos está vinculada a una función que requiere una cantidad de parámetros y valores específicos (como ruta del archivo) para su correcta ejecución. Entonces el Modelo asociado a esta función construiría los parámetros necesarios y sus validaciones (como que el nombre del archivo exista y no sea nulo). Ésta validación puede ser observable por la Vista para habilitar/deshabilitar el botón según si es posible eliminar o no. Éste mismo Modelo puede ser reutilizado en distintas vistas y controladores dentro de la aplicación. La capa modelo (model), es la capa que maneja los datos y la lógica de negocios, independiente de su representación visual. Define qué datos debe contener la aplicación. Si el estado de estos datos cambia, el modelo generalmente notificará a la vista (para que la pantalla pueda cambiar según sea necesario) y, a veces, el controlador (si se necesita una lógica diferente para controlar la vista actualizada). Volviendo a nuestra aplicación de lista de compras, el modelo especificará qué datos deben contener los artículos de la lista (artículo, precio, etc.) y qué artículos de la lista ya están presentes. La capa vista (view) es la que muestra la información al usuario y permite interacciones, independiente de la capa de datos. La vista define cómo se deben mostrar los datos de la aplicación. En nuestra aplicación de lista de compras, la vista definiría cómo se presenta la lista al usuario y recibiría los datos para mostrar desde el modelo. La capa controlador (controller) es la que actúa como puente entre modelo y vista. Almacena y manipula el estado de la aplicación y proporciona datos a las vista, interpreta las acciones del usuario según las reglas de negocio. El controlador contiene una lógica que actualiza el modelo y/o vista en respuesta a las entradas de los usuarios de la aplicación. Entonces, por ejemplo, nuestra lista de compras podría tener formularios de entrada y botones que nos permitan agregar o eliminar artículos. Estas acciones requieren que se actualice el modelo, por lo que la entrada se envía al controlador, que luego manipula el modelo según corresponda, que luego envía datos actualizados a la vista. Sin embargo, es posible que también se desee actualizar la vista para mostrar los datos en un formato diferente, por ejemplo, cambiar el orden de los artículos de menor a mayor precio o en orden alfabético. En este caso, el controlador podría manejar esto directamente sin necesidad de actualizar el modelo. El patrón Modelo-Vista-VistaModelo (MVVM), es un patrón de arquitectura que facilita estructurar la aplicación dividiéndola en tres roles. El modelo (model): representa los datos y lógica de negocio de la aplicación. La vista (view): Muestra la información al usuario y permite la interacción. La vista-modelo (view-model): Actúa como puente entre las capas de vista y modelo. Contiene el estado de la vista y maneja la lógica de interacciones. Al comparar los patrones de MVC y MVVM es notable la similitud y son casi idénticos. La principal diferencia radica en que MVC hace énfasis en los controladores. Encargados de manejar las interacciones para varias vistas. En cambio en MVVM la vista-modelo es un único componente que controla el comportamiento y estado de una única vista. Comúnmente representado como un componente. Otra diferencia es la forma de comunicación entre la vista y su controlador. En MVC la vista y el controlador tienen funciones definidas que son llamadas de forma imperativa para informar sobre una acción o requerir actualizar la información en la vista. Por otra parte en MVVM la vista y la vista-modelo están unidas por un mecanismo de enlazado (binding) que automáticamente informa sobre interacciones realizadas en la vista y cambios ocurridos en la vista-modelo. Estos mecanismos de enlazado varían según la plataforma. Las capas de MVC interactúan y son interpretadas dependiendo de algunos factores como: La plataforma donde se implementa. La experiencia del profesional y su interpretación del patrón. La moda del día (Los devs igual pueden seguir modas). El patrón Modelo-Vista-VistaModelo (MVVM) es principalmente una versión de MVC bajo un nombre diferente. Si bien hay ligeras diferencias, perfectamente se pueden utilizar los conceptos de MVC y MVVM de forma unificada sin problemas. El utilizar un patrón de arquitectura como MVVM con roles claramente definidos nos ayudan cumplir principios de diseño como la separación de conceptos. Lo que es una piedra angular para mantener código bien organizado, fácilmente entendible y que sus pruebas unitarias son viables de implementar. Utilizar patrones de arquitectura como MVVM es sumamente importante. A pesar de que los frameworks otorgen herramientas innovadoras para elaborar aplicaciones, si no utilizamos patrones de arquitectura el código se irá acumulando, aumentando de complejidad, para finalmente crear monolitos masivos que son difíciles de mantener y probar. El hecho de que algunos frameworks manejen automáticamente la actualización de las vistas no justifica abandonar las buenas prácticas en el desarrollo de software que han existido por décadas en múltiples plataformas. Los patrones de arquitectura como MVC y MVVM tienen su foco en aplicaciones donde principalmente tenemos interacciones de usuario (UX), pero muchas veces las aplicaciones deben comunicar con servicios externos y otros elementos que necesitan otras formas de gestionar la arquitectura de código. Para esto se recomienda utilizar patrones como los definidos en el Diseño Orientado a Dominio (Domain Driven Design) y arquitectura Hexagonal. https://developer.mozilla.org/es/docs/Glossary/MVC https://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlador https://matteomanferdini.com/mvvm-swiftui/ https://en.wikipedia.org/wiki/Separation_of_concerns https://en.wikipedia.org/wiki/Coupling_(computer_programming) https://en.wikipedia.org/wiki/Hexagonal_architecture_(software) https://en.wikipedia.org/wiki/Domain-driven_design","title":"Patrones y Arquitecturas de Software","component":"ROOT","version":"","name":"patterns","url":"/swe/patterns.html","titles":[{"text":"Arquitectura en Capas","hash":"arquitectura-en-capas","id":1},{"text":"Monolito","hash":"monolito","id":2},{"text":"Microservicio","hash":"microservicio","id":3},{"text":"Otros tipos de Arquitectura","hash":"otros-tipos-de-arquitectura","id":4},{"text":"Patrón Modelo Vista Controlador","hash":"patrón-modelo-vista-controlador","id":5},{"text":"Modelo","hash":"modelo","id":6},{"text":"Vista","hash":"vista","id":7},{"text":"Controlador","hash":"controlador","id":8},{"text":"Patrón Modelo Vista Vista-Modelo","hash":"patrón-modelo-vista-vista-modelo","id":9},{"text":"¿Diferencias entre MVC y MVVM?","hash":"diferencias-entre-mvc-y-mvvm","id":10},{"text":"La Importancia de MVC y MVVM","hash":"la-importancia-de-mvc-y-mvvm","id":11},{"text":"Más allá de MVC","hash":"más-allá-de-mvc","id":12},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":13}]},"41":{"id":41,"text":"Es un documento que brinda contexto sobre las condiciones necesarias antes de elaborar un producto o solución. La siguiente es una plantilla que permite elaborar un PRD (Product Requirement Document). Problema: ¿Qué problema o necesidad de cliente y negocio se debe resolver?. Hipótesis y supuestos: ¿Qué se espera resolver?, ¿Cuáles son los supuestos en los que la solución se basa?. ¿Qué es el proyecto?, ¿Qué no es el proyecto?, ¿Qué hace el proyecto?, ¿Qué no hace el proyecto?. Objetivos: ¿Qué se desea lograr?, ¿Cuáles son los beneficios obtenidos una vez implementada la solución?. Metas y KPI: ¿Cómo se mide el éxito?, ¿Cuál es el valor esperado que generará la funcionalidad cuando esté disponible a clientes y usuarios?, ¿De dónde se obtiene la información y cómo se hace disponible?. DND metrics: ¿Qué indicadores no se debe afectar negativamente? (Do not disturb metrics). User personas y storybords: ¿Quiénes son los usuarios?, ¿Quiénes no son los usuarios?, ¿Qué comportamiento tienen?. Usar las herramientas de \"personas\" e historias de usuario o storyboards para detallar. Flujos de negocio y operacionales: ¿Cuáles son los procesos involucrados o que son dependencia de la funcionalidad?, ¿Cuáles son las reglas de negocio y operacionales?. Info de investigación: ¿Qué conocimiento (insights) se tiene de los clientes?. Resumen de la solución: ¿Cómo se resuelve la necesidad de clientes y/o negocio?, ¿Cuál es el alcance de la solución?. Requisitos funcionales: ¿Qué funcionalidades específicas debe tener la solución tecnológica para satisfacer las necesidades descritas en el contexto y objetivos?. Incluir comportamientos, operaciones y tareas que la solución debe poder realizar. Restricciones y dependencias: Limitaciones bajo las cuales debe operar la solución, incluyendo tecnologías existentes, regulaciones y dependencias con otros sitemas o proyectos. ¿Qué restricciones presupuestarias, legales u anexas tiene la solución u organización?. Criterios de aceptación: Listado de condiciones que la solución debe cumplir para ser considerada completa y lista para su paso a producción, desde la perspectiva del usuario final y del negocio. Estas pruebas son la base del proceso de aceptación (User Acceptance Testing - UAT). Diagramas de flujo, secuencia, estado y C4, entre otros: Representación de procesos de usuario, operación y negocio implementados en la solución. Recursos (wireframes, diseño, interacciones, UI): Material de referencia de UX que definen la apariencia y la interacción del usuario con la solución, como pantallas, wireframes, prototipos, guías de estilo y especificaciones de diseño. Casos borde: ¿Existe escenarios poco comunes que deben ser considerados en el diseño y pruebas para asegurar una experiencia de usuario completa y sin errores?. Dependencias de negocio: Decisiones, aprobaciones, coordinaciones, apoyo e iniciativas de otras áreas necesarias para el éxito de la solución. Dependencias técnicas: Productos, plataformas, o servicios externos necesarios para el desarrollo, implementación y operación del producto. Estratégia de lanzamiento (release): Plan de cómo y cuándo se hará disponible la solución o funcionalidad a los usuarios, incluyendo fases de lanzamiento, comunicación y alineamiento, y manejo de versiones existentes o anteriores. Áreas impactadas para coodinación: Listado de equipos, áreas, o procesos de negocio que necesitan ser involucrados o informados sobre el lanzamiento para asegurar una puesta en marcha correcta, asegurando la continuidad operacional. Fechas y estimados: Planificación que detalla hitos clave, fechas de entrega esperada y estimaciones a grandes rasgos y generales del esfuerzo necesario para completar el desarrollo. Preguntas abiertas: Lista de interrogantes o definiciones pendientes para el avance del desarrollo. Preguntas frecuentes (FAQ): Preguntas frecuentes acerca de contexto de la iniciativa, reglas de negocio, detalles de la solución, entre otras.","title":"Documento de Requerimiento de Producto (Product Requirement Document - PRD)","component":"ROOT","version":"","name":"prd","url":"/swe/prd.html","titles":[{"text":"Contexto","hash":"contexto","id":1},{"text":"Métricas e impacto","hash":"métricas-e-impacto","id":2},{"text":"Usuarios y clientes","hash":"usuarios-y-clientes","id":3},{"text":"Solución","hash":"solución","id":4},{"text":"Puesta en marcha y lanzamiento","hash":"puesta-en-marcha-y-lanzamiento","id":5},{"text":"Preguntas y respuestas","hash":"preguntas-y-respuestas","id":6}]},"42":{"id":42,"text":"","title":"Roles","component":"ROOT","version":"","name":"roles","url":"/swe/roles.html","titles":[{"text":"Engineer Manager","hash":"engineer-manager","id":1},{"text":"Product Manager","hash":"product-manager","id":2},{"text":"Technical Lead","hash":"technical-lead","id":3},{"text":"Software Engineer","hash":"software-engineer","id":4}]},"43":{"id":43,"text":"El desarrollo de software puede ser difícil de administrar debido a los requisitos cambiantes, los avances de la tecnología y la colaboración interfuncional. La metodología del ciclo de vida del desarrollo de software ofrece un marco de administración sistemático con entregas específicas en cada etapa del proceso de desarrollo de software. Como resultado, todas las partes interesadas establecen por adelantado los objetivos y requisitos de desarrollo del software y también cuentan con una planificación para conseguirlo ([amazon-sdlc]). Los flujos superiores (Upstream) son todo el contexto anterior que ocurre en la organización para llegar a la conclusión de que el proyecto de software debe ser realizado. Ayuda a definir las preguntas: ¿Qué es el proyecto?, ¿Qué no es el proyecto?, ¿Qué hace el proyecto?, ¿Qué no hace el proyecto?. Identificar a los principales stakeholders e interesados, presupuestos, limitaciones previas, como también los encargados de gestionar los procesos de preparación y levantamiento de requerimientos. La utilización de la herramienta \"personas\" (positivas y negativas) puede ayudar identificar el público objetivo de la solución y ayudar a definir características como también evaluar las prioridades. Normalmente está definido en un \"Documento de Requerimiento de Producto\" ver anexo sobre PRD. En la etapa de preparación se debe asegurar que los involucrados estén capacitados con las habilidades y certificaciones necesarias para desarrollar código y artefactos de alta calidad de forma eficiente, reduciendo la probabilidad de un incidente en producción. Proporcionar correcto entrenamiento y capacitaciones respectivas en las prácticas internas de la empresa, como también las buenas prácticas del desarrollo de software. Proporcionar un claro mapa de crecimiento dentro de la organización para los asociados. Velar siempre por mejorar la calidad del producto. Velar por reducir las probabilidades de un incidente en producción. Configurar correctamente los equipos de trabajo, así como dar de alta en los servicios asociados y credenciales de acceso en los canales de comunicación internos. Los requerimientos no funcionales para una aplicación de negocio o servicio técnico incluyen algunos como robustez, escalabilidad, desempeño, operabilidad y otras características que la arquitectura debe soportar. Ayudan a la organización encontrar requisitos legales u otros relacionados. Mejoran la eficiencia en el desarrollo a través de requerimientos claros y estables. Reducen el costo de la arquitectura y el retrabajo de implementación, por medio de reducir las ocurrencias de diseñar y construir requerimientos erróneos. Ayudan a crear software confiable, robuzto y eficiente que satisface a los usuarios finales. Ayuda a reducir los riesgos de incidentes en producción. En el ciclo de desarrollo se debe resolver tempranamente los requerimientos de seguridad, regulaciones, cumplimiento y riesgos asociados. Reducir la probabilidad de una falla de seguridad y sus consecuencias, como pérdida de reputación comercial o multas. Evitar fisuras que permitan liberar información delicada que pueden costar millones de dólares por incidente. Seguir las recomendaciones de seguridad de la última versión del Owasp Top 10. En esta etapa se debe configurar los servicios y datos necesarios para la iteración actual del ciclo de vida del desarrollo de software. Esto significa registrar o actualizar los permisos y asignar los recursos técnicos necesarios para la operación (servidores, bases de datos, procesos de deployment, repositorios git, canales de comunicación, entre otros). También incluye la asignación de roles y datos de contacto actualizados del equipo, al igual que los datos de gestión del proyecto (creación de backlogs con herramientas de priorización de tareas y gestión de proyectos). Tener un panel de control que permita administrar el desarrollo para alcanzar una calidad de producto consistente. Preferir procesos automatizados que permitan un desarrollo más eficiente y de baja fricción. Validación que los requerimientos funcionales y los criterios de aceptación son los suficientemente comprehensivos, claros y estables para tomar decisiones de diseño y la creación de los planes de desarrollo. Evitar retrabajo costoso por requerimientos inestables y cambiantes. Asegurar que el desarrollo esté alienado con las necesidades del negocio y sus clientes. Empoderar a los desarrolladores y arquitectos a determinar si el requerimiento esta listo para ser llevado al diseño e implementación. La etapa de diseño consiste en elaborar los contratos, diagramas y documentación necesaria para cumplir los criterios de aceptación de los requerimientos funcionales y ser usados para la etapa de desarrollo. Se recomiendan las herramientas de Asciidoc (Antora Docs), PlantUML (UML), Diagrama C4 (Arquitectura) y Vega (Histogramas y gráficos) para poder documentar apropiadamente con documentación viva y de fácil actualización. Crear contratos de API de alta calidad que aseguren que las abstracciones que proporcionan ayuden a la evolución y mantención (alta cohesión, bajo acoplamiento), sean simples de usar (fácil adopción) y permitan que los desarrolladores las usen eficientemente. Asegurar que se cumplen los requerimientos funcionales y no funcionales. Priorizar contratos preparados para el futuro, que reducen lo más posible cambios en el lado del cliente cuando las APIs evolucionen. Se recomienda establecer una política de Compatibilidad y Obsolescencia programada. Ver el anexo adjunto sobre Versionado y Política de Compatibilidad y Obsolescencia. Crear APIs amigables con los desarrolladores para impulsar su adopción eficiente. Definir la arquitectura que guíe el desarrollo de la versión actual. De esta forma el desarrollo es coordinado y eficiente y los interesados (stakeholders) estén alineados con las decisiones técnicas tomadas por el equipo. Permitiendo que la organización cree planes de desarrollo y despliegue realistas y apropiados. Asegurar que los productos cumplan los requerimientos no funcionales. Mejorar la velocidad del desarollo al disminuir el tiempo enfocado en diseño. Reducir el riesgo de incidentes en producción al resolver requerimientos no funcionales críticos como disponbilidad, resiliencia, desempeño, seguridad y cumplimiento de licencias requeridas. Los contratos de API son revisados y auditados para detectar posibles mejoras o problemas que no se tomaron en consideración. Normalmente son revisados por personas externas que no elaboraron los contratos inicialmente. Un grupo de interesados clave de múltiples ámbitos que permite validar la definición a implementar para que esté alineada con el alcance y estratégica técnica y la calidad esperada. Permite reducir los tiempos de revisión posterior e implementación. Se pueden generar casos de prueba a tener en consideración. Revisados por los miembros de equipos de implementación, consumidores y otros interesados. La definición de arquitectura es revisada y auditada para detectar posibles mejoras o problemas que no se tomaron en consideración. Normalmente es revisada por personas externas que no elaboraron los contratos inicialmente. Un grupo de interesados clave de múltiples ámbitos que permite validar la definición a implementar para que esté alineada con el alcance y estratégica técnica y la calidad esperada. Permite reducir los tiempos de revisión posterior e implementación. Se pueden generar casos de prueba a tener en consideración. Revisados por los miembros de equipos de implementación, consumidores y otros interesados. Las elecciones de tecnología y soluciones propuestas para completar un proyecto están influenciadas por diversas decisiones tomadas por los miembros del equipo involucrados en el proyecto durante la fase de desarrollo. Las ADR ayudan a nuevos integrantes del equipo a comenzar más rápido y a documentar los factores que jugaron un rol importante para llegar a una decisión, dando contexto y respondiendo las preguntas ¿Qué?, ¿Por qué?, ¿Cómo?, ¿Cuándo? y ¿Dónde? de cada decisión. Ver anexo Arquitecture Decision Records. Ayudan a reducir el número de reuniones. Permiten tener un acervo documental para tomar decisiones más complejas. Dan contexto y permiten analizar distintas opciones para encausar el proyecto al mejor camino de forma más certera. Permiten una conversación abierta a los integrantes del equipo y reducen el tiempo de explicación sobre las deciciones tomadas en un área. En la fase de desarrollo e implementación, el equipo de desarrollo codifica el producto. Se analizan los requisitos para identificar tareas de codificación más pequeñas que puedan hacerse diariamente para conseguir el resultado final ([amazon-sdlc]). Las siguientes subsecciones están ordenadas para seguir los pasos necesarios para crear y validar una funcionalidad. Se construye el artefacto con las herramientas adecuadas y autorizadas, sus repositorios y dependencias. Además de seguir un plan de versionamiento y obsolescencia acordado. Ver anexo Versionado y Política de Compatibilidad y Obsolescencia. Uso de pipelines estandarizados y oficiales para construir el producto mejora la calidad del mismo con validación de artefactos consistente y profunda. Reduce el riesgo de incidentes en producción usando la administración adecuada del versionado de los artefactos construidos. Reuce el tiempo requerido para reparación de defectos usando un versionado y nomenclatura consistente. Los artefactos construidos estan almacenados de forma segura y accesibles. Los artefactos de código están almacenados y respaldados en un repositorio central, el cual tiene normas de higiene establecidas para asegurar la calidad del código que almacena. Siguiendo las buenas prácticas de Trunk Based Development. Ver anexo sobre Trunk Based Development. El desarrollo es rápido y eficiente. Los cambios están administrados correctamente. El código esta respaldado y tiene medidas de seguridad para prevenir filtraciones a terceros no deseados. Las pruebas unitarias son pruebas deterministas que prueban la ejecución de una unidad específica y discreta de la aplicación como una funcion, un método o componente de UI en total aislamiento del resto de componentes para determinar si se comporta como se espera. Verifica la funcionalidad de una unidad (método, clase, función, módulo, etc) en aislamiento. Detecta errores tempranos en el ciclo de desarrollo. Son automatizadas y rápidas de ejecutar. Una prueba funcional o de contrato es una prueba determinista que verifica que los módulos de un sub sistema estén funcionado correctamente. Las pruebas funcionales deben evitar integrar con otros sub sistemas ya que esto reduce el determinismo. Ejemplos son probar el comportamiendo de una interfaz de usuario en la UI o probar la lógica de negocio de un servicio individual por medio de su API. Valida la funcionalidad antes de integrarla con otros sub sistemas. Asegura que los contratos de API estén bien implementados y sean adecuados. Las pruebas de integración es una unidad \"sociable\" de prueba que es determinista y usada para verificar como una unidad interactúa con otras unidades sin acceder directamente a los sub sistemas externos. Valida como una unidad funcionará al ser integrada. Es la mejor forma de validar los contratos entre unidades. Se debe escribir el código usando los lenguajes y frameworks autorizados, siguiendo los estándares y la definición de arquitectura y cumpliendo los criterios de aceptación de los requisitos funcionales y no funcionales. Refactorizando el código para mejorar su calidad, reducir la deuda técnicas y asegurar que el código fuente es mantenible, es decir, que sea simple de modificar en el tiempo siguiendo los principios de alta cohesión y bajo acoplamiento. El código es consistente. El código es eficaz, efectivo, confiable, fácil de ejecutar y seguro. El código es simple de mantener y probar. El código es creado con herramientas complementarias robustas y adecuadas. El código tiene un formato estandarizado. Ejemplo: En Elixir se debe usar el comando mix format. La solución utiliza buenas prácticas como Arquitectura Hexagonal, Domain Driven Design, SOLID y Patrones de Diseño, y otras buenas prácticas relativas a la tecnología usada, según aplique al contexto de la solución. La prueba estática evalúa el código sin compilar o ejecutarlo. Esta pensada para validar las buenas prácticas y verificar la seguridad, estructura y otras posibles causas de fallas. Identifica vulnerabilidades. Verifica el uso de buenas prácticas y estándares. Identifica errores y posibles mejoras. Para Elixir se utiliza Credo. Otras tecnologías pueden usar SonarQube. Para encontrar malas prácticas y corregirlas. Se recomiendan herramientas como OWASP SCAT para encontrar vulnerabilidades. Un miembro del equipo revisa e inspecciona el código para identificar posibles mejoras o defectos a corregir, además de verificar la adherencia a los estándares de calidad de código acordados. Identificar posibles problemas tempranamente para reducir los costos de desarrollo e incrementar la velocidad del mismo. Mejorar la calidad del código y su facilidad de mantención. Reducir la frecuencia y severidad de incidentes en producción. Reducir el tiempo necesario en resolver problemas directamente. Detectar defectos que son difíciles de detectar con pruebas automatizadas. Facilitar compartir información y el aprendizaje de buenas prácticas. El sistema que se ha construido para la versión actual se compara con lo planificado y diseñado. Cualquier discrepancia es resuelta ya sea corrigiendo el artefacto o actualizando los diseños y planes iniciales. Asegura que los requerimientos no funcionales han sido cumplidos. Hace que dar soporte y mantención sea más efectivo. Previene la acumulación de deuda técnica. El despliegue (deploy) es el proceso de pasos necesarios para que el artefacto pueda ejecutarse en su entorno productivo (o de pruebas) y permita ser operado por los involucrados. Este puede ser manual o automatizado. Los sistemas utilizados por los equipos de operaciones para ejecutar todas las actividades operativas deben ser configurados y activados para el artefacto que será liberado. Esto incluye sistemas para monitoreo, alertas automáticas y administración de notificaciones para incidentes productivos. Asegura que el monitoreo esté bien configurado y funcional. Asegura que las alertas estén bien configuradas y funcionales. Asegura que los equipos de operaciones puedan notificar apropiadamente cuando un incidente es detectado. Escribir documentación y desarrollar ejemplos para operar el artefacto liberado, en una forma consistente y metódica, incluyendo como manejar las tareas esperadas, realizar escalamiento horizontal/vertical, estrategias de mitigación de fallos y pasos para lograr alcanzar los objetivos operativos y de control de incidentes (Mean time to deploy, Mean time to escalate, Mean time to recover, entre otras métricas asociadas [atlassian-incidents-metrics-2024]). Permite a los equipos conocer como realizar las tareas más comunes del sistema. Permite a los equipos conocer como responder a incidentes e identificar problemas. Permite a los equipos conocer como restaurar la aplicación en el caso de un desastre o caidas de servicio. Se deben completar todas las tareas relacionadas al despliegue (deploy) tales como: Crear un documento de registro de cambios, Versionar apropiadamente el artefacto. Desplegar el artefacto al ambiente productivo y realizar pruebas de humo. Esta es la validación final de que todas las actividades obligatorias han sido completadas. Los procedimientos de liberación (release) y retrocesos (rollbacks) están en su lugar y habilitados, los procesos y auditorias necesarias para cumplir las normas legales y licencias están listos y funcionales. Finalmente todas los procesos de gestión del cambio están correctamente seguidos y auditados. Disminuye el riesgo durante un despliegue y que los retrocesos (rollbacks) son rápidos y eficientes si son requeridos. Reduce los riesgos legales y de licencias para la organización. Mejora la calidad en la liberación de los artefactos. Las pruebas de humo (smoke test), o también conocidas como verificación de la construcción (build verification testing) o pruebas de confianza (confidence testing), es un tipo de estrategia para asegurar la calidad, el cual consiste en un conjunto no exhaustivo de pruebas enfocadas en asegurar que que las funciones más importantes del artefacto funcionan. El término \"prueba de humo\" viene de la industria del hardware donde al probar un artefacto por primera vez, si este no se prendía fuego y salía humo, se puede considerar como que su construcción fue un éxito. En la industria del software las pruebas de humo es una estrategia liviana y amplia donde todas las áreas de una aplicación (sin profundizar mucho) son probadas. Una suite de pruebas de humo pueden ser automatizadas o en combinación con un proceso manual de pruebas. Pueden ser usadas para descubrir errores de alto nivel. Si una prueba de humo falla se espera que el artefacto construido se considere inestable para mayores pruebas, hasta que la prueba de humo sea exitosa. Si una prueba de humo falla el despliegue debe fallar. Ejemplos: Prueba de conexión a la base de datos. Prueba de conexión al almacenamiento en la nube. Prueba de conexión a Kafka. Figure 1. Flujo de una prueba de humo Las pruebas punto a punto (E2E) prueban y validan que los componentes individuales y las dependencias externas del sistema funcionan adecuadamente para los casos productivos. Validan como todas las dependencias del sistema funcionan en conjunto. Simulan un escenario de producción. Se deben ejecutar de forma paralela a las demás pruebas ya que podrían tomar un tiempo mayor y retardar el proceso de construcción y despliegue. Las pruebas de desempeño son realizadas en un ambiente lo más similar a producción posible y se prueban varios tipos de interacciones con el sistema, los cuales permiten determinar cómo el sistema se comporta durante varias condiciones de carga y estrés. Son pensadas para validar que el sistema cumple con los requerimientos de desempeño a nivel de servicio. Se recomienda realizar un análisis de mapa de calor en los periodos de uso del sistema productivo. Y realizar las pruebas en el ambiente productivo oficial, dentro de una hora de baja o nula utilización con datos apropiadamente marcados que permitan ser eliminados automáticamente una vez terminadas las pruebas. Debido a sus características de servidor, no es obligatorio realizar pruebas de desempeño constantemente. Solo es recomendable hacerlas antes de cambios mayores en los sistemas o cuando se avecina una fecha especial que requiera mayores exigencias en los servidores (navidad, año nuevo, feriados nacionales). La periodicidad de estas pruebas dependerá de las necesidades de cada negocio. Prueba como se comporta el sistema en contextos progresivos de aumento de carga. Prueba como el sistema reacciona a casos de carga abruptos y masivos. Valida como el sistema escala arriba o abajo con cambios de carga. Los stakeholders validan que el sistema cumple los requerimientos y aceptan el artefacto entregado. Existe todo el registro de las pruebas realizadas, como también de los criterios que se han aceptado como cumplidos. El código y el artefacto se considerán \"terminados\" permitiendo a los desarrolladores comenzar a planificar la siguiente iteración.","title":"Etapas del Desarrollo de un Producto de Software","component":"ROOT","version":"","name":"stages","url":"/swe/stages.html","titles":[{"text":"Flujo superior (Upstream)","hash":"flujo-superior-upstream","id":1},{"text":"Preparación","hash":"preparación","id":2},{"text":"Definición de los requerimientos no funcionales","hash":"definición-de-los-requerimientos-no-funcionales","id":3},{"text":"Definición de las prácticas de seguridad y cómo cumplirlas","hash":"definición-de-las-prácticas-de-seguridad-y-cómo-cumplirlas","id":4},{"text":"Registrar los metadatos del desarrollo","hash":"registrar-los-metadatos-del-desarrollo","id":5},{"text":"Revisar los requerimientos funcionales y los criterios de aceptación","hash":"revisar-los-requerimientos-funcionales-y-los-criterios-de-aceptación","id":6},{"text":"Diseño","hash":"diseño","id":7},{"text":"Diseño de los contratos de API","hash":"diseño-de-los-contratos-de-api","id":8},{"text":"Diseño de arquitectura para la versión actual","hash":"diseño-de-arquitectura-para-la-versión-actual","id":9},{"text":"Revisión de los contratos de API","hash":"revisión-de-los-contratos-de-api","id":10},{"text":"Revisión de arquitectura para la versión actual","hash":"revisión-de-arquitectura-para-la-versión-actual","id":11},{"text":"Utilizar ADR para conducir las decisiones de arquitectura","hash":"utilizar-adr-para-conducir-las-decisiones-de-arquitectura","id":12},{"text":"Desarrollo","hash":"desarrollo","id":13},{"text":"Construcción (Build)","hash":"construcción-build","id":14},{"text":"Administración de artefactos de código","hash":"administración-de-artefactos-de-código","id":15},{"text":"Pruebas unitarias","hash":"pruebas-unitarias","id":16},{"text":"Pruebas funcionales (de contrato)","hash":"pruebas-funcionales-de-contrato","id":17},{"text":"Pruebas de integración","hash":"pruebas-de-integración","id":18},{"text":"Escritura y refactorización de código","hash":"escritura-y-refactorización-de-código","id":19},{"text":"Pruebas estáticas","hash":"pruebas-estáticas","id":20},{"text":"Revisión de código","hash":"revisión-de-código","id":21},{"text":"Validación de arquitectura","hash":"validación-de-arquitectura","id":22},{"text":"Despliegue (Deploy)","hash":"despliegue-deploy","id":23},{"text":"Configurar la infraestructura de despliegue y operaciones","hash":"configurar-la-infraestructura-de-despliegue-y-operaciones","id":24},{"text":"Crear documentación y ejemplos sobre operación del sistema","hash":"crear-documentación-y-ejemplos-sobre-operación-del-sistema","id":25},{"text":"Despliegue a producción","hash":"despliegue-a-producción","id":26},{"text":"Validación y monitoreo del despliegue a producción","hash":"validación-y-monitoreo-del-despliegue-a-producción","id":27},{"text":"Pruebas de humo (Smoke Test)","hash":"pruebas-de-humo-smoke-test","id":28},{"text":"Pruebas punto a punto (end to end, E2E)","hash":"pruebas-punto-a-punto-end-to-end-e2e","id":29},{"text":"Pruebas de desempeño (perfomance)","hash":"pruebas-de-desempeño-perfomance","id":30},{"text":"Pruebas alfa/aceptación","hash":"pruebas-alfaaceptación","id":31}]},"44":{"id":44,"text":"El proceso de pruebas de aceptación de usuario (User Aceptance Testing - UAT) para las aplicaciones o herramientas aseguran una evaluación completa y un correcto seguimiento para la resolución de problemas. Es un tipo de prueba funcional o de contrato manual que asegura que los contratos establecidos se cumplen para los casos de uso acordados. El siguiente orden permite estandarizar el proceso y dar una plantilla recomendada. Se debe entender las metas y el propósito de la herramienta, aplicación o característica de la misma y cuánto tiempo se tiene para completar la UAT. Esto incluye obtener información exacta y completa sobre lo que se quiere cumplir con la implementación de la característica, herramienta o aplicación. Determinar quiénes serán los usuarios finales de la solución. Esto incluye detallar los diferentes usuarios y roles entendiendo sus necesidades específicas. Comprender también los interesados (stakeholders) para asegurar que todas las partes involucradas son incluidas durante el proceso de UAT. Identificar los tipos de herramientas y funcionalidades que el usuario necesita. Asegurar que los usuarios tengan los accesos, permisos y herramientas en el ambiente de prueba para ejecutar la UAT. Deben estar correctamente configurados antes de iniciarla. Asegurar que todas las cuentas de prueba estén activas y puedan ser accedidas por los usuarios. Deben estar configuradas apropiadamente. Se debe verificar que todas las cuentas de prueba están configuradas con los roles y permisos necesarios. Asegurar que todas las cuentas de prueba estén configuradas y tengan acceso a las herramientas y ambientes para evitar retrasos en el proceso de pruebas. Asegurar que todo el ambiente de pruebas esté bien configurado antes de iniciar el proceso de UAT. Asegurar que las instrucciones son claras para el proceso de UAT. Esto incluye pasos detallados que necesitan ser seguidos durante el proceso de pruebas. Proporcionar direcciones claras sobre los casos de uso que se deben probar. Seguir el proceso UAT meticulosamente. Usar un sistema de colaboración y seguimiento o una herramienta para documentar el proceso, problemas y retroalimentación. Obtener y compilar todos los comentarios y retroalimentación recibidos durante el proceso de UAT. Determinar los involucrados que se beneficiarán con esta información. Normalmente sería los equipos de ingeniería, producto y proyectos. Identificar cualquier bloqueo o problema que pueda impedir el proceso de UAT. Entender la causa raíz del bloqueo o problema. Determinar posibles soluciones para eliminar los bloqueos. Identificar los equipos que necesitan ser involucrados para resolver los bloqueos. Mantener seguimiento de todo el proceso de resolución. Usar un sistema designado para monitorear el progreso. Definir los acuerdos de servicio (SLA) para las soluciones. Asegurar que el seguimiento y comunicación continua del progreso relacionado a resolver los bloqueos y cualquier retraso que hayan causado. Incorporar el aprendizaje de los bloqueos en futuros lanzamientos (releases) para prevenir incidentes similares. Establecer reuniones con los equipos de ingeniería, producto y negocio para definir el proceso de UAT. Fijar fechas y tiempos para completar el UAT y asegurar que los stakeholders están informados y alineados. Documentar todos los procesos, comentarios y resoluciones obtenidas durante el proceso de UAT. Mantener registros en una ubicación centralizada que este disponible para todos los interesados relevantes. Asegurar la comunicación continua, clara y efectiva en todo el proceso de UAT. Proporcionar actualizaciones constantes a todos los equipos involucrados en el proceso, los problemas encontrados y sus soluciones. Los stakeholders pueden dar un rechazo o una aprobación completa o condicional. Rechazo: Si existen detalles mayores que impactan de forma crítica la funcionalidad o usabilidad. Documentar todos los problemas especificados por los stakeholders y definir un plan con plazos para abordar estos incidentes. Asegurar actualizaciones constantes a los stakeholders en el progreso de resolver estos problemas obstaculizadores. Obtener una aprobación completa una vez que todas los incidentes han sido corregidas satisfactoriamente. Aprobación condicional: Si existen detalles menores que no impactan de forma crítica la funcionalidad o usabilidad. Documentar todas las condiciones especificadas por los stakeholders y definir un plan con plazos para abordar estas condiciones. Asegurar actualizaciones constantes a los stakeholders en el progreso de resolver estas condiciones definidas en la aprobación condicional. Obtener una aprobación completa una vez que todas las condiciones han sido corregidas satisfactoriamente. Aprobación completa: Todos los problemas identificados se han solucionado al aplicar los cambios necesarios. Se prepara un reporte del proceso de UAT incluyendo los comentarios recibidos y cualquier tema pendiente. Presentar un resumen a los stakeholders mostrando los resultados obtenidos y los aprendizajes. Solicitar a los stakeholders la aprobación final confirmando que la herramienta/aplicación/característica cumple con los estándares requeridos y está lista para ser lanzada a producción. La siguiente tabla muestra un ejemplo de los roles en un proceso de UAT. Table 1. Roles y responsabilidades en un proceso de UAT Rol Responsabilidades Project Manager - Asegurar que el UAT tiene objetivos claros y han sido comunicados a los involucrados. - Monitorear el proceso de UAT y asegurar que esté dentro de los plazos. - Coordinar a todos los equipos involucrados. - Preparar y presentar un reporte y resumen para la aprobación de los stakeholders. Usuarios - Participar activamente en el proceso de UAT. - Proporcionar comentarios y retroalimentación detallada de problemas encontrados y dificultades de usabilidad. Equipo de Producto - Proporcionar instrucciones claras y dar soporte al proceso de UAT. - Analizar los comentarios recibidos y priorizar las tareas para resolver problemas encontrados. Equipo de Ingeniería - Resolver cualquier bloqueo técnico y problemas técnicos encontrados durante el proceso UAT. - Resolver los problemas dentro de los acuerdos de servicio comprometidos. Equipo de Negocio - Asegurar que el proceso de UAT esté alineado con los objetivos del negocio y sus requerimientos. - Proporcionar información para ayudar a priorizar tareas y resolver problemas críticos. Stakeholders - Revisar los reportes sumarios del proceso de UAT. - Proporcionar una aprobación condicional o completa basado en las resoluciones y aprendizajes obtenidos en el proceso de UAT. Las siguientes plantillas pueden ser de utilidad al momento de realizar un proceso de UAT. La siguiente tabla muestra las personas involucradas en el proceso de UAT. Table 2. Tabla de involucrados Identificador Nombre Email Equipo y Rol El identificador interno para ser mencionado en los documentos. Normalmente usando un arroba @Persona1 Nombre de la persona Email de contacto Equipo al cual pertenece y su rol dentro del mismo. Se debe tener usuarios que puedan interactuar con todos los flujos necesarios según su rol. De preferencia que su correo pueda recibir emails, si es parte del proceso requerido. Table 3. Tabla de credenciales Rol Email Contraseña Contexto Usuario test1@ejemplo.com 1234 Detallar el contexto en el cual debe ser usada la cuenta. ¿En qué canales se debe probar?, ¿Tiene alguna configuración especial (falta de datos, casos borde)?. ¿Qué versión de la aplicación debe tener?, ¿Qué condiciones de sistema operativo debe tener?. ¿Alguna otra limitante o situación especial?. La siguiente tabla de pruebas nos da una lista de funcionalidades críticas a probar. Los usuarios no están limitados a esta lista, ya que deben probar de forma más exhaustiva, pero como mínimo se debe asegurar el buen funcionamiento y cumplimiento de los contratos críticos acordados. Table 4. Tabla de pruebas críticas Identificador Características críticas a probar Responsables Canales Un número identificador único de la prueba Detalle sobre lo que se debe probar. Una característica específica o casos borde. Adjuntar enlaces a la documentación necesaria. Persona o grupo de personas encargados de supervisar el proceso de UAT Lista de canales a los que se debe aplicar la prueba (Ejemplo: Android Mobile, Android Tablet, iOS Mobile, iOS Tablet (iPad), Web Mobile, Web PC). La siguiente tabla muestra el estado de las pruebas críticas según canal. Una vez ejecutado el proceso UAT. Table 5. Tabla de pruebas críticas por canal Identificador Responsable Estado Comentarios El identificador de la prueba crítica original Responsable de supervisar ésta prueba crítica. Estados: - Fallido: La prueba no cumple con los requisitos mínimos de aceptación. - Éxito: La prueba pasa todos los criterios de aceptación. - Condicional: La prueba pasa los criterios críticos de aceptación, pero se han encontrado detalles menores a corregir. Una lista de comentarios u observaciones realizadas por el supervisor o los involucrados para tener en consideración. La siguiente es una tabla donde se puede establecer pruebas funcionales para tener evidencias y validar que los contratos se cumplen. Normalmente destinados para servicios de nivel T0 o T1. Acción Datos Entrada Salida Esperada Resultado Estado - - - - Aceptado / Condicional / Rechazado Se recomienda tener una tabla por cada canal (Web, Android, iOS, etc) donde la aplicación será ejecutada. Table 6. Tabla de observaciones por canal Responsable Observación Comentarios Estado ¿Quién hizo la observación? @Persona1 Detalle de lo que se ha encontrado. También screenshots demostrando el problema encontrado o pasos a seguir para reproducirlo. Preguntas y personas asociadas que pueden ser relevantes para encontrar o seguir adelante en el proceso. Posibles Medidas de mitigación y contigencia. Recomendaciones para continuar. Pendiente / En revisión / Cerrado Se listan las correcciones y mejoras encontradas asociándolos al sistema de gestión de tareas (Github issues, Jira, otro). Table 7. Tabla de mejoras y correcciones Canal Detalle Ticket Prioridad Comentario Canal asociado (Android, iOS, Web, etc) Breve descripción de la corrección o mejora Enlace al ticket en el sistema de gestión de tareas Nivel de prioridad (1 alta, 2 normal, 3 baja). Un breve comentario por ejemplo: Periodo de implementación, si fue validado y aprobado, etc. Una tabla de aprobaciones de los stakeholders. Table 8. Tabla de aprobaciones Stakeholder Estado de Aprobación Comentarios Nombre del Stakeholder Estado de su aprobación (aceptado, condicional, rechazado) Comentarios y observaciones asociadas por el stakeholder para definir su estado.","title":"Pruebas de Aceptación de Usuario (User Aceptance Testing - UAT)","component":"ROOT","version":"","name":"uat","url":"/swe/uat.html","titles":[{"text":"Definir objetivos y plazos","hash":"definir-objetivos-y-plazos","id":1},{"text":"Identificar usuarios e interesados","hash":"identificar-usuarios-e-interesados","id":2},{"text":"Evaluar los requerimientos de usuario","hash":"evaluar-los-requerimientos-de-usuario","id":3},{"text":"Verificar las cuentas de prueba","hash":"verificar-las-cuentas-de-prueba","id":4},{"text":"Proporcionar instrucciones de UAT","hash":"proporcionar-instrucciones-de-uat","id":5},{"text":"Seguimiento del proceso UAT","hash":"seguimiento-del-proceso-uat","id":6},{"text":"Administrar retroalimentación","hash":"administrar-retroalimentación","id":7},{"text":"Manejar bloqueos o problemas","hash":"manejar-bloqueos-o-problemas","id":8},{"text":"Agendar reuniones","hash":"agendar-reuniones","id":9},{"text":"Documentación","hash":"documentación","id":10},{"text":"Comunicación","hash":"comunicación","id":11},{"text":"Obtener la aprobación de los Stakeholders","hash":"obtener-la-aprobación-de-los-stakeholders","id":12},{"text":"Roles y Responsabilidades","hash":"roles-y-responsabilidades","id":13},{"text":"Plantillas","hash":"plantillas","id":14},{"text":"Tabla de involucrados","hash":"tabla-de-involucrados","id":15},{"text":"Tabla de credenciales","hash":"tabla-de-credenciales","id":16},{"text":"Tabla de pruebas críticas","hash":"tabla-de-pruebas-críticas","id":17},{"text":"Tabla de estados de pruebas críticas por canal","hash":"tabla-de-estados-de-pruebas-críticas-por-canal","id":18},{"text":"Tabla de pruebas funcionales","hash":"tabla-de-pruebas-funcionales","id":19},{"text":"Tablas de observaciones","hash":"tablas-de-observaciones","id":20},{"text":"Tabla de mejoras y correcciones","hash":"tabla-de-mejoras-y-correcciones","id":21},{"text":"Tabla de aprobaciones","hash":"tabla-de-aprobaciones","id":22}]},"45":{"id":45,"text":"Es importante definir la forma de trabajar de un equipo y organización. En específico se recomienda fundamentarse en el flujo continuo para mejorar el desempeño de los equipos, permitiendo una entrega de valor constante. En la siguiente carta gantt se puede apreciar la organización de los distintos hitos en un mes. La jornada laboral no debe exceder las 40 horas semanales en total y entre 8 a 10 horas por día como máximo. Las labores se deben realizar en los siguientes horarios: Lunes a Jueves: 9:30 AM - 18:00 PM (Hora de Almuerzo 13:00 - 14:00 PM). Viernes: 9:30 AM - 13:00 PM. Zona Horaria: Hora de Santiago, Chile (UTC - 3). Nota: Las horas laborales es recomendable que se ajuste a cada zona horaria del colaborador (9 a 18 de cada país u zona horaria), siempre y cuando el colaborador tenga al menos 5 horas de solapamiento con America/Santiago para la coordinación con miembros de otras zonas horarias. Es decir, que hay un margen de al menos 3 horas de diferencia. Por lo que algunas zonas horarias que pueden ser compatibles son todas las que estén entre el rango entre UTC-0 a UTC-6. Gracias a una buena coordinación de zonas horarias y herramientas de comunicación asíncronas como Email, Zoom, Slack, Teams, Telegram, Meet, Signal u otro. El trabajo remoto es totalmente posible y recomendado. Obligar a las personas asistir a una oficina es un sin sentido retrógrado y limitante en una época de comunicación via internet para labores relacionadas a proyectos de software. Por lo que las alternativas \"híbridas\" (obligar asistir a la oficina un día a la semana o mes) solo son un gasto de tiempo y dinero para tanto colaboradores como la empresa. La empresa puede destinar un bono para permitir facilitar el trabajo remoto que cubra gastos de internet o arriendo de espacios de coworking si el colaborador desea ir a un lugar físico distinto a su hogar. Es muy poco probable que una empresa pueda lograr un entorno personalizado para cada necesidad de cada colaborador, por lo que el dinero que se ahorra en no pagar oficinas para \"trabajo\" estandarizadas, puede destinarlo a realizar actividades presenciales esporádicas (opcionales) o invertirlas en mejorar la calidad de vida de sus colaboradores (gym, salud, muebles ergonómicos) o facilitar equipos tecnológicos actualizados. Existe un rol de \"Sherpa\" que se encarga de monitorear los sistemas y resolver problemas en horarios extraordinarios. Los cuales deben ser adecuadamente compensados según acuerdo entre empleador y Sherpa. Referencia: Algunas empresas pagan un bono de 80 USD por semana de sherpaje. La carga laboral mensual es distribuida entre un equipo de 4 personas, es decir un Sherpa por semana. El rol de Sherpa es necesario para brindar un aseguramiento de la calidad de las soluciones, además de que puede asistir para resolver dudas o problemas de todos los sistemas que esté monitoreando. El Sherpa necesariamente debe ser de un miembro del equipo técnico capacitado para levantar los sistemas si estos fallan. La semana laboral es de lunes a viernes. Los sábados, domingos y festivos sólo podrán ser asignados a una labor de Sherpa para abordar situaciones de emergencia. Los viernes no está permitido enviar cambios a producción (salvo excepciones autorizadas), esto con el fin de evitar “sorpresas” durante el fin de semana donde hay menor capacidad de respuesta. Si en la semana se da el caso de un feriado del día viernes. No se podrá pasar a producción el día jueves. Es decir, el congelamiento de los pasos a producción depende de la proximidad del día hábil siguiente. Los días viernes se otorga la facilidad de salir temprano para permitir un mejor descanso de los colaboradores, así como brindar flexibilidad para realizar trámites como visitas al médico u otros menesteres. Esto permite una mejor organización de los calendarios ya que los colaboradores pedirán menor cantidad de días de ausencia justificada dentro de la semana, lo cual puede afectar al flujo del equipo. Se respetarán los días feriados nacionales del país de cada colaborador. Ya que es una oportunidad para reunirse con familiares y amigos que normalmente no se tiene tiempo en un día tradicional. Esto permite mejorar la moral y la calidad de vida de los colaboradores. Para evitar conflictos en los calendarios, la lista de feriados debe ser considerada en la calendarización respectiva y ser de público conocimiento por los miembros del equipo. Solamente las personas que habiten dentro del país podrán acceder a estos feriados. Como cualquier día feriado, se considera como un día trabajado. Si es necesario que el colaborador trabaje ese día de forma extraordinaria, se debe compensar como horas extras y coordinar previamente con el equipo, exceptuando casos de feriados “irrenunciables”. Adicionalmente a los feriados nacionales se consideran los feriados de Año Nuevo (31 de Diciembre al 1 de Enero) y Navidad (24 al 25 de Diciembre) como feriados irrenunciables y globales para toda la empresa. La empresa puede definir fechas específicas como feriados globales según estime conveniente. Por ejemplo, tomar de referencia los feriados de Estados Unidos y también sumarlos a los feriados globales. O realizar actividades recreativas como viajes y similares que permitan mejorar la moral y calidad de vida de los colaboradores. Esto se debe comunicar apropiadamente a los miembros del equipo para que estén sincronizados sus calendarios. Existe un máximo de 2 días al mes de “saldo” en el que un colaborador puede solicitar para realizar trámites, descanso mental u otros menesteres. Estos días se consideran como trabajados. Estos pueden ser solicitados como “solo mañana”, “solo tarde” o “día completo”. Es decir, el colaborador puede solicitar hasta 4 porciones de días de saldo al mes. Estos días deben ser autorizados por el líder del equipo, según acuerdo común con otros miembros del equipo y deben ser solicitados con apropiado tiempo de antelación. No son acumulables y tienen que ser solicitados explícitamente por el colaborador. El cumpleaños de cada trabajador es premiado con un día de descanso especial. El colaborador puede utilizar este día para descansar o preparar su celebración con amigos y familiares. Este día es añadido como un día de saldo adicional durante el mes de cumpleaños (para evitar posibles días de cumpleaños que caigan en fin de semana o feriados). La empresa también puede realizar algún regalo adicional como una tarjeta de prepago para alguna tienda en línea u otro detalle, aunque este detalle adicional es opcional y suplementario al día de saldo especial. Por cada seis meses de trabajo desde el inicio de su contratación, el colaborador tiene derecho a 15 días laborales (3 semanas o 21 días calendario) de vacaciones remuneradas. Estos solo pueden llegar a un máximo de 30 días de vacaciones acumuladas. Las vacaciones pueden ser solicitadas en el periodo que el colaborador estime conveniente y según común acuerdo con el equipo, correctamente coordinados con al menos un mes de antelación. Las vacaciones tienen una solicitud mínima de 10 días (2 semanas). El colaborador al llegar a 30 días de vacaciones acumulados (12 meses trabajados) debe obligatoriamente tomar vacaciones al siguiente inicio de mes de mínimo 10 días. En un mismo equipo no puede haber más de dos colaboradores en el mismo periodo de vacaciones, o una cantidad que afecte el flujo de trabajo. En los días de vacaciones la empresa se compromete a no interrumpir al colaborador con tareas o solicitudes relacionadas al trabajo. En el caso que esto ocurriese se añade un día adicional de vacaciones a sus días acumulados. En el caso de que un colaborador sea desvinculado antes de ocupar todas sus vacaciones pendientes, estos días deben ser considerados como trabajados en su finiquito, también se debe considerar un monto adicional de un mes de sueldo por año trabajado en el caso de la desvinculación (este monto adicional no aplica si el colaborador renuncia voluntariamente). La empresa respetará las leyes nacionales del país de cada colaborador para los días que corresponden a licencias médicas, maternidad o paternidad. Queda a jurisdicción de la empresa si desea añadir días remunerados adicionales para maternidad o paternidad a lo establecido nacionalmente. En casos excepcionales, se puede utilizar los horarios de Viernes de 14 a 18, los cuales no serán considerados como horas extras. Aunque debe ser debidamente justificado y coordinado con el equipo esta determinación. En casos aún más raros en que se debe superar el tiempo de jornada laboral tradicional de 8 horas diarias, se considerará como horas extras y se debe compensar según acuerdo con el empleado. Referencia: Si una persona supera las 8 horas laborales diarias, al día siguiente se le otorga la mañana completa o el día completo libre, dependiendo de la cantidad de horas utilizadas después de la jornada normal, más de 2 horas extras se considera como “mañana libre”, más de 4 horas extras se considera el “día completo libre”. Estos son días de saldo extra. Estas consideraciones solo aplican si la persona no cumple el rol de sherpa. La entrega continua (CD) es una colección de muchas prácticas recomendadas de organización y metodología ágil. Con la CD, una organización se centra en la creación de un proceso de publicación de software sencillo y automatizado. La pieza central de este proceso de publicación es un ciclo de feedback iterativo. El ciclo de feedback gira en torno a la entrega de software al usuario final lo más rápido posible, aprendiendo de la experiencia práctica e incorporando ese feedback en la siguiente publicación (Atlassian, 2025). Los siguientes hitos son los recomendados para lograr el flujo de entrega continua. Además de algunas herramientas de apoyo a dichos procesos. Kanban es un marco de trabajo muy popular a la hora de implementar un desarrollo de software ágil y de DevOps. Requiere una comunicación en tiempo real sobre la capacidad y una total transparencia del trabajo. Los elementos de trabajo se representan visualmente en un tablero de kanban, lo que permite a los miembros del equipo ver el estado de cada uno en cualquier momento. (Atlassian, 2025). Los tableros recomendados son: Backlog: Tareas sin prioridad (bajo, normal, alto, crítico) y sin procesar (añadir detalles), del tipo investigaciones (spikes), fallos (bugs), nuevas características (features), documentación (docs) o mejoras (refactoring). Refinados: Tareas con prioridad ya procesadas (mayor cantidad de detalles), pero sin asignar una épica o persona responsable. Por hacer (To-Do): Tareas pendientes que fueron asignadas a una épica, pero sin persona responsable. En Desarrollo (Doing): Tareas en To-Do que fueron asignadas a una persona responsable dentro de una épica y dentro de un mes específico. Congeladas (Freeze): Tareas que debieron ser pausadas debido alguna emergencia o que requieren esperar el resultado de otra tarea. Se pausan para evitar afectar las métricas del equipo. Como alternativa a un nuevo tablero, también pueden ser marcadas con una bandera (flagged) y un comentario para la trazabilidad del ciclo de vida. Una vez descongeladas las tareas pueden pasar a Doing o Done (si es que no se continuará con la tarea). En Revisión y Pruebas (Testing/In Review): Tareas después de ser implementadas, pasan a pruebas para ser aceptadas. Si no son aceptadas pasan a estado Doing o Freeze. Si son aceptadas pasan a estado Done. Terminadas (Done): La tarea se ha entregado y aceptado. Este estado es final, si se descubren correcciones posteriores debe ser creada una nueva tarea que hace referencia a la anterior. Este estado puede tener categorías como: aceptado, wontfix, rechazado, reemplazado. Bajo: La tarea no es prioritaria, puede ser asignada en cualquier momento según estime el equipo de desarrollo. Normal: La tarea debe ser realizada dentro de este año Q1 al Q4 (12 meses). Alto: La tarea debe ser realizada en el cuatrimestre actual (3 meses). Crítico: La tarea debe ser realizada en el mes actual (1 mes). Spike: La tarea es una investigación para determinar o detallar algo. Normalmente asociados a tareas para descubrir por qué sucede alguna situación, encontrar soluciones técnicas o simplemente una forma de investigación general. Bug: La tarea consiste en reparar un fallo encontrado, corregir un comportamiento erróneo, problemas de seguridad o cualquier reparación necesaria que se ha detectado durante el uso y funcionamiento del sistema. Feature: La tarea consiste en añadir una nueva característica o funcionalidad a la solución. Algo que no existía previamente. Docs: La tarea consiste en la elaboración de documentación tanto técnica como de nivel usuario, puede ser desde la creación de documentos como de la mejora de documentos existentes. Refactoring: La tarea consiste en mejorar el funcionamiento de una característica ya existente. Se diferencia del bug por que el comportamiento se mantiene, por ejemplo mejoras de rendimiento, simplificación del código, reemplazo u eliminación de componentes. Performance: Esta es una subcategoría opcional de refactoring, consiste en tareas relacionadas a mejorar el desempeño y rendimiento de la solución. Tests: La tarea consiste en la elaboración de pruebas o implementación de herramientas de CI/CD o relacionados al aseguramiento de calidad. Para más detalles se puede consultar el estándar de Conventional Commits. El estado de \"Done\" o terminado puede tener distintas categorías. Completed: La tarea fue completada exitosamente y cumplió todos los criterios de aceptación. Wontdo: La tarea no fue realizada por alguna razón de negocio o técnica. Normalmente puede ocurrir cuando la tarea es reemplazada por otra, si es que se detectó que la tarea es demasiado grande como para cumplir el tamaño máximo de 2 semanas. El siguiente diagrama de flujo muestra como una tarea comienza su ciclo de vida desde el Backlog, hasta su aceptación o rechazo final. Si una tarea está congelada más de dos semanas (10 días), se recomienda rechazarla y crear una nueva que la reemplace para cuando se tenga el evento que la descongele. Tareas que se salgan del ciclo de dos semanas deben ser rechazadas y crear una nueva tarea que las reemplace, con una estimación nueva, probablemente su dificultad fue superior a lo previsto y requieran una mayor granularidad. El principal objetivo es crear una cadencia dentro del equipo donde se pueda conocer y mejorar la velocidad y las estimaciones de dificultad de forma progresiva, predecible y sostenible en el tiempo. Los pasos a producción son importantes. Considerar ventanas de \"freeze\" donde no se puede enviar a producción. Normalmente cuando se espera un evento importante como fechas claves. Es un evento semanal de máximo 40 minutos donde la empresa comunica a todos los equipos cualquier novedad relevante, por ejemplo nuevos clientes o colaboradores, planes futuros, felicitaciones a los equipos por un proyecto exitoso. Es una instancia opcional pero recomendada. Normalmente agendado para los días viernes por la mañana. Es una reunión diaria donde el equipo comunica el estado general de avance a los interesados y si han encontrado algún bloqueo o se necesita apoyo adicional para completar una tarea. Normalmente es guiada por el Sherpa de la semana preguntando a cada miembro su estado y moviendo las tarjetas de Kanban a su categoría respectiva. Debe durar 15 minutos como máximo (dependiendo de la cantidad de personas dentro del equipo, recomendado máximo 5 personas). Con un máximo de 3 minutos por persona para decir su estado, mayores detalles en cada tarea se deben coordinar en una instancia de reunión aparte. Pasa también tareas del Doing a Testing o Done. Adicionalmente se puede tener una reunión corta de estado de avance al finalizar el día para cualquier eventualidad que lo requiera, siempre y cuando no supere la carga laboral total del equipo. La Épica (Epic) está separada en cuatro por año. Son metas a cumplir cada tres meses. Q1 (Enero - Marzo), Q2 (Abril - Junio), Q3 (Julio - Septiembre), Q4 (Octubre - Diciembre). El aseo de épica consta de alinear las tareas a realizar para cumplir con los objetivos organizacionales y otras prioridades detectadas durante cada cuatrimestre. El aseo de épica se debe realizar una vez al mes el día lunes (o el primer día hábil del mes) para poder detectar con suficiente tiempo cualquier desviación de cronograma y evitar corrupciones en el alcance. Es una reunión realizada con todo el equipo y debe durar máximo 1 hora. Guiado normalmente por el project manager. Se realiza una vez por semana, normalmente el día martes por la mañana. El equipo selecciona tareas del Backlog y las refina (agregar detalles, estimación de dificultad aproximada, analizar posibles interdependencias y determinar si se necesita mayor información para ser realizada) para ser pasados a la lista de tareas refinadas. Además de las tareas del Backlog, el refinamiento también puede ser para priorizar tareas de la lista de tareas refinadas a la lista de tareas por hacer (To-Do) o mejorar el refinamiento de las tareas ya refinadas. También se puede determinar la lista de tareas que no se realizarán por cambio de prioridades del proyecto. El tiempo estimado de esta reunión es de 1 hora. Guiado normalmente por el sherpa semanal de turno o el project manager. Realizado una vez por semana los días lunes, reemplaza a la Daily del lunes. Se utiliza para priorizar las tareas asignadas semanalmente por el equipo. Es guiada por el project manager o sherpa de turno. El objetivo es priorizar las tareas del To-Do y pasarlas a Doing o tareas del Testing a Done. También es ideal para coordinar cualquier necesidad de los miembros del equipo como no estar durante algún día de la semana, por ejemplo con días de saldo u otra eventualidad a considerar. La coordinación semanal no debería tomar más de 40 minutos. Realizada quincenalmente los días miércoles. Es una oportunidad de revisar las métricas de seguimiento en el equipo para detectar cualquier anomalía o realizar correcciones detectadas en los plazos y cargas laborales acordados. También es una oportunidad de evaluar la moral del equipo y detectar cualquier problema emocional que pudiese afectar al rendimiento general del proyecto. La evaluación no debería tomar más de una hora. Es guiada por el project manager. Responder las preguntas ¿Cómo te sientes?, ¿Qué ha sido lo más difícil hasta ahora?, ¿Qué podríamos hacer para mejorar?, entre otras. La evaluación de métricas también puede ser usada para realizar una entrega parcial o total de los avances presupuestados para el mes. Realizada el último día jueves hábil del mes. Consiste en evaluar las tareas realizadas durante el mes y determinar si se han cumplido las expectativas tanto de estimaciones, calidad y otras métricas para poder considerar dichos conocimientos en futuras iteraciones. También es una buena oportunidad para gestionar cualquier cambio dentro del way of work establecido, herramientas y necesidades encontradas durante el mes. Como se puede apreciar en los hitos y herramientas, existe un plazo mínimo de dos semanas (quincenal) para la revisión de los entregables. Es decir, un entregable no puede tomar más de dos semanas de plazo. Por lo que se debe subdividir si su complejidad es mayor a dos semanas. La serie fibonacci es la recomendada para analizar la dificultad de los entregables: 1, 3, 5, 8. Complejidad Nivel Comentario 1 Bajo La tarea puede ser realizada en un día laboral o menos. 3 Normal La tarea puede ser realizada en una semana (5 días laborables) o menos. 5 Elevado La tarea puede ser realizada en dos semanas (10 días laborables) o menos. 8 Imposible La tarea debe subdividirse y refinarse con mayor granularidad. No es posible realizarla dentro de un plazo de dos semanas. Se estima que el nivel de dificultad 1 equivale en promedio entre 1 a 5 horas de trabajo reales (un día laboral, descontando una hora de almuerzo y una hora de reuniones calendarizada diaria, y una hora de buffer para cualquier inconveniente presentado). Por lo que un ingeniero capacitado debería poder tomar entre 1 a 2 entregables de complejidad baja por día. Asumiendo que la cantidad de horas totales es 40 horas a la semana, pero 25 horas de trabajo real asignado al avance de las tareas comprometidas. La carga laboral debe considerar las horas de reuniones, las horas de colación y las horas disponibles para el avance de cada tarea. La siguiente tabla muestra la equivalencia aproximada entre complejidad y horas necesarias para completarla. Complejidad Horas Estimadas 1 1 a 5 horas (1 día) 3 6 a 25 horas (2 a 5 días) 5 26 a 50 horas (6 a 10 días) La siguiente tabla muestra las posibles combinaciones de carga laboral para un ingeniero capacitado dentro de una semana de 25 horas reales de trabajo. Considerando los valores máximos de horas disponibles por tarea. Combinación Comentario 5 entregables nivel 1 El ingeniero debe ser capaz de entregar 5 tareas nivel 1, si no logra esto quiere decir que las tareas fueron mal estimadas y eran de un nivel superior. (Total de 25 horas a la semana) 2 entregables nivel 3 (parcial) El ingeniero debería ser capaz de trabajar en dos entregables nivel 3 a la semana, pero uno de ellos será completado parcialmente. (Total de 25 horas a la semana). 1 entregable nivel 5 (parcial) El ingeniero debiese ser capaz de avanzar en una tarea nivel 5, aunque solo un avance parcial por semana. (Total de 25 horas a la semana, por dos). 1 entregable nivel 3 y 2 entregables nivel 1 Asumiendo que el entregable nivel 3 sea menor a 5 días (15 horas), se puede combinar con entregables nivel 1. (10 horas). Un ingeniero del equipo de desarrollo puede trabajar en uno o varios proyectos a la vez (aunque lo ideal es siempre un proyecto a la vez), siempre y cuando la cantidad de esfuerzo no supere el máximo de 25 horas laborales reales en conjunción con todos los proyectos que participa. Sin embargo existe un castigo de tiempo al cambiar el contexto. Es probable que las tareas necesiten de mayor cantidad de horas para ser completadas. Se recomienda no más de uno o dos cambios de contexto al día. Por ejemplo en las mañanas puede avanzar en tareas asignadas al proyecto A y en la tarde solamente a tareas asignadas al proyecto B. O también y según prioridades lunes y martes dedicado al proyecto A y miércoles, jueves dedicado al proyecto B. Todo cambio de contexto debe ser coordinado con antelación en el hito de Team Alignment, no es recomendable realizar un cambio de contexto en una semana ya calendarizada y priorizada, a menos que sea una real emergencia. Todo cambio de contexto debe ser avisado al EM para permitir organizar y priorizar la carga semanal. Para evitar que el alcance se corrompa, generando retrasos, disminución de la calidad de los entregables, realización de tareas no prioritarias o aumento de costos por retrabajo. Las tareas asignadas deben pasar siempre por el proceso de backlog → refinamiento → todo, lo que permitirá analizar la pertinencia de las tareas, su dificultad y relevancia para la solución. Algunas tareas pueden ser canceladas o modificadas según el equipo de desarrollo, el PO y el EM estimen convenientes antes de que sean asignadas dentro de una épica determinada. Esto quiere decir que la presentación de los cambios solicitados por el cliente o los stakeholders tienen un plazo mínimo de dos semanas para ser presentados un avance de estado en el hito de Metrics Review. Cualquier cambio que requiera una investigación de factibilidad o aprendizaje del uso de una tecnología en específico, debe ser considerado como una tarea del tipo spike que permita realizar dicha investigación. Los siguientes roles pueden estar presentes en un equipo de desarrollo. Es recomendable que un equipo de desarrollo tenga como máximo 6 personas (4 devs/ux, 1 PO y 1 EM). Cómo mínimo lo recomendable es 4 personas (3 devs/ux y 1 EM/PO), aunque puede llegar a ser viable (según dificultad del proyecto y tiempo disponible) una cantidad mínima de (1 dev/ux y 1 EM/PO). Rol Descripción Responsabilidades Product Owner (PO) Encargado de comunicación con el cliente. Permite conocer el feedback del cliente y determinar las características que el producto debe tener para satisfacer las exigencias y necesidades del cliente. Reuniones directas con el cliente para presentar avances y obtener feedback. Determinar, corregir y aceptar las soluciones propuestas por el equipo. Comunicar al cliente limitaciones y propuestas de solución según limitaciones encontradas. Engineer Manager (EM) Encargado de interactuar con el Product Owner y dirigir el proyecto. Es un ingeniero capacitado tanto en tecnología como en gestión de proyectos. No participa en la elaboración del producto directamente, pero sí ofrece labores de coordinación, priorización y resolución de conflictos o bloqueos que presente el equipo de trabajo. También es el encargado de entrevistar a posibles candidatos para unirse al equipo de trabajo o solicitar movimientos y cambios de colaboradores dentro del equipo. Coordinar con Product Owner para determinar prioridades de tareas e impacto. Coordinar con Tech Lead para definir posibles decisiones técnicas. Solucionar bloqueos y asumir responsabilidad por las decisiones tomadas por el equipo. Definir los miembros del equipo, como también sus responsabilidades y prioridad de tareas. Establece procesos, métricas y ayuda a la gestión general del proyecto. Tech Lead (TL) Ingeniero principal. Es el ingeniero con mayor experticia y conocimiento de la solución o producto. Junto al Engineer Manager toman decisiones técnicas sobre la arquitectura, diseño y elecciones técnicas sobre el desarrollo de la solución. Principal ingeniero de desarrollo. Lidera al equipo técnico, ofreciendo apoyo en resolver problemas técnicos. Toma decisiones de arquitectura junto al Engineer Manager. Asignado a las tareas de mayor dificultad. Alta responsabilidad. Puede apoyar al Engineer Manager para la contratación de nuevos colaboradores. Coordinar con el Product Owner y Engineer Manager sobre priorización de tareas y análisis de factibilidad. Dev Team Member (DEV) Ingeniero del equipo de desarrollo. Desarrollar las características asignadas semanalmente. Elaboración de documentación y otros artefactos relacionados. Participar junto al Tech Lead de completar y aportar en la definición de alternativas de solución para el producto. UI/UX Team Member (UX) Diseñador gráfico del equipo de desarrollo. Puede también ser suplido por un miembro del equipo de Dev con principalmente tareas de diseño de interfaces. Elaboración de interfaces gráficas y soluciones de usabilidad para los sistemas y productos de software solicitados. Coordinación junto al Product Owner para implementación de la retroalimentación. Interesados (Stakeholders) Los interesados son cualquier otra persona con interés en que el proyecto sea elaborado. La estrategia comunicacional con ellos es a través de reportes escritos y reuniones de estado (metrics review). Aportar feedback al PO y al EM sobre otras consideraciones adicionales que el proyecto debe tener. Proporcionar recursos que el equipo de desarrollo necesite, tanto de información como de adquisiciones. Acordar con el PO y EM restricciones de plazos e hitos a cumplir dentro de límites razonables de la calendarización y esfuerzo estimado. Toda solicitud de cambio de un interesado debe pasar por la aprobación del PO primero y comunicada al EM. Para permitir una mejor comunicación entre los miembros del equipo y todos los interesados. Se recomiendan los siguientes canales, los cuales pueden ser implementados dentro de cualquier plataforma de colaboración como Slack, Teams, Zulip, Mattermost, entre otras. Adicionalmente se recomienda la presencia de un chatbot que permita automatizar ciertas operaciones, tanto de gestión del canal como de facilidad para realizar tareas rutinarias. Para permitir mejor la separación de los canales, se definirán los siguientes conceptos: Proyecto: El proyecto es una solución compuesta por uno o más productos de software. Producto: El producto de software es un elemento específico como backend, frontend o varios subproductos combinados. Esto depende de la organización y el equipo de desarrollo que elementos son considerados como un producto. Artefacto: El artefacto es un componente del producto, puede ser código, documentación o herramienta asociada. Los canales conversacionales son necesarios para ayudar en la coordinación de distintos colaboradores e interesados. Queda a criterio de la empresa determinar si se necesita otros adicionales, pero como mínimo se recomiendan los siguientes: Canal General del Proyecto (#): En este canal estarán los EM, los PO, los Stakeholders y si es viable también un representante directo del cliente. Este es un canal para discutir eventos relacionados al proyecto como hitos, reuniones o detalles necesarios que afecten a todos los equipos del proyecto. Canal de Todos los Equipos de Desarrollo del Proyecto (#-devs): Este canal estarán solamente los equipos asociados al desarrollo del proyecto, los stakeholders y los PO. Puede haber miembros de equipos distintos para backend, frontend, qa, etc. Normalmente utilizado para compartir novedades y lineamientos pertinentes a todos los equipos relacionados al proyecto en específico. Son todos los equipos asociados a varios productos. Por lo que también sirve como contacto principal entre los distintos equipos para solicitar información adicional. Canal de Un Equipo en Específico (#): Este canal solo estarán los miembros del equipo de desarrollo y su EM respectivo. Ideal para reuniones y coordinación interna. Se recomienda que cada equipo contribuya para tener un nombre común (Los Cóndores, Los Huemules, etc) y generar un sentido de identidad y pertenencia. Un equipo puede tener uno o más productos a su cargo y estar asociado a uno o más proyectos. Canal de un Producto Específico (#-): En este canal están presentes el PO, El EM y el Equipo de Desarollo asociado al producto. También puede ser usado como principal fuente de resolver dudas acerca del producto que miembros de otros equipos necesiten. Adicionalmente a los canales conversacionales donde los colaboradores interactúan entre sí, debe existir canales de notificaciones pensados para enviar alertas y mensajes asociados a un proyecto y producto en específico. Estas alertas son enviadas por los procesos de monitoreo y herramientas de CI/CD. #--deployments: Notificaciones relacionadas a un producto específico. Puede ser un backend o un frontend o la combinación de varios subproductos en uno solo. La idea es recibir todo lo relativo a los despliegues (dev, staging, prod) y poder tener una trazabilidad de su estado o autorizar los pasos a producción. #--warnings: Notificaciones relacionadas a un producto específico. Son advertencias que deben ser monitoreadas por el Sherpa asociada al estado de servidores o servicios. Por ejemplo puede salir un alerta de que el CPU esta pasando el 70% de saturación. No son críticas, pero se debe prestar atención. #--alerts: Notificaciones Críticas. Se ha detectado un fallo que debe ser reparado lo más pronto posible. Se ha notificado al Sherpa y al EM. Para comprender mejor los despliegues y sus notificaciones se definirán a continuación: No se realiza despliegue, por lo que no hay notificaciones, ya que solo son cambios en el computador local del colaborador. Se realiza un despliegue al servidor develop cada vez que se crea un nuevo Pull Request en Github. Se realizan las pruebas automáticas y si son válidas, se crea una nueva instancia de servidor con recursos limitados y mínimos (URL única, dura 1 hora) que permite validar los cambios por los interesados. Una vez aprobado el estado de dev, puede ser pasado a staging según resultados de la revisión (utilizando un Squash Merge a main, pasando todas las pruebas automáticas y code reviews). La notificación de \"Nuevo Servidor de Dev para PR #1234\" se envía al canal deployments. Los cambios pasan a un ambiente de staging donde se pueden validar en conjunción con otros cambios de otros miembros del equipo. Una vez aprobado el estado de staging debe ser pasado a prod. Solamente el código de la rama main que ha pasado todas las pruebas automaticas puede pasar cambios a staging, es decir cada vez que se haga un cambio en la rama main se despliega a staging y se envía una notificación. Es el estado productivo donde el cliente final puede usar el sistema. Solo puede ser modificado mediante un despliegue desde staging y una aprobación manual por alguien con la autorización necesaria. La notificación anterior de despliegue a staging puede contener un botón para \"Promover a Producción\". Lo que gatillará una nueva notificación con la trazabilidad del despliegue. También considerar que se puede realizar un \"Rollback\" de los despliegues a una versión estable anterior en el caso de que una versión de producción cause conflictos o se detecte problemas graves. Considerar que los despliegues a producción pueden ser \"congelados\" por un periodo de tiempo determinado según los criterios de la organización y el equipo de desarrollo estimen convenientes. También considerar la estrategia de despliegue, por ejemplo en una estrategia de despliegue del tipo \"Canary\" los servidores productivos son desplegados en partes pequeñas (nodos) y si se detecta un margen de error considerable se realiza un rollback automático. El despliegue a prod, crea un nuevo tag en los repositorios de los artefactos relacionados. Lo que permite volver a una versión anterior si es necesario. La versión utiliza SemVer con un número final incrementado automáticamente por cada commit a main.","title":"Way of Work","component":"ROOT","version":"","name":"wow","url":"/swe/wow.html","titles":[{"text":"Horarios Laborales","hash":"horarios-laborales","id":1},{"text":"Trabajo Remoto","hash":"trabajo-remoto","id":2},{"text":"Sherpa","hash":"sherpa","id":3},{"text":"Semana Laboral","hash":"semana-laboral","id":4},{"text":"Días Viernes","hash":"días-viernes","id":5},{"text":"Días Feriados Nacionales","hash":"días-feriados-nacionales","id":6},{"text":"Días Feriados Globales","hash":"días-feriados-globales","id":7},{"text":"Días Feriados de la Empresa","hash":"días-feriados-de-la-empresa","id":8},{"text":"Días de Saldo","hash":"días-de-saldo","id":9},{"text":"Día de Cumpleaños","hash":"día-de-cumpleaños","id":10},{"text":"Días de Vacaciones","hash":"días-de-vacaciones","id":11},{"text":"Días por Maternidad, Paternidad o Situación Médica","hash":"días-por-maternidad-paternidad-o-situación-médica","id":12},{"text":"Excepciones","hash":"excepciones","id":13},{"text":"Flujo de Entrega Continua","hash":"flujo-de-entrega-continua","id":14},{"text":"Kanban","hash":"kanban","id":15},{"text":"Prioridad de Tareas","hash":"prioridad-de-tareas","id":16},{"text":"Tipos de Tareas","hash":"tipos-de-tareas","id":17},{"text":"Categorías de Done","hash":"categorías-de-done","id":18},{"text":"Diagrama de Flujo","hash":"diagrama-de-flujo","id":19},{"text":"Pasos a producción","hash":"pasos-a-producción","id":20},{"text":"Noticias (News)","hash":"noticias-news","id":21},{"text":"Reunión Diaria (Daily)","hash":"reunión-diaria-daily","id":22},{"text":"Aseo de Épica (Epic Grooming)","hash":"aseo-de-épica-epic-grooming","id":23},{"text":"Refinamiento (Refinement)","hash":"refinamiento-refinement","id":24},{"text":"Coordinación del Equipo (Team Alignment)","hash":"coordinación-del-equipo-team-alignment","id":25},{"text":"Evaluación de Métricas (Metrics Review)","hash":"evaluación-de-métricas-metrics-review","id":26},{"text":"Retrospectiva (Retrospective)","hash":"retrospectiva-retrospective","id":27},{"text":"Estimación de Entregables","hash":"estimación-de-entregables","id":28},{"text":"Cambios de Contexto","hash":"cambios-de-contexto","id":29},{"text":"Protección de Corrupción del Alcance","hash":"protección-de-corrupción-del-alcance","id":30},{"text":"Roles","hash":"roles","id":31},{"text":"Estrategia Comunicacional","hash":"estrategia-comunicacional","id":32},{"text":"Canales Convesacionales","hash":"canales-convesacionales","id":33},{"text":"Canales de Notificaciones","hash":"canales-de-notificaciones","id":34},{"text":"Despliegues","hash":"despliegues","id":35},{"text":"local","hash":"local","id":36},{"text":"dev","hash":"dev","id":37},{"text":"staging","hash":"staging","id":38},{"text":"prod","hash":"prod","id":39}]},"46":{"id":46,"text":"El diseño del sistema es el proceso de diseñar la arquitectura, los componentes y las interfaces de un sistema para que cumpla con los requisitos del usuario final. Se refiere al proceso de definir la arquitectura, los módulos, las interfaces y los datos para que un sistema satisfaga requisitos específicos. Es un campo multidisciplinario que implica análisis de compensaciones, equilibrio de requisitos conflictivos y toma de decisiones sobre opciones de diseño que impactar el sistema en general. En las últimas dos décadas, ha habido muchos avances en aplicaciones web a gran escala. Estos avances han redefinido la forma en que pensamos sobre el desarrollo de software. Todas las aplicaciones y servicios que usamos a diario, como Facebook, Instagram y Twitter. , son sistemas escalables. Miles de millones de personas en todo el mundo acceden a estos sistemas simultáneamente, por lo que deben diseñarse para manejar grandes cantidades de tráfico y datos. Aquí es donde entra en juego el diseño del sistema. Como desarrollador de software, se espera cada vez más que comprenda los conceptos de diseño de sistemas y cómo aplicarlos. En las primeras etapas de su carrera, aprender diseño de sistemas le permitirá abordar problemas de diseño de software con más confianza y aplicar principios de diseño a sus proyectos. El diseño de sistemas es un tema enorme. Cada uno tiene un enfoque diferente ya que no existen pautas paso a paso. Una estimación es un ejercicio de calcular los costos y requerimientos de un sistema de forma que se pueda tener una idea y referencia sobre el funcionamiento y costos futuros del mismo. Estimar nos permite validar si la solución está dentro de los parámetros aceptables y analizar su factibilidad técnica y económica. La estimación es suficiente con que sea cercana al valor real, debido a que muchas variables pueden afectar los costos en el futuro. Para poder estimar se necesitan algunas nociones y métricas básicas que pueden ser aplicadas a cualquier sistema. El almacenamiento y transferencia de datos comunmente se mide en Bytes y potencias de 2, debido a que un caracter ASCII es 1 byte (8 bits). La siguiente tabla muestra la unidad de volumen de datos. Potencia Valor Aproximado Nombre Abreviación 1 1 Uno (bit) Bit b 8 8 Ocho (bits) Byte B 10 1 Mil (bits) Kilobyte 1 KB 20 1 Millón (bits) Megabyte 1 MB 30 1 Mil Millón (bits) Gigabyte 1 GB 40 1 Billón (bits) Terabyte 1 TB 50 1 Cuatrillón (bits) Petabyte 1 PB Los tipos de datos que pueden ser usados en una base de datos tienen una cantidad de almacenamiento definido. Va a cambiar dependiendo del motor de base de datos usado. La siguiente tabla muestra un aproximado de los tipos de datos más comunes. Tipo de Dato Tamaño de Almacenamiento Descripción boolean (booleano) 1 byte verdadero o falso. smallint (entero pequeño) 2 bytes Un entero con valores acotados. integer (entero) 4 bytes Un número entero tradicional. bigint (entero grande) 8 bytes Un número entero con mayor capacidad. Para números aún más grandes. float (decimal) 4 bytes Un número decimal con 6 decimales de precisión. double (decimal con doble precisión) 8 bytes Un número decimal con 15 decimales de precisión. varchar (caracteres variable) (4 + n) byte Se suma la cantidad de caracteres más 4 para obtener el total de espacio requerido. blob (binario) variable Un archivo binario almacenado. El tamaño dependerá de cada archivo. La latencia nos indica cuánto se demora un proceso desde que se hace la petición hasta recibir una respuesta. A mayor cantidad de latencia, mayor será el tiempo que necesitemos esperar para obtener una respuesta. El tiempo de retraso de las latencias puede crear ineficiencias, especialmente en las operaciones en tiempo real. Los siguientes gráficos contienen números aproximados, ya que según el avance tecnológico pueden variar con los años. Basado en los números de Jeff Dean y Peter Norvig (http://norvig.com/21-days.html#answers). Operation ns µs ms note L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000 ns 3 µs Send 1K bytes over 1 Gbps network 10,000 ns 10 µs Read 4K randomly from SSD* 150,000 ns 150 µs ~1GB/sec SSD Read 1 MB sequentially from memory 250,000 ns 250 µs Round trip within same datacenter 500,000 ns 500 µs Read 1 MB sequentially from SSD* 1,000,000 ns 1,000 µs 1 ms ~1GB/sec SSD, 4X memory Disk seek 10,000,000 ns 10,000 µs 10 ms 20x datacenter roundtrip Read 1 MB sequentially from disk 20,000,000 ns 20,000 µs 20 ms 80x memory, 20X SSD Send packet CA → Netherlands → CA 150,000,000 ns 150,000 µs 150 ms 1 ns = 10^-9 segundos 1 us = 10^-6 segundos = 1,000 ns 1 ms = 10^-3 segundos = 1,000 us = 1,000,000 ns Normalmente están integrados en el chip del microprocesador. A menos que trabaje directamente con hardware, probablemente no necesite preocuparse por ellos. Se necesitan alrededor de 100 ns para leer datos de la memoria. Redis es un almacén de datos en memoria, por lo que se necesitan unos 100 ns para leer datos de Redis. Se necesitan alrededor de 10 usuarios para enviar 1 KB de datos desde Memcached a través de la red. RocksDB es un almacén K/V basado en disco, por lo que la latencia de lectura es de alrededor de 100 us en SSD. La confirmación de Postgresql puede tardar 1 ms. La base de datos necesita almacenar los datos, crear el índice y vaciar los registros. Todas estas acciones toman tiempo. Si tenemos una llamada de larga distancia por Zoom, la latencia podría rondar los 100 ms. En un sistema de monitoreo, el intervalo de actualización generalmente se establece en 5 a 10 segundos (valor predeterminado en Grafana). Al leer los datos se puede concluir las siguientes cosas: Leer de la memoria es más rápido que leer de un disco duro. Leer del disco duro solo cuando sea obligatorio. Los algoritmos de compresión son rápidos y se recomienda su utilización al enviar los datos por la red. Los centros de datos de diferentes regiones requerirán más tiempo para transferir datos entre ellos. El primer paso en el proceso de estimación es definir los objetivos. Nivel mínimo: Objetivo que no tiene grandes exigencias. ¿Cuánto es lo mínimo que el sistema necesitaría para funcionar correctamente?. Nivel promedio: Objetivo que busca definir el comportamiento normal de un sistema. ¿Cuánto es lo que necesitaría el sistema en un día normal?. Nivel crítico: Objetivo que busca definir el comportamiento exigente de un sistema. ¿Cuánto es lo que necesitaría el sistema en un día de alta exigencia?. Una vez definido el objetivo y los supuestos a cumplir, se debe transformar a datos como tamaño de almacenamiento o tamaño de transferencia. Ya que normalmente son los necesarios para comparar con la tabla de precios de un proveedor de servicios. Al tener el tamaño de almacenamiento o transferencia, se puede estimar los costos monetarios necesarios para lograr los objetivos planteados. La cantidad de usuarios diarios nos ayudará a definir cuán grande es el volumen de consultas por segundo de un sistema, teniendo en consideración las operaciones que los usuarios realicen. Una métrica común es ¿Cúantas consultas tendrá por segundo la aplicación?. Esto nos permite determinar la cantidad de almacenamiento y datos necesarios en los casos hipotéticos acordados. Una red microblogging similar a sistemas como Mastodon o X (Twitter). 300 millones de usuarios activos mensuales. 50% utiliza el sistema diariamente. Se realizan 2 posts por día en promedio. 10% de los posts contienen imagenes (media). Los datos se almacenan por 5 años. El primer paso es obtener la cantidad de usuarios diarios (CUD), para esto obtenemos el 50% de 300 millones. 300 millones (Usuarios Mensuales) * 50% (Uso diario) = 150 millones (Usuarios Diarios) Sabemos que con 150 millones de usuarios diarios, cada usuario realiza 2 posts por día. Esto lo debemos transformar a segundos. posts_por_dia = 150 millones usuarios * 2 posts horas_por_dia = 24 segundos_por_dia = 3600 QPS = posts_por_dia / horas_por_dia / segundos_por_dia QPS = ~3500 Queries por Segundo. Ahora si tomamos la cantidad total de usuarios y asumiendo que todos los usuarios realizan dos posts en un mismo día QPS_MAX = 2 * QPS = ~7000 Queries por Segundo. Ahora si definimos que cada post contiene la siguiente información: id varchar(64) -- cadena de caracteres de 64 bytes text varchar(140) -- cadena de caracteres de 140 bytes media blob(1MB) -- imagen de 1 MegaByte Utilizando la QPS podemos calcular cuánto espacio de almacenamiento necesitamos. peso_imagen = 10% * 1 MB posts_por_dia * peso_imagen terabytes_por_dia = 30 terabytes_en_5_anios = terabytes_por_dia * 365 * 5 // 55 PetaBytes https://www.linkedin.com/posts/alexxubyte_systemdesign-coding-interviewtips-activity-7126968760971714560-aZ7T?trk=public_profile_like_view https://gist.github.com/jboner/2841832 Los servidores pueden estar configurados de distinta forma dependiendo de las necesidades de la aplicación y las capacidades técnicas requeridas. En el ciclo de vida de la aplicación se puede dar situaciones en las que se deba aumentar los recursos disponibles y de que forma son distribuidos. Este es una configuración inicial. Todos los servicios de la aplicación (servidor web, base de datos, almacenamiento de archivos, etc). Están dentro de una sola máquina y comparten recursos de red, procesador, memoria y almacenamiento. Ventajas Es fácil de configurar. Es relativamente barato. Ideal para aplicaciones pequeñas y de poco alcance. Desventajas Propenso a errores por agotamiento de memoria o disco. Solamente un servidor, si este es atacado o comprometido en seguridad, puede significar una brecha total o caida total del servicio. Puede tener mayor latencia para usuarios lejos de la región donde está ubicado el servidor. El siguiente nivel en la configuración es separar el servidor de la base de datos, dandole una instancia propia del servidor de aplicaciones. Ventajas La base de datos tiene sus recursos separados del servidor de aplicaciones. Permite escalar individualmente cada servidor según necesidades. La seguridad es mayor al no compartir la misma máquina. Desventajas Aumenta los costos de mantenimiento al tener más máquinas funcionando. Una vez que las necesidades de la aplicación lo requieran, se puede buscar la configuración a través de la separación de una máquina por servicio. Por ejemplo si la aplicación tiene: servidor web, base de datos, almacenamiento de archivos y procesamiento de datos. Se podría tener una máquina por cada elemento del sistema, una máquina para el servidor web, otra máquina para la base de datos, otra para el sistema de almacenamiento y otra para el procesamiento de datos. Ventajas Cada componente es separado y puede escalar individualmente. Desventajas Los costos aumentan considerablemente. La escalabilidad se refiere a la capacidad de una aplicación para manejar y soportar una mayor carga de trabajo sin sacrificar la latencia. Una aplicación necesita una potencia informática sólida para escalar bien. Los servidores deben ser lo suficientemente potentes para manejar mayores cargas de tráfico. Hay dos formas principales de escalar una aplicación: horizontalmente y verticalmente. El escalamiento horizontal, o ampliación, significa agregar más hardware al conjunto de recursos de hardware existente. Aumenta la potencia computacional del sistema en su conjunto. En el escalado horizontal, agrega más máquinas en paralelo para hacer frente a los requisitos crecientes. Necesitará equilibrio de carga para distribuir la carga en todo el sistema. Si alguna máquina falla, las solicitudes se redirigen a las otras máquinas y se escala bien cuando su Los usuarios aumentan y la inconsistencia de los datos es un inconveniente. El escalamiento vertical, o ampliación, significa agregar más potencia a su servidor. Aumenta la potencia de el hardware que ejecuta la aplicación. El escalado vertical utiliza una máquina enorme que maneja todas sus solicitudes y mejora el tiempo de respuesta y el rendimiento. Aunque ofrece llamadas de red más rápidas, coherencia de datos y sin equilibrio de carga, tiene un único punto de falla y limitaciones de hardware. El balanceador de carga nos permite distribuir el tráfico de red entrante entre múltiples recursos, lo que garantiza una alta disponibilidad y confiabilidad al enviar solicitudes solo a los recursos que están en línea, lo que brinda la flexibilidad de agregar o restar recursos según lo requiera la demanda. Los sitios web modernos con mucho tráfico deben atender cientos de miles, si no millones, de solicitudes simultáneas de usuarios o clientes. Para escalar de manera rentable y satisfacer estos grandes volúmenes, las mejores prácticas informáticas modernas generalmente requieren agregar más servidores. Un balanceador de carga puede ubicarse frente a los servidores y enrutar las solicitudes de los clientes a través de todos los servidores capaces de satisfacer esas solicitudes de una manera que maximice la velocidad y la utilización de la capacidad. Esto garantiza que ningún servidor tenga exceso de trabajo, lo que podría degradar el rendimiento. se cae, el balanceador de carga redirige el tráfico a los servidores en línea restantes. Cuando se agrega un nuevo servidor al grupo de servidores, el balanceador de carga comienza automáticamente a enviarle solicitudes. La replicación es el proceso de compartir información para garantizar la coherencia entre recursos redundantes. Puede replicar componentes de software o hardware para mejorar la confiabilidad, la tolerancia a fallas o la accesibilidad. La replicación se utiliza en muchos sistemas de administración de bases de datos (DBMS), generalmente con una réplica primaria. La relación entre el original y sus copias. El servidor primario recibe todas las actualizaciones, y esas actualizaciones pasan a través de los servidores de réplica. Cada servidor de réplica genera un mensaje cuando recibe correctamente la actualización. La fragmentación de bases de datos es una técnica para el escalado horizontal de bases de datos, donde los datos se dividen en múltiples instancias de bases de datos, o fragmentos, para mejorar el rendimiento y reducir el impacto de grandes cantidades de datos en una sola base de datos. Una cola de mensajes es una cola que enruta mensajes desde un origen a un destino, o desde el remitente al receptor. Sigue la política FIFO (primero en entrar, primero en salir). El mensaje que se envía primero se entrega primero. Las colas de mensajes facilitan la asincronía. Comportamiento, que permite que los módulos se comuniquen entre sí en segundo plano sin obstaculizar las tareas primarias. También facilitan la comunicación entre módulos y proporcionan almacenamiento temporal para los mensajes hasta que sean procesados y consumidos por el consumidor. Las más conocidas son Kafka o RabbitMQ. El almacenamiento en caché es un concepto de diseño de sistema que implica almacenar datos a los que se accede con frecuencia en una ubicación a la que se puede acceder fácil y rápidamente. El propósito del almacenamiento en caché es mejorar el rendimiento y la eficiencia de un sistema al reducir la cantidad de tiempo que lleva acceder a los datos a los que se accede con frecuencia. El almacenamiento en caché se puede utilizar en una variedad de sistemas diferentes, incluidas aplicaciones web, bases de datos y sistemas operativos. En cada caso, el almacenamiento en caché funciona almacenando datos a los que se accede con frecuencia en una ubicación más cercana al usuario o la aplicación. Esto puede incluir el almacenamiento datos en la memoria o en un disco duro local. https://www.geeksforgeeks.org/caching-system-design-concept-for-beginners/ https://www.geeksforgeeks.org/system-design-tutorial/ https://www.educative.io/blog/complete-guide-to-system-design https://github.com/karanpratapsingh/system-design https://www.educative.io/blog/system-design-primer https://www.educative.io/courses/grokking-modern-system-design-interview-for-engineers-managers https://www.educative.io/courses/web-application-software-architecture-101 https://www.geeksforgeeks.org/database-sharding-a-system-design-concept/ https://www.educative.io/path/scalability-system-design https://aws.amazon.com/es/what-is/latency/ Libro System Design Interview [systemdesign].","title":"","component":"ROOT","version":"","name":"chapter","url":"/systemd/chapter.html","titles":[{"text":"Diseño de Sistemas (System Design)","hash":"diseño-de-sistemas-system-design","id":1},{"text":"Estimación de Costos","hash":"estimación-de-costos","id":2},{"text":"Unidad de Volumen de Datos","hash":"unidad-de-volumen-de-datos","id":3},{"text":"Tipos de Datos","hash":"tipos-de-datos","id":4},{"text":"Números de Latencia","hash":"números-de-latencia","id":5},{"text":"Cachés L1 y L2: 1 ns, 10 ns","hash":"cachés-l1-y-l2-1-ns-10-ns","id":6},{"text":"Acceso a RAM: 100 ns","hash":"acceso-a-ram-100-ns","id":7},{"text":"Envía 1K bytes a través de una red de 1 Gbps: 10 us","hash":"envía-1k-bytes-a-través-de-una-red-de-1-gbps-10-us","id":8},{"text":"Leer desde SSD: 100 us","hash":"leer-desde-ssd-100-us","id":9},{"text":"Operación de inserción de base de datos: 1 ms.","hash":"operación-de-inserción-de-base-de-datos-1-ms","id":10},{"text":"Enviar paquete CA→Países Bajos→CA: 100 ms","hash":"enviar-paquete-capaíses-bajosca-100-ms","id":11},{"text":"Reintentar/actualizar interno: 1-10s","hash":"reintentaractualizar-interno-1-10s","id":12},{"text":"Resumen","hash":"resumen","id":13},{"text":"Estimación General","hash":"estimación-general","id":14},{"text":"Cantidad de Usuarios Diarios (CUD)","hash":"cantidad-de-usuarios-diarios-cud","id":15},{"text":"Consultas por Segundo (QPS: Queries per Second)","hash":"consultas-por-segundo-qps-queries-per-second","id":16},{"text":"Ejemplo: Red Microblogging","hash":"ejemplo-red-microblogging","id":17},{"text":"Objetivos y Supuestos","hash":"objetivos-y-supuestos","id":18},{"text":"Obtención de las QPS (Querys per Second)","hash":"obtención-de-las-qps-querys-per-second","id":19},{"text":"Almacenamiento Estimado","hash":"almacenamiento-estimado","id":20},{"text":"Enlaces","hash":"enlaces","id":21},{"text":"Tipos de Configuración de Servidores","hash":"tipos-de-configuración-de-servidores","id":22},{"text":"Servidor Único","hash":"servidor-único","id":23},{"text":"Servidor de Base de Datos Separado","hash":"servidor-de-base-de-datos-separado","id":24},{"text":"Una Máquina por Servicio","hash":"una-máquina-por-servicio","id":25},{"text":"Escalado horizontal y vertical","hash":"escalado-horizontal-y-vertical","id":26},{"text":"Escalado Horizontal","hash":"escalado-horizontal","id":27},{"text":"Escalado Vertical","hash":"escalado-vertical","id":28},{"text":"Balanceo de Carga (Load Balancer)","hash":"balanceo-de-carga-load-balancer","id":29},{"text":"Redundancia y Replicación","hash":"redundancia-y-replicación","id":30},{"text":"Base de datos Fragmentada (Database Sharding)","hash":"base-de-datos-fragmentada-database-sharding","id":31},{"text":"Colas de mensajes","hash":"colas-de-mensajes","id":32},{"text":"Caché","hash":"caché","id":33},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":34}]}},"components":{},"componentVersions":{"ROOT/":{"displayVersion":"Spanish","title":"Elixir Full-Stack","version":"","name":"ROOT","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Elixir Full-Stack","site-url":"https://elixircl.github.io/elixir-fullstack","kroki-fetch-diagram":true,"experimental":"","idprefix":"","idseparator":"-","page-pagination":"","highlightjs-theme":"monokai","highlightjs-languages":"js, elixir, sql, yaml, html, css, php","page-home":"Inicio"},"sourcemap":false,"extensions":[{},{}]},"url":"/index.html","navigation":[{"content":"Historia","items":[{"content":"Historia de la World Wide Web y Aplicaciones Móviles","url":"/history/chapter.html","urlType":"internal"}],"root":true,"order":1},{"content":"Ecosistema Tecnológico y Laboral","items":[{"content":"Mundo Laboral y su Estado del Arte","url":"/ecosystem/jobs.html","urlType":"internal"},{"content":"Ecosistema Web","url":"/ecosystem/web.html","urlType":"internal"},{"content":"Large Language Models (LLM)","url":"/ecosystem/llm.html","urlType":"internal"}],"root":true,"order":2},{"content":"Ingeniería en Software","items":[{"content":"Etapas del Desarrollo de un Producto de Software","url":"/swe/stages.html","urlType":"internal"},{"content":"Patrones y Arquitecturas de Software","url":"/swe/patterns.html","urlType":"internal"},{"content":"Arquitecture Decision Records","url":"/swe/adr.html","urlType":"internal"},{"content":"Documento de Requerimiento de Producto (Product Requirement Document - PRD)","url":"/swe/prd.html","urlType":"internal"},{"content":"Way of Work","url":"/swe/wow.html","urlType":"internal"},{"content":"Pruebas de Aceptación de Usuario (User Aceptance Testing - UAT)","url":"/swe/uat.html","urlType":"internal"},{"content":"Versionado y Política de Compatibilidad y Obsolescencia","url":"/swe/deprecation.html","urlType":"internal"}],"root":true,"order":3},{"content":"Github","items":[{"content":"Github, Static Site Generators, Markdown, Linux y Vim","url":"/github/chapter.html","urlType":"internal"}],"root":true,"order":5},{"content":"Hostings","items":[{"content":"Hosting, Dominios y Cpanel","url":"/hosting/chapter.html","urlType":"internal"}],"root":true,"order":6},{"content":"Networking","items":[{"content":"Redes e Internet","url":"/networking/chapter.html","urlType":"internal"}],"root":true,"order":7},{"content":"HTTP","items":[{"content":"HTTP, JSON y APIS","url":"/http/chapter.html","urlType":"internal"}],"root":true,"order":8},{"content":"Seguridad","items":[{"content":"Seguridad de las Aplicaciones","url":"/security/security.html","urlType":"internal"},{"content":"Criptografía y Autenticación","url":"/security/cryptography.html","urlType":"internal"}],"root":true,"order":9},{"content":"HTML","items":[{"content":"HTML, CSS y GIT","url":"/html/chapter.html","urlType":"internal"}],"root":true,"order":10},{"content":"Javascript","items":[{"content":"Frontend con Javascript","url":"/javascript/chapter.html","urlType":"internal"}],"root":true,"order":11},{"content":"Elixir","items":[{"content":"El Lenguaje Elixir","url":"/elixir/elixir.html","urlType":"internal"},{"content":"REST: Stoic API","url":"/elixir/apirest.html","urlType":"internal"},{"content":"LiveView: Stoic API","url":"/elixir/liveview.html","urlType":"internal"},{"content":"Testing: Stoic API","url":"/elixir/testing.html","urlType":"internal"},{"content":"Ash: Stoic API","url":"/elixir/ash.html","urlType":"internal"},{"content":"Makefiles","url":"/elixir/commands.html","urlType":"internal"}],"root":true,"order":12},{"content":"Aplicaciones Móviles","items":[{"content":"Aplicaciones Móviles","url":"/mobile/chapter.html","urlType":"internal"},{"content":"Progresive Web Apps","url":"/mobile/pwa.html","urlType":"internal"}],"root":true,"order":13},{"content":"Videojuegos","items":[{"content":"Videojuegos","url":"/games/games.html","urlType":"internal"}],"root":true,"order":14},{"content":"DevOps","items":[{"content":"Ambientes de Desarrollo","url":"/devops/devenvs.html","urlType":"internal"},{"content":"Observabilidad e Instrumentación","url":"/devops/observability.html","urlType":"internal"},{"content":"Métricas DORA","url":"/devops/dora.html","urlType":"internal"},{"content":"Golden Signals","url":"/devops/golden.html","urlType":"internal"}],"root":true,"order":15}]}}}}) \ No newline at end of file +antoraSearch.initSearch(lunr, {"index":{"version":"2.3.9","fields":["title","name","text","component","keyword"],"fieldVectors":[["title/1-1",[0,65.628]],["name/1-1",[]],["text/1-1",[]],["component/1-1",[]],["keyword/1-1",[]],["title/1",[]],["name/1",[1,0.934]],["text/1",[0,4.556,2,3.805,3,2.962,4,3.514,5,3.636,6,4.758,7,3.856,8,5.305,9,4.139,10,3.375,11,5.176,12,3.355,13,4.84,14,2.76,15,3.4,16,3.405,17,4.143,18,3.777,19,5.484,20,4.398,21,2.291,22,3.943,23,3.308,24,3.355,25,4.364,26,5.305,27,3.458,28,3.139,29,3.573,30,3.4,31,3.943,32,3.971,33,3.092,34,4.038,35,2.76,36,4.398,37,4.143,38,3.845,39,3.943,40,3.932,41,3.704,42,4.262,43,2.814,44,3.405,45,3.4,46,5.955,47,3.943,48,3.405,49,4.262,50,4.832,51,3.514,52,4.398,53,2.787,54,4.758,55,3.777,56,5.305,57,2.962,58,2.572,59,3.308,60,3.263,61,4.556,62,3.139,63,5.305,64,4.985,65,2.995,66,5.305,67,2.995,68,5.305,69,4.985,70,5.305,71,4.262]],["component/1",[72,0.396]],["keyword/1",[]],["title/2-1",[73,83.389]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["keyword/2-1",[]],["title/2",[]],["name/2",[74,0.934]],["text/2",[]],["component/2",[72,0.396]],["keyword/2",[]],["title/3-1",[2,24.578,9,30.818,75,47.402]],["name/3-1",[]],["text/3-1",[]],["component/3-1",[]],["keyword/3-1",[]],["title/3",[]],["name/3",[76,0.709]],["text/3",[2,3.583,15,3.691,21,2.29,28,4.76,30,4.462,32,4.31,33,2.912,54,5.165,57,4.493,58,4.717,77,6.67,78,7.2,79,6.911,80,6.911,81,4.399,82,6.284,83,4.268,84,4.883,85,5.729,86,7.561,87,4.948]],["component/3",[72,0.396]],["keyword/3",[]],["title/4-1",[88,76.406]],["name/4-1",[]],["text/4-1",[]],["component/4-1",[]],["keyword/4-1",[]],["title/4",[]],["name/4",[89,0.934]],["text/4",[2,2.641,6,1.424,21,1.76,28,2.787,30,2.161,32,4.286,33,2.465,38,1.211,40,1.545,45,2.161,58,2.284,81,1.593,87,4.6,90,1.843,91,1.792,92,2.738,93,2.913,94,2.034,95,2.913,96,2.913,97,2.913,98,4.916,99,4.427,100,1.792,101,4.604,102,1.817,103,2.913,104,2.607,105,2.913,106,7.52,107,6.812,108,2.913,109,2.913,110,2.913,111,2.738,112,3.785,113,3.905,114,2.738,115,2.913,116,2.913,117,2.913,118,2.913,119,3.679,120,2.913,121,2.913,122,2.738,123,2.913,124,2.913,125,2.913,126,2.913,127,2.913,128,2.738,129,2.913,130,2.913,131,2.913,132,3.173,133,2.415,134,2.913,135,4.427,136,2.738,137,2.913,138,2.738,139,2.913,140,2.913,141,2.738,142,2.738,143,2.341,144,3.501,145,4.427,146,4.427,147,2.913,148,2.913,149,2.913,150,2.913,151,2.913,152,2.738,153,2.607,154,2.607,155,2.607,156,2.738,157,1.817,158,2.913,159,2.913,160,2.913,161,2.074,162,2.738,163,2.913,164,2.913,165,4.632,166,2.738,167,2.913,168,2.913,169,2.913,170,4.427,171,4.046,172,4.215,173,2.913,174,5.573,175,2.913,176,2.738,177,2.738,178,2.738,179,2.738,180,2.415,181,2.415,182,2.738,183,2.738,184,2.738,185,2.738,186,2.738,187,2.913,188,2.913,189,3.679,190,2.913,191,4.215,192,2.913,193,2.217,194,2.913,195,3.585,196,2.913,197,2.913,198,2.738,199,2.275,200,4.427,201,2.118,202,2.415,203,2.118,204,2.913,205,2.275,206,4.427,207,4.427,208,2.341,209,3.679,210,2.502,211,2.913,212,1.53,213,2.913,214,2.607,215,2.502,216,4.711,217,4.711,218,2.738,219,2.913,220,2.913,221,1.792,222,2.913,223,2.913,224,2.913,225,2.913,226,2.913,227,2.738,228,2.913,229,2.913,230,4.427,231,7.276,232,2.913,233,1.87,234,2.607,235,2.034,236,2.523,237,1.724,238,1.703,239,2.913,240,2.913,241,2.913,242,2.913,243,5.222,244,5.306,245,4.046,246,4.711,247,4.427,248,6.812,249,4.215,250,2.913,251,1.899,252,2.738,253,3.905,254,2.217,255,2.913,256,2.913,257,2.913,258,2.913,259,3.905,260,4.427,261,2.502,262,2.074,263,2.034,264,2.738,265,2.415,266,2.415,267,2.913,268,2.415,269,2.913,270,2.738,271,4.215,272,2.034,273,4.427,274,4.046,275,2.913,276,2.165,277,2.913,278,2.913,279,5.306,280,4.427,281,4.514,282,2.607,283,2.738,284,2.165,285,2.913,286,2.913]],["component/4",[72,0.396]],["keyword/4",[]],["title/5",[]],["name/5",[287,0.804]],["text/5",[]],["component/5",[72,0.396]],["keyword/5",[]],["title/6-1",[288,76.406]],["name/6-1",[]],["text/6-1",[]],["component/6-1",[]],["keyword/6-1",[]],["title/6",[]],["name/6",[289,0.934]],["text/6",[2,3.051,6,4.303,13,3.408,25,3.5,33,3.185,35,3.565,77,5.68,78,6.131,87,4.214,144,5.092,283,6.439,290,5.68,291,3.322,292,6.852,293,6.852,294,4.914,295,6.852,296,3.634,297,6.145,298,7.07,299,6.852,300,6.852,301,5.505,302,5.351,303,4.981,304,6.852,305,6.852,306,4.697,307,6.439,308,5.885,309,3.634,310,4.466,311,6.852,312,6.852,313,3.35,314,6.852,315,6.852,316,4.714,317,6.852,318,3.958,319,6.852,320,6.439,321,6.852,322,4.105,323,6.852,324,6.852]],["component/6",[72,0.396]],["keyword/6",[]],["title/7",[]],["name/7",[325,0.856]],["text/7",[]],["component/7",[72,0.396]],["keyword/7",[]],["title/8",[]],["name/8",[326,0.934]],["text/8",[]],["component/8",[72,0.396]],["keyword/8",[]],["title/9",[]],["name/9",[327,0.934]],["text/9",[]],["component/9",[72,0.396]],["keyword/9",[]],["title/10-1",[2,24.578,9,30.818,75,47.402]],["name/10-1",[]],["text/10-1",[]],["component/10-1",[]],["keyword/10-1",[]],["title/10-2",[0,65.628]],["name/10-2",[]],["text/10-2",[]],["component/10-2",[]],["keyword/10-2",[]],["title/10-3",[328,71.806]],["name/10-3",[]],["text/10-3",[]],["component/10-3",[]],["keyword/10-3",[]],["title/10-4",[329,46.371]],["name/10-4",[]],["text/10-4",[]],["component/10-4",[]],["keyword/10-4",[]],["title/10-5",[53,40.137]],["name/10-5",[]],["text/10-5",[]],["component/10-5",[]],["keyword/10-5",[]],["title/10-6",[32,14.991,33,10.127,37,13.569,53,14.701,100,17.211,102,17.45,313,13.683,330,17.964,331,24.037,332,17.45]],["name/10-6",[]],["text/10-6",[]],["component/10-6",[]],["keyword/10-6",[]],["title/10-7",[53,20.465,101,21.298,316,20.869,333,21.755,334,26.241,335,26.705]],["name/10-7",[]],["text/10-7",[]],["component/10-7",[]],["keyword/10-7",[]],["title/10-8",[34,32.875,53,22.689,318,24.948,336,35.808,337,34.702]],["name/10-8",[]],["text/10-8",[]],["component/10-8",[]],["keyword/10-8",[]],["title/10-9",[288,76.406]],["name/10-9",[]],["text/10-9",[]],["component/10-9",[]],["keyword/10-9",[]],["title/10-10",[88,76.406]],["name/10-10",[]],["text/10-10",[]],["component/10-10",[]],["keyword/10-10",[]],["title/10",[17,43.104,18,39.296,87,33.941]],["name/10",[338,0.804]],["text/10",[0,0.608,2,3.661,3,1.843,4,0.887,5,0.486,6,3.231,7,0.515,8,0.708,9,1.064,10,2.251,11,1.687,12,0.847,13,3.574,14,2.101,15,2.789,16,0.455,17,0.553,18,0.504,19,1.848,20,0.587,21,2.473,22,0.526,23,0.835,24,0.847,25,2.525,26,0.708,27,0.873,28,1.703,29,0.902,30,3.513,31,0.526,32,3.703,33,3.203,34,1.45,35,3.164,36,0.587,37,2.64,38,3.183,39,1.416,40,2.142,41,0.495,42,0.569,43,2.76,44,0.455,45,2.789,46,1.941,47,0.996,48,0.455,49,0.569,50,0.873,51,0.469,52,0.587,53,2.121,54,2.365,55,0.504,56,0.708,57,1.349,58,1.958,59,1.188,60,0.824,61,0.608,62,0.419,63,0.708,64,0.666,65,0.756,66,0.708,67,0.4,68,0.708,69,0.666,70,0.708,71,0.569,77,1.11,78,1.199,79,0.608,80,0.608,81,0.732,82,0.553,83,1.527,84,2.236,85,2.349,86,0.666,87,3.041,90,0.448,91,0.436,92,0.666,93,0.708,94,2.01,95,0.708,96,0.708,97,0.708,98,1.58,99,1.259,100,2.029,101,2.845,102,1.795,103,0.708,104,0.634,105,0.708,106,3.101,107,2.416,108,0.708,109,0.708,110,0.708,111,0.666,112,1.076,113,1.11,114,0.666,115,0.708,116,0.708,117,0.708,118,0.708,119,1.488,120,0.708,121,0.708,122,0.666,123,0.708,124,0.708,125,0.708,126,0.708,127,0.708,128,0.666,129,0.708,130,0.708,131,0.708,132,1.627,133,0.587,134,0.708,135,1.259,136,0.666,137,0.708,138,0.666,139,0.708,140,0.708,141,0.666,142,0.666,143,0.569,144,1.416,145,1.259,146,1.259,147,0.708,148,0.708,149,0.708,150,0.708,151,0.708,152,0.666,153,0.634,154,0.634,155,0.634,156,0.666,157,0.442,158,0.708,159,0.708,160,0.708,161,0.954,162,0.666,163,0.708,164,0.708,165,1.488,166,0.666,167,0.708,168,0.708,169,0.708,170,1.259,171,1.151,172,1.199,173,0.708,174,1.791,175,0.708,176,0.666,177,0.666,178,0.666,179,0.666,180,1.11,181,0.587,182,0.666,183,2.705,184,0.666,185,0.666,186,0.666,187,0.708,188,0.708,189,1.046,190,0.708,191,1.199,192,0.708,193,0.539,194,0.708,195,1.02,196,0.708,197,0.708,198,0.666,199,0.553,200,1.259,201,0.974,202,0.587,203,0.974,204,0.708,205,0.553,206,1.259,207,1.259,208,0.569,209,1.887,210,0.608,211,0.708,212,1.733,213,0.708,214,0.634,215,0.608,216,1.339,217,1.339,218,0.666,219,0.708,220,0.708,221,0.436,222,0.708,223,0.708,224,0.708,225,0.708,226,0.708,227,0.666,228,0.708,229,0.708,230,1.259,231,3.506,232,0.708,233,1.223,234,0.634,235,0.495,236,1.021,237,2.18,238,0.414,239,0.708,240,0.708,241,0.708,242,0.708,243,3.452,244,1.705,245,1.151,246,1.339,247,1.259,248,2.416,249,1.199,250,0.708,251,1.242,252,0.666,253,1.11,254,0.539,255,0.708,256,0.708,257,0.708,258,0.708,259,1.11,260,1.259,261,0.608,262,0.504,263,0.495,264,0.666,265,0.587,266,0.587,267,0.708,268,0.587,269,0.708,270,0.666,271,1.199,272,0.935,273,1.259,274,1.151,275,0.708,276,0.996,277,0.708,278,0.708,279,1.705,280,1.259,281,1.45,282,0.634,283,1.259,284,0.526,285,0.708,286,0.708,290,0.587,291,1.396,292,0.708,293,0.708,294,1.064,295,0.708,296,0.71,297,1.687,298,1.531,299,0.708,300,0.708,301,0.569,302,0.553,303,0.515,304,0.708,305,0.708,306,0.486,307,0.666,308,0.608,309,1.75,310,1.242,311,0.708,312,0.708,313,1.407,314,0.708,315,0.708,316,1.768,317,0.708,318,1.663,319,0.708,320,0.666,321,0.708,322,2.208,323,0.708,324,0.708,329,1.747,330,1.848,332,2.057,333,1.843,334,2.72,335,1.973,336,0.587,337,3.748,339,0.526,340,1.952,341,0.666,342,1.199,343,2.577,344,0.708,345,2.248,346,1.076,347,0.539,348,0.608,349,0.996,350,0.436,351,0.569,352,1.262,353,0.569,354,2.304,355,2.186,356,0.404,357,0.634,358,1.488,359,0.902,360,0.539,361,1.031,362,1.259,363,0.666,364,1.042,365,0.539,366,0.515,367,0.873,368,0.442,369,0.608,370,0.996,371,1.307,372,1.45,373,0.666,374,2.386,375,0.708,376,0.996,377,1.151,378,0.902,379,1.75,380,0.666,381,0.974,382,1.064,383,1.364,384,0.469,385,0.708,386,0.455,387,0.462,388,0.666,389,0.587,390,0.515,391,0.442,392,1.101,393,1.839,394,0.708,395,0.708,396,0.708,397,1.339,398,1.11,399,1.151,400,0.708,401,0.708,402,1.905,403,1.259,404,1.151,405,1.076,406,0.666,407,0.708,408,1.259,409,0.708,410,0.708,411,0.708,412,0.666,413,0.86,414,0.539,415,0.708,416,1.339,417,0.708,418,0.666,419,0.666,420,1.259,421,0.708,422,2.416,423,2.416,424,2.416,425,0.608,426,0.708,427,0.539,428,0.708,429,0.708,430,0.708,431,0.708,432,0.634,433,0.634,434,0.462,435,0.708,436,0.708,437,0.539,438,0.708,439,0.666,440,0.708,441,0.708,442,1.259,443,0.708,444,1.339,445,0.708,446,0.569,447,0.634,448,0.708,449,0.708,450,0.569,451,1.905,452,0.666,453,0.587,454,0.634,455,0.708,456,0.708,457,0.608,458,0.708,459,0.708,460,0.708,461,0.708,462,0.708,463,0.708,464,0.569,465,0.666,466,0.708,467,0.708,468,0.708,469,0.708,470,1.905,471,0.708,472,0.708,473,0.666,474,0.608,475,1.339,476,1.887,477,0.666,478,0.708,479,0.708,480,0.666,481,0.587,482,0.708,483,0.666,484,0.708,485,0.708,486,0.708,487,0.718,488,1.656,489,1.339,490,1.02,491,0.4,492,0.748,493,0.462,494,0.666,495,0.708,496,1.339,497,0.708,498,0.486,499,0.43,500,0.666,501,3.074,502,0.708,503,1.151,504,0.634,505,0.486,506,0.666,507,1.47,508,1.257,509,2.492,510,0.634,511,0.448,512,1.046,513,0.708,514,0.708,515,0.708,516,0.666,517,0.708,518,0.587,519,1.11,520,0.43,521,0.666,522,0.708,523,0.666,524,0.708,525,0.873,526,0.666,527,0.954,528,0.526,529,0.455,530,0.708,531,0.569,532,1.321,533,0.469,534,0.708,535,0.708,536,0.708,537,0.708,538,0.708,539,1.339,540,0.708,541,1.076,542,1.151,543,0.608,544,0.495,545,0.666,546,0.526,547,0.569,548,1.088,549,0.634,550,1.127,551,0.666,552,0.793,553,0.708,554,0.666,555,0.587,556,0.477,557,0.608,558,2.08,559,0.608,560,0.587,561,1.703,562,0.666,563,0.587,564,0.539,565,0.469,566,1.199,567,0.708,568,0.608,569,0.442,570,0.708,571,0.462,572,0.553,573,0.469,574,0.708,575,0.462,576,1.531,577,1.385,578,0.469,579,0.708,580,0.539,581,0.569,582,0.515,583,0.477,584,0.396,585,0.419,586,1.887,587,0.708,588,0.526,589,0.608,590,3.685,591,2.679,592,0.477,593,0.918,594,0.608,595,1.076,596,0.666,597,0.462,598,2.075,599,0.684,600,2.96,601,4.18,602,0.526,603,0.553,604,1.11,605,0.608,606,0.708,607,0.666,608,1.357,609,0.462,610,1.156,611,0.515,612,0.725,613,0.813,614,1.199,615,0.708,616,0.569,617,2.834,618,0.666,619,0.608,620,0.486,621,0.666,622,0.409,623,0.477,624,0.608,625,0.708,626,0.887,627,0.902,628,0.666,629,0.608,630,0.666,631,0.587,632,0.634,633,0.634,634,0.569,635,0.666,636,0.634,637,0.469,638,0.539,639,0.387,640,0.404,641,0.569,642,0.634,643,0.634,644,1.042,645,0.515,646,1.076,647,0.587,648,0.708,649,0.708,650,0.708,651,0.634,652,0.708,653,0.43,654,0.504,655,0.486,656,1.876,657,2.576,658,4.665,659,2.76,660,0.515,661,1.973,662,2.313,663,0.708,664,0.338,665,1.259,666,2.139,667,0.666,668,0.708,669,0.708,670,0.553,671,0.515,672,0.666,673,0.708,674,0.708,675,0.708,676,0.587,677,1.046,678,2.416,679,0.634,680,0.708,681,0.708,682,0.486,683,0.708,684,0.666,685,0.708,686,0.982,687,0.424,688,0.569,689,0.634,690,0.634,691,0.553,692,0.436,693,0.379,694,1.705,695,0.608,696,0.608,697,0.477,698,0.504,699,0.708,700,0.442,701,0.634,702,0.504,703,0.539,704,0.666,705,0.436,706,0.666,707,0.462,708,0.569,709,0.526,710,1.339,711,0.608,712,0.608,713,0.666,714,0.708,715,0.569,716,0.504,717,0.504,718,0.708,719,0.569,720,0.539,721,0.539,722,0.708,723,0.608,724,1.45,725,0.504,726,0.708,727,0.477,728,0.448,729,0.455,730,0.708,731,0.414,732,0.477,733,0.634,734,0.436,735,0.634,736,0.666,737,0.708,738,0.504,739,0.553,740,0.608,741,0.486,742,0.634,743,0.587,744,0.553,745,0.608,746,0.338,747,0.553,748,0.526,749,0.569,750,0.448,751,0.526,752,0.539,753,0.666,754,0.587,755,0.495,756,0.666,757,0.587,758,0.455,759,0.515,760,0.666]],["component/10",[72,0.396]],["keyword/10",[]],["title/11-1",[328,71.806]],["name/11-1",[]],["text/11-1",[]],["component/11-1",[]],["keyword/11-1",[]],["title/11-2",[329,46.371]],["name/11-2",[]],["text/11-2",[]],["component/11-2",[]],["keyword/11-2",[]],["title/11-3",[53,40.137]],["name/11-3",[]],["text/11-3",[]],["component/11-3",[]],["keyword/11-3",[]],["title/11-4",[32,14.991,33,10.127,37,13.569,53,14.701,100,17.211,102,17.45,313,13.683,330,17.964,331,24.037,332,17.45]],["name/11-4",[]],["text/11-4",[]],["component/11-4",[]],["keyword/11-4",[]],["title/11-5",[53,20.465,101,21.298,316,20.869,333,21.755,334,26.241,335,26.705]],["name/11-5",[]],["text/11-5",[]],["component/11-5",[]],["keyword/11-5",[]],["title/11-6",[34,32.875,53,22.689,318,24.948,336,35.808,337,34.702]],["name/11-6",[]],["text/11-6",[]],["component/11-6",[]],["keyword/11-6",[]],["title/11",[]],["name/11",[328,0.804]],["text/11",[2,3.731,3,2.056,4,0.641,6,2.914,9,0.541,10,2.434,11,1.254,12,0.612,13,3.623,14,2.395,15,2.969,19,1.152,21,2.541,23,0.604,24,0.612,25,2.351,27,0.631,28,0.573,29,0.652,30,3.623,32,3.336,33,3.259,34,1.367,35,3.486,37,2.748,38,3.337,39,1.334,40,1.953,43,3.161,45,2.856,46,1.442,47,0.72,53,2.418,54,2.011,57,1.003,58,1.217,59,1.119,60,0.596,65,0.547,83,1.662,84,2.53,85,2.622,87,1.927,94,2.188,100,2.265,101,2.013,102,1.954,119,0.756,132,1.209,161,0.69,180,0.803,183,2.945,201,0.704,203,0.704,209,1.402,212,1.934,233,1.152,236,0.519,237,2.467,243,2.911,251,1.17,272,0.676,276,0.72,291,1.519,294,0.541,296,0.514,297,1.254,298,0.778,309,1.953,310,1.17,313,1.532,316,1.678,318,1.81,322,2.498,329,2.235,330,2.364,332,2.599,333,2.328,334,3.364,335,2.524,336,0.803,337,4.553,339,0.72,340,2.467,341,0.91,342,1.607,343,3.256,344,0.968,345,2.876,346,1.442,347,0.737,348,0.832,349,1.334,350,0.596,351,0.778,352,1.662,353,0.778,354,2.911,355,2.761,356,0.553,357,0.867,358,1.96,359,1.209,360,0.737,361,1.358,362,1.687,363,0.91,364,1.372,365,0.737,366,0.704,367,1.17,368,0.604,369,0.832,370,1.334,371,1.695,372,1.91,373,0.91,374,3.053,375,0.968,376,1.334,377,1.542,378,1.209,379,2.211,380,0.91,381,1.305,382,1.402,383,1.769,384,0.641,385,0.968,386,0.622,387,0.631,388,0.91,389,0.803,390,0.704,391,0.604,392,1.45,393,2.385,394,0.968,395,0.968,396,0.968,397,1.795,398,1.488,399,1.542,400,0.968,401,0.968,402,2.51,403,1.687,404,1.542,405,1.442,406,0.91,407,0.968,408,1.687,409,0.968,410,0.968,411,0.968,412,0.91,413,1.152,414,0.737,415,0.968,416,1.795,417,0.968,418,0.91,419,0.91,420,1.687,421,0.968,422,3.133,423,3.133,424,3.133,425,0.832,426,0.968,427,0.737,428,0.968,429,0.968,430,0.968,431,0.968,432,0.867,433,0.867,434,0.631,435,0.968,436,0.968,437,0.737,438,0.968,439,0.91,440,0.968,441,0.968,442,1.687,443,0.968,444,1.795,445,0.968,446,0.778,447,0.867,448,0.968,449,0.968,450,0.778,451,2.51,452,0.91,453,0.803,454,0.867,455,0.968,456,0.968,457,0.832,458,0.968,459,0.968,460,0.968,461,0.968,462,0.968,463,0.968,464,0.778,465,0.91,466,0.968,467,0.968,468,0.968,469,0.968,470,2.51,471,0.968,472,0.968,473,0.91,474,0.832,475,1.795,476,2.447,477,0.91,478,0.968,479,0.968,480,0.91,481,0.803,482,0.968,483,0.91,484,0.968,485,0.968,486,0.968,487,0.962,488,2.148,489,1.795,490,1.367,491,0.547,492,1.003,493,0.631,494,0.91,495,0.968,496,1.795,497,0.968,498,0.664,499,0.588,500,0.91,501,3.801,502,0.968,503,1.542,504,0.867,505,0.664,506,0.91,507,1.881,508,1.63,509,3.053,510,0.867,511,0.612,512,1.402,513,0.968,514,0.968,515,0.968,516,0.91,517,0.968,518,0.803,519,1.488,520,0.588,521,0.91,522,0.968,523,0.91,524,0.968,525,1.17,526,0.91,527,1.278,528,0.72,529,0.622,530,0.968,531,0.778,532,1.713,533,0.641,534,0.968,535,0.968,536,0.968,537,0.968,538,0.968,539,1.795,540,0.968,541,1.442,542,1.542,543,0.832,544,0.676,545,0.91,546,0.72,547,0.778,548,1.433,549,0.867,550,1.485,551,0.91,552,1.062,553,0.968,554,0.91,555,0.803,556,0.652,557,0.832,558,2.599,559,0.832,560,0.803,561,2.179,562,0.91,563,0.803,564,0.737,565,0.641,566,1.607,567,0.968,568,0.832,569,0.604,570,0.968,571,0.631,572,0.756,573,0.641,574,0.968,575,0.631,576,2.016,577,1.825,578,0.641,579,0.968,580,0.737,581,0.778,582,0.704,583,0.652,584,0.541,585,0.573,586,2.447,587,0.968,588,0.72,589,0.832,590,4.603,591,3.347,592,0.652,593,1.231,594,0.832,595,1.442,596,0.91,597,0.631,598,2.691,599,0.917,600,3.699,601,5.003,602,0.72,603,0.756,604,1.488,605,0.832,606,0.968,607,0.91,608,1.787,609,0.631,610,1.523,611,0.704,612,0.971,613,1.09,614,1.607,615,0.968,616,0.778,617,3.581,618,0.91,619,0.832,620,0.664,621,0.91,622,0.559,623,0.652,624,0.832,625,0.968,626,1.189,627,1.209,628,0.91,629,0.832,630,0.91,631,0.803,632,0.867,633,0.867,634,0.778,635,0.91,636,0.867,637,0.641,638,0.737,639,0.529,640,0.553,641,0.778,642,0.867,643,0.867,644,1.372,645,0.704,646,1.417,647,0.803,648,0.968,649,0.968,650,0.968,651,0.867,652,0.968,653,0.588,654,0.69,655,0.664,656,2.4,657,3.295,658,5.667,659,3.353,660,0.704,661,2.524,662,2.958,663,0.968,664,0.462,665,1.687,666,2.737,667,0.91,668,0.968,669,0.968,670,0.756,671,0.704,672,0.91,673,0.968,674,0.968,675,0.968,676,0.803,677,1.402,678,3.133,679,0.867,680,0.968,681,0.968,682,0.664,683,0.968,684,0.91,685,0.968,686,1.294,687,0.58,688,0.778,689,0.867,690,0.867,691,0.756,692,0.596,693,0.519,694,2.246,695,0.832,696,0.832,697,0.652,698,0.69,699,0.968,700,0.604,701,0.867,702,0.69,703,0.737,704,0.91,705,0.596,706,0.91,707,0.631,708,0.778,709,0.72,710,1.795,711,0.832,712,0.832,713,0.91,714,0.968,715,0.778,716,0.69,717,0.69,718,0.968,719,0.778,720,0.737,721,0.737,722,0.968,723,0.832,724,1.91,725,0.69,726,0.968,727,0.652,728,0.612,729,0.622,730,0.968,731,0.566,732,0.652,733,0.867,734,0.596,735,0.867,736,0.91,737,0.968,738,0.69,739,0.756,740,0.832,741,0.664,742,0.867,743,0.803,744,0.756,745,0.832,746,0.462,747,0.756,748,0.72,749,0.778,750,0.612,751,0.72,752,0.737,753,0.91,754,0.803,755,0.676,756,0.91,757,0.803,758,0.622,759,0.704,760,0.91]],["component/11",[72,0.396]],["keyword/11",[]],["title/12-1",[761,39.961,762,47.631]],["name/12-1",[]],["text/12-1",[]],["component/12-1",[]],["keyword/12-1",[]],["title/12-2",[761,39.961,763,50.054]],["name/12-2",[]],["text/12-2",[]],["component/12-2",[]],["keyword/12-2",[]],["title/12-3",[746,26.325,761,34.412,764,44.339]],["name/12-3",[]],["text/12-3",[]],["component/12-3",[]],["keyword/12-3",[]],["title/12-4",[761,39.961,765,41.138]],["name/12-4",[]],["text/12-4",[]],["component/12-4",[]],["keyword/12-4",[]],["title/12-5",[766,40.534,767,43.166]],["name/12-5",[]],["text/12-5",[]],["component/12-5",[]],["keyword/12-5",[]],["title/12",[21,12.989,81,30.17,761,34.412]],["name/12",[768,0.934]],["text/12",[2,4.337,6,2.701,9,1.468,10,4.286,13,3.792,14,2.254,15,3.497,16,3.546,19,1.687,21,2.445,23,1.639,24,1.663,25,4.459,28,1.555,30,4.318,33,3.049,35,3.967,37,3.106,38,3.351,41,1.836,43,2.298,45,3.497,53,1.381,58,4.359,60,1.617,62,1.555,81,3.502,91,2.664,203,1.911,212,2.275,291,2.679,296,3.398,306,1.802,313,1.285,316,1.408,318,1.518,322,1.575,340,3.269,356,3.154,364,3.502,379,1.394,383,1.484,386,1.687,392,2.502,434,1.714,487,2.32,507,2.822,508,3.334,509,2.473,519,2.179,525,1.714,577,1.911,584,2.419,585,2.563,593,2.969,599,3.272,602,1.954,613,1.595,622,1.518,639,1.437,659,1.555,686,1.355,692,1.617,693,2.32,700,1.639,705,2.664,720,2.001,724,2.001,731,2.532,734,1.617,746,3.637,755,1.836,760,2.471,761,6.304,762,4.106,763,5.004,764,5.147,765,4.548,769,1.872,770,1.954,771,4.58,772,2.112,773,2.179,774,2.053,775,1.771,776,2.869,777,2.471,778,2.352,779,2.869,780,2.352,781,1.954,782,1.687,783,1.836,784,1.575,785,2.869,786,1.639,787,5.004,788,5.311,789,2.918,790,2.352,791,2.258,792,3.297,793,1.911,794,2.112,795,1.872,796,1.537,797,3.701,798,1.954,799,1.802,800,2.471,801,2.001,802,1.741,803,2.179,804,2.258,805,1.872,806,1.872,807,2.969,808,1.617,809,2.629,810,2.352,811,2.629,812,1.954,813,2.629,814,2.446,815,1.802,816,1.687,817,2.629,818,2.869,819,2.869,820,2.179,821,1.802,822,2.869,823,3.219,824,2.471,825,2.053,826,1.771,827,2.053,828,2.869,829,2.179,830,2.352,831,2.471,832,2.471,833,1.836,834,1.714,835,2.258,836,2.179,837,2.352,838,1.555,839,2.352,840,2.471,841,2.112,842,1.468,843,2.258,844,1.954,845,1.802,846,2.869,847,2.471,848,2.001,849,2.471]],["component/12",[72,0.396]],["keyword/12",[]],["title/13-1",[741,37.83,850,55.186,851,45.752]],["name/13-1",[]],["text/13-1",[]],["component/13-1",[]],["keyword/13-1",[]],["title/13-2",[852,47.631,853,44.75]],["name/13-2",[]],["text/13-2",[]],["component/13-2",[]],["keyword/13-2",[]],["title/13-3",[238,37.458,854,55.045]],["name/13-3",[]],["text/13-3",[]],["component/13-3",[]],["keyword/13-3",[]],["title/13-4",[21,12.989,310,35.974,599,28.189]],["name/13-4",[]],["text/13-4",[]],["component/13-4",[]],["keyword/13-4",[]],["title/13-5",[697,51.465]],["name/13-5",[]],["text/13-5",[]],["component/13-5",[]],["keyword/13-5",[]],["title/13-6",[841,51.489,855,64.085]],["name/13-6",[]],["text/13-6",[]],["component/13-6",[]],["keyword/13-6",[]],["title/13-7",[852,47.631,853,44.75]],["name/13-7",[]],["text/13-7",[]],["component/13-7",[]],["keyword/13-7",[]],["title/13-8",[238,37.458,854,55.045]],["name/13-8",[]],["text/13-8",[]],["component/13-8",[]],["keyword/13-8",[]],["title/13-9",[21,12.989,310,35.974,599,28.189]],["name/13-9",[]],["text/13-9",[]],["component/13-9",[]],["keyword/13-9",[]],["title/13-10",[697,51.465]],["name/13-10",[]],["text/13-10",[]],["component/13-10",[]],["keyword/13-10",[]],["title/13-11",[851,40.174,856,45.54,857,48.457,858,48.457]],["name/13-11",[]],["text/13-11",[]],["component/13-11",[]],["keyword/13-11",[]],["title/13-12",[852,47.631,853,44.75]],["name/13-12",[]],["text/13-12",[]],["component/13-12",[]],["keyword/13-12",[]],["title/13-13",[238,37.458,854,55.045]],["name/13-13",[]],["text/13-13",[]],["component/13-13",[]],["keyword/13-13",[]],["title/13-14",[21,12.989,310,35.974,599,28.189]],["name/13-14",[]],["text/13-14",[]],["component/13-14",[]],["keyword/13-14",[]],["title/13-15",[697,51.465]],["name/13-15",[]],["text/13-15",[]],["component/13-15",[]],["keyword/13-15",[]],["title/13-16",[405,44.339,859,42.005,860,51.864]],["name/13-16",[]],["text/13-16",[]],["component/13-16",[]],["keyword/13-16",[]],["title/13-17",[852,47.631,853,44.75]],["name/13-17",[]],["text/13-17",[]],["component/13-17",[]],["keyword/13-17",[]],["title/13-18",[238,37.458,854,55.045]],["name/13-18",[]],["text/13-18",[]],["component/13-18",[]],["keyword/13-18",[]],["title/13-19",[21,12.989,310,35.974,599,28.189]],["name/13-19",[]],["text/13-19",[]],["component/13-19",[]],["keyword/13-19",[]],["title/13-20",[697,51.465]],["name/13-20",[]],["text/13-20",[]],["component/13-20",[]],["keyword/13-20",[]],["title/13",[861,47.631,862,60.227]],["name/13",[862,0.804]],["text/13",[2,4.24,3,0.417,6,2.05,7,0.543,9,1.411,10,3.607,12,0.891,13,3.657,14,1.788,15,3.679,21,2.507,22,0.555,23,0.878,24,0.472,25,4.145,28,0.833,30,3.43,31,0.555,33,3.186,35,3.826,37,1.858,38,4.13,43,3.211,44,0.479,45,2.954,50,0.487,52,1.656,53,0.74,58,3.362,59,1.246,65,0.795,67,0.422,72,0.345,81,0.77,83,1.34,94,0.521,101,4.577,119,1.1,170,0.702,171,1.209,177,0.702,180,0.619,181,0.619,201,1.837,212,0.392,233,2.206,243,1.395,262,0.532,263,0.521,276,3.799,284,1.878,291,2.833,294,0.417,296,1.593,306,2.059,309,0.747,310,1.647,313,1.235,316,1.07,318,1.154,322,1.8,329,1.212,340,1.777,343,5.029,345,0.583,350,0.459,356,0.426,361,1.081,368,0.466,371,0.762,379,2.032,382,1.411,383,1.128,384,1.323,386,0.479,390,0.543,392,1.154,393,0.568,405,2.414,413,0.904,464,1.131,487,2.246,491,0.422,492,1.116,499,0.453,505,0.512,507,2.744,508,3.35,509,1.963,518,2.491,520,0.855,532,1.381,533,2.277,544,0.521,548,0.426,556,0.948,571,0.487,576,1.605,577,1.024,583,0.948,584,1.116,585,4.103,586,0.583,591,0.543,597,0.487,599,1.756,612,1.86,622,0.813,639,1.381,644,1.381,646,0.422,656,0.918,659,2.48,660,0.543,664,0.356,665,1.323,677,1.1,682,0.965,686,0.385,687,1.197,693,0.754,697,0.948,708,0.6,715,1.605,723,0.641,724,2.287,729,0.904,731,0.823,732,1.346,734,2.114,740,0.641,741,3.31,746,1.205,755,0.521,758,0.479,761,0.466,765,3.75,766,0.472,767,0.948,774,1.1,781,0.555,786,0.466,787,2.346,792,1.521,793,2.184,794,1.605,795,1.422,796,2.822,802,0.495,805,1.003,807,0.512,808,1.229,810,0.668,811,0.747,812,2.233,814,2.163,816,3.605,823,4.174,825,1.56,826,0.503,829,1.656,836,0.619,838,2.267,839,0.668,840,0.702,841,5.571,842,0.417,844,3.799,850,3.831,851,4.003,855,2.527,856,1.877,857,1.998,858,3.004,859,2.916,860,3.601,861,5.038,862,2.375,863,0.702,864,0.815,865,0.815,866,1.799,867,3.221,868,1.485,869,1.452,870,1.26,871,0.521,872,1.323,873,2.499,874,2.538,875,0.668,876,0.568,877,0.747,878,0.815,879,0.668,880,0.583,881,0.619,882,2.18,883,1.537,884,0.641,885,0.815,886,0.619,887,0.6,888,1.537,889,0.641,890,0.619,891,0.568,892,1.605,893,0.747,894,0.495,895,1.452,896,0.619,897,0.568,898,1.167,899,2.325,900,0.532,901,2.095,902,0.815,903,1.246,904,1.282,905,0.702,906,1.777,907,0.815,908,0.904,909,0.815,910,0.512,911,1.395,912,0.948,913,0.453,914,0.512,915,0.702,916,0.815,917,2.527,918,2.375,919,0.747,920,1.024,921,1.024,922,0.702,923,0.619,924,0.668,925,1.024,926,0.6,927,1.452,928,0.487,929,3.885,930,0.815,931,3.437,932,0.503,933,0.583,934,0.702,935,3.899,936,1.8,937,0.487,938,0.815,939,2.098,940,1.209,941,2.139,942,1.047,943,2.447,944,1.537,945,0.641,946,0.668,947,1.1,948,0.668,949,1.1,950,2.761,951,1.072,952,0.815,953,0.619,954,0.619,955,2.18,956,2.346,957,0.702,958,2.261,959,1.003,960,1.167,961,1.131,962,1.26,963,0.815,964,1.452,965,1.323,966,0.747,967,1.131,968,1.452,969,0.747,970,0.702,971,0.702,972,1.974,973,1.877,974,0.6,975,0.702,976,0.815,977,0.815,978,1.167,979,0.583,980,0.965,981,1.072,982,0.583,983,0.543,984,0.568,985,0.815,986,0.747,987,1.9,988,0.583,989,0.815,990,1.229,991,1.537,992,0.6,993,1.537,994,2.18,995,0.815,996,0.815,997,0.702,998,1.877,999,0.747,1000,2.261,1001,0.555,1002,0.619,1003,1.209,1004,1.131,1005,0.747,1006,0.668,1007,0.521,1008,0.815,1009,0.702,1010,0.503,1011,0.815,1012,0.668,1013,0.503,1014,1.072,1015,0.495,1016,0.933,1017,1.656,1018,0.815,1019,0.532,1020,1.024,1021,0.521,1022,1.047,1023,0.815,1024,0.495,1025,0.532,1026,0.747,1027,0.583,1028,0.815,1029,0.668,1030,0.702,1031,0.815,1032,0.702,1033,0.702,1034,0.747,1035,0.487,1036,0.555,1037,0.747,1038,1.072,1039,0.815,1040,1.131,1041,1.537,1042,0.815,1043,1.408,1044,1.323,1045,1.26,1046,0.747,1047,0.747,1048,0.641,1049,0.641,1050,0.668,1051,0.641,1052,0.702,1053,1.537,1054,0.512,1055,0.543,1056,0.668,1057,0.815,1058,0.815,1059,1.537,1060,1.26,1061,0.815,1062,1.323,1063,0.619,1064,3.368,1065,1.26,1066,0.815,1067,1.323,1068,0.583,1069,0.815,1070,1.656,1071,0.815,1072,0.815,1073,0.815,1074,0.815,1075,0.815,1076,0.6,1077,0.668,1078,0.815,1079,1.323,1080,0.747,1081,0.747,1082,0.702,1083,0.512,1084,0.815,1085,1.131,1086,0.619,1087,0.512,1088,0.583,1089,0.555,1090,1.131,1091,0.815,1092,0.702,1093,0.815,1094,0.747,1095,0.815,1096,0.521,1097,0.702,1098,0.668,1099,1.323,1100,0.583,1101,1.788,1102,0.619,1103,1.167,1104,1.408,1105,0.668,1106,0.815,1107,0.747,1108,0.815,1109,1.877,1110,0.6,1111,0.568,1112,0.747,1113,0.568,1114,0.6,1115,0.815,1116,0.641,1117,1.323,1118,0.747,1119,0.747,1120,0.619,1121,0.619,1122,0.815,1123,2.095,1124,0.668,1125,0.702,1126,0.619,1127,0.641,1128,0.702,1129,0.6,1130,0.815]],["component/13",[72,0.396]],["keyword/13",[]],["title/14-1",[983,55.545]],["name/14-1",[]],["text/14-1",[]],["component/14-1",[]],["keyword/14-1",[]],["title/14-2",[21,11.405,983,35.227,1131,40.174,1132,45.54]],["name/14-2",[]],["text/14-2",[]],["component/14-2",[]],["keyword/14-2",[]],["title/14-3",[30,22.23,983,35.227,1133,37.848,1134,43.362]],["name/14-3",[]],["text/14-3",[]],["component/14-3",[]],["keyword/14-3",[]],["title/14-4",[21,10.166,33,15.63,983,31.399,1033,40.591,1135,40.591]],["name/14-4",[]],["text/14-4",[]],["component/14-4",[]],["keyword/14-4",[]],["title/14",[1136,60.227,1137,60.227]],["name/14",[1136,0.804]],["text/14",[2,3.371,3,2.055,6,2.946,10,3.75,11,0.828,13,3.303,14,2.227,15,3.168,21,2.616,23,1.349,25,3.867,29,0.799,30,3.778,33,3.335,35,4.286,37,3.22,38,4.441,43,1.952,44,2.747,45,1.368,48,0.761,51,0.786,57,1.208,58,3.079,60,1.331,62,1.765,65,1.222,67,0.67,77,1.794,83,1.148,84,0.72,87,1.331,91,0.729,94,0.828,101,2.012,119,0.926,157,0.74,189,0.926,199,0.926,200,1.115,201,0.862,205,1.69,212,0.623,221,3.235,230,1.115,231,0.953,234,4.706,235,2.988,236,0.635,237,1.28,238,0.693,243,0.828,291,3.349,294,0.662,296,1.582,306,0.813,309,1.148,313,1.458,316,1.159,330,1.389,340,0.702,343,1.69,356,0.677,361,1.171,364,2.625,368,1.349,379,2.27,382,1.666,383,1.222,390,0.862,391,0.74,392,1.25,405,0.953,413,0.761,487,2.292,488,0.813,491,0.67,499,0.72,507,2.186,508,0.617,509,1.703,511,0.75,520,0.72,532,3.471,533,0.786,550,0.702,556,0.799,569,2.294,581,0.953,584,1.666,593,0.813,599,2.893,610,1.313,612,2.316,613,1.313,630,1.115,637,0.786,639,1.183,644,2.34,654,1.541,659,0.702,682,2.045,686,0.611,687,2.205,693,1.971,700,0.74,716,0.845,727,1.457,755,0.828,757,0.983,765,0.761,770,0.882,782,1.389,783,0.828,787,0.926,796,3.074,799,2.045,810,1.061,812,0.882,816,1.915,820,0.983,823,2.217,826,0.799,833,0.828,838,1.28,841,1.738,842,2.055,845,0.813,861,4.21,869,1.573,871,0.828,874,1.433,880,1.69,887,0.953,889,1.858,894,1.433,899,1.313,903,1.349,908,2.362,914,0.813,928,1.944,934,2.033,935,2.994,936,1.296,941,0.845,943,0.845,965,1.115,967,0.953,983,6.352,990,0.729,1002,0.983,1015,0.786,1016,1.433,1017,1.794,1020,0.862,1027,0.926,1064,0.953,1079,1.115,1090,1.738,1098,2.669,1109,2.033,1113,0.903,1117,2.033,1121,2.473,1123,0.983,1131,2.473,1132,3.458,1133,2.874,1134,3.829,1135,1.115,1136,4.942,1137,5.323,1138,1.115,1139,0.862,1140,2.669,1141,1.541,1142,0.862,1143,1.019,1144,2.803,1145,0.926,1146,1.294,1147,1.019,1148,3.161,1149,1.019,1150,2.669,1151,1.061,1152,1.061,1153,1.294,1154,1.019,1155,0.953,1156,1.936,1157,0.926,1158,0.983,1159,1.061,1160,1.294,1161,1.294,1162,2.669,1163,1.186,1164,1.186,1165,1.294,1166,0.75,1167,1.294,1168,1.019,1169,3.458,1170,1.186,1171,0.813,1172,1.019,1173,1.115,1174,5.74,1175,1.294,1176,1.294,1177,3.568,1178,3.458,1179,3.568,1180,3.458,1181,1.294,1182,3.353,1183,2.164,1184,0.983,1185,1.294,1186,0.926,1187,0.953,1188,1.294,1189,1.294,1190,1.186,1191,1.186,1192,1.294,1193,0.953,1194,0.926,1195,1.936,1196,1.115,1197,1.294,1198,1.294,1199,1.186,1200,1.936,1201,1.936,1202,1.294,1203,1.294,1204,1.171,1205,2.361,1206,1.294,1207,1.186,1208,1.019,1209,1.019,1210,0.903,1211,1.061,1212,0.983,1213,1.186,1214,2.361,1215,1.186,1216,1.186,1217,1.294,1218,2.033,1219,0.983,1220,2.361,1221,1.294,1222,1.186,1223,1.061,1224,0.903,1225,2.361,1226,1.019,1227,2.033,1228,1.294,1229,0.953,1230,1.019,1231,1.511,1232,1.944,1233,1.294,1234,1.294,1235,1.115,1236,1.294,1237,0.926,1238,1.186,1239,1.294,1240,1.115,1241,1.294,1242,0.953,1243,1.294,1244,1.433,1245,1.858,1246,1.294,1247,1.019,1248,0.903,1249,1.186,1250,1.294,1251,3.255,1252,4.801,1253,3.255,1254,1.186,1255,1.294,1256,1.294,1257,0.786,1258,1.294,1259,0.773,1260,0.786,1261,0.845,1262,0.813,1263,1.186,1264,0.983,1265,1.294,1266,1.186,1267,1.019,1268,1.294,1269,1.061,1270,1.061,1271,2.33,1272,1.294,1273,1.294,1274,0.862,1275,0.953,1276,1.294,1277,1.115,1278,1.858,1279,4.108,1280,2.803,1281,1.294,1282,1.294,1283,1.019,1284,1.186,1285,2.168,1286,0.845,1287,0.926,1288,1.294,1289,1.294,1290,1.061,1291,1.294,1292,1.936,1293,1.608,1294,1.186,1295,1.294,1296,0.903,1297,0.926,1298,1.186]],["component/14",[72,0.396]],["keyword/14",[]],["title/15-1",[236,20.869,291,18.89,371,21.08,558,21.996,1154,33.462,1168,33.462]],["name/15-1",[]],["text/15-1",[]],["component/15-1",[]],["keyword/15-1",[]],["title/15-2",[1157,59.677]],["name/15-2",[]],["text/15-2",[]],["component/15-2",[]],["keyword/15-2",[]],["title/15-3",[15,19.814,236,23.137,291,20.943,558,24.386,1299,37.098]],["name/15-3",[]],["text/15-3",[]],["component/15-3",[]],["keyword/15-3",[]],["title/15-4",[21,11.405,24,30.649,38,20.145,1168,41.622]],["name/15-4",[]],["text/15-4",[]],["component/15-4",[]],["keyword/15-4",[]],["title/15-5",[1300,64.085,1301,64.085]],["name/15-5",[]],["text/15-5",[]],["component/15-5",[]],["keyword/15-5",[]],["title/15-6",[281,48.779,861,47.631]],["name/15-6",[]],["text/15-6",[]],["component/15-6",[]],["keyword/15-6",[]],["title/15-7",[432,57.346,1302,43.166]],["name/15-7",[]],["text/15-7",[]],["component/15-7",[]],["keyword/15-7",[]],["title/15-8",[1303,57.346,1304,64.085]],["name/15-8",[]],["text/15-8",[]],["component/15-8",[]],["keyword/15-8",[]],["title/15-9",[1299,65.628]],["name/15-9",[]],["text/15-9",[]],["component/15-9",[]],["keyword/15-9",[]],["title/15-10",[1305,64.085,1306,44.75]],["name/15-10",[]],["text/15-10",[]],["component/15-10",[]],["keyword/15-10",[]],["title/15-11",[237,45.207]],["name/15-11",[]],["text/15-11",[]],["component/15-11",[]],["keyword/15-11",[]],["title/15",[371,29.862,1154,47.402,1168,47.402]],["name/15",[1307,0.735]],["text/15",[2,3.941,3,0.482,5,0.592,6,3.687,9,2.778,10,3.922,13,4.152,14,2.409,15,3.872,16,2.729,18,1.148,21,2.617,22,1.199,23,0.538,24,1.804,25,3.618,30,3.086,31,1.199,33,3.677,35,2.588,37,1.383,38,4.006,40,0.855,43,2.805,45,3.249,57,0.901,58,3.063,59,2.651,67,1.61,81,0.882,83,1.513,84,0.524,85,0.614,90,0.546,91,2.847,212,0.453,221,2.357,236,0.462,237,1.993,238,1.327,254,0.657,281,1.228,291,1.101,294,0.482,296,0.855,309,1.787,313,0.422,329,0.524,333,0.901,356,5.133,361,1.543,371,2.862,379,2.255,382,3.115,383,1.902,386,1.035,391,0.538,420,0.811,432,3.804,487,2.053,488,0.592,490,2.17,491,0.911,492,3.264,507,3.335,508,1.181,509,1.296,525,0.563,529,0.554,532,2.095,533,3.695,548,0.493,549,3.015,550,0.511,552,0.511,556,0.581,558,1.282,575,0.563,578,0.572,581,0.693,584,0.482,585,0.511,588,1.199,591,0.627,599,3.227,609,1.051,610,0.524,613,0.524,622,0.498,626,1.068,627,0.581,639,1.842,644,0.472,645,2.073,654,0.614,655,0.592,682,0.592,686,0.445,687,2.296,692,0.992,693,2.48,698,0.614,703,1.228,715,1.296,716,1.148,731,0.504,755,0.603,757,0.715,761,0.538,766,1.02,769,0.614,781,1.199,786,1.778,787,0.674,789,1.086,793,0.627,795,2.399,796,1.667,797,0.498,799,0.592,802,0.572,807,0.592,814,0.487,815,0.592,816,1.83,827,0.674,834,0.563,835,0.741,838,1.343,842,0.901,845,0.592,848,1.728,861,3.441,867,2.399,868,2.849,869,1.172,871,0.603,872,0.811,884,1.385,887,0.693,890,0.715,891,0.657,895,1.172,898,0.715,899,3.21,900,2.399,904,0.554,906,0.511,911,0.603,915,0.811,920,0.627,925,0.627,928,1.051,934,2.134,935,3.644,936,1.708,937,0.563,949,1.26,960,1.337,968,3.09,978,0.715,982,2.631,983,1.172,990,0.992,992,1.824,1002,5.729,1003,0.741,1013,1.921,1014,0.657,1015,1.068,1045,1.443,1064,2.291,1070,0.715,1081,1.613,1085,1.824,1087,0.592,1102,0.715,1109,1.516,1121,0.715,1125,0.811,1126,1.337,1127,1.385,1129,1.296,1131,0.715,1133,1.773,1135,0.811,1139,0.627,1140,0.772,1141,0.614,1148,0.741,1149,1.95,1154,5.778,1157,0.674,1158,2.364,1159,1.443,1162,0.772,1164,1.613,1166,0.546,1168,4.791,1171,2.31,1177,1.199,1182,1.991,1184,0.715,1196,0.811,1224,0.657,1257,0.572,1260,0.572,1269,0.772,1280,0.811,1286,0.614,1299,3.651,1300,3.833,1301,1.613,1302,2.863,1303,3.015,1304,3.369,1305,1.613,1306,1.126,1307,0.741,1308,0.811,1309,0.863,1310,1.443,1311,3.08,1312,0.657,1313,0.572,1314,1.95,1315,0.811,1316,3.112,1317,0.657,1318,1.613,1319,1.26,1320,0.693,1321,1.516,1322,0.741,1323,0.942,1324,2.478,1325,2.478,1326,3.677,1327,1.443,1328,0.942,1329,1.613,1330,1.613,1331,1.337,1332,0.693,1333,1.26,1334,2.994,1335,3.112,1336,2.68,1337,1.95,1338,0.603,1339,0.741,1340,0.811,1341,0.942,1342,0.942,1343,0.863,1344,3.112,1345,0.811,1346,3.166,1347,0.942,1348,0.863,1349,2.134,1350,1.529,1351,1.385,1352,0.674,1353,0.942,1354,0.657,1355,1.613,1356,0.863,1357,1.337,1358,0.942,1359,0.863,1360,0.863,1361,1.613,1362,0.921,1363,0.942,1364,0.811,1365,0.863,1366,0.942,1367,1.773,1368,0.811,1369,0.863,1370,0.863,1371,0.942,1372,0.811,1373,1.76,1374,0.572,1375,0.741,1376,0.741,1377,0.715,1378,1.824,1379,0.657,1380,3.43,1381,2.27,1382,0.772,1383,0.942,1384,2.032,1385,0.863,1386,1.76,1387,0.942,1388,0.715,1389,0.942,1390,0.741,1391,1.199,1392,1.516,1393,0.741,1394,0.693,1395,0.715,1396,0.863,1397,1.443,1398,0.811,1399,0.942,1400,0.772,1401,0.811,1402,0.657,1403,0.942,1404,0.863,1405,0.811,1406,0.772,1407,0.741,1408,1.106,1409,0.942,1410,1.516,1411,1.76,1412,0.942,1413,0.863,1414,0.741,1415,0.863,1416,0.863,1417,0.942,1418,1.516,1419,1.02,1420,1.76,1421,1.76,1422,0.863,1423,0.741,1424,0.942,1425,0.811,1426,0.811,1427,0.741,1428,0.772,1429,1.76,1430,1.76,1431,0.942,1432,0.942,1433,0.674,1434,0.693,1435,0.715,1436,0.811,1437,0.657,1438,0.811,1439,0.942,1440,0.863,1441,0.942,1442,1.76,1443,0.603,1444,0.942,1445,0.741,1446,0.741,1447,0.942,1448,0.863,1449,0.592,1450,0.627,1451,0.942,1452,0.811,1453,0.863,1454,0.811,1455,0.772,1456,1.337,1457,0.863,1458,0.538,1459,3.677,1460,0.863,1461,0.603,1462,0.772,1463,0.942,1464,0.657,1465,0.863,1466,0.863,1467,0.942,1468,0.693,1469,0.641,1470,0.772,1471,0.942,1472,0.942,1473,0.863,1474,0.772,1475,0.942,1476,0.614,1477,0.811,1478,0.942,1479,0.942]],["component/15",[72,0.396]],["keyword/15",[]],["title/16-1",[404,47.402,1010,37.172,1435,45.752]],["name/16-1",[]],["text/16-1",[]],["component/16-1",[]],["keyword/16-1",[]],["title/16-2",[6,23.694,21,11.405,520,29.409,729,31.106]],["name/16-2",[]],["text/16-2",[]],["component/16-2",[]],["keyword/16-2",[]],["title/16-3",[1480,55.545]],["name/16-3",[]],["text/16-3",[]],["component/16-3",[]],["keyword/16-3",[]],["title/16-4",[516,71.806]],["name/16-4",[]],["text/16-4",[]],["component/16-4",[]],["keyword/16-4",[]],["title/16-5",[21,15.047,1481,38.649,1482,47.138,1483,43.191]],["name/16-5",[]],["text/16-5",[]],["component/16-5",[]],["keyword/16-5",[]],["title/16-6",[2,14.506,10,14.83,21,7.666,509,18.598,511,20.602,1010,21.939,1317,24.792,1484,30.611]],["name/16-6",[]],["text/16-6",[]],["component/16-6",[]],["keyword/16-6",[]],["title/16-7",[1485,49.383,1486,55.186,1487,51.864]],["name/16-7",[]],["text/16-7",[]],["component/16-7",[]],["keyword/16-7",[]],["title/16-8",[21,9.169,507,19.899,853,27.203,1488,52.947,1489,38.957]],["name/16-8",[]],["text/16-8",[]],["component/16-8",[]],["keyword/16-8",[]],["title/16-9",[21,7.666,33,11.787,47,24.209,906,19.271,1490,32.572,1491,32.572,1492,35.548,1493,29.146]],["name/16-9",[]],["text/16-9",[]],["component/16-9",[]],["keyword/16-9",[]],["title/16-10",[1494,76.406]],["name/16-10",[]],["text/16-10",[]],["component/16-10",[]],["keyword/16-10",[]],["title/16-11",[47,47.631,1495,64.085]],["name/16-11",[]],["text/16-11",[]],["component/16-11",[]],["keyword/16-11",[]],["title/16-12",[1481,57.346,1496,64.085]],["name/16-12",[]],["text/16-12",[]],["component/16-12",[]],["keyword/16-12",[]],["title/16-13",[15,25.317,1497,45.752,1498,47.402]],["name/16-13",[]],["text/16-13",[]],["component/16-13",[]],["keyword/16-13",[]],["title/16-14",[626,50.61]],["name/16-14",[]],["text/16-14",[]],["component/16-14",[]],["keyword/16-14",[]],["title/16-15",[54,41.138,527,45.632]],["name/16-15",[]],["text/16-15",[]],["component/16-15",[]],["keyword/16-15",[]],["title/16-16",[14,20.271,17,30.428,18,27.74,236,20.869,1257,25.805,1499,38.957]],["name/16-16",[]],["text/16-16",[]],["component/16-16",[]],["keyword/16-16",[]],["title/16-17",[17,37.848,18,34.505,1338,33.837,1500,41.622]],["name/16-17",[]],["text/16-17",[]],["component/16-17",[]],["keyword/16-17",[]],["title/16-18",[18,45.632,1501,69.942]],["name/16-18",[]],["text/16-18",[]],["component/16-18",[]],["keyword/16-18",[]],["title/16-19",[18,45.632,1502,44.75]],["name/16-19",[]],["text/16-19",[]],["component/16-19",[]],["keyword/16-19",[]],["title/16-20",[21,8.351,33,12.84,37,17.204,208,28.506,639,19.397,1116,30.475,1503,35.479]],["name/16-20",[]],["text/16-20",[]],["component/16-20",[]],["keyword/16-20",[]],["title/16-21",[38,17.956,43,22.91,767,29.092,1231,30.16,1504,43.191]],["name/16-21",[]],["text/16-21",[]],["component/16-21",[]],["keyword/16-21",[]],["title/16-22",[1505,76.406]],["name/16-22",[]],["text/16-22",[]],["component/16-22",[]],["keyword/16-22",[]],["title/16-23",[21,12.989,729,35.425,1204,29.862]],["name/16-23",[]],["text/16-23",[]],["component/16-23",[]],["keyword/16-23",[]],["title/16-24",[21,11.405,101,26.492,1506,48.457,1507,48.457]],["name/16-24",[]],["text/16-24",[]],["component/16-24",[]],["keyword/16-24",[]],["title/16-25",[40,33.993,640,36.593]],["name/16-25",[]],["text/16-25",[]],["component/16-25",[]],["keyword/16-25",[]],["title/16-26",[1508,71.806]],["name/16-26",[]],["text/16-26",[]],["component/16-26",[]],["keyword/16-26",[]],["title/16-27",[405,51.489,1509,64.085]],["name/16-27",[]],["text/16-27",[]],["component/16-27",[]],["keyword/16-27",[]],["title/16-28",[1510,76.406]],["name/16-28",[]],["text/16-28",[]],["component/16-28",[]],["keyword/16-28",[]],["title/16-29",[30,22.23,144,36.016,1508,45.54,1511,36.884]],["name/16-29",[]],["text/16-29",[]],["component/16-29",[]],["keyword/16-29",[]],["title/16-30",[40,33.993,640,36.593]],["name/16-30",[]],["text/16-30",[]],["component/16-30",[]],["keyword/16-30",[]],["title/16-31",[21,12.989,1512,55.186,1513,51.864]],["name/16-31",[]],["text/16-31",[]],["component/16-31",[]],["keyword/16-31",[]],["title/16-32",[40,33.993,640,36.593]],["name/16-32",[]],["text/16-32",[]],["component/16-32",[]],["keyword/16-32",[]],["title/16-33",[28,28.671,33,17.536,1514,48.457,1515,48.457]],["name/16-33",[]],["text/16-33",[]],["component/16-33",[]],["keyword/16-33",[]],["title/16-34",[40,33.993,640,36.593]],["name/16-34",[]],["text/16-34",[]],["component/16-34",[]],["keyword/16-34",[]],["title/16-35",[33,19.971,1516,60.23,1517,51.864]],["name/16-35",[]],["text/16-35",[]],["component/16-35",[]],["keyword/16-35",[]],["title/16-36",[40,33.993,640,36.593]],["name/16-36",[]],["text/16-36",[]],["component/16-36",[]],["keyword/16-36",[]],["title/16-37",[33,19.971,1518,49.383,1519,60.23]],["name/16-37",[]],["text/16-37",[]],["component/16-37",[]],["keyword/16-37",[]],["title/16-38",[40,33.993,640,36.593]],["name/16-38",[]],["text/16-38",[]],["component/16-38",[]],["keyword/16-38",[]],["title/16-39",[1520,57.346,1521,60.227]],["name/16-39",[]],["text/16-39",[]],["component/16-39",[]],["keyword/16-39",[]],["title/16-40",[40,33.993,640,36.593]],["name/16-40",[]],["text/16-40",[]],["component/16-40",[]],["keyword/16-40",[]],["title/16-41",[33,15.63,564,32.875,679,38.649,796,25.246,1522,40.591]],["name/16-41",[]],["text/16-41",[]],["component/16-41",[]],["keyword/16-41",[]],["title/16-42",[40,33.993,640,36.593]],["name/16-42",[]],["text/16-42",[]],["component/16-42",[]],["keyword/16-42",[]],["title/16-43",[21,10.166,205,33.735,568,37.098,1523,38.649,1524,35.808]],["name/16-43",[]],["text/16-43",[]],["component/16-43",[]],["keyword/16-43",[]],["title/16-44",[40,33.993,640,36.593]],["name/16-44",[]],["text/16-44",[]],["component/16-44",[]],["keyword/16-44",[]],["title/16-45",[371,29.862,1525,49.383,1526,55.186]],["name/16-45",[]],["text/16-45",[]],["component/16-45",[]],["keyword/16-45",[]],["title/16-46",[40,33.993,640,36.593]],["name/16-46",[]],["text/16-46",[]],["component/16-46",[]],["keyword/16-46",[]],["title/16-47",[27,25.395,37,18.89,729,25.007,783,27.203,796,22.771,1195,34.861]],["name/16-47",[]],["text/16-47",[]],["component/16-47",[]],["keyword/16-47",[]],["title/16-48",[40,33.993,640,36.593]],["name/16-48",[]],["text/16-48",[]],["component/16-48",[]],["keyword/16-48",[]],["title/16-49",[1527,64.085,1528,57.346]],["name/16-49",[]],["text/16-49",[]],["component/16-49",[]],["keyword/16-49",[]],["title/16-50",[491,31.159,1449,37.83,1529,47.402]],["name/16-50",[]],["text/16-50",[]],["component/16-50",[]],["keyword/16-50",[]],["title/16-51",[10,22.063,262,34.505,529,31.106,1530,45.54]],["name/16-51",[]],["text/16-51",[]],["component/16-51",[]],["keyword/16-51",[]],["title/16-52",[10,22.063,21,11.405,1407,41.622,1531,48.457]],["name/16-52",[]],["text/16-52",[]],["component/16-52",[]],["keyword/16-52",[]],["title/16-53",[30,25.317,144,41.017,1532,49.383]],["name/16-53",[]],["text/16-53",[]],["component/16-53",[]],["keyword/16-53",[]],["title/16-54",[33,19.971,992,44.339,1533,60.23]],["name/16-54",[]],["text/16-54",[]],["component/16-54",[]],["keyword/16-54",[]],["title/16-55",[1534,68.371]],["name/16-55",[]],["text/16-55",[]],["component/16-55",[]],["keyword/16-55",[]],["title/16-56",[21,12.989,381,40.119,384,36.555]],["name/16-56",[]],["text/16-56",[]],["component/16-56",[]],["keyword/16-56",[]],["title/16-57",[37,26.759,1480,40.119,1528,49.383]],["name/16-57",[]],["text/16-57",[]],["component/16-57",[]],["keyword/16-57",[]],["title/16-58",[379,29.272,404,47.402,1528,49.383]],["name/16-58",[]],["text/16-58",[]],["component/16-58",[]],["keyword/16-58",[]],["title/16-59",[1464,48.779,1535,44.75]],["name/16-59",[]],["text/16-59",[]],["component/16-59",[]],["keyword/16-59",[]],["title/16",[33,12.84,44,22.775,45,16.276,47,26.37,83,18.819,1536,27.005,1537,38.722]],["name/16",[1538,0.804]],["text/16",[2,3.507,3,0.43,5,0.844,6,3.106,7,0.195,9,1.25,10,3.749,11,0.538,12,0.487,13,3.394,14,2.039,15,3.58,16,0.791,17,0.601,18,1.324,19,2.073,20,0.222,21,2.511,23,0.327,25,4.424,27,0.945,28,1.215,30,3.645,31,1.382,32,1.1,33,3.392,34,0.399,35,3.338,37,3.385,38,3.997,39,0.199,40,1.464,41,0.538,43,2.078,45,2.304,46,0.421,47,1.664,50,0.175,51,0.347,53,2.25,54,0.172,55,0.191,57,0.562,58,3.228,59,0.48,60,0.758,62,0.595,65,0.151,67,1.264,69,0.493,71,0.215,77,0.222,78,0.24,81,0.673,82,0.409,83,3.468,84,0.748,87,1.02,94,0.187,101,3.167,132,0.519,144,0.916,157,0.327,161,0.191,174,0.252,178,0.252,180,0.222,185,0.252,189,0.209,195,1.103,201,0.56,205,0.409,208,0.808,212,0.528,221,0.165,233,0.337,236,0.281,237,0.456,238,0.157,251,0.175,259,0.222,262,0.191,263,0.366,265,0.222,291,2.239,294,1.632,296,1.283,297,0.538,298,0.215,301,0.215,303,1.053,306,0.689,309,0.142,310,0.175,313,0.492,316,0.412,318,0.712,322,0.16,330,0.172,332,0.627,335,0.844,336,0.222,339,1.382,340,0.981,342,0.24,343,0.409,346,0.215,347,0.399,349,0.199,350,0.322,351,0.421,352,0.347,354,1.012,355,0.816,356,2.087,360,0.586,361,0.667,364,0.287,365,0.204,366,0.381,367,0.342,368,0.167,370,0.747,371,0.667,372,0.765,374,0.435,376,0.199,377,0.45,378,0.519,379,2.763,382,1.038,383,0.695,384,0.177,386,0.337,390,0.381,391,0.48,392,0.958,393,0.204,398,0.435,399,0.45,404,0.45,405,0.421,413,0.494,433,0.24,434,0.175,464,0.215,487,1.809,488,0.844,490,0.765,491,2.546,492,0.688,493,0.175,494,0.493,498,1.407,501,1.841,505,1.535,506,0.724,507,3.486,508,2.346,509,0.827,511,0.332,519,0.638,520,0.163,521,0.493,527,0.373,529,0.791,532,1.923,533,0.177,541,0.215,542,0.23,543,0.23,544,0.187,548,1.279,550,0.595,552,0.31,558,0.151,560,0.435,561,1.215,564,0.204,568,0.45,569,0.327,571,1.081,572,0.409,573,0.177,575,0.945,576,0.215,580,0.204,582,0.195,583,0.18,584,1.25,585,0.31,586,1.132,588,0.199,589,0.23,592,0.353,593,0.993,597,0.342,599,0.514,602,0.199,604,0.222,609,0.655,610,0.748,612,0.667,613,0.467,616,0.421,617,0.45,620,0.528,622,1.397,623,0.18,626,0.51,627,0.519,628,0.252,629,0.23,631,0.435,632,0.24,633,0.24,634,0.619,635,0.252,636,0.24,637,0.51,638,0.204,639,1.509,640,0.153,644,0.55,646,1.159,647,0.435,651,0.469,653,0.163,655,0.359,656,0.945,657,0.24,659,0.595,660,0.195,661,0.184,662,0.215,664,0.128,666,0.916,667,0.493,670,0.409,671,0.381,676,0.435,677,0.785,679,0.469,682,0.528,686,0.27,687,0.314,691,0.209,692,0.618,693,0.996,694,0.24,695,0.23,696,0.23,698,0.373,700,1.159,702,1.032,703,0.399,704,0.252,705,2.248,707,0.655,708,0.215,712,1.058,716,0.191,725,0.373,729,3.718,731,0.72,732,0.83,733,0.24,738,0.373,742,0.24,746,0.25,752,0.204,756,0.252,758,1.193,761,0.627,765,0.172,766,1.176,767,1.117,769,0.191,770,0.199,773,0.222,775,0.353,777,0.493,782,1.318,783,0.187,786,0.167,787,0.209,789,0.353,796,1.414,797,1.397,798,0.39,799,0.359,802,0.177,805,0.191,808,0.165,810,0.24,812,0.572,814,1.366,815,0.184,816,1.193,826,0.18,834,0.342,838,0.857,842,2.804,845,0.184,853,0.538,866,0.191,867,0.548,868,0.199,870,0.24,871,0.86,874,1.231,880,0.209,889,0.661,892,0.215,894,0.177,895,0.56,896,0.222,899,0.61,900,0.373,903,1.508,904,0.172,906,0.595,908,1.064,910,0.528,911,1.298,912,0.677,921,0.195,924,0.24,925,0.195,926,0.215,927,0.195,928,0.175,929,0.45,935,1.508,936,0.738,937,0.342,939,0.86,943,0.191,947,0.209,949,0.209,950,0.619,964,0.381,979,0.209,980,1.274,981,0.204,987,0.169,988,0.601,990,0.618,1000,0.24,1004,0.619,1007,0.702,1010,2.074,1013,0.976,1015,0.177,1020,0.56,1021,0.366,1024,0.347,1025,0.191,1027,0.962,1029,0.24,1034,0.268,1035,1.081,1036,1.077,1037,0.524,1040,0.215,1044,0.252,1045,0.24,1049,0.23,1054,0.359,1063,0.638,1067,0.252,1083,0.359,1086,0.222,1087,1.535,1094,0.524,1096,0.366,1100,0.209,1111,0.399,1113,0.586,1114,0.215,1116,1.058,1117,0.252,1120,0.222,1126,0.638,1129,0.421,1131,0.222,1132,0.252,1133,0.209,1134,0.24,1139,0.195,1155,0.215,1157,0.209,1166,1.176,1169,0.252,1171,0.184,1186,0.409,1200,0.24,1201,0.24,1204,0.897,1209,0.45,1223,0.24,1224,0.399,1229,0.421,1230,0.23,1231,0.538,1240,0.252,1242,0.215,1244,0.347,1245,0.23,1247,0.45,1248,0.399,1259,0.342,1260,0.177,1261,0.877,1262,0.689,1264,0.834,1270,0.469,1275,0.215,1278,0.23,1285,0.381,1286,0.191,1302,0.18,1306,0.366,1312,0.399,1319,0.209,1332,0.619,1333,0.409,1338,0.366,1339,0.45,1352,0.209,1362,0.574,1367,0.209,1368,0.252,1379,0.586,1382,0.689,1394,0.215,1400,0.24,1402,0.204,1408,2.315,1410,0.493,1419,0.169,1423,0.661,1427,1.923,1433,0.409,1435,0.638,1437,0.399,1438,0.252,1443,1.158,1449,1.137,1450,0.381,1456,0.222,1458,0.167,1461,0.86,1468,0.215,1469,0.199,1474,0.24,1476,0.716,1480,1.053,1481,0.9,1483,0.524,1484,1.362,1485,1.297,1486,0.268,1488,1.102,1489,0.524,1490,0.77,1491,0.268,1493,0.24,1494,0.268,1495,0.77,1496,0.268,1497,0.222,1498,1.763,1499,0.524,1503,1.658,1504,0.524,1505,1.449,1506,0.77,1507,0.268,1508,2.437,1509,1.006,1512,1.006,1513,0.493,1514,0.77,1515,1.006,1517,0.252,1518,1.484,1520,1.837,1521,0.945,1523,0.9,1524,0.222,1525,0.469,1528,0.24,1529,0.23,1530,0.252,1531,0.268,1532,0.24,1536,0.204,1539,0.23,1540,0.45,1541,0.292,1542,0.252,1543,0.23,1544,1.558,1545,0.572,1546,0.366,1547,0.962,1548,0.292,1549,0.342,1550,0.268,1551,0.252,1552,1.245,1553,0.292,1554,0.292,1555,1.484,1556,1.212,1557,0.252,1558,0.292,1559,0.724,1560,0.292,1561,0.268,1562,0.199,1563,0.292,1564,0.292,1565,0.292,1566,0.524,1567,0.292,1568,0.292,1569,0.268,1570,0.864,1571,1.763,1572,0.493,1573,0.572,1574,0.572,1575,0.572,1576,1.558,1577,0.268,1578,0.469,1579,0.292,1580,0.292,1581,0.548,1582,1.232,1583,0.84,1584,0.292,1585,0.292,1586,0.524,1587,0.292,1588,0.268,1589,0.252,1590,0.493,1591,0.24,1592,0.268,1593,0.493,1594,0.292,1595,0.747,1596,0.215,1597,0.9,1598,0.252,1599,0.292,1600,0.524,1601,0.268,1602,0.268,1603,0.292,1604,0.84,1605,0.84,1606,0.292,1607,0.292,1608,0.268,1609,0.292,1610,0.292,1611,0.292,1612,0.292,1613,0.268,1614,0.292,1615,0.268,1616,0.199,1617,0.24,1618,0.23,1619,0.222,1620,0.195,1621,1.362,1622,0.292,1623,0.77,1624,0.469,1625,0.292,1626,0.292,1627,0.292,1628,0.586,1629,0.292,1630,0.292,1631,0.469,1632,0.292,1633,0.268,1634,0.689,1635,0.292,1636,0.524,1637,0.292,1638,0.292,1639,0.292,1640,0.268,1641,0.252,1642,0.252,1643,0.469,1644,0.292,1645,0.24,1646,0.366,1647,0.292,1648,0.435,1649,0.619,1650,0.23,1651,0.292,1652,0.215,1653,0.292,1654,0.292,1655,0.24,1656,0.252,1657,0.268,1658,0.24,1659,0.493,1660,0.292,1661,0.292,1662,0.292,1663,0.77,1664,0.292,1665,0.292,1666,0.252,1667,0.77,1668,0.292,1669,0.292,1670,0.24,1671,0.524,1672,0.292,1673,0.268,1674,0.268,1675,0.268,1676,0.292,1677,0.292,1678,0.399,1679,0.469,1680,0.268,1681,0.747,1682,0.292,1683,0.493,1684,0.572,1685,0.84,1686,0.661,1687,0.23,1688,0.292,1689,0.292,1690,0.252,1691,0.292,1692,0.724,1693,0.572,1694,0.292,1695,0.24,1696,0.292,1697,0.435,1698,1.053,1699,0.292,1700,0.252,1701,0.292,1702,0.268,1703,0.292,1704,0.292,1705,0.292,1706,0.268,1707,0.572,1708,0.268,1709,0.292,1710,0.292,1711,0.23,1712,0.292,1713,1.564,1714,0.292,1715,0.292,1716,0.292,1717,0.689,1718,0.493,1719,0.292,1720,0.619,1721,0.469,1722,0.292,1723,0.572,1724,0.292,1725,0.292,1726,0.268,1727,0.292,1728,0.292,1729,0.292,1730,0.77,1731,0.252,1732,0.268,1733,0.222,1734,0.292,1735,0.292,1736,0.292,1737,0.469,1738,0.292,1739,0.45,1740,0.292,1741,0.268,1742,0.24,1743,0.292,1744,0.292,1745,0.292,1746,0.292,1747,0.23,1748,0.435,1749,0.469,1750,0.292,1751,0.268,1752,0.292,1753,0.268,1754,0.292,1755,0.222,1756,0.292,1757,0.292,1758,0.292,1759,0.524,1760,0.268,1761,0.292,1762,0.268,1763,0.24,1764,0.268,1765,0.292,1766,0.268,1767,0.268,1768,0.204,1769,0.292,1770,0.409,1771,0.292,1772,0.292,1773,0.292,1774,0.23,1775,0.215,1776,2.423,1777,0.292,1778,0.493,1779,0.292,1780,0.292,1781,0.292,1782,0.292,1783,0.292,1784,0.292,1785,0.292,1786,0.268,1787,0.292,1788,0.292,1789,0.292,1790,0.195,1791,0.23,1792,0.195,1793,0.292,1794,0.292,1795,0.268,1796,0.399,1797,0.23,1798,0.421,1799,0.215,1800,0.252,1801,0.572,1802,0.945,1803,0.268,1804,0.292,1805,0.292,1806,0.24,1807,0.524,1808,0.292,1809,0.292,1810,0.252,1811,0.292,1812,0.215,1813,1.262,1814,0.572,1815,0.292,1816,0.292,1817,0.292,1818,0.469,1819,0.292,1820,0.268,1821,0.292,1822,1.058,1823,0.199,1824,0.84,1825,0.292,1826,0.23,1827,0.524,1828,0.252,1829,0.252,1830,0.252,1831,0.292,1832,0.601,1833,1.006,1834,0.268,1835,0.252,1836,0.268,1837,0.222,1838,0.292,1839,0.252,1840,0.268,1841,0.24,1842,0.292,1843,0.292,1844,0.292,1845,0.524,1846,0.24,1847,0.292,1848,0.268,1849,0.292,1850,0.469,1851,0.572,1852,0.222,1853,0.572,1854,0.292,1855,0.222,1856,0.268,1857,0.292,1858,0.469,1859,0.24,1860,0.24,1861,0.945,1862,0.469,1863,0.204,1864,0.23,1865,0.524,1866,0.252,1867,0.493,1868,0.24,1869,0.689,1870,0.24,1871,0.252,1872,0.209,1873,0.493,1874,0.45,1875,0.204,1876,0.23,1877,0.292,1878,0.292,1879,0.292,1880,0.292,1881,1.759,1882,0.292,1883,0.524,1884,0.268,1885,0.23,1886,0.524,1887,0.222,1888,0.572,1889,0.524,1890,0.45,1891,0.292,1892,0.292,1893,0.292,1894,0.268,1895,0.268,1896,0.292,1897,0.268,1898,0.292,1899,0.724,1900,0.292,1901,0.493,1902,0.962,1903,1.944,1904,0.638,1905,0.493,1906,0.252,1907,0.689,1908,0.435,1909,0.572,1910,0.268,1911,0.268,1912,0.292,1913,0.268,1914,0.524,1915,0.292,1916,0.292,1917,0.222,1918,0.24,1919,0.252,1920,0.252,1921,0.215,1922,0.195,1923,0.222,1924,0.23,1925,0.292,1926,0.435,1927,0.292,1928,0.493,1929,0.268,1930,0.268,1931,0.45,1932,0.268,1933,0.268,1934,0.209,1935,0.268,1936,0.268,1937,0.39,1938,0.572,1939,0.572,1940,0.24,1941,0.292,1942,0.24,1943,0.23,1944,0.252,1945,0.292,1946,0.292,1947,0.292,1948,0.252,1949,0.252,1950,0.268,1951,0.209,1952,0.222,1953,0.209,1954,0.292,1955,0.638,1956,0.268,1957,0.268,1958,1.332,1959,0.84,1960,0.268,1961,0.45,1962,0.252,1963,0.268,1964,0.77,1965,0.724,1966,0.9,1967,0.268,1968,0.524,1969,0.45,1970,0.292,1971,0.268,1972,0.252,1973,0.268,1974,0.268,1975,0.268,1976,0.524,1977,0.268,1978,0.77,1979,0.268,1980,0.84,1981,0.572,1982,0.24,1983,0.292,1984,0.23,1985,0.292,1986,0.292,1987,0.524,1988,0.252,1989,0.572,1990,0.24,1991,0.252,1992,0.268,1993,0.493,1994,0.724,1995,0.292,1996,0.292,1997,0.252,1998,0.268,1999,0.252,2000,0.24,2001,0.252,2002,0.292,2003,0.292,2004,0.292,2005,0.252,2006,0.689,2007,0.24,2008,0.24,2009,0.222,2010,0.268,2011,0.268,2012,0.292,2013,0.292,2014,0.268,2015,0.268,2016,0.292,2017,0.292,2018,0.292,2019,0.292,2020,0.24,2021,0.268,2022,0.661,2023,0.572,2024,0.292,2025,0.252,2026,0.292,2027,0.268,2028,0.268,2029,0.268,2030,0.292,2031,0.661,2032,0.84,2033,0.292,2034,0.945,2035,0.24,2036,0.421,2037,0.24,2038,0.24,2039,0.524,2040,0.702,2041,0.292,2042,0.252,2043,0.268,2044,0.268,2045,0.292,2046,0.572,2047,0.292,2048,0.292,2049,0.199,2050,0.268,2051,0.572,2052,0.292,2053,0.252,2054,0.572,2055,0.816,2056,0.524,2057,0.292,2058,0.292,2059,1.164,2060,0.292,2061,0.292,2062,0.292,2063,0.435,2064,0.292,2065,0.292,2066,0.292,2067,0.292,2068,0.24,2069,0.23,2070,0.359,2071,0.292,2072,0.84,2073,0.292,2074,0.292,2075,0.292,2076,0.292,2077,0.292,2078,0.292,2079,0.524,2080,0.292,2081,0.292,2082,0.23,2083,0.572,2084,0.292,2085,0.292,2086,0.292,2087,0.209,2088,0.268,2089,0.292,2090,0.268,2091,0.292,2092,0.493,2093,1.582,2094,0.292,2095,0.292,2096,0.292,2097,0.976,2098,0.586,2099,0.23,2100,0.252,2101,0.252,2102,0.292,2103,0.222,2104,0.292,2105,0.572,2106,0.524,2107,0.215,2108,0.292,2109,0.252,2110,0.292,2111,0.292,2112,0.292,2113,0.268,2114,0.268,2115,0.292,2116,0.601,2117,0.252,2118,0.292,2119,0.292,2120,0.268,2121,0.24,2122,0.292,2123,0.292,2124,0.292,2125,0.23,2126,0.252,2127,0.222,2128,0.292,2129,0.292,2130,0.292,2131,0.292,2132,0.945,2133,0.292,2134,0.45,2135,0.209,2136,0.252,2137,0.292,2138,0.252,2139,0.292,2140,0.572,2141,0.23,2142,0.292,2143,2.593,2144,0.292,2145,0.199,2146,0.77,2147,0.292,2148,0.292,2149,0.268,2150,0.23,2151,0.292,2152,0.292,2153,0.292,2154,0.292,2155,0.292,2156,0.292,2157,0.77,2158,0.292,2159,0.268,2160,0.292,2161,0.292,2162,0.945,2163,0.252,2164,0.435,2165,0.252,2166,0.252,2167,0.292,2168,0.586,2169,1.232,2170,0.724,2171,0.292,2172,0.84,2173,0.24,2174,0.292,2175,0.268,2176,0.24,2177,0.292,2178,0.493,2179,0.572,2180,0.724,2181,0.469,2182,0.84,2183,0.84,2184,0.572,2185,0.268,2186,0.493,2187,0.524,2188,0.292,2189,1.097,2190,0.252,2191,0.292,2192,0.268,2193,0.23,2194,0.292,2195,0.209,2196,0.292,2197,0.292,2198,0.292,2199,0.292,2200,0.292,2201,0.292,2202,0.292,2203,0.469,2204,0.195,2205,0.268,2206,0.292,2207,0.268,2208,0.292,2209,0.292,2210,0.572,2211,0.292,2212,0.23,2213,0.292,2214,0.292,2215,0.292,2216,0.292,2217,0.222,2218,0.268,2219,0.292,2220,0.524,2221,0.199,2222,0.292,2223,0.252,2224,0.808,2225,0.689,2226,0.215,2227,0.252,2228,0.572,2229,0.292,2230,0.292,2231,0.292,2232,0.292,2233,0.292,2234,0.572,2235,0.572,2236,0.268,2237,0.292,2238,0.222,2239,0.292,2240,0.252,2241,0.292,2242,0.84,2243,0.292,2244,0.292,2245,0.292,2246,0.524,2247,0.252,2248,0.292,2249,0.292,2250,0.268,2251,0.292,2252,0.175,2253,0.292,2254,0.268,2255,0.292,2256,0.292,2257,0.292,2258,0.292,2259,0.292,2260,0.292,2261,0.292,2262,0.292,2263,0.268,2264,0.292,2265,0.292,2266,0.292,2267,0.268,2268,0.572,2269,0.292,2270,0.292,2271,0.292,2272,0.252,2273,0.268,2274,0.187,2275,0.252,2276,1.297,2277,0.24,2278,0.268,2279,0.252,2280,0.572,2281,0.292,2282,0.84,2283,0.292,2284,0.292,2285,0.292,2286,0.572,2287,0.292,2288,0.23,2289,0.292,2290,0.252,2291,0.524,2292,0.268,2293,0.292,2294,0.252,2295,0.252,2296,0.268,2297,0.292,2298,0.292,2299,0.252,2300,0.24,2301,0.619,2302,0.572,2303,0.524,2304,0.292,2305,0.292,2306,0.724,2307,0.252,2308,0.24,2309,0.292,2310,0.292,2311,0.24,2312,0.292,2313,0.268,2314,0.292,2315,0.572,2316,0.292,2317,0.292,2318,0.292,2319,0.292,2320,0.268,2321,0.24,2322,0.572,2323,1.021,2324,0.292,2325,0.268,2326,0.292,2327,0.252,2328,0.292,2329,0.292,2330,0.24,2331,0.292,2332,0.292,2333,0.268,2334,0.292,2335,0.252,2336,0.56,2337,0.268,2338,0.24,2339,0.84,2340,0.292,2341,0.209,2342,0.99,2343,0.572,2344,0.24,2345,0.292,2346,0.9,2347,0.292,2348,0.292,2349,0.292,2350,0.469,2351,0.24,2352,0.268,2353,0.268,2354,0.292,2355,0.268,2356,0.268,2357,0.199,2358,0.292,2359,0.524,2360,0.252,2361,0.572,2362,0.292,2363,0.292,2364,0.292,2365,0.292,2366,0.292,2367,0.292,2368,0.292,2369,0.292,2370,0.292,2371,0.252,2372,0.292,2373,0.268,2374,0.195,2375,0.469,2376,0.292,2377,0.292,2378,0.292,2379,0.292,2380,0.292,2381,0.24,2382,0.215,2383,0.84,2384,0.252,2385,0.204,2386,0.292,2387,0.572,2388,0.292,2389,0.421,2390,0.292,2391,0.222,2392,0.199,2393,0.572,2394,0.572,2395,0.292,2396,0.252,2397,0.252,2398,0.268,2399,0.292,2400,0.252,2401,0.268,2402,0.268,2403,0.292,2404,0.292,2405,0.493,2406,0.252,2407,0.292,2408,0.572,2409,0.24,2410,0.268,2411,0.252,2412,0.268,2413,0.222,2414,0.24,2415,0.292,2416,0.292,2417,0.252,2418,0.292,2419,0.292,2420,0.24,2421,0.268,2422,0.268,2423,0.268,2424,0.252,2425,0.24,2426,0.292,2427,0.292,2428,0.292,2429,0.252,2430,0.209,2431,0.292,2432,0.292,2433,0.292,2434,0.292,2435,0.24,2436,0.292,2437,0.252,2438,0.292,2439,0.177,2440,0.292,2441,0.292,2442,0.268,2443,0.292,2444,0.292,2445,0.268,2446,0.572,2447,0.252,2448,0.24,2449,0.292,2450,0.252,2451,0.23,2452,0.292,2453,0.292,2454,0.292,2455,0.292,2456,0.292,2457,0.292,2458,0.292,2459,0.292,2460,0.292,2461,0.292,2462,0.252,2463,0.292,2464,0.292,2465,0.268,2466,0.292,2467,0.292,2468,0.292,2469,0.572,2470,0.292,2471,0.572,2472,0.292,2473,0.24,2474,0.292,2475,0.268,2476,0.292,2477,0.292,2478,0.222,2479,0.268,2480,0.292,2481,0.252,2482,0.268,2483,0.292,2484,0.23,2485,0.292,2486,0.24,2487,0.292,2488,0.292,2489,0.292,2490,0.292,2491,0.292,2492,0.292,2493,0.292,2494,0.292,2495,0.292,2496,0.268,2497,0.292,2498,0.292,2499,0.292,2500,0.292,2501,0.292,2502,0.292,2503,0.292,2504,0.292,2505,0.292,2506,0.292,2507,0.292,2508,0.292,2509,0.292,2510,0.292,2511,0.292,2512,0.292,2513,0.292,2514,0.292,2515,0.292,2516,0.268,2517,0.268,2518,0.292,2519,0.292,2520,0.292,2521,0.292,2522,0.292,2523,0.292,2524,0.292,2525,0.292,2526,0.292,2527,0.292,2528,0.292,2529,0.292,2530,0.292,2531,0.268,2532,0.292,2533,0.292,2534,0.268,2535,0.572,2536,0.572]],["component/16",[72,0.396]],["keyword/16",[]],["title/17-1",[33,15.63,741,29.608,1306,30.16,2537,43.191,2538,40.591]],["name/17-1",[]],["text/17-1",[]],["component/17-1",[]],["keyword/17-1",[]],["title/17-2",[237,37.917,1717,57.346]],["name/17-2",[]],["text/17-2",[]],["component/17-2",[]],["keyword/17-2",[]],["title/17-3",[661,52.377]],["name/17-3",[]],["text/17-3",[]],["component/17-3",[]],["keyword/17-3",[]],["title/17",[559,41.622,2539,48.457,2540,41.622,2541,40.174]],["name/17",[559,0.735]],["text/17",[2,4.028,4,1.09,5,1.128,6,3.123,10,4.055,13,2.942,14,0.856,15,3.94,16,1.056,19,4.101,21,2.599,22,1.223,25,4.549,27,3.061,28,3.17,30,4.085,33,3.473,35,2.443,36,1.364,37,3.097,38,4.026,39,2.157,45,2.154,53,1.524,57,0.919,58,3.295,60,1.785,62,0.973,67,0.929,81,2.567,83,2.491,84,2.363,87,1.012,94,1.149,171,1.413,221,1.012,237,2.304,261,1.413,268,1.364,291,2.277,296,0.873,309,2.065,313,1.419,316,0.881,318,2.249,329,0.998,333,0.919,352,1.09,360,1.252,361,2.899,376,2.157,379,1.539,381,1.196,382,0.919,392,0.95,487,2.515,490,2.209,492,1.621,493,1.892,507,0.84,508,2.026,520,0.998,532,2.929,548,1.657,552,0.973,559,5.487,564,2.209,571,1.072,573,1.09,575,1.072,576,1.322,580,1.252,583,3.609,584,1.621,599,1.482,608,2.066,612,0.89,623,1.108,639,1.586,644,1.586,655,1.128,660,2.11,686,2.007,700,1.809,702,1.171,705,1.012,707,1.072,708,1.322,717,2.066,725,1.171,729,1.056,731,0.962,741,1.128,746,0.785,758,1.056,767,1.108,782,1.056,797,2.712,799,1.128,802,1.09,814,0.929,838,2.304,842,0.919,867,1.171,868,3.982,869,1.196,879,1.472,898,1.364,906,0.973,928,1.892,933,1.285,937,1.072,939,2.719,942,2.894,949,1.285,950,2.332,964,1.196,968,1.196,974,1.322,986,1.645,1013,2.623,1014,3.574,1021,1.149,1025,1.171,1070,1.364,1116,1.413,1145,1.285,1172,1.413,1232,1.892,1257,1.09,1260,1.922,1286,2.066,1287,1.285,1296,1.252,1306,2.719,1350,1.108,1352,1.285,1368,1.546,1374,1.09,1379,1.252,1405,1.546,1408,2.669,1419,1.04,1437,1.252,1461,1.149,1523,1.472,1549,1.072,1556,1.072,1581,1.171,1628,1.252,1643,1.472,1717,1.472,1778,1.546,1796,1.252,1798,1.322,1858,1.472,1952,1.364,2008,1.472,2082,1.413,2097,1.108,2107,2.332,2125,1.413,2141,1.413,2164,1.364,2263,1.645,2274,1.149,2391,1.364,2392,1.223,2409,1.472,2439,1.09,2447,3.659,2537,2.902,2538,1.546,2540,1.413,2541,1.364,2542,5.125,2543,5.548,2544,4.249,2545,1.645,2546,6.455,2547,1.795,2548,2.493,2549,1.413,2550,1.795,2551,1.795,2552,1.645,2553,1.795,2554,1.413,2555,5.848,2556,1.795,2557,1.795,2558,1.795,2559,1.645,2560,1.546,2561,1.795,2562,1.795,2563,1.795,2564,1.645,2565,1.795,2566,1.413,2567,3.167,2568,3.167,2569,1.795,2570,1.795,2571,1.364,2572,1.795,2573,1.795,2574,1.364,2575,1.472,2576,1.795,2577,1.795,2578,1.472,2579,1.795,2580,1.795,2581,1.795,2582,1.795,2583,1.364,2584,1.795,2585,1.645,2586,1.285,2587,1.795,2588,1.795,2589,1.795,2590,1.472,2591,1.546,2592,1.645,2593,1.472,2594,3.128,2595,3.128,2596,1.472,2597,1.795,2598,4.696,2599,1.795,2600,1.795,2601,1.546,2602,1.645,2603,1.795,2604,1.364,2605,1.322,2606,1.795,2607,2.267,2608,1.645,2609,1.795,2610,1.795,2611,1.795,2612,1.795,2613,1.795,2614,1.645,2615,1.472,2616,1.546,2617,1.795,2618,1.795,2619,1.795,2620,1.795,2621,1.795,2622,5.125,2623,1.795,2624,1.795,2625,1.645,2626,1.645,2627,1.795,2628,1.795,2629,1.795,2630,1.795,2631,1.472,2632,1.795,2633,1.285,2634,1.795,2635,1.795,2636,1.546,2637,1.795,2638,1.645,2639,1.546,2640,1.795,2641,1.795,2642,1.645,2643,1.795,2644,1.795,2645,1.795,2646,1.546,2647,1.795,2648,1.413,2649,1.645,2650,1.322,2651,1.413,2652,1.795,2653,1.285,2654,1.413,2655,1.795,2656,1.795,2657,1.795,2658,1.795,2659,1.795,2660,1.795,2661,1.795,2662,1.645,2663,1.795]],["component/17",[72,0.396]],["keyword/17",[]],["title/18-1",[2664,76.406]],["name/18-1",[]],["text/18-1",[]],["component/18-1",[]],["keyword/18-1",[]],["title/18-2",[2665,76.406]],["name/18-2",[]],["text/18-2",[]],["component/18-2",[]],["keyword/18-2",[]],["title/18-3",[1997,71.806]],["name/18-3",[]],["text/18-3",[]],["component/18-3",[]],["keyword/18-3",[]],["title/18-4",[2666,76.406]],["name/18-4",[]],["text/18-4",[]],["component/18-4",[]],["keyword/18-4",[]],["title/18-5",[102,39.961,550,37.917]],["name/18-5",[]],["text/18-5",[]],["component/18-5",[]],["keyword/18-5",[]],["title/18-6",[616,61.388]],["name/18-6",[]],["text/18-6",[]],["component/18-6",[]],["keyword/18-6",[]],["title/18-7",[2022,65.628]],["name/18-7",[]],["text/18-7",[]],["component/18-7",[]],["keyword/18-7",[]],["title/18-8",[21,12.989,335,37.83,550,32.652]],["name/18-8",[]],["text/18-8",[]],["component/18-8",[]],["keyword/18-8",[]],["title/18-9",[30,25.317,903,34.412,2667,51.864]],["name/18-9",[]],["text/18-9",[]],["component/18-9",[]],["keyword/18-9",[]],["title/18-10",[2668,76.406]],["name/18-10",[]],["text/18-10",[]],["component/18-10",[]],["keyword/18-10",[]],["title/18-11",[30,25.317,364,30.17,2667,51.864]],["name/18-11",[]],["text/18-11",[]],["component/18-11",[]],["keyword/18-11",[]],["title/18-12",[87,39.415,620,43.931]],["name/18-12",[]],["text/18-12",[]],["component/18-12",[]],["keyword/18-12",[]],["title/18-13",[21,12.989,354,38.536,550,32.652]],["name/18-13",[]],["text/18-13",[]],["component/18-13",[]],["keyword/18-13",[]],["title/18-14",[2669,71.806]],["name/18-14",[]],["text/18-14",[]],["component/18-14",[]],["keyword/18-14",[]],["title/18-15",[1904,63.344]],["name/18-15",[]],["text/18-15",[]],["component/18-15",[]],["keyword/18-15",[]],["title/18-16",[1902,59.677]],["name/18-16",[]],["text/18-16",[]],["component/18-16",[]],["keyword/18-16",[]],["title/18-17",[1903,61.388]],["name/18-17",[]],["text/18-17",[]],["component/18-17",[]],["keyword/18-17",[]],["title/18-18",[1969,65.628]],["name/18-18",[]],["text/18-18",[]],["component/18-18",[]],["keyword/18-18",[]],["title/18-19",[332,47.643]],["name/18-19",[]],["text/18-19",[]],["component/18-19",[]],["keyword/18-19",[]],["title/18-20",[634,61.388]],["name/18-20",[]],["text/18-20",[]],["component/18-20",[]],["keyword/18-20",[]],["title/18-21",[2670,83.389]],["name/18-21",[]],["text/18-21",[]],["component/18-21",[]],["keyword/18-21",[]],["title/18-22",[2346,68.371]],["name/18-22",[]],["text/18-22",[]],["component/18-22",[]],["keyword/18-22",[]],["title/18-23",[18,45.632,640,36.593]],["name/18-23",[]],["text/18-23",[]],["component/18-23",[]],["keyword/18-23",[]],["title/18-24",[605,65.628]],["name/18-24",[]],["text/18-24",[]],["component/18-24",[]],["keyword/18-24",[]],["title/18-25",[32,34.33,364,35.036]],["name/18-25",[]],["text/18-25",[]],["component/18-25",[]],["keyword/18-25",[]],["title/18-26",[266,53.13,354,44.75]],["name/18-26",[]],["text/18-26",[]],["component/18-26",[]],["keyword/18-26",[]],["title/18-27",[30,22.23,38,20.145,365,36.884,796,28.324]],["name/18-27",[]],["text/18-27",[]],["component/18-27",[]],["keyword/18-27",[]],["title/18-28",[38,20.145,40,25.703,238,28.324,1497,40.174]],["name/18-28",[]],["text/18-28",[]],["component/18-28",[]],["keyword/18-28",[]],["title/18-29",[661,52.377]],["name/18-29",[]],["text/18-29",[]],["component/18-29",[]],["keyword/18-29",[]],["title/18",[32,34.33,46,51.489]],["name/18",[32,0.458]],["text/18",[2,3.637,3,0.578,5,0.371,6,2.638,7,0.393,9,0.578,10,3.415,13,4.181,14,1.196,15,3.4,16,1.476,17,0.422,18,2.563,19,0.347,20,0.448,21,2.474,23,0.646,24,1.682,25,4.265,29,0.698,30,4.022,32,3.922,33,3.308,35,3.289,37,2.78,38,3.8,40,0.549,43,1.219,44,0.347,45,2.303,46,1.198,47,0.402,48,0.665,50,0.352,51,0.358,53,1.573,54,0.347,57,2.689,58,3.303,60,2.214,62,0.613,65,0.842,67,1.501,80,0.464,81,1.968,82,0.809,83,1.909,84,1.159,87,1.635,91,0.332,100,0.917,101,2.515,102,1.658,132,1.548,133,0.448,144,0.402,195,1.454,212,1.208,236,0.555,237,0.613,244,0.484,264,0.508,271,0.484,276,0.402,291,1.745,294,1.067,296,1.013,297,0.723,303,0.393,309,2.663,313,0.729,316,1.023,322,0.324,330,1.707,331,0.464,332,3.13,333,1.672,334,0.698,335,1.31,339,0.402,340,1.36,349,0.402,352,1.523,354,1.605,355,0.987,356,0.851,359,0.364,361,2.235,364,2.258,366,0.393,367,0.352,371,0.293,376,0.402,378,1.004,379,3.781,381,0.393,382,1.485,383,0.842,386,0.347,387,0.972,390,0.753,391,0.646,392,0.598,413,1.226,434,0.352,457,0.464,487,1.231,488,1.022,491,0.585,492,0.832,493,0.352,498,0.371,499,1.159,503,0.464,505,0.371,507,1.53,508,3.065,509,0.309,511,0.342,512,0.422,520,0.629,529,0.347,531,0.434,532,2.391,533,0.987,548,1.71,549,0.927,550,4.974,556,0.364,558,0.842,561,0.32,564,0.411,565,1.265,569,1.867,583,1.287,584,1.067,592,0.698,593,1.022,598,0.464,599,0.976,600,0.832,605,0.464,609,0.352,613,0.629,616,2.657,620,1.022,622,0.598,623,0.698,624,0.464,626,0.358,627,1.004,631,0.859,632,0.484,633,0.484,634,0.434,636,0.927,638,0.411,639,0.296,644,0.815,645,1.084,646,0.842,647,0.448,653,0.905,656,0.972,666,0.77,686,0.769,687,0.324,688,0.434,692,0.637,693,0.555,698,0.385,700,2.245,703,2.279,705,1.635,707,0.675,719,0.434,721,0.411,728,0.342,729,0.665,734,0.637,758,0.347,759,0.393,761,0.337,770,0.402,771,0.448,773,1.906,775,0.698,778,0.484,780,0.484,781,1.108,782,0.347,784,1.377,786,1.433,789,0.698,793,0.753,796,0.316,797,0.861,798,0.402,799,0.371,802,1.523,803,0.448,806,0.737,808,0.637,812,0.402,814,0.585,815,0.71,816,0.347,821,0.371,826,1.004,827,0.422,834,0.675,838,0.32,842,1.485,848,0.411,859,0.411,866,0.385,867,0.737,871,0.378,876,0.411,881,1.584,890,0.448,897,1.135,899,0.328,903,1.433,906,0.613,908,0.347,910,0.371,912,1.287,915,0.508,920,0.393,925,0.393,928,0.352,932,0.364,933,1.164,935,0.93,936,0.621,937,0.352,941,0.385,942,1.108,943,0.385,949,0.422,972,0.422,978,0.448,980,0.71,981,0.788,982,0.422,984,0.411,988,0.809,1007,0.378,1010,0.364,1013,0.698,1015,0.358,1016,0.686,1019,0.385,1035,0.352,1036,0.402,1052,0.508,1054,0.371,1068,0.422,1077,0.484,1100,0.422,1103,0.448,1141,0.385,1143,0.464,1145,0.422,1151,0.484,1166,0.342,1179,1.108,1184,1.236,1186,1.795,1193,2.136,1204,0.293,1226,1.641,1231,0.723,1232,0.675,1244,1.265,1257,0.686,1259,0.352,1260,0.358,1279,0.809,1280,0.508,1285,0.393,1299,0.464,1306,0.378,1313,0.686,1320,0.832,1333,0.422,1334,0.809,1345,0.508,1346,0.973,1362,0.309,1372,0.508,1379,0.411,1380,0.927,1391,0.402,1393,0.89,1396,0.541,1406,0.484,1408,0.71,1419,0.342,1423,0.89,1428,0.484,1438,0.508,1443,0.378,1449,0.71,1458,0.337,1460,1.036,1461,1.041,1476,1.062,1500,0.464,1502,2.705,1518,0.927,1536,1.135,1539,0.464,1546,0.378,1549,0.675,1556,0.972,1562,0.402,1581,0.385,1590,1.401,1592,0.541,1593,0.508,1595,0.402,1601,0.541,1616,0.402,1617,0.484,1619,0.448,1620,1.084,1628,0.411,1631,0.484,1634,0.927,1642,0.508,1648,0.448,1655,0.484,1698,1.389,1713,0.723,1755,0.448,1768,0.411,1775,0.832,1791,0.464,1802,0.508,1806,0.927,1812,0.434,1813,0.411,1837,1.236,1863,0.411,1864,0.464,1866,0.508,1871,0.508,1873,0.508,1881,1.389,1901,0.508,1902,1.164,1903,2.136,1904,2.742,1905,0.508,1906,2.499,1907,2.38,1908,0.859,1910,1.036,1922,0.753,1931,0.89,1943,0.464,1951,0.422,1953,0.422,1955,1.584,1956,0.541,1957,0.541,1958,1.198,1961,1.975,1962,3.108,1963,1.036,1964,1.036,1965,3.64,1966,0.484,1967,0.541,1968,1.491,1969,1.641,1971,0.541,1972,0.973,1973,0.541,1974,0.541,1975,0.541,1976,0.541,1977,1.036,1978,2.994,1979,1.91,1984,0.89,1993,0.508,1994,1.795,1997,1.795,2000,0.484,2009,0.448,2020,1.334,2021,0.541,2022,2.284,2025,0.508,2027,0.541,2028,0.541,2029,1.036,2040,0.378,2049,0.402,2055,0.358,2087,0.422,2097,0.698,2098,1.135,2103,0.448,2145,0.402,2150,0.89,2170,1.401,2178,2.16,2180,0.973,2217,0.448,2220,0.541,2226,0.434,2252,2.156,2272,0.508,2274,1.605,2291,0.541,2300,0.484,2321,0.927,2330,0.927,2336,0.393,2346,0.484,2356,0.541,2374,0.393,2375,0.484,2385,1.135,2389,1.198,2391,0.448,2392,0.402,2425,0.484,2439,0.358,2478,0.448,2545,0.541,2590,0.484,2592,0.541,2631,1.71,2648,0.464,2664,3.307,2665,1.91,2666,0.541,2668,0.541,2669,0.508,2671,0.541,2672,0.59,2673,0.508,2674,0.541,2675,0.508,2676,1.198,2677,0.59,2678,0.59,2679,0.59,2680,0.59,2681,0.541,2682,1.13,2683,0.59,2684,0.59,2685,0.59,2686,0.448,2687,0.59,2688,0.59,2689,0.508,2690,0.59,2691,0.59,2692,0.59,2693,0.59,2694,0.59,2695,0.59,2696,0.59,2697,0.59,2698,0.59,2699,0.59,2700,0.59,2701,0.422,2702,0.508,2703,0.508,2704,0.59,2705,0.508,2706,1.036,2707,0.59,2708,0.541,2709,0.508,2710,0.59,2711,0.59,2712,0.59,2713,0.59,2714,0.59,2715,1.036,2716,0.59,2717,1.13,2718,0.59,2719,0.508,2720,0.422,2721,0.464,2722,0.59,2723,1.13,2724,0.59,2725,0.59,2726,0.541,2727,0.59,2728,0.59,2729,0.59,2730,0.59,2731,0.541,2732,0.448,2733,1.13,2734,0.402,2735,0.59,2736,0.59,2737,0.541,2738,0.59,2739,0.508,2740,2.085,2741,2.057,2742,0.59,2743,0.541,2744,0.541,2745,0.59,2746,0.59,2747,1.13,2748,0.434,2749,0.59,2750,0.59,2751,1.627,2752,0.541,2753,0.675,2754,0.464,2755,1.13,2756,0.59,2757,0.508,2758,0.59,2759,0.464,2760,0.484,2761,0.541,2762,0.464,2763,0.59,2764,1.036,2765,0.434,2766,0.89,2767,0.59,2768,0.484,2769,1.13,2770,0.484,2771,0.59,2772,0.59,2773,0.484,2774,0.59,2775,0.59,2776,0.59,2777,0.59,2778,0.541,2779,0.541,2780,0.59,2781,0.59,2782,0.59,2783,0.59,2784,0.973,2785,0.59,2786,0.59,2787,2.509,2788,0.541,2789,0.422,2790,0.59,2791,1.13,2792,0.484,2793,0.59,2794,0.422,2795,0.59,2796,0.973,2797,0.59,2798,0.59,2799,0.59,2800,0.434,2801,0.448,2802,0.541,2803,0.541,2804,0.541,2805,1.13,2806,3.268,2807,2.509,2808,1.627,2809,0.59,2810,0.541,2811,0.59,2812,1.491,2813,1.401,2814,1.641,2815,0.59,2816,0.541,2817,0.59,2818,0.59,2819,0.508,2820,3.928,2821,2.38,2822,0.832,2823,1.491,2824,0.927,2825,1.28,2826,2.902,2827,3.913,2828,1.627,2829,2.659,2830,0.59,2831,1.627,2832,1.627,2833,1.627,2834,1.627,2835,1.627,2836,0.59,2837,0.59,2838,0.59,2839,0.59,2840,0.59,2841,0.541,2842,0.59,2843,0.59,2844,0.59,2845,0.508,2846,0.508,2847,0.541,2848,0.59,2849,0.59,2850,0.541,2851,0.59,2852,0.59,2853,0.508,2854,0.59,2855,0.59,2856,0.484,2857,0.541,2858,0.508,2859,0.59,2860,0.59,2861,0.448,2862,0.541,2863,2.085,2864,0.59,2865,0.59,2866,1.491,2867,0.541,2868,0.59,2869,0.59,2870,0.484,2871,0.541,2872,0.484,2873,0.59,2874,0.508,2875,0.541,2876,0.541,2877,0.464,2878,0.508,2879,0.378,2880,0.59,2881,0.434,2882,0.508,2883,0.59,2884,0.541,2885,1.491,2886,0.541,2887,0.422,2888,1.13,2889,0.59,2890,0.508,2891,0.464,2892,0.508,2893,0.832,2894,0.464,2895,0.508,2896,0.59,2897,0.508,2898,0.59,2899,0.541,2900,0.59,2901,0.59,2902,0.59,2903,0.89,2904,0.508,2905,1.627,2906,0.541,2907,0.59,2908,0.464,2909,0.59,2910,0.59,2911,0.541,2912,0.541,2913,0.59,2914,0.59,2915,0.59,2916,0.448,2917,0.541,2918,0.59,2919,0.59,2920,0.541,2921,0.59,2922,0.59,2923,0.541,2924,0.541,2925,0.541,2926,0.378,2927,0.541,2928,0.541,2929,3.928,2930,0.541,2931,2.659,2932,0.59,2933,0.541,2934,0.448,2935,0.59,2936,1.627,2937,0.59,2938,0.59,2939,0.59,2940,0.59,2941,0.59,2942,0.59,2943,0.59,2944,0.59,2945,0.59,2946,0.508,2947,0.59,2948,0.59,2949,0.59,2950,0.508,2951,0.59,2952,0.59,2953,2.085,2954,0.448,2955,0.434,2956,0.59,2957,0.422,2958,0.541,2959,0.484,2960,0.434,2961,0.484,2962,0.59,2963,0.59,2964,0.484,2965,0.484,2966,0.59,2967,0.508,2968,0.393,2969,0.508,2970,0.59,2971,0.59,2972,0.422,2973,0.59,2974,0.541,2975,0.484,2976,0.59,2977,0.59,2978,1.108,2979,1.13,2980,0.59,2981,0.541,2982,0.59,2983,0.541,2984,0.59,2985,0.59,2986,0.59,2987,0.59,2988,0.59,2989,0.59,2990,0.59,2991,0.541,2992,0.59,2993,0.59,2994,0.59,2995,0.59,2996,0.59,2997,0.59,2998,0.541,2999,0.59,3000,0.508,3001,0.59,3002,0.59,3003,1.13,3004,0.59,3005,0.59,3006,0.59,3007,0.508,3008,0.59]],["component/18",[72,0.396]],["keyword/18",[]],["title/19-1",[2,12.463,21,6.587,33,10.127,38,11.634,53,14.701,212,14.701,313,13.683,599,14.295,664,13.349,686,14.426]],["name/19-1",[]],["text/19-1",[]],["component/19-1",[]],["keyword/19-1",[]],["title/19-2",[38,17.956,316,23.137,664,20.603,686,22.265,3009,37.098]],["name/19-2",[]],["text/19-2",[]],["component/19-2",[]],["keyword/19-2",[]],["title/19-3",[38,13.541,318,18.814,371,17.625,664,15.537,686,16.791,3010,30.611,3011,30.611,3012,29.146]],["name/19-3",[]],["text/19-3",[]],["component/19-3",[]],["keyword/19-3",[]],["title/19-4",[21,7.666,38,13.541,212,17.11,322,19.514,599,16.638,664,15.537,982,25.44,1302,21.939]],["name/19-4",[]],["text/19-4",[]],["component/19-4",[]],["keyword/19-4",[]],["title/19-5",[21,10.166,413,27.725,664,20.603,3013,38.649,3014,31.399]],["name/19-5",[]],["text/19-5",[]],["component/19-5",[]],["keyword/19-5",[]],["title/19-6",[2,19.236,233,27.725,664,20.603,686,22.265,3015,33.735]],["name/19-6",[]],["text/19-6",[]],["component/19-6",[]],["keyword/19-6",[]],["title/19-7",[38,17.956,427,32.875,664,20.603,686,22.265,920,31.399]],["name/19-7",[]],["text/19-7",[]],["component/19-7",[]],["keyword/19-7",[]],["title/19-8",[2,19.236,368,26.932,434,28.155,664,20.603,1469,32.102]],["name/19-8",[]],["text/19-8",[]],["component/19-8",[]],["keyword/19-8",[]],["title/19-9",[161,34.505,664,23.115,746,23.115,755,33.837]],["name/19-9",[]],["text/19-9",[]],["component/19-9",[]],["keyword/19-9",[]],["title/19-10",[3,27.06,251,31.588,664,33.163]],["name/19-10",[]],["text/19-10",[]],["component/19-10",[]],["keyword/19-10",[]],["title/19",[333,30.818,334,37.172,3016,44.339]],["name/19",[3017,0.934]],["text/19",[2,4.001,3,2.888,6,2.714,9,0.317,10,3.36,12,0.986,13,3.622,14,1.247,15,3.089,21,2.082,23,0.354,25,4.106,29,0.382,30,3.654,32,0.304,33,2.599,35,3.565,37,1.945,38,3.921,43,1.468,45,1.428,53,0.819,55,0.404,58,3.141,62,0.336,65,1.757,67,1.353,72,0.262,76,3.746,81,0.31,83,0.827,87,0.349,90,0.686,91,0.667,100,0.667,101,5.49,112,0.456,119,0.848,132,1.05,179,0.534,202,0.471,203,0.413,210,0.932,212,3.177,221,1.702,247,0.534,281,0.432,287,1.465,291,1.809,294,1.338,296,1.468,308,0.488,309,1.058,313,0.278,329,0.345,333,2.997,334,1.05,338,2.925,350,0.349,359,1.05,361,0.587,362,0.534,368,0.972,371,0.307,379,3.288,382,1.545,383,0.613,386,0.364,387,0.37,391,0.354,392,0.328,399,0.488,414,3.615,425,0.488,434,0.37,437,2.84,476,3.132,481,0.471,487,0.304,491,0.88,493,1.016,507,1.59,508,0.295,509,0.89,520,0.345,528,0.422,532,1.876,533,0.376,541,0.456,544,1.089,548,0.324,552,0.922,558,1.126,561,0.336,573,0.376,575,0.37,578,0.376,582,0.789,583,0.382,584,1.114,585,0.922,592,0.382,599,3.166,600,0.456,603,0.443,610,0.345,612,0.307,613,0.345,620,0.389,622,0.627,639,0.593,640,0.62,644,0.593,686,2.56,687,1.195,692,0.959,693,1.068,707,0.37,709,1.159,711,1.339,720,0.826,721,0.432,727,0.382,728,0.686,731,1.618,741,0.389,746,0.518,749,0.456,750,0.359,751,0.422,758,0.697,761,0.354,763,0.443,765,0.364,770,0.422,775,0.731,783,0.758,784,3.215,786,0.354,789,0.382,793,0.413,795,2.444,797,1.598,805,0.773,807,0.744,808,1.702,814,0.321,816,0.364,821,2.558,826,0.731,829,0.471,842,1.338,859,2.369,867,0.773,874,1.321,876,1.518,894,1.321,897,0.432,904,0.697,906,0.642,908,0.364,913,1.454,920,0.789,932,0.731,933,0.443,935,0.354,936,0.65,943,0.404,968,0.413,972,6.714,973,2.601,980,0.389,982,1.218,990,0.667,1003,0.488,1006,0.508,1019,0.404,1020,0.413,1024,0.376,1025,0.404,1035,1.016,1036,0.422,1038,0.432,1040,0.456,1055,0.789,1056,0.971,1068,0.443,1076,0.872,1089,0.422,1096,0.396,1100,0.848,1138,0.534,1139,0.789,1141,0.773,1147,0.488,1166,0.359,1171,1.069,1172,0.488,1179,0.807,1204,0.307,1232,0.707,1237,1.218,1248,1.187,1262,0.389,1271,1.218,1274,0.413,1285,0.413,1290,4.25,1293,0.807,1302,1.05,1307,1.713,1319,0.443,1357,0.471,1378,0.456,1384,0.508,1388,0.471,1391,1.159,1402,0.432,1419,1.968,1437,0.432,1450,0.413,1452,0.534,1458,0.354,1469,1.159,1476,1.42,1535,0.758,1552,0.488,1595,0.422,1617,0.508,1620,0.413,1678,0.432,1681,0.807,1683,0.534,1687,0.488,1698,0.413,1774,0.488,1790,0.789,1792,1.45,1798,0.456,1823,0.422,1832,0.443,1863,0.432,1872,0.443,1894,0.568,1908,0.471,1922,0.413,1923,0.471,2001,0.534,2036,1.925,2040,0.396,2049,0.422,2070,0.389,2116,0.443,2132,0.534,2145,0.422,2164,0.471,2221,0.422,2223,0.534,2225,0.508,2226,0.872,2277,0.508,2288,0.488,2385,0.826,2445,0.568,2451,0.932,2543,0.807,2595,2.758,2616,0.534,2631,0.508,2636,1.465,2686,0.471,2753,0.37,2757,0.534,2766,0.488,2768,0.508,2770,2.144,2773,0.508,2796,0.534,2801,0.471,2858,0.534,2899,0.568,2908,5.564,2926,2.397,2955,0.456,2968,1.45,2972,0.443,2978,0.422,3009,0.488,3010,0.534,3011,1.02,3012,1.785,3014,2.712,3015,2.681,3018,0.432,3019,0.971,3020,0.534,3021,1.874,3022,0.568,3023,0.568,3024,0.62,3025,1.02,3026,0.508,3027,1.184,3028,1.085,3029,0.568,3030,0.971,3031,0.488,3032,3.746,3033,1.602,3034,3.881,3035,1.085,3036,0.508,3037,0.62,3038,1.085,3039,0.62,3040,0.62,3041,0.62,3042,0.471,3043,0.568,3044,0.62,3045,0.62,3046,7.647,3047,0.62,3048,0.62,3049,0.62,3050,0.62,3051,0.62,3052,0.62,3053,3.205,3054,1.184,3055,3.542,3056,1.465,3057,2.058,3058,1.184,3059,2.377,3060,0.971,3061,3.746,3062,2.601,3063,2.601,3064,1.559,3065,1.874,3066,0.568,3067,0.971,3068,1.395,3069,0.568,3070,2.252,3071,1.465,3072,2.925,3073,1.713,3074,4.967,3075,1.785,3076,1.465,3077,2.785,3078,1.465,3079,0.62,3080,0.62,3081,0.568,3082,0.568,3083,0.62,3084,0.443,3085,0.62,3086,2.262,3087,0.971,3088,0.62,3089,0.62,3090,0.568,3091,0.568,3092,1.465,3093,0.508,3094,0.508,3095,0.534,3096,0.62,3097,2.925,3098,0.508,3099,2.223,3100,1.874,3101,1.874,3102,1.465,3103,1.02,3104,0.456,3105,0.508,3106,0.488,3107,0.568,3108,0.62,3109,1.184,3110,0.568,3111,0.488,3112,1.085,3113,0.872,3114,0.62,3115,0.62,3116,0.62,3117,0.62,3118,0.62,3119,0.62,3120,0.62,3121,0.62,3122,0.62,3123,1.02,3124,1.02,3125,0.62,3126,0.62,3127,0.508,3128,0.568,3129,0.62,3130,1.395,3131,0.568,3132,0.568,3133,0.62,3134,0.568,3135,2.144,3136,1.785,3137,0.9,3138,3.112,3139,1.085,3140,0.62,3141,1.02,3142,0.568,3143,0.62,3144,1.184,3145,0.62,3146,0.62,3147,0.62,3148,0.62,3149,1.184,3150,0.62,3151,2.294,3152,1.184,3153,0.62,3154,1.184,3155,0.62,3156,1.184,3157,0.62,3158,0.62,3159,0.62,3160,1.184,3161,0.62,3162,0.62,3163,0.568,3164,0.62,3165,0.62,3166,0.62,3167,0.62,3168,0.432,3169,0.62,3170,0.568,3171,0.62,3172,0.534,3173,0.471,3174,0.456,3175,1.085,3176,0.62,3177,0.422,3178,0.488,3179,0.62,3180,1.339,3181,0.568,3182,0.62,3183,0.62,3184,0.534,3185,0.62,3186,0.508,3187,0.508,3188,1.184,3189,1.184,3190,1.02,3191,0.62,3192,0.62,3193,1.184,3194,0.508,3195,1.465,3196,1.465,3197,0.568,3198,0.62,3199,0.807,3200,0.62,3201,0.443,3202,0.62,3203,0.62,3204,1.293,3205,0.534,3206,0.62,3207,0.534,3208,0.534,3209,0.534,3210,1.085,3211,0.568,3212,1.184,3213,0.932,3214,3.053,3215,0.62,3216,1.184,3217,0.568,3218,1.02,3219,1.559,3220,1.02,3221,1.085,3222,1.085,3223,1.085,3224,1.085,3225,1.085,3226,1.085,3227,1.465,3228,1.395,3229,1.085,3230,1.465,3231,1.559,3232,1.085,3233,1.085,3234,1.085,3235,1.085,3236,1.085,3237,1.085,3238,0.568,3239,1.085,3240,0.568,3241,1.994,3242,1.085,3243,1.085,3244,1.085,3245,1.085,3246,1.465,3247,1.085,3248,1.085,3249,1.253,3250,0.62,3251,0.534,3252,0.62,3253,0.534,3254,0.568,3255,1.085,3256,0.534,3257,0.488,3258,1.184,3259,0.62,3260,0.568,3261,0.568,3262,0.568,3263,0.568,3264,0.568,3265,0.62,3266,0.62,3267,0.62,3268,0.568,3269,0.534,3270,0.534,3271,0.534,3272,0.568,3273,0.848,3274,0.62,3275,1.085,3276,0.568,3277,0.568,3278,0.534,3279,1.395,3280,0.568,3281,3.339,3282,2.925,3283,1.702,3284,2.767,3285,0.62,3286,1.994,3287,1.02,3288,0.62,3289,1.702,3290,0.62,3291,1.02,3292,0.508,3293,0.488,3294,0.568,3295,0.413,3296,0.62,3297,0.568,3298,1.184,3299,0.62,3300,0.62,3301,0.422,3302,0.534,3303,0.62,3304,0.62,3305,0.62,3306,0.568,3307,0.62,3308,0.62,3309,0.568,3310,0.568,3311,0.62,3312,0.62,3313,1.02,3314,0.568,3315,0.568,3316,0.568,3317,0.568,3318,0.568,3319,1.184,3320,0.62,3321,0.62,3322,0.62,3323,0.62,3324,0.62,3325,0.568,3326,1.085,3327,0.62,3328,1.02,3329,0.534,3330,0.568,3331,0.62,3332,0.62,3333,0.568,3334,0.508,3335,0.62,3336,0.62,3337,0.62,3338,0.62,3339,0.62,3340,0.62,3341,0.568,3342,0.62,3343,1.184,3344,1.184,3345,1.184,3346,0.932,3347,1.184,3348,1.702,3349,0.568,3350,1.702,3351,0.62,3352,1.184,3353,0.568,3354,0.568,3355,1.702,3356,0.508,3357,0.568,3358,0.62,3359,0.62,3360,0.62,3361,0.508,3362,0.422,3363,0.62,3364,0.62,3365,0.62,3366,1.184,3367,0.62,3368,0.534,3369,0.62,3370,0.62,3371,0.62,3372,0.62,3373,0.62,3374,0.432,3375,0.534,3376,1.184,3377,0.62,3378,0.62,3379,0.62,3380,0.568,3381,0.62,3382,2.177,3383,0.534,3384,0.471,3385,0.534,3386,1.184,3387,0.62,3388,0.568,3389,0.508,3390,0.534,3391,0.62,3392,0.62,3393,0.62,3394,0.62,3395,0.568,3396,1.02,3397,0.62,3398,0.62,3399,0.62,3400,0.568,3401,0.471,3402,0.568,3403,0.62,3404,0.488,3405,0.534,3406,0.62,3407,0.508,3408,0.62,3409,0.62,3410,0.62,3411,1.702,3412,0.62,3413,0.62,3414,0.62,3415,0.62,3416,0.62,3417,0.62]],["component/19",[72,0.396]],["keyword/19",[]],["title/20-1",[15,13.81,21,7.086,33,10.894,53,15.814,313,14.72,520,18.27,664,14.361,808,18.515,3418,28.292]],["name/20-1",[]],["text/20-1",[]],["component/20-1",[]],["keyword/20-1",[]],["title/20-2",[21,8.351,33,12.84,91,21.821,316,19.006,350,21.821,664,16.925,1937,26.37]],["name/20-2",[]],["text/20-2",[]],["component/20-2",[]],["keyword/20-2",[]],["title/20-3",[3042,63.344]],["name/20-3",[]],["text/20-3",[]],["component/20-3",[]],["keyword/20-3",[]],["title/20-4",[91,33.941,1469,41.017,3419,51.864]],["name/20-4",[]],["text/20-4",[]],["component/20-4",[]],["keyword/20-4",[]],["title/20-5",[686,28.449,3375,51.864,3420,44.339]],["name/20-5",[]],["text/20-5",[]],["component/20-5",[]],["keyword/20-5",[]],["title/20-6",[33,19.971,746,26.325,3251,51.864]],["name/20-6",[]],["text/20-6",[]],["component/20-6",[]],["keyword/20-6",[]],["title/20-7",[21,9.169,318,22.503,641,31.3,664,18.584,3201,30.428,3421,38.957]],["name/20-7",[]],["text/20-7",[]],["component/20-7",[]],["keyword/20-7",[]],["title/20-8",[30,22.23,99,45.54,641,38.933,979,37.848]],["name/20-8",[]],["text/20-8",[]],["component/20-8",[]],["keyword/20-8",[]],["title/20-9",[322,29.032,664,23.115,746,23.115,814,27.359]],["name/20-9",[]],["text/20-9",[]],["component/20-9",[]],["keyword/20-9",[]],["title/20-10",[21,8.351,30,16.276,238,20.738,558,20.032,619,30.475,1908,29.414,2055,23.501]],["name/20-10",[]],["text/20-10",[]],["component/20-10",[]],["keyword/20-10",[]],["title/20-11",[2,21.582,313,23.694,3168,36.884,3422,43.362]],["name/20-11",[]],["text/20-11",[]],["component/20-11",[]],["keyword/20-11",[]],["title/20-12",[21,9.169,38,16.196,316,20.869,619,33.462,2903,33.462,3423,32.298]],["name/20-12",[]],["text/20-12",[]],["component/20-12",[]],["keyword/20-12",[]],["title/20-13",[318,31.877,3424,43.104,3425,45.752]],["name/20-13",[]],["text/20-13",[]],["component/20-13",[]],["keyword/20-13",[]],["title/20-14",[2,21.582,91,29.803,322,29.032,3424,37.848]],["name/20-14",[]],["text/20-14",[]],["component/20-14",[]],["keyword/20-14",[]],["title/20-15",[33,12.84,413,22.775,928,23.128,1035,23.128,2150,30.475,3009,30.475,3426,38.722]],["name/20-15",[]],["text/20-15",[]],["component/20-15",[]],["keyword/20-15",[]],["title/20-16",[21,10.166,233,27.725,556,29.092,1908,35.808,3427,40.591]],["name/20-16",[]],["text/20-16",[]],["component/20-16",[]],["keyword/20-16",[]],["title/20-17",[661,52.377]],["name/20-17",[]],["text/20-17",[]],["component/20-17",[]],["keyword/20-17",[]],["title/20",[133,45.752,333,30.818,3016,44.339]],["name/20",[133,0.709]],["text/20",[2,2.508,3,0.914,6,1.413,10,1.553,12,0.555,13,2.933,14,0.456,15,1.565,21,1.976,25,2.728,29,0.591,30,3.194,32,0.47,33,1.556,35,2.435,37,1.654,38,3.096,41,1.608,43,0.465,45,0.402,55,0.624,57,0.49,58,1.117,65,0.495,76,6.293,83,0.465,84,0.532,87,1.007,90,0.555,91,2.878,101,6.06,119,3.03,132,0.591,133,3.216,208,1.315,210,2.931,212,0.461,218,0.824,221,0.539,251,1.501,254,0.668,287,3.206,291,1.881,294,0.914,296,1.81,316,0.47,329,0.532,333,1.905,334,0.591,350,1.416,361,0.475,371,0.886,379,1.221,382,0.914,383,0.924,391,0.547,412,0.824,414,2.952,425,1.978,437,4.849,439,2.716,446,0.705,487,0.47,492,1.286,507,1.176,508,0.852,525,0.572,532,1.58,533,0.581,544,1.143,548,0.501,550,0.969,552,0.519,556,1.103,584,1.286,585,0.519,600,0.705,609,0.572,619,2.482,641,2.741,644,0.479,682,0.601,686,1.187,687,1.38,700,0.547,705,0.539,719,0.705,725,0.624,727,0.591,744,1.279,749,0.705,750,3.179,751,0.652,784,1.731,786,0.547,796,0.513,797,0.507,838,0.519,842,0.49,844,0.652,851,2.396,859,1.246,875,2.06,928,1.501,932,0.591,971,1.539,972,7.71,979,1.798,980,1.122,987,0.555,990,0.539,1035,1.501,1038,1.753,1054,1.578,1083,0.601,1142,0.638,1143,0.753,1171,0.601,1179,0.652,1204,0.475,1232,0.572,1257,0.581,1259,0.572,1260,0.581,1271,1.279,1287,0.685,1290,0.785,1293,0.652,1306,0.612,1307,1.406,1350,0.591,1352,0.685,1390,0.753,1392,1.539,1419,0.555,1437,0.668,1445,0.753,1480,0.638,1524,0.727,1540,1.978,1549,1.067,1595,0.652,1648,0.727,1678,0.668,1698,0.638,1720,2.322,1770,0.685,1823,0.652,1908,3.88,1922,0.638,1937,1.711,2005,0.824,2040,0.612,2098,1.246,2240,0.824,2288,1.406,2375,0.785,2451,0.753,2534,0.877,2540,0.753,2650,0.705,2732,0.727,2764,2.303,2765,0.705,2789,0.685,2813,0.824,2893,0.705,2972,0.685,3009,3.693,3013,0.785,3016,0.705,3021,1.539,3029,0.877,3030,5.277,3031,0.753,3033,0.705,3042,0.727,3046,8.556,3053,2.482,3055,3.564,3056,1.539,3057,3.693,3061,6.293,3073,1.406,3074,2.06,3075,3.471,3077,2.06,3086,0.638,3093,0.785,3094,0.785,3099,2.741,3104,2.322,3113,1.85,3123,4.398,3124,1.539,3130,1.465,3135,0.785,3136,3.847,3137,0.727,3139,0.877,3151,2.829,3168,2.597,3180,1.406,3184,0.824,3186,0.785,3201,1.279,3217,0.877,3218,0.824,3219,1.637,3220,1.539,3221,0.877,3222,0.877,3223,0.877,3224,0.877,3225,0.877,3226,0.877,3227,5.988,3228,6.067,3229,0.877,3230,6.371,3231,1.637,3232,0.877,3233,0.877,3234,0.877,3235,0.877,3236,0.877,3237,0.877,3238,0.877,3239,0.877,3240,0.877,3241,1.637,3242,1.637,3243,0.877,3244,0.877,3245,1.637,3246,0.824,3247,0.877,3248,1.637,3249,0.705,3256,3.206,3260,0.877,3261,0.877,3262,0.877,3263,0.877,3264,0.877,3269,0.824,3277,0.877,3301,0.652,3328,0.824,3375,2.716,3380,0.877,3401,1.357,3420,0.705,3421,0.877,3422,2.06,3423,1.357,3424,0.685,3427,0.824,3428,0.877,3429,0.957,3430,0.957,3431,0.877,3432,2.513,3433,0.785,3434,0.824,3435,0.877,3436,0.957,3437,1.637,3438,0.957,3439,1.787,3440,0.957,3441,1.787,3442,1.787,3443,0.957,3444,0.957,3445,0.957,3446,0.957,3447,1.787,3448,3.154,3449,2.513,3450,0.785,3451,0.877,3452,0.877,3453,0.957,3454,0.957,3455,0.957,3456,0.957,3457,0.957,3458,0.957,3459,0.957,3460,0.957,3461,0.957,3462,0.957,3463,0.957,3464,0.824,3465,0.877,3466,0.957,3467,6.146,3468,0.957,3469,0.957,3470,0.957,3471,0.957,3472,0.957,3473,2.513,3474,4.233,3475,0.957,3476,2.89,3477,2.513,3478,3.154,3479,1.787,3480,1.798,3481,3.724,3482,1.787,3483,4.233,3484,0.957,3485,2.513,3486,0.957,3487,0.957,3488,1.787,3489,3.154,3490,0.957,3491,0.957,3492,0.824,3493,1.787,3494,0.957,3495,0.957,3496,0.957,3497,0.957,3498,0.957,3499,0.957,3500,0.877,3501,0.727,3502,0.624,3503,3.693,3504,0.957,3505,0.957,3506,3.412,3507,2.06,3508,0.957,3509,0.957,3510,0.957,3511,2.513,3512,0.957,3513,0.824,3514,0.957,3515,2.513,3516,2.513,3517,0.957,3518,0.957,3519,0.957,3520,0.957,3521,0.957,3522,0.957,3523,0.957,3524,0.957,3525,0.957,3526,0.957,3527,1.539,3528,1.539,3529,0.727,3530,0.753,3531,2.513,3532,2.164,3533,2.513,3534,2.513,3535,2.716,3536,0.957,3537,0.957,3538,0.957,3539,0.877,3540,0.877,3541,2.741,3542,0.957,3543,0.957,3544,4.233,3545,6.78,3546,1.787,3547,0.957,3548,1.787,3549,3.154,3550,0.824,3551,1.787,3552,1.787,3553,0.957,3554,0.957,3555,0.957,3556,2.513,3557,2.513,3558,1.787,3559,1.787,3560,1.787,3561,1.637,3562,3.154,3563,0.824,3564,0.824,3565,0.877,3566,1.787,3567,1.787,3568,1.787,3569,1.787,3570,0.957,3571,0.957,3572,0.957,3573,0.957,3574,0.877,3575,0.957,3576,0.957,3577,0.957,3578,1.787,3579,0.957,3580,0.785,3581,0.957,3582,0.957,3583,0.957,3584,3.154,3585,1.787,3586,1.787,3587,0.957,3588,1.787,3589,0.957,3590,0.957,3591,0.957,3592,0.957,3593,0.957,3594,0.957,3595,0.957,3596,0.877,3597,0.957,3598,0.957,3599,0.957,3600,0.957,3601,0.957,3602,0.957,3603,0.877,3604,0.877,3605,0.957,3606,0.957,3607,0.957,3608,0.957,3609,0.957,3610,0.957,3611,0.957,3612,0.957,3613,0.957,3614,0.957,3615,0.957,3616,0.957,3617,0.957,3618,0.957,3619,0.957,3620,0.957,3621,0.957,3622,2.89,3623,1.637,3624,1.787,3625,1.787,3626,1.787,3627,2.586,3628,0.957,3629,0.957,3630,1.787,3631,2.89,3632,1.787,3633,0.957,3634,0.877,3635,0.957,3636,1.637,3637,1.637,3638,0.957,3639,0.957,3640,0.957,3641,0.877,3642,0.957,3643,1.465,3644,1.637,3645,0.957,3646,0.957,3647,0.957,3648,0.957,3649,0.824,3650,0.877,3651,0.957,3652,0.957,3653,0.957,3654,0.957,3655,0.957,3656,0.957]],["component/20",[72,0.396]],["keyword/20",[]],["title/21",[3657,83.389]],["name/21",[2616,0.804]],["text/21",[2,3.463,3,2.064,6,1.807,10,1.683,13,1.839,15,3.85,21,2.579,23,2.305,25,1.888,30,4.234,33,2.506,37,2.756,38,4.527,45,1.696,50,2.41,58,1.792,65,3.209,92,3.474,132,2.49,202,3.065,212,4.408,309,3.015,313,1.807,364,3.108,371,3.076,437,8.172,493,2.41,520,2.243,544,3.969,558,2.087,599,4.287,611,4.132,612,3.748,646,2.087,653,2.243,687,5.309,693,1.98,746,3.709,750,5.838,783,2.581,784,5.028,786,2.305,802,2.449,827,7.209,908,2.373,913,3.45,921,2.687,932,3.829,1024,4.588,1172,3.175,1290,5.087,1302,2.49,1458,3.544,1562,2.747,1616,4.225,1872,4.44,2633,5.409,2926,4.836,3009,3.175,3012,3.308,3014,2.687,3016,2.97,3028,3.696,3036,3.308,3042,3.065,3046,3.065,3056,3.474,3086,2.687,3177,2.747,3255,3.696,3273,4.44,3385,5.342,3480,2.887,3541,2.97,3658,3.474,3659,6.204,3660,4.034,3661,4.034,3662,3.175,3663,4.034,3664,4.034,3665,4.034,3666,4.034,3667,3.696,3668,4.034,3669,4.034,3670,3.308,3671,4.034,3672,4.034,3673,4.034,3674,4.034,3675,4.034]],["component/21",[72,0.396]],["keyword/21",[]],["title/22-1",[874,50.61]],["name/22-1",[]],["text/22-1",[]],["component/22-1",[]],["keyword/22-1",[]],["title/22-2",[3086,55.545]],["name/22-2",[]],["text/22-2",[]],["component/22-2",[]],["keyword/22-2",[]],["title/22-3",[446,51.489,447,57.346]],["name/22-3",[]],["text/22-3",[]],["component/22-3",[]],["keyword/22-3",[]],["title/22-4",[453,63.344]],["name/22-4",[]],["text/22-4",[]],["component/22-4",[]],["keyword/22-4",[]],["title/22-5",[556,51.465]],["name/22-5",[]],["text/22-5",[]],["component/22-5",[]],["keyword/22-5",[]],["title/22-6",[1404,76.406]],["name/22-6",[]],["text/22-6",[]],["component/22-6",[]],["keyword/22-6",[]],["title/22-7",[746,30.57,750,40.534]],["name/22-7",[]],["text/22-7",[]],["component/22-7",[]],["keyword/22-7",[]],["title/22-8",[746,30.57,3676,50.054]],["name/22-8",[]],["text/22-8",[]],["component/22-8",[]],["keyword/22-8",[]],["title/22-9",[132,43.166,550,37.917]],["name/22-9",[]],["text/22-9",[]],["component/22-9",[]],["keyword/22-9",[]],["title/22-10",[38,14.75,132,23.898,236,19.006,291,17.204,383,20.032,2252,23.128,2300,31.748]],["name/22-10",[]],["text/22-10",[]],["component/22-10",[]],["keyword/22-10",[]],["title/22",[2,24.578,84,33.493,87,33.941]],["name/22",[87,0.526]],["text/22",[2,4.146,3,1.552,5,0.748,6,3.359,9,0.609,10,3.49,11,0.762,13,3.017,14,1.446,15,2.917,16,2.212,21,2.494,22,0.811,24,1.758,25,4.282,27,1.306,28,1.645,30,3.998,32,1.489,33,3.256,35,3.574,37,3.717,38,4.068,39,0.811,40,1.474,43,2.405,45,2.47,48,1.287,53,0.573,54,0.7,55,0.777,57,1.119,58,2.611,62,1.186,67,1.132,75,0.937,81,1.096,83,1.474,84,2.443,85,1.427,87,4.362,90,0.69,94,0.762,101,5.197,128,1.025,132,2.322,136,1.025,193,1.525,195,1.525,202,0.904,212,0.573,221,1.233,235,1.399,236,1.074,276,0.811,290,0.904,291,1.348,294,1.119,296,1.828,303,1.457,306,1.374,309,1.828,313,1.969,316,0.584,330,0.7,332,0.68,340,0.645,354,1.399,356,2.589,364,2.201,367,1.306,371,1.084,379,2.405,381,0.793,382,1.119,383,2.273,384,0.723,387,0.711,391,0.68,392,0.63,414,0.83,437,3.064,446,1.61,447,1.793,453,2.305,487,2.157,488,0.748,491,0.616,492,1.119,501,1.525,505,1.374,507,1.024,508,2.359,509,0.623,527,0.777,528,0.811,529,0.7,532,1.884,547,0.877,548,0.623,550,1.645,552,0.645,556,1.872,561,0.645,562,1.883,566,0.976,571,0.711,575,0.711,591,0.793,593,0.748,602,2.066,608,0.777,610,0.662,612,1.504,613,1.216,622,0.63,637,0.723,638,0.83,639,0.596,640,0.623,644,0.596,646,1.569,653,1.687,655,0.748,659,0.645,677,1.565,686,0.562,693,1.489,702,0.777,707,0.711,709,0.811,711,0.937,717,0.777,729,1.287,731,0.638,738,0.777,746,2.377,750,1.758,758,2.212,759,0.793,766,1.268,767,0.735,775,0.735,781,1.49,782,0.7,783,0.762,784,0.654,797,1.158,798,0.811,799,1.374,807,0.748,808,1.233,814,1.132,816,0.7,821,2.363,827,0.852,833,0.762,842,1.119,845,1.374,849,1.883,871,1.399,874,1.841,891,0.83,894,2.667,897,0.83,899,1.687,900,0.777,904,0.7,906,0.645,908,1.287,912,0.735,914,0.748,925,1.457,926,0.877,932,0.735,935,2.51,936,1.201,939,0.762,941,0.777,943,0.777,946,0.976,953,0.904,967,0.877,969,1.091,972,3.145,974,1.61,980,0.748,987,0.69,990,0.671,1013,0.735,1021,0.762,1036,0.811,1048,0.937,1051,0.937,1054,0.748,1087,0.748,1096,1.399,1113,1.525,1133,0.852,1143,0.937,1166,0.69,1182,0.762,1186,2.171,1204,0.59,1232,1.812,1244,0.723,1259,0.711,1264,0.904,1277,1.025,1278,0.937,1279,0.852,1292,1.793,1311,0.877,1327,3.603,1331,0.904,1352,0.852,1374,0.723,1408,0.748,1410,1.025,1418,1.025,1419,1.758,1425,1.025,1433,1.565,1449,0.748,1456,1.662,1461,0.762,1502,0.762,1511,3.064,1536,0.83,1540,0.937,1546,0.762,1549,0.711,1556,1.306,1570,1.721,1571,1.721,1581,0.777,1628,0.83,1649,0.877,1713,0.762,1775,0.877,1790,0.793,1818,0.976,1867,1.025,1868,0.976,1872,0.852,1874,1.721,1902,2.171,1903,0.877,1904,1.662,1917,0.904,1950,1.091,1951,0.852,1953,0.852,1955,0.904,1958,1.61,1962,1.883,1965,1.025,1972,1.883,1987,1.091,1992,1.091,2008,0.976,2031,0.937,2055,0.723,2097,0.735,2113,1.091,2116,0.852,2141,0.937,2168,0.83,2178,1.025,2217,1.662,2252,0.711,2254,1.091,2294,1.883,2357,0.811,2396,1.025,2400,1.025,2409,0.976,2422,1.091,2439,2.283,2541,0.904,2549,0.937,2560,1.025,2578,0.976,2583,0.904,2594,1.61,2607,0.852,2650,0.877,2669,1.025,2671,1.091,2720,0.852,2744,1.091,2766,0.937,2800,0.877,2870,0.976,2887,0.852,2908,0.937,2926,1.941,2930,1.091,2931,3.447,2950,1.025,2955,0.877,2968,0.793,3053,0.937,3081,1.091,3084,0.852,3086,0.793,3177,0.811,3204,0.904,3205,1.025,3249,1.61,3269,1.025,3346,0.937,3368,1.883,3374,1.525,3389,0.976,3423,0.904,3503,0.937,3506,1.091,3507,0.976,3650,1.091,3676,3.145,3677,1.191,3678,1.091,3679,1.191,3680,1.191,3681,0.976,3682,0.937,3683,1.191,3684,1.191,3685,1.191,3686,0.976,3687,1.191,3688,1.025,3689,0.904,3690,1.191,3691,1.191,3692,1.191,3693,1.191,3694,0.904,3695,0.852,3696,1.191,3697,1.091,3698,1.191,3699,1.191,3700,2.004,3701,1.883,3702,1.191,3703,1.191,3704,1.191,3705,1.191,3706,1.191,3707,2.187,3708,1.091,3709,1.091,3710,1.191,3711,1.025,3712,1.191,3713,1.191,3714,2.187,3715,2.187,3716,2.187,3717,1.191,3718,1.191,3719,1.191,3720,1.091,3721,1.191,3722,1.191,3723,1.091,3724,1.191,3725,1.025,3726,1.191,3727,1.191,3728,1.191,3729,1.191,3730,1.191,3731,1.191,3732,1.091,3733,0.976,3734,1.191,3735,1.191,3736,1.191,3737,2.187,3738,1.191,3739,1.191,3740,1.191,3741,0.711,3742,1.091,3743,1.191,3744,0.904,3745,1.191,3746,1.191,3747,0.852,3748,1.025,3749,1.091,3750,1.091,3751,0.877,3752,1.191,3753,1.091,3754,0.904,3755,1.091,3756,1.025,3757,1.091,3758,1.091,3759,1.191,3760,1.025,3761,1.191,3762,1.191,3763,1.191,3764,0.904,3765,1.191,3766,0.937,3767,0.904,3768,1.091,3769,1.091,3770,1.191,3771,1.191,3772,1.191,3773,1.191,3774,1.091,3775,0.976,3776,1.091,3777,1.191,3778,1.091,3779,0.937,3780,1.191,3781,1.091,3782,1.191,3783,1.191,3784,1.191,3785,2.187,3786,1.191,3787,1.191,3788,0.976,3789,1.091,3790,1.191,3791,1.191,3792,1.191,3793,1.49,3794,1.025,3795,1.091,3796,1.091,3797,1.191,3798,1.191,3799,1.191,3800,1.191,3801,1.091,3802,0.937,3803,1.191,3804,0.976,3805,2.187,3806,1.191,3807,1.191,3808,2.187,3809,2.187,3810,1.091,3811,1.191,3812,2.004,3813,1.191,3814,2.004,3815,1.662,3816,0.937,3817,0.976,3818,1.191,3819,1.025,3820,1.793,3821,1.191,3822,1.191,3823,1.025,3824,1.091,3825,1.091,3826,1.091,3827,0.976,3828,1.191,3829,1.191,3830,1.191,3831,1.091,3832,1.091,3833,1.191,3834,1.191,3835,1.191]],["component/22",[72,0.396]],["keyword/22",[]],["title/23-1",[21,8.351,313,17.348,620,24.321,664,16.925,1790,25.793,3014,25.793,3201,27.711]],["name/23-1",[]],["text/23-1",[]],["component/23-1",[]],["keyword/23-1",[]],["title/23-2",[21,8.351,316,19.006,620,24.321,664,16.925,686,18.29,3015,27.711,3747,27.711]],["name/23-2",[]],["text/23-2",[]],["component/23-2",[]],["keyword/23-2",[]],["title/23-3",[2,17.35,100,23.96,318,22.503,591,28.321,664,18.584,3199,28.955]],["name/23-3",[]],["text/23-3",[]],["component/23-3",[]],["keyword/23-3",[]],["title/23-4",[2,15.801,43,18.819,322,21.256,664,16.925,2891,30.475,3015,27.711,3199,26.37]],["name/23-4",[]],["text/23-4",[]],["component/23-4",[]],["keyword/23-4",[]],["title/23-5",[45,17.872,413,25.007,591,28.321,664,18.584,3199,28.955,3836,31.3]],["name/23-5",[]],["text/23-5",[]],["component/23-5",[]],["keyword/23-5",[]],["title/23-6",[2,12.463,21,6.587,30,12.838,38,11.634,212,14.701,233,17.964,591,20.344,599,14.295,664,13.349,3837,26.3]],["name/23-6",[]],["text/23-6",[]],["component/23-6",[]],["keyword/23-6",[]],["title/23-7",[427,36.884,664,23.115,3838,43.362,3839,43.362]],["name/23-7",[]],["text/23-7",[]],["component/23-7",[]],["keyword/23-7",[]],["title/23-8",[3,27.06,161,34.505,664,33.163]],["name/23-8",[]],["text/23-8",[]],["component/23-8",[]],["keyword/23-8",[]],["title/23",[333,30.818,620,37.83,3016,44.339]],["name/23",[620,0.587]],["text/23",[2,3.42,3,0.902,6,1.5,10,2.354,12,0.647,13,3.054,14,1.118,15,2.126,17,3.504,21,1.566,23,0.437,24,0.443,25,3.55,30,2.314,33,2.188,35,2.334,37,0.915,38,3.101,41,0.714,43,1.27,45,1.839,49,0.29,53,0.19,55,0.257,58,1.384,62,0.785,65,0.912,67,0.912,72,0.167,76,1.565,83,0.542,90,0.228,100,2.249,101,5.808,132,1.447,161,0.728,165,1.475,193,0.778,209,0.282,212,2.015,221,3.256,233,3.474,235,0.252,238,0.211,245,1.845,249,0.323,251,0.667,262,0.728,263,0.714,291,1.488,294,0.902,296,1.139,297,0.252,309,0.542,313,2.86,316,3.832,318,2.837,322,1.131,333,0.202,334,0.243,340,0.213,352,1.742,359,0.243,361,0.195,371,0.553,378,0.243,379,1.27,382,2.331,383,0.749,387,1.231,391,0.225,392,0.405,414,0.778,434,2,437,0.275,454,0.627,457,0.31,464,1.517,476,0.799,481,1.781,487,1.283,488,0.247,491,0.577,492,0.202,498,0.481,499,0.426,507,0.825,508,0.188,509,0.206,511,1.358,525,0.457,529,0.232,532,1.032,533,0.239,548,0.4,550,0.213,552,0.785,554,0.961,558,0.204,565,0.239,569,0.225,573,0.464,576,0.29,584,0.392,599,0.825,610,0.426,612,0.195,613,0.219,620,1.472,622,0.208,623,0.243,627,0.243,639,0.559,646,0.396,692,1.321,693,0.711,700,0.225,702,0.257,705,0.431,707,0.235,709,0.521,711,0.31,716,0.257,719,0.563,721,1.01,728,0.443,731,0.775,732,0.243,738,0.257,744,0.548,746,0.172,751,1.2,767,0.243,771,0.299,783,1.128,784,1.71,795,0.257,797,0.208,808,0.816,814,0.912,815,0.247,821,3.176,825,1.678,826,0.243,829,0.581,842,1.469,844,2.281,845,0.247,852,1.403,859,0.275,873,0.51,874,1.891,876,0.534,880,0.282,894,0.677,904,0.232,906,0.213,910,0.247,911,0.714,913,0.219,914,0.481,920,1.174,928,0.235,932,0.689,936,0.216,941,0.257,967,0.563,972,5.316,982,0.548,983,0.964,990,0.431,992,1.066,1001,0.268,1019,0.499,1020,0.51,1022,0.521,1024,0.239,1025,0.257,1035,0.865,1054,0.247,1055,0.743,1056,0.627,1087,0.481,1096,0.714,1103,0.299,1110,0.29,1120,0.299,1166,0.228,1171,0.481,1179,1.2,1180,0.961,1187,0.29,1194,0.282,1204,0.195,1210,0.534,1218,0.339,1219,0.299,1224,0.275,1226,0.31,1232,0.667,1237,0.548,1242,0.29,1259,0.235,1278,0.602,1285,1.741,1286,0.257,1294,0.361,1302,0.243,1354,0.275,1408,0.247,1445,0.878,1446,0.31,1458,0.638,1469,0.986,1474,0.323,1476,0.257,1617,0.323,1678,0.534,1681,0.268,1687,0.31,1711,0.31,1790,0.964,1799,0.563,1823,0.268,1837,5.013,1881,0.262,1942,0.323,2036,0.29,2040,0.252,2059,0.29,2070,0.481,2087,0.282,2103,0.848,2126,0.659,2141,0.31,2145,0.268,2163,0.339,2165,0.339,2169,0.361,2195,0.799,2212,0.31,2224,0.29,2342,0.29,2357,0.268,2439,0.239,2595,1.066,2605,0.563,2636,0.659,2653,0.548,2753,0.235,2768,0.323,2770,0.323,2773,2.929,2810,2.63,2812,4.486,2814,2.812,2816,1.327,2821,0.627,2822,0.29,2824,5.044,2827,0.915,2829,3.657,2847,3.273,2850,4.912,2866,5.171,2867,5.637,2870,3.433,2906,5.171,2908,4.547,2911,7.401,2912,2.63,2965,0.323,2968,1.373,3014,0.262,3015,1.475,3016,0.822,3019,0.915,3021,0.339,3022,0.361,3023,0.361,3025,0.961,3030,0.915,3034,1.387,3046,4.582,3053,1.387,3055,1.781,3057,0.878,3059,0.878,3060,7.403,3061,2.181,3062,0.339,3063,0.339,3065,0.339,3066,0.361,3067,4.395,3068,2.143,3069,0.361,3070,0.961,3071,0.339,3072,0.339,3073,0.31,3074,0.915,3075,2.929,3076,0.339,3077,1.187,3078,0.339,3082,0.701,3086,1.373,3091,0.361,3092,0.339,3095,0.339,3097,0.659,3099,0.29,3100,0.339,3101,0.339,3102,0.339,3103,0.339,3128,0.361,3130,0.627,3135,1.187,3136,0.323,3151,2.181,3163,2.148,3168,0.275,3172,0.339,3187,0.915,3195,0.339,3196,0.659,3199,2.852,3204,0.299,3205,0.339,3207,0.339,3208,0.339,3209,0.339,3210,0.361,3213,0.602,3228,0.915,3246,0.339,3249,2.113,3253,0.339,3254,0.361,3279,0.915,3280,0.361,3281,0.915,3282,2.018,3287,0.339,3291,0.339,3292,0.323,3293,0.31,3302,0.659,3309,0.361,3310,0.361,3313,0.659,3314,0.701,3330,0.361,3362,0.521,3368,0.961,3374,1.437,3384,0.299,3385,0.339,3405,1.774,3419,0.339,3437,1.327,3500,0.361,3503,0.602,3507,0.915,3513,0.339,3527,3.437,3528,0.961,3529,0.299,3530,0.602,3550,0.961,3580,2.143,3676,0.282,3681,0.323,3725,0.339,3747,0.799,3836,1.726,3837,0.339,3838,0.627,3839,0.915,3840,1.116,3841,0.602,3842,0.701,3843,1.023,3844,0.31,3845,0.394,3846,0.394,3847,0.765,3848,0.765,3849,1.448,3850,2.061,3851,1.762,3852,1.762,3853,0.361,3854,0.394,3855,0.765,3856,0.394,3857,0.394,3858,0.765,3859,0.394,3860,0.394,3861,0.394,3862,0.361,3863,0.339,3864,0.394,3865,0.339,3866,0.323,3867,0.339,3868,0.339,3869,0.394,3870,0.361,3871,0.394,3872,0.394,3873,2.344,3874,0.394,3875,0.926,3876,0.361,3877,0.394,3878,0.765,3879,0.765,3880,0.361,3881,0.394,3882,0.394,3883,0.394,3884,0.361,3885,0.548,3886,0.765,3887,0.394,3888,0.627,3889,0.765,3890,1.247,3891,0.701,3892,0.765,3893,0.765,3894,0.765,3895,0.701,3896,0.765,3897,0.765,3898,0.394,3899,0.394,3900,0.394,3901,0.394,3902,0.765,3903,0.394,3904,0.394,3905,0.339,3906,0.765,3907,0.765,3908,0.394,3909,0.394,3910,1.139,3911,0.765,3912,0.394,3913,0.765,3914,0.765,3915,0.394,3916,0.701,3917,0.765,3918,4.333,3919,0.765,3920,0.765,3921,0.765,3922,0.765,3923,0.765,3924,0.765,3925,0.765,3926,0.765,3927,0.765,3928,0.765,3929,0.765,3930,0.701,3931,0.765,3932,0.878,3933,8.762,3934,0.394,3935,0.394,3936,0.394,3937,0.394,3938,0.394,3939,0.394,3940,0.765,3941,0.394,3942,0.394,3943,0.394,3944,0.394,3945,0.394,3946,0.394,3947,0.31,3948,0.394,3949,0.394,3950,0.394,3951,0.299,3952,0.394,3953,0.394,3954,0.394,3955,0.394,3956,0.765,3957,0.765,3958,0.394,3959,0.394,3960,0.765,3961,0.765,3962,0.361,3963,0.765,3964,0.394,3965,0.394,3966,0.361,3967,0.765,3968,1.116,3969,1.762,3970,1.689,3971,1.116,3972,4.729,3973,1.116,3974,1.116,3975,1.116,3976,1.116,3977,2.061,3978,2.061,3979,4.729,3980,2.061,3981,1.689,3982,4.633,3983,2.061,3984,5.361,3985,2.061,3986,2.061,3987,0.915,3988,2.061,3989,1.116,3990,5.361,3991,1.116,3992,1.116,3993,2.061,3994,1.116,3995,5.941,3996,1.116,3997,0.394,3998,0.394,3999,0.701,4000,0.394,4001,0.394,4002,0.394,4003,0.394,4004,0.323,4005,0.394,4006,0.394,4007,1.116,4008,0.394,4009,0.394,4010,0.394,4011,0.394,4012,0.394,4013,0.394,4014,0.394,4015,0.394,4016,0.394,4017,0.394,4018,0.394,4019,0.394,4020,0.394,4021,0.394,4022,0.394,4023,0.394,4024,1.116,4025,1.116,4026,1.023,4027,0.961,4028,1.116,4029,3.115,4030,1.116,4031,4.729,4032,5.906,4033,1.116,4034,1.116,4035,1.888,4036,2.061,4037,1.116,4038,2.061,4039,3.115,4040,5.643,4041,1.116,4042,5.212,4043,2.871,4044,0.394,4045,1.116,4046,0.394,4047,1.448,4048,4.375,4049,3.573,4050,3.573,4051,7.945,4052,3.573,4053,5.643,4054,5.057,4055,3.573,4056,1.116,4057,0.394,4058,0.394,4059,1.116,4060,1.116,4061,1.762,4062,0.394,4063,1.448,4064,0.394,4065,0.394,4066,1.116,4067,1.116,4068,1.116,4069,1.116,4070,1.448,4071,1.448,4072,1.448,4073,1.187,4074,3.573,4075,0.394,4076,0.602,4077,3.349,4078,0.394,4079,1.116,4080,5.057,4081,0.361,4082,0.394,4083,0.361,4084,1.762,4085,2.061,4086,1.448,4087,2.871,4088,2.061,4089,0.394,4090,0.394,4091,1.116,4092,1.116,4093,1.116,4094,0.361,4095,1.116,4096,2.871,4097,1.116,4098,1.116,4099,1.116,4100,1.116,4101,1.116,4102,1.116,4103,1.116,4104,0.765,4105,0.339,4106,0.361,4107,0.361,4108,0.394,4109,0.765,4110,0.394,4111,0.659,4112,0.394,4113,0.394,4114,0.394,4115,0.394,4116,0.394,4117,0.394,4118,0.394,4119,0.394,4120,0.394,4121,0.394,4122,1.448,4123,0.394,4124,0.339,4125,0.394,4126,1.116,4127,2.061,4128,0.361,4129,0.394,4130,0.394,4131,0.394,4132,1.116,4133,1.116,4134,0.394,4135,0.361,4136,0.299,4137,1.615,4138,1.762,4139,1.762,4140,0.394,4141,0.339,4142,0.299,4143,0.394,4144,0.361,4145,0.394,4146,0.701,4147,0.701,4148,0.394,4149,0.361,4150,0.394,4151,0.394,4152,0.361,4153,0.29,4154,0.29,4155,0.394,4156,0.394,4157,0.394,4158,0.323,4159,0.394,4160,0.31,4161,0.394,4162,0.339,4163,0.339,4164,0.361,4165,0.339,4166,1.448,4167,1.116,4168,2.344,4169,1.023,4170,1.116,4171,1.116,4172,0.701,4173,0.765,4174,2.061,4175,1.247,4176,0.627,4177,0.765,4178,0.765,4179,0.765,4180,0.299,4181,0.323,4182,0.394,4183,1.116,4184,0.31,4185,2.061,4186,0.361]],["component/23",[72,0.396]],["keyword/23",[]],["title/24-1",[45,17.872,313,19.048,664,18.584,750,24.641,761,24.292,4187,36.612]],["name/24-1",[]],["text/24-1",[]],["component/24-1",[]],["keyword/24-1",[]],["title/24-2",[21,9.169,316,20.869,664,18.584,746,18.584,3073,33.462,3180,33.462]],["name/24-2",[]],["text/24-2",[]],["component/24-2",[]],["keyword/24-2",[]],["title/24-3",[21,9.169,318,22.503,664,18.584,746,18.584,3067,34.861,3180,33.462]],["name/24-3",[]],["text/24-3",[]],["component/24-3",[]],["keyword/24-3",[]],["title/24-4",[21,10.166,322,25.877,368,26.932,664,20.603,746,20.603]],["name/24-4",[]],["text/24-4",[]],["component/24-4",[]],["keyword/24-4",[]],["title/24-5",[21,9.169,334,26.241,413,25.007,600,31.3,664,18.584,746,18.584]],["name/24-5",[]],["text/24-5",[]],["component/24-5",[]],["keyword/24-5",[]],["title/24-6",[21,10.166,233,27.725,620,29.608,664,20.603,746,20.603]],["name/24-6",[]],["text/24-6",[]],["component/24-6",[]],["keyword/24-6",[]],["title/24-7",[13,19.376,21,9.169,508,20.271,620,26.705,750,24.641,1419,24.641]],["name/24-7",[]],["text/24-7",[]],["component/24-7",[]],["keyword/24-7",[]],["title/24-8",[664,30.57,904,41.138]],["name/24-8",[]],["text/24-8",[]],["component/24-8",[]],["keyword/24-8",[]],["title/24",[333,30.818,750,34.905,3016,44.339]],["name/24",[750,0.541]],["text/24",[2,3.595,3,2.318,6,2.029,10,2.735,11,0.514,13,3.569,14,1.299,15,2.555,21,2.158,23,0.459,25,3.797,30,3.703,33,2.097,35,3.93,37,2.456,38,3.645,43,1.324,45,1.739,51,0.488,58,2.012,60,0.854,62,1.167,65,1.677,67,0.784,76,6.446,81,0.759,83,0.39,100,0.453,101,6.169,132,1.328,161,0.989,202,0.61,209,0.575,212,1.786,221,1.826,237,0.822,282,0.659,291,1.44,294,0.776,296,2.011,303,0.535,309,1.046,313,0.964,316,0.744,330,0.473,333,1.394,334,1.681,338,0.692,340,0.436,352,0.92,361,0.752,364,0.402,368,1.23,378,0.496,379,1.803,382,1.101,383,0.416,386,0.473,387,0.48,391,0.866,413,0.473,414,2.587,434,0.48,437,2.26,476,1.54,481,0.61,487,0.744,491,0.416,492,1.658,493,0.48,499,0.447,507,1.007,508,0.723,509,0.793,511,0.466,520,0.447,525,0.48,532,1.858,544,0.514,548,0.42,552,0.822,558,0.784,561,0.436,573,0.488,575,0.48,578,0.92,582,0.535,584,0.411,585,0.436,592,0.496,599,1.937,600,2.006,609,0.48,610,0.843,612,1.067,613,0.447,620,2.599,627,0.496,637,0.488,646,0.784,653,0.843,686,1.287,687,1.182,692,1.213,693,1.057,698,1.777,700,0.866,705,0.854,707,0.48,728,0.466,731,0.43,741,0.505,744,1.54,746,3.758,750,4.983,751,1.032,759,0.535,761,1.557,762,1.032,763,1.54,765,0.473,783,1.377,784,3.718,786,0.459,787,0.575,802,0.488,806,1.777,807,0.505,808,1.535,814,1.919,821,0.952,827,0.575,842,1.101,844,0.547,845,0.505,859,1.057,860,0.692,869,0.535,874,0.488,899,0.447,906,0.436,908,0.892,910,0.952,911,0.97,914,1.352,921,0.535,935,1.23,937,0.48,945,0.632,972,6.304,975,0.692,979,2.655,987,0.879,990,0.453,1007,0.514,1024,0.92,1035,0.48,1054,0.505,1055,1.434,1068,1.085,1087,0.952,1110,0.591,1166,0.466,1171,0.505,1179,0.547,1182,0.514,1204,1.067,1210,0.56,1219,0.61,1230,0.632,1244,0.488,1262,0.505,1302,0.496,1313,0.488,1317,0.56,1319,1.085,1354,0.56,1388,0.61,1419,0.879,1443,0.514,1445,2.144,1456,0.61,1476,0.524,1591,1.243,1600,0.736,1616,0.547,1681,0.547,1726,2.496,1755,0.61,1768,0.56,1770,0.575,1792,1.434,1795,0.736,1855,0.61,1884,0.736,2036,1.116,2049,0.547,2059,0.591,2070,2.036,2088,0.736,2097,0.496,2103,2.462,2141,0.632,2195,0.575,2274,0.514,2381,0.659,2385,0.56,2420,0.659,2439,0.92,2583,0.61,2633,1.54,2753,0.48,2762,0.632,2768,0.659,2770,2.657,2773,4.533,2794,0.575,2801,0.61,2870,1.765,2897,0.692,2908,2.551,2926,0.97,2968,1.01,2972,0.575,3014,1.01,3019,1.243,3030,0.659,3033,0.591,3034,2.92,3038,1.389,3042,1.152,3046,7.268,3053,3.256,3055,3.143,3057,0.632,3061,6.446,3062,0.692,3063,1.854,3065,0.692,3067,5.877,3068,1.243,3070,2.346,3071,0.692,3072,2.346,3073,2.92,3074,4.766,3075,2.657,3076,0.692,3077,1.765,3078,0.692,3086,1.434,3092,0.692,3097,1.306,3099,1.585,3100,1.306,3101,1.306,3102,0.692,3103,0.692,3105,0.659,3112,0.736,3130,1.243,3131,0.736,3132,0.736,3135,2.657,3136,1.243,3137,1.152,3151,2.462,3173,0.61,3180,0.632,3187,0.659,3195,0.692,3196,0.692,3199,1.855,3207,0.692,3208,0.692,3209,0.692,3214,1.057,3220,2.346,3227,2.346,3228,2.234,3230,2.346,3251,0.692,3257,0.632,3268,0.736,3275,1.972,3276,0.736,3279,1.243,3281,1.243,3282,1.306,3284,1.389,3286,1.389,3287,0.692,3292,0.659,3295,0.535,3313,0.692,3315,0.736,3316,0.736,3317,0.736,3349,0.736,3354,6.567,3374,1.9,3401,3.143,3425,2.818,3502,1.404,3503,1.193,3507,1.765,3528,2.346,3530,1.694,3539,1.972,3540,0.736,3541,3.334,3545,5.796,3550,4.496,3563,2.346,3564,2.346,3565,2.496,3580,3.042,3622,1.389,3627,0.659,3631,0.736,3634,1.389,3636,0.736,3637,0.736,3670,1.765,3676,1.95,3725,0.692,3764,0.61,3767,0.61,3789,0.736,3836,0.591,3842,0.736,3843,1.389,3885,0.575,3951,0.61,3995,2.346,4106,0.736,4107,0.736,4137,0.736,4146,0.736,4147,0.736,4149,0.736,4154,0.591,4162,0.692,4165,0.692,4181,0.659,4188,1.854,4189,2.724,4190,2.724,4191,1.516,4192,0.803,4193,0.803,4194,0.736,4195,0.692,4196,0.736,4197,0.803,4198,0.803,4199,0.803,4200,0.803,4201,0.803,4202,1.516,4203,0.803,4204,0.803,4205,0.803,4206,0.803,4207,0.803,4208,0.659,4209,0.803,4210,0.803,4211,0.803,4212,0.803,4213,1.516,4214,0.692,4215,0.803,4216,0.803,4217,2.153,4218,1.972,4219,0.803,4220,4.138,4221,1.516,4222,1.516,4223,0.803,4224,0.803,4225,0.803,4226,0.803,4227,1.516,4228,1.516,4229,0.803,4230,0.803,4231,0.692,4232,0.803,4233,0.803,4234,0.803,4235,0.803,4236,0.736,4237,0.803,4238,2.724,4239,2.724,4240,2.724,4241,1.516,4242,2.153,4243,2.153,4244,2.724,4245,1.516,4246,0.803,4247,0.803,4248,0.803,4249,0.803,4250,2.724,4251,0.803,4252,2.153,4253,0.803,4254,2.153,4255,0.803,4256,0.692,4257,1.516,4258,0.803,4259,0.803,4260,0.803,4261,0.692,4262,0.803,4263,0.803,4264,0.803,4265,1.516,4266,0.803,4267,0.803,4268,2.153,4269,1.516,4270,2.724,4271,2.724,4272,2.724,4273,2.724,4274,0.803,4275,0.803,4276,0.736,4277,0.803,4278,1.306,4279,0.803,4280,0.803,4281,0.803,4282,0.803,4283,0.803,4284,0.803,4285,0.803,4286,0.692,4287,5.221,4288,2.724,4289,3.241,4290,3.71,4291,0.803,4292,0.803,4293,0.803,4294,0.803,4295,0.803,4296,0.736,4297,0.659,4298,0.803,4299,0.803,4300,0.803,4301,0.692,4302,0.803,4303,0.803]],["component/24",[72,0.396]],["keyword/24",[]],["title/25-1",[690,57.346,691,50.054]],["name/25-1",[]],["text/25-1",[]],["component/25-1",[]],["keyword/25-1",[]],["title/25",[374,63.344]],["name/25",[442,0.804]],["text/25",[0,2.69,2,3.163,3,1.749,6,3.793,10,4.1,13,4.831,14,1.63,15,3.792,21,2.568,25,2.55,30,2.29,32,1.678,33,3.724,35,3.695,37,2.421,38,2.952,41,2.187,45,2.29,53,1.645,58,3.019,60,1.926,84,3.03,238,2.918,296,2.648,302,2.446,309,4.384,322,1.877,332,3.113,337,6.641,342,2.803,354,2.187,356,1.788,361,2.702,364,1.712,366,2.277,370,3.711,371,1.695,372,2.384,373,2.944,374,4.139,376,2.328,379,4.115,384,2.075,434,3.254,487,1.678,492,2.788,501,2.384,511,1.981,520,1.901,544,2.187,558,1.768,563,6.431,575,2.042,583,2.11,592,2.11,597,2.042,604,2.597,609,2.042,639,1.712,644,2.729,646,2.819,656,2.042,686,3.999,690,5.571,691,4.862,693,2.674,694,4.468,695,2.69,696,2.69,697,3.363,698,2.23,733,2.803,735,2.803,752,2.384,766,1.981,770,2.328,772,4.011,806,2.23,815,2.147,833,2.187,838,1.853,868,2.328,906,1.853,932,2.11,946,2.803,988,2.446,1049,2.69,1085,2.516,1260,2.075,1296,2.384,1362,1.788,1367,2.446,1408,2.147,1469,2.328,1540,2.69,1581,2.23,1666,2.944,1806,2.803,1856,3.132,1890,4.288,1902,2.446,1904,2.597,1934,4.862,1952,2.597,2070,2.147,2159,3.132,2181,2.803,2374,2.277,2762,2.69,2794,2.446,2822,2.516,2881,2.516,2926,3.486,2957,2.446,2975,4.468,3043,3.132,3686,5.571,3815,2.597,3820,2.803,3824,4.993,3827,2.803,4304,3.418,4305,2.803,4306,3.418,4307,4.692,4308,2.944,4309,3.418,4310,7.751,4311,3.418,4312,3.418,4313,3.418,4314,3.418,4315,3.132,4316,3.132,4317,3.418,4318,3.418,4319,2.803,4320,3.418,4321,3.418,4322,2.516,4323,3.418,4324,3.418,4325,3.418,4326,2.69,4327,3.418,4328,3.418]],["component/25",[72,0.396]],["keyword/25",[]],["title/26-1",[236,25.958,693,25.958,814,27.359,894,32.098]],["name/26-1",[]],["text/26-1",[]],["component/26-1",[]],["keyword/26-1",[]],["title/26-2",[15,19.814,58,20.943,236,23.137,4329,43.191,4330,43.191]],["name/26-2",[]],["text/26-2",[]],["component/26-2",[]],["keyword/26-2",[]],["title/26-3",[15,19.814,58,20.943,236,23.137,794,34.702,795,30.755]],["name/26-3",[]],["text/26-3",[]],["component/26-3",[]],["keyword/26-3",[]],["title/26-4",[577,46.588,956,50.054]],["name/26-4",[]],["text/26-4",[]],["component/26-4",[]],["keyword/26-4",[]],["title/26-5",[956,50.054,4331,60.227]],["name/26-5",[]],["text/26-5",[]],["component/26-5",[]],["keyword/26-5",[]],["title/26-6",[956,50.054,4332,64.085]],["name/26-6",[]],["text/26-6",[]],["component/26-6",[]],["keyword/26-6",[]],["title/26-7",[2252,49.806]],["name/26-7",[]],["text/26-7",[]],["component/26-7",[]],["keyword/26-7",[]],["title/26-8",[199,43.104,1313,36.555,3910,47.402]],["name/26-8",[]],["text/26-8",[]],["component/26-8",[]],["keyword/26-8",[]],["title/26-9",[4333,76.406]],["name/26-9",[]],["text/26-9",[]],["component/26-9",[]],["keyword/26-9",[]],["title/26-10",[21,10.166,199,33.735,1313,28.609,3658,40.591,3910,37.098]],["name/26-10",[]],["text/26-10",[]],["component/26-10",[]],["keyword/26-10",[]],["title/26-11",[33,19.971,348,47.402,595,44.339]],["name/26-11",[]],["text/26-11",[]],["component/26-11",[]],["keyword/26-11",[]],["title/26-12",[1466,76.406]],["name/26-12",[]],["text/26-12",[]],["component/26-12",[]],["keyword/26-12",[]],["title/26-13",[595,61.388]],["name/26-13",[]],["text/26-13",[]],["component/26-13",[]],["keyword/26-13",[]],["title/26-14",[4334,76.406]],["name/26-14",[]],["text/26-14",[]],["component/26-14",[]],["keyword/26-14",[]],["title/26-15",[4335,76.406]],["name/26-15",[]],["text/26-15",[]],["component/26-15",[]],["keyword/26-15",[]],["title/26-16",[4336,76.406]],["name/26-16",[]],["text/26-16",[]],["component/26-16",[]],["keyword/26-16",[]],["title/26-17",[313,31.335,2406,60.227]],["name/26-17",[]],["text/26-17",[]],["component/26-17",[]],["keyword/26-17",[]],["title/26-18",[33,14.098,366,28.321,3801,38.957,4337,38.957,4338,42.518,4339,38.957]],["name/26-18",[]],["text/26-18",[]],["component/26-18",[]],["keyword/26-18",[]],["title/26-19",[4340,71.806]],["name/26-19",[]],["text/26-19",[]],["component/26-19",[]],["keyword/26-19",[]],["title/26-20",[4341,83.389]],["name/26-20",[]],["text/26-20",[]],["component/26-20",[]],["keyword/26-20",[]],["title/26-21",[4342,83.389]],["name/26-21",[]],["text/26-21",[]],["component/26-21",[]],["keyword/26-21",[]],["title/26-22",[4343,83.389]],["name/26-22",[]],["text/26-22",[]],["component/26-22",[]],["keyword/26-22",[]],["title/26-23",[4344,76.406]],["name/26-23",[]],["text/26-23",[]],["component/26-23",[]],["keyword/26-23",[]],["title/26-24",[364,35.036,4345,69.942]],["name/26-24",[]],["text/26-24",[]],["component/26-24",[]],["keyword/26-24",[]],["title/26-25",[564,48.779,2926,44.75]],["name/26-25",[]],["text/26-25",[]],["component/26-25",[]],["keyword/26-25",[]],["title/26-26",[3271,71.806]],["name/26-26",[]],["text/26-26",[]],["component/26-26",[]],["keyword/26-26",[]],["title/26-27",[3270,71.806]],["name/26-27",[]],["text/26-27",[]],["component/26-27",[]],["keyword/26-27",[]],["title/26-28",[4346,76.406]],["name/26-28",[]],["text/26-28",[]],["component/26-28",[]],["keyword/26-28",[]],["title/26-29",[4347,76.406]],["name/26-29",[]],["text/26-29",[]],["component/26-29",[]],["keyword/26-29",[]],["title/26-30",[3643,68.371]],["name/26-30",[]],["text/26-30",[]],["component/26-30",[]],["keyword/26-30",[]],["title/26-31",[4348,76.406]],["name/26-31",[]],["text/26-31",[]],["component/26-31",[]],["keyword/26-31",[]],["title/26-32",[4349,76.406]],["name/26-32",[]],["text/26-32",[]],["component/26-32",[]],["keyword/26-32",[]],["title/26-33",[4350,76.406]],["name/26-33",[]],["text/26-33",[]],["component/26-33",[]],["keyword/26-33",[]],["title/26-34",[3031,65.628]],["name/26-34",[]],["text/26-34",[]],["component/26-34",[]],["keyword/26-34",[]],["title/26-35",[101,35.036,453,53.13]],["name/26-35",[]],["text/26-35",[]],["component/26-35",[]],["keyword/26-35",[]],["title/26-36",[4351,65.628]],["name/26-36",[]],["text/26-36",[]],["component/26-36",[]],["keyword/26-36",[]],["title/26-37",[2420,68.371]],["name/26-37",[]],["text/26-37",[]],["component/26-37",[]],["keyword/26-37",[]],["title/26-38",[563,53.13,4352,60.227]],["name/26-38",[]],["text/26-38",[]],["component/26-38",[]],["keyword/26-38",[]],["title/26-39",[1616,47.631,2926,44.75]],["name/26-39",[]],["text/26-39",[]],["component/26-39",[]],["keyword/26-39",[]],["title/26-40",[1616,47.631,4208,57.346]],["name/26-40",[]],["text/26-40",[]],["component/26-40",[]],["keyword/26-40",[]],["title/26-41",[1616,47.631,4353,60.227]],["name/26-41",[]],["text/26-41",[]],["component/26-41",[]],["keyword/26-41",[]],["title/26-42",[3425,63.344]],["name/26-42",[]],["text/26-42",[]],["component/26-42",[]],["keyword/26-42",[]],["title/26-43",[2420,68.371]],["name/26-43",[]],["text/26-43",[]],["component/26-43",[]],["keyword/26-43",[]],["title/26",[33,11.787,199,25.44,243,22.744,348,27.977,366,23.679,1313,21.575,3910,27.977,4352,30.611]],["name/26",[4354,0.651]],["text/26",[2,3.924,3,1.252,4,1.681,5,0.302,6,2.328,9,0.475,10,3.665,12,0.279,13,3.58,14,1.321,15,3.717,16,0.546,19,0.546,21,2.52,23,0.275,25,3.792,28,0.941,29,0.573,30,4.166,32,2.031,33,3.251,35,3.081,37,2.748,38,3.86,41,0.308,42,2.476,43,3.075,45,2.717,48,1.809,50,0.287,51,0.292,53,1.178,57,0.475,58,3.093,60,0.523,62,0.73,65,0.48,67,1.266,79,0.378,81,0.674,83,1.892,84,1.87,85,0.606,86,0.799,87,0.759,90,0.78,94,0.308,100,1.185,101,4.567,102,0.275,112,0.354,119,0.344,157,0.992,161,1.372,172,0.394,176,0.414,198,1.159,199,1.982,209,1.243,212,1.178,221,0.271,237,1.14,243,3.073,265,0.705,272,0.308,282,0.394,290,0.365,291,2.748,294,0.689,296,1.892,309,2.124,310,1.037,313,1.854,316,1.651,318,0.919,329,0.516,330,1.237,331,1.059,332,0.53,333,0.246,339,0.632,340,0.503,345,0.344,348,3.78,349,0.327,351,0.683,352,2.512,353,0.991,355,0.292,356,1.902,360,0.335,361,1.043,363,0.799,364,1.951,365,1.932,366,3.811,371,0.238,378,0.831,379,2.525,381,0.32,382,0.889,384,0.563,387,0.804,391,0.769,392,0.491,453,0.365,487,1.911,488,0.583,490,0.647,491,1.266,492,0.689,493,0.804,498,0.845,499,0.267,507,2.599,508,1.733,511,0.279,519,0.365,520,0.748,523,0.414,527,0.314,532,1.053,544,0.594,548,1.1,552,0.503,556,0.297,557,0.731,558,1.088,561,0.73,563,1.319,565,0.563,569,0.275,572,0.344,573,2.207,575,0.287,577,1.157,582,0.32,583,0.573,584,1.86,585,2.111,593,0.583,595,2.039,598,0.378,599,1.574,605,1.059,608,0.606,610,0.267,611,0.32,612,2.167,622,0.491,623,0.573,631,0.365,634,0.683,639,1.226,640,0.252,644,0.674,645,0.32,646,1.088,653,1.54,656,0.287,659,0.503,660,0.32,666,0.327,670,0.344,671,0.32,682,0.845,686,0.636,689,0.394,693,1.509,695,0.378,697,0.831,698,1.372,702,0.314,703,0.647,705,0.979,721,0.335,724,1.211,725,0.606,727,0.297,728,0.538,729,0.283,731,0.258,734,0.271,744,0.344,746,0.21,748,0.327,751,3.782,755,0.594,758,0.283,762,0.327,766,0.538,769,0.314,770,0.327,772,0.354,774,0.963,775,1.072,784,4.058,786,0.53,789,0.297,792,0.939,794,1.278,795,1.133,796,0.93,797,0.491,802,0.817,806,0.314,807,0.302,808,0.271,814,0.696,815,0.302,816,0.546,821,0.302,826,0.831,836,0.365,838,0.73,842,1.076,844,2.094,868,0.917,873,0.32,876,0.647,879,0.394,880,0.344,881,0.705,893,0.851,894,1.485,895,0.618,899,0.748,904,1.021,906,0.261,908,0.546,910,0.302,913,0.748,914,1.321,921,0.32,923,0.365,924,0.394,925,0.32,928,0.287,932,3.088,933,0.344,936,0.739,937,0.804,939,0.308,951,0.939,956,0.344,957,0.414,959,0.314,971,0.414,974,0.354,980,1.537,984,0.335,988,0.664,992,0.354,1007,0.594,1015,0.292,1016,1.276,1019,0.314,1021,0.308,1024,0.292,1027,0.344,1038,0.647,1046,0.851,1050,0.761,1054,1.321,1055,0.618,1083,0.302,1088,0.344,1089,0.327,1090,0.354,1096,0.308,1103,0.365,1105,0.394,1110,0.354,1113,0.939,1128,0.414,1133,0.664,1142,0.618,1166,0.538,1177,0.632,1187,0.354,1193,0.354,1196,0.799,1204,0.46,1229,0.354,1231,0.308,1237,0.664,1238,0.441,1259,0.554,1260,0.292,1262,0.583,1267,0.731,1275,0.354,1285,0.618,1286,2.194,1287,0.664,1292,0.761,1296,0.647,1297,0.963,1308,0.414,1313,2.207,1319,0.664,1322,0.731,1331,0.365,1350,0.297,1362,0.909,1367,0.344,1372,0.414,1375,0.378,1390,0.731,1394,0.354,1397,0.394,1415,0.441,1419,0.279,1427,0.378,1434,0.354,1443,0.594,1456,0.365,1458,0.275,1461,0.861,1468,0.683,1469,0.327,1476,0.314,1500,0.378,1502,0.594,1511,2.145,1524,0.365,1534,0.394,1535,0.594,1536,1.932,1544,0.414,1546,0.308,1547,0.344,1549,0.287,1556,0.554,1562,0.327,1576,0.414,1581,0.314,1582,0.851,1616,3.271,1618,0.378,1646,0.308,1648,0.365,1649,0.991,1650,1.367,1652,0.354,1659,0.414,1666,0.414,1679,0.394,1681,0.327,1697,0.365,1698,0.32,1700,0.799,1702,0.441,1713,0.308,1720,0.354,1747,0.378,1749,0.394,1763,0.394,1764,0.441,1767,0.441,1776,0.365,1790,0.32,1803,0.441,1812,0.354,1813,0.939,1822,0.378,1823,0.327,1829,1.159,1830,0.414,1837,0.365,1850,0.394,1862,0.394,1863,1.211,1869,0.394,1876,0.378,1881,0.32,1901,0.414,1902,0.344,1903,0.354,1904,0.365,1911,0.441,1917,0.365,1919,0.414,1921,0.354,1934,1.505,1943,0.731,1944,0.414,1948,0.799,1951,0.664,1952,1.859,1953,0.344,1969,0.378,2001,0.414,2006,0.583,2034,0.414,2039,0.441,2040,0.861,2042,0.414,2055,0.292,2087,0.344,2092,0.414,2097,0.573,2100,0.799,2103,0.705,2107,0.354,2109,1.495,2116,0.344,2125,0.378,2145,0.327,2164,0.365,2168,0.335,2181,0.394,2195,0.344,2203,0.394,2204,0.32,2252,0.554,2267,0.441,2274,0.308,2276,0.761,2301,0.354,2308,0.394,2313,0.441,2320,0.441,2341,0.344,2374,0.618,2382,0.991,2392,0.327,2405,1.159,2406,1.159,2409,0.394,2412,0.441,2423,0.441,2447,0.414,2478,0.705,2496,0.441,2517,0.441,2575,0.394,2578,0.761,2594,0.683,2595,1.278,2596,0.394,2601,0.414,2604,0.705,2633,1.243,2653,0.344,2654,0.378,2720,0.344,2726,1.233,2734,0.327,2753,2.009,2765,0.683,2789,0.344,2801,0.365,2813,0.414,2827,2.981,2857,0.441,2861,0.365,2879,0.308,2881,0.354,2885,1.233,2893,0.354,2903,0.378,2926,3.661,2927,0.441,2957,0.344,2964,0.394,2965,0.394,2968,0.897,2972,0.664,2975,0.761,3014,0.897,3018,0.939,3026,0.394,3031,1.059,3034,0.378,3036,0.394,3042,1.597,3060,0.394,3084,0.664,3086,0.32,3087,0.394,3099,0.991,3107,0.441,3111,0.731,3168,0.647,3177,0.632,3186,0.394,3204,0.365,3249,0.991,3257,0.378,3270,1.495,3271,0.414,3278,0.414,3293,0.731,3294,0.851,3295,0.32,3333,0.441,3362,0.632,3396,0.414,3418,0.799,3420,0.683,3422,0.761,3423,0.365,3433,0.394,3450,0.394,3451,0.441,3464,1.159,3465,0.441,3480,0.664,3502,0.606,3623,0.441,3643,0.394,3644,0.441,3662,0.731,3681,0.761,3701,0.799,3711,0.414,3733,0.394,3741,1.256,3747,0.664,3779,0.378,3794,2.107,3804,0.394,3817,0.394,3839,1.104,3844,0.731,3875,0.308,3880,0.441,3905,0.414,3910,2.42,3932,0.378,3951,0.705,3982,0.851,3987,0.761,4027,0.799,4081,0.441,4105,0.414,4128,0.441,4136,0.365,4142,0.365,4180,0.365,4184,0.378,4208,1.104,4278,0.414,4322,0.354,4329,1.233,4330,0.441,4332,0.441,4333,1.233,4334,0.851,4335,0.851,4336,0.851,4337,0.441,4339,0.441,4340,1.159,4344,0.441,4346,0.851,4347,0.441,4348,0.441,4349,0.851,4350,0.851,4351,1.926,4352,0.799,4353,2.385,4355,0.414,4356,0.851,4357,0.414,4358,0.481,4359,0.441,4360,0.481,4361,0.481,4362,0.481,4363,0.481,4364,0.481,4365,0.441,4366,0.481,4367,0.481,4368,0.481,4369,0.481,4370,0.378,4371,0.481,4372,0.441,4373,0.441,4374,0.481,4375,0.481,4376,0.441,4377,0.414,4378,0.928,4379,0.481,4380,0.481,4381,0.481,4382,0.481,4383,0.928,4384,1.737,4385,0.928,4386,0.481,4387,0.481,4388,0.481,4389,0.441,4390,0.481,4391,0.481,4392,0.928,4393,0.481,4394,0.441,4395,0.481,4396,0.481,4397,0.481,4398,0.481,4399,0.481,4400,0.481,4401,0.481,4402,0.481,4403,0.481,4404,0.481,4405,0.481,4406,0.851,4407,0.441,4408,0.481,4409,0.378,4410,0.851,4411,1.495,4412,0.481,4413,0.414,4414,0.481,4415,0.365,4416,0.481,4417,0.481,4418,0.481,4419,0.394,4420,0.441,4421,0.414,4422,0.441,4423,0.481,4424,0.481,4425,0.441,4426,0.481,4427,0.481,4428,0.481,4429,0.481,4430,0.481,4431,0.481,4432,0.481,4433,0.481,4434,0.481,4435,0.481,4436,0.481,4437,0.481,4438,0.441,4439,0.481,4440,0.851,4441,0.378,4442,0.394,4443,0.441,4444,0.481,4445,0.414,4446,0.481,4447,0.481,4448,0.481,4449,0.481,4450,0.441,4451,0.481,4452,0.481,4453,0.441,4454,0.441,4455,0.481,4456,0.481,4457,0.481,4458,0.441,4459,0.481,4460,0.481,4461,0.481,4462,0.441,4463,0.441,4464,0.481,4465,0.481,4466,0.851,4467,0.481,4468,0.441,4469,0.394,4470,0.851,4471,0.481,4472,0.928,4473,0.799,4474,0.928,4475,0.481,4476,0.481,4477,0.928,4478,0.928,4479,0.928,4480,0.928,4481,0.481,4482,0.481,4483,0.481,4484,0.481,4485,0.481,4486,0.481,4487,0.851,4488,0.441,4489,1.927,4490,0.481,4491,0.481,4492,0.481,4493,0.481,4494,0.481,4495,0.481,4496,0.481,4497,0.481,4498,0.441,4499,0.481,4500,0.378,4501,0.481,4502,0.481,4503,0.481,4504,0.481,4505,0.481,4506,0.441,4507,0.441,4508,0.481,4509,0.481,4510,0.441,4511,0.441,4512,0.481,4513,1.927,4514,0.481,4515,0.481,4516,0.481,4517,0.481,4518,0.481,4519,0.481,4520,0.481,4521,0.394,4522,1.233,4523,0.928,4524,0.441,4525,0.481,4526,0.378,4527,0.481,4528,0.481,4529,0.481,4530,0.481,4531,0.481,4532,0.414,4533,0.394,4534,1.591,4535,0.928,4536,0.481,4537,0.481,4538,0.481,4539,0.481,4540,0.441,4541,0.414,4542,0.414,4543,0.441,4544,0.481,4545,0.481,4546,0.481,4547,0.441,4548,0.928,4549,0.441,4550,0.481,4551,0.481,4552,1.367,4553,0.481,4554,0.481,4555,0.481,4556,0.481,4557,0.441,4558,0.705,4559,0.481,4560,0.481,4561,0.481,4562,0.481,4563,1.104,4564,0.481,4565,0.481,4566,0.365,4567,0.441,4568,0.481,4569,0.414,4570,0.378,4571,0.481,4572,0.441,4573,0.394,4574,0.481,4575,0.481,4576,0.481,4577,0.481,4578,0.481,4579,0.481,4580,0.481,4581,0.481,4582,0.414,4583,0.481,4584,0.481,4585,0.481,4586,0.441,4587,0.481,4588,0.441,4589,0.365,4590,0.414,4591,0.481,4592,0.441,4593,0.481,4594,0.481,4595,0.481,4596,0.481,4597,0.481,4598,0.481,4599,0.441,4600,0.481,4601,0.441,4602,0.481,4603,0.481,4604,0.414,4605,0.481,4606,0.441,4607,0.851,4608,0.414,4609,0.481,4610,0.481,4611,0.481,4612,0.481,4613,0.481,4614,0.481,4615,0.481,4616,0.441,4617,0.481,4618,0.481,4619,0.481,4620,0.481,4621,1.346,4622,0.354,4623,0.441,4624,0.481,4625,0.441,4626,0.354,4627,0.481,4628,0.441,4629,0.481,4630,0.481,4631,0.394,4632,0.344,4633,0.799,4634,0.928,4635,0.928,4636,0.928,4637,0.394,4638,2.77,4639,0.481,4640,0.441,4641,0.481,4642,0.481,4643,0.481,4644,0.928,4645,0.481,4646,0.441,4647,0.928,4648,0.441,4649,0.441,4650,0.481,4651,0.481,4652,0.481,4653,0.481,4654,0.481,4655,2.103,4656,1.346,4657,0.481,4658,0.481,4659,0.414,4660,0.481,4661,0.481,4662,0.441,4663,2.103,4664,0.481,4665,0.481,4666,0.481,4667,0.481,4668,0.481,4669,0.481,4670,0.928,4671,0.481,4672,0.481,4673,0.481,4674,0.481,4675,0.928,4676,0.481,4677,0.928,4678,0.481,4679,0.481,4680,0.481,4681,0.414,4682,1.233,4683,0.441,4684,0.481,4685,1.737,4686,0.414,4687,0.481,4688,0.481,4689,0.481,4690,0.481,4691,0.441,4692,0.481,4693,0.851,4694,0.441,4695,0.928,4696,0.481,4697,0.394,4698,0.481,4699,0.414,4700,0.481,4701,0.441,4702,0.481,4703,0.481,4704,0.481,4705,0.414,4706,0.928,4707,0.481,4708,0.481,4709,0.481,4710,0.851,4711,0.481,4712,0.378,4713,0.481,4714,0.928,4715,0.481,4716,0.441,4717,0.441,4718,1.346,4719,0.481,4720,0.481,4721,0.481,4722,0.481,4723,0.481,4724,0.481,4725,0.414,4726,0.851,4727,0.441,4728,1.159,4729,0.481,4730,0.481,4731,0.481,4732,0.481,4733,0.481,4734,0.481,4735,0.481,4736,0.481]],["component/26",[72,0.396]],["keyword/26",[]],["title/27-1",[37,26.759,3875,38.536,4737,51.864]],["name/27-1",[]],["text/27-1",[]],["component/27-1",[]],["keyword/27-1",[]],["title/27-2",[37,23.497,1148,41.622,3875,33.837,4738,48.457]],["name/27-2",[]],["text/27-2",[]],["component/27-2",[]],["keyword/27-2",[]],["title/27-3",[33,17.536,309,25.703,4739,48.457,4740,48.457]],["name/27-3",[]],["text/27-3",[]],["component/27-3",[]],["keyword/27-3",[]],["title/27-4",[2,28.542,4741,57.346]],["name/27-4",[]],["text/27-4",[]],["component/27-4",[]],["keyword/27-4",[]],["title/27-5",[38,26.642,4742,64.085]],["name/27-5",[]],["text/27-5",[]],["component/27-5",[]],["keyword/27-5",[]],["title/27-6",[10,25.127,4743,55.186,4744,51.864]],["name/27-6",[]],["text/27-6",[]],["component/27-6",[]],["keyword/27-6",[]],["title/27-7",[291,26.759,4745,55.186,4746,49.383]],["name/27-7",[]],["text/27-7",[]],["component/27-7",[]],["keyword/27-7",[]],["title/27-8",[4747,64.085,4748,60.227]],["name/27-8",[]],["text/27-8",[]],["component/27-8",[]],["keyword/27-8",[]],["title/27-9",[10,22.063,21,11.405,1646,33.837,4749,48.457]],["name/27-9",[]],["text/27-9",[]],["component/27-9",[]],["keyword/27-9",[]],["title/27-10",[157,34.412,4750,55.186,4751,51.864]],["name/27-10",[]],["text/27-10",[]],["component/27-10",[]],["keyword/27-10",[]],["title/27-11",[157,34.412,4744,51.864,4752,60.23]],["name/27-11",[]],["text/27-11",[]],["component/27-11",[]],["keyword/27-11",[]],["title/27-12",[157,34.412,4746,49.383,4753,55.186]],["name/27-12",[]],["text/27-12",[]],["component/27-12",[]],["keyword/27-12",[]],["title/27-13",[21,11.405,57,27.06,157,30.216,959,34.505]],["name/27-13",[]],["text/27-13",[]],["component/27-13",[]],["keyword/27-13",[]],["title/27-14",[1212,63.344]],["name/27-14",[]],["text/27-14",[]],["component/27-14",[]],["keyword/27-14",[]],["title/27-15",[4754,76.406]],["name/27-15",[]],["text/27-15",[]],["component/27-15",[]],["keyword/27-15",[]],["title/27-16",[32,25.958,38,20.145,398,40.174,4073,43.362]],["name/27-16",[]],["text/27-16",[]],["component/27-16",[]],["keyword/27-16",[]],["title/27-17",[157,39.961,4755,64.085]],["name/27-17",[]],["text/27-17",[]],["component/27-17",[]],["keyword/27-17",[]],["title/27-18",[2,19.236,565,28.609,697,29.092,951,32.875,4756,43.191]],["name/27-18",[]],["text/27-18",[]],["component/27-18",[]],["keyword/27-18",[]],["title/27-19",[102,47.643]],["name/27-19",[]],["text/27-19",[]],["component/27-19",[]],["keyword/27-19",[]],["title/27-20",[332,47.643]],["name/27-20",[]],["text/27-20",[]],["component/27-20",[]],["keyword/27-20",[]],["title/27-21",[4757,55.186,4758,55.186,4759,60.23]],["name/27-21",[]],["text/27-21",[]],["component/27-21",[]],["keyword/27-21",[]],["title/27-22",[54,41.138,57,35.788]],["name/27-22",[]],["text/27-22",[]],["component/27-22",[]],["keyword/27-22",[]],["title/27-23",[186,60.227,4760,64.085]],["name/27-23",[]],["text/27-23",[]],["component/27-23",[]],["keyword/27-23",[]],["title/27-24",[1826,55.045,4761,64.085]],["name/27-24",[]],["text/27-24",[]],["component/27-24",[]],["keyword/27-24",[]],["title/27-25",[4762,76.406]],["name/27-25",[]],["text/27-25",[]],["component/27-25",[]],["keyword/27-25",[]],["title/27-26",[40,33.993,4763,64.085]],["name/27-26",[]],["text/27-26",[]],["component/27-26",[]],["keyword/27-26",[]],["title/27-27",[4764,64.085,4765,64.085]],["name/27-27",[]],["text/27-27",[]],["component/27-27",[]],["keyword/27-27",[]],["title/27-28",[370,47.631,4766,64.085]],["name/27-28",[]],["text/27-28",[]],["component/27-28",[]],["keyword/27-28",[]],["title/27-29",[4767,76.406]],["name/27-29",[]],["text/27-29",[]],["component/27-29",[]],["keyword/27-29",[]],["title/27-30",[2957,50.054,4768,60.227]],["name/27-30",[]],["text/27-30",[]],["component/27-30",[]],["keyword/27-30",[]],["title/27-31",[4769,57.346,4770,64.085]],["name/27-31",[]],["text/27-31",[]],["component/27-31",[]],["keyword/27-31",[]],["title/27-32",[2,17.35,21,9.169,38,16.196,54,25.007,57,21.755,2221,28.955]],["name/27-32",[]],["text/27-32",[]],["component/27-32",[]],["keyword/27-32",[]],["title/27-33",[1464,48.779,1535,44.75]],["name/27-33",[]],["text/27-33",[]],["component/27-33",[]],["keyword/27-33",[]],["title/27",[21,7.086,32,16.127,33,10.894,38,12.515,39,22.375,54,19.325,57,16.811,398,24.958,4073,26.939]],["name/27",[4354,0.651]],["text/27",[2,4.241,3,0.222,4,0.509,6,3.007,9,0.222,10,3.233,13,3.418,14,0.753,15,3.291,16,0.255,21,2.554,23,0.247,25,4.038,27,0.501,28,0.856,29,0.267,30,4.207,32,2.635,33,2.999,34,2.16,35,3.031,37,2.769,38,4.183,39,0.571,40,0.593,43,2.076,44,1.128,45,2.912,51,0.509,53,0.587,54,1.974,55,0.547,57,2.484,58,2.312,59,1.278,60,0.688,65,0.434,67,0.992,71,0.319,79,0.341,81,0.961,82,0.6,83,2.359,84,1.244,85,1.03,90,0.251,94,0.781,100,0.89,101,3.362,102,1.278,112,0.319,138,0.373,141,0.722,142,0.722,145,0.373,146,0.373,152,0.373,153,0.688,154,0.688,155,0.688,156,0.722,157,2.556,165,0.31,171,0.341,189,0.873,191,0.688,193,0.302,212,0.587,215,0.341,227,0.373,233,0.255,235,1.431,236,0.941,237,0.662,251,0.501,263,0.277,272,0.537,290,0.329,291,3.078,294,1.145,296,1.505,297,0.277,298,0.319,301,0.319,303,0.559,306,0.527,308,0.341,309,1.631,310,0.259,313,0.547,316,0.213,318,0.444,322,0.461,329,0.241,330,0.255,332,1.096,333,0.222,337,1.162,343,0.31,346,0.319,347,0.302,350,0.244,352,1.358,356,2.443,358,0.6,359,0.267,360,0.851,364,0.611,365,0.302,366,0.288,368,0.247,369,1.509,370,0.831,371,0.416,372,0.585,376,0.295,378,0.267,379,2.446,382,0.624,384,0.509,386,0.255,391,1.096,392,0.444,393,0.302,398,1.2,413,0.493,419,0.373,425,0.66,427,0.302,452,0.373,474,0.341,487,0.412,491,0.224,492,0.222,493,0.259,498,1.204,499,0.241,505,0.992,507,2.587,508,1.347,511,0.486,512,0.31,519,0.637,520,0.467,527,1.251,528,0.295,532,0.217,547,0.319,548,1.478,552,0.455,560,0.329,561,0.662,563,0.637,565,1.715,568,0.341,569,0.479,571,0.501,573,0.741,582,0.288,583,0.518,584,1.145,592,0.518,593,0.272,594,0.341,599,0.393,607,0.373,609,0.259,612,0.416,613,0.467,622,0.646,623,0.267,626,0.263,627,1.381,637,0.263,639,0.611,644,1.681,646,0.992,651,0.355,653,0.241,659,0.455,661,0.272,662,0.319,664,0.533,670,0.6,671,0.813,676,0.329,686,0.746,687,0.867,691,0.31,692,0.688,693,0.412,696,0.341,697,0.267,698,0.282,700,0.247,703,0.585,705,1.081,709,0.831,713,0.373,725,1.03,727,0.267,728,0.486,729,0.929,731,0.654,734,1.081,759,0.288,772,0.898,775,0.267,782,0.255,784,0.461,788,0.637,789,0.267,790,0.355,791,0.66,796,0.846,797,0.229,802,0.263,805,0.282,806,0.796,808,0.244,812,0.295,814,0.434,815,0.272,816,0.493,826,0.518,829,0.329,834,1.688,836,0.329,838,0.235,842,0.429,848,0.302,867,0.282,868,0.295,871,0.277,875,0.688,876,0.585,879,0.355,889,0.341,894,0.509,896,0.329,899,0.467,903,0.902,906,0.856,908,1.128,911,0.277,912,0.518,921,0.288,927,0.288,932,0.518,935,1.096,936,0.238,937,4.008,939,1.01,942,0.295,946,0.355,949,0.31,950,0.618,951,2.34,953,0.329,958,0.355,959,1.844,975,0.373,980,0.527,984,0.302,987,0.251,990,0.89,1007,0.781,1010,0.518,1013,0.267,1014,0.302,1019,0.282,1022,0.831,1024,0.263,1027,0.6,1035,0.501,1047,0.397,1068,0.31,1076,0.319,1083,0.992,1088,1.372,1092,0.373,1096,0.537,1104,0.397,1111,0.585,1113,0.851,1120,0.329,1145,0.31,1148,2.224,1152,0.355,1166,0.707,1179,0.295,1180,0.373,1186,0.31,1204,0.416,1212,1.2,1213,0.397,1219,0.329,1222,0.397,1226,0.341,1227,0.373,1232,0.259,1235,0.373,1247,0.341,1259,0.259,1260,0.741,1261,0.282,1262,0.272,1274,0.288,1285,0.559,1286,1.251,1296,0.585,1303,0.355,1306,0.277,1310,0.355,1312,0.302,1313,0.263,1327,0.355,1331,0.637,1332,0.319,1333,0.31,1337,0.341,1339,0.341,1350,1.567,1362,1.478,1375,0.341,1379,0.302,1419,0.251,1423,0.341,1443,0.277,1449,0.272,1454,0.373,1455,0.688,1458,0.902,1461,0.277,1487,0.373,1493,0.355,1500,0.341,1502,0.277,1513,0.373,1520,0.355,1521,0.373,1525,1,1526,0.397,1529,0.96,1532,0.355,1534,0.688,1535,0.277,1536,1.56,1538,0.722,1539,0.341,1540,0.341,1547,0.31,1556,0.501,1561,0.769,1569,0.397,1581,0.547,1590,0.373,1597,0.688,1619,0.329,1624,0.355,1628,0.585,1631,0.355,1643,0.688,1646,1.01,1650,0.66,1652,0.319,1670,0.355,1679,0.355,1683,0.373,1697,0.637,1700,0.373,1713,0.277,1731,0.373,1733,0.329,1737,0.355,1742,0.688,1747,0.341,1748,0.927,1749,0.355,1753,0.397,1755,0.637,1770,0.31,1790,0.288,1791,1.761,1799,0.319,1800,0.373,1813,0.302,1826,1.243,1828,0.373,1837,0.329,1840,0.397,1845,0.397,1850,0.688,1852,0.329,1855,0.329,1860,0.688,1862,1.572,1863,0.302,1865,0.397,1867,0.373,1881,0.559,1885,0.66,1921,0.319,1924,0.341,1926,0.329,1933,0.397,1934,1.13,1936,0.397,1940,0.355,1951,0.873,1953,0.31,1960,0.397,1984,0.66,1988,0.373,1998,0.397,2006,0.272,2020,0.688,2040,0.277,2049,0.295,2055,0.263,2063,0.329,2069,1.509,2070,0.272,2099,0.341,2100,0.373,2103,0.329,2109,0.373,2125,0.96,2134,0.341,2145,0.295,2173,0.355,2187,0.769,2195,0.6,2217,0.329,2221,0.571,2223,0.373,2224,0.618,2250,0.397,2274,0.277,2276,0.355,2294,0.373,2299,0.373,2308,0.688,2321,1,2323,0.329,2335,0.373,2336,0.559,2350,0.355,2351,0.355,2359,0.397,2374,0.813,2382,0.618,2385,0.585,2392,0.295,2397,0.373,2402,0.397,2413,0.637,2430,0.6,2439,0.263,2486,0.355,2538,0.373,2539,0.397,2543,0.295,2548,0.341,2549,0.341,2559,1.118,2571,0.329,2574,0.329,2575,0.355,2578,0.355,2583,0.637,2639,0.373,2651,0.341,2662,0.397,2673,0.373,2674,0.397,2676,0.319,2686,0.329,2701,0.31,2702,0.373,2703,0.373,2705,0.373,2708,0.397,2734,0.295,2737,0.397,2739,0.373,2741,0.355,2743,0.397,2760,0.355,2765,0.319,2779,0.397,2789,0.31,2800,0.898,2819,0.722,2821,0.355,2822,0.618,2823,0.397,2872,0.355,2876,0.769,2879,0.781,2881,0.898,2882,0.373,2891,0.66,2892,0.373,2923,0.397,2928,0.397,2934,0.329,2957,1.817,2959,0.355,2960,0.319,2967,0.722,2968,0.288,2981,0.397,3000,0.722,3007,0.722,3018,0.585,3055,0.329,3111,0.341,3127,0.355,3141,0.373,3177,0.571,3178,0.341,3306,0.397,3329,0.722,3346,0.341,3362,0.295,3374,0.302,3662,0.341,3723,0.397,3744,0.329,3747,0.6,3760,0.373,3764,0.329,3767,0.329,3768,0.769,3793,1.075,3802,0.66,3815,0.637,3819,0.722,3823,0.373,3831,0.397,3841,0.341,3844,0.341,3868,0.373,3875,2.147,3888,0.355,3895,0.397,3930,0.397,3932,0.96,3970,0.688,3987,1.572,4073,1.834,4111,0.373,4165,0.373,4176,0.355,4308,0.722,4316,0.397,4326,0.341,4365,0.397,4370,1.243,4377,0.373,4422,0.397,4441,1.243,4442,1,4445,1.051,4450,0.397,4454,0.397,4463,0.397,4466,0.769,4500,0.341,4534,0.397,4540,0.397,4552,0.66,4567,0.397,4582,1.051,4589,0.329,4592,0.397,4606,0.397,4623,0.769,4626,0.319,4631,0.355,4649,0.397,4686,0.373,4693,0.397,4699,0.722,4712,0.341,4717,2.838,4737,1.926,4738,0.397,4739,1.757,4740,0.769,4741,2.751,4742,2.327,4743,0.769,4744,1.051,4745,1.447,4746,1.834,4747,0.769,4748,0.373,4749,0.769,4750,1.118,4751,0.722,4753,1.447,4754,0.769,4755,1.118,4756,1.447,4757,1.447,4758,3.514,4760,1.118,4761,0.397,4762,1.757,4763,1.447,4764,1.447,4765,0.397,4766,0.769,4767,1.757,4768,1.36,4769,0.688,4770,1.118,4771,0.433,4772,0.433,4773,0.373,4774,0.433,4775,0.433,4776,1.651,4777,0.839,4778,0.433,4779,0.373,4780,0.433,4781,0.722,4782,0.397,4783,0.433,4784,0.433,4785,0.839,4786,0.397,4787,0.433,4788,0.433,4789,0.433,4790,0.433,4791,0.397,4792,0.433,4793,0.373,4794,0.433,4795,0.397,4796,0.769,4797,0.433,4798,0.433,4799,0.433,4800,0.433,4801,1.22,4802,0.839,4803,0.433,4804,0.433,4805,0.433,4806,0.433,4807,0.433,4808,0.433,4809,0.839,4810,0.397,4811,0.433,4812,0.433,4813,0.433,4814,0.769,4815,0.373,4816,0.433,4817,0.433,4818,0.433,4819,0.397,4820,0.397,4821,0.839,4822,0.433,4823,0.433,4824,0.433,4825,0.769,4826,0.433,4827,0.433,4828,0.433,4829,0.433,4830,0.839,4831,0.433,4832,0.839,4833,0.769,4834,0.769,4835,0.433,4836,0.433,4837,0.433,4838,0.433,4839,0.433,4840,0.433,4841,0.433,4842,0.433,4843,0.433,4844,0.839,4845,0.769,4846,0.397,4847,0.433,4848,0.433,4849,0.433,4850,0.433,4851,0.433,4852,0.433,4853,0.433,4854,0.433,4855,0.433,4856,0.433,4857,0.433,4858,0.433,4859,0.433,4860,0.433,4861,0.839,4862,0.433,4863,0.355,4864,0.397,4865,0.397,4866,0.433,4867,0.722,4868,0.433,4869,0.373,4870,0.433,4871,0.433,4872,0.433,4873,0.433,4874,1.36,4875,0.433,4876,0.433,4877,0.839,4878,0.433,4879,0.433,4880,0.355,4881,0.433,4882,0.433,4883,0.433,4884,0.433,4885,0.433,4886,0.433,4887,0.839,4888,1.22,4889,1.917,4890,0.769,4891,1.917,4892,0.839,4893,0.433,4894,0.433,4895,0.373,4896,0.433,4897,0.433,4898,0.433,4899,0.433,4900,0.433,4901,0.433,4902,0.397,4903,0.433,4904,0.433,4905,0.433,4906,0.433,4907,0.433,4908,0.433,4909,1.22,4910,0.373,4911,0.433,4912,0.373,4913,0.433,4914,0.839,4915,0.433,4916,0.397,4917,0.373,4918,0.839,4919,0.433,4920,0.433,4921,0.355,4922,0.397,4923,0.373,4924,0.433,4925,0.433,4926,0.433,4927,1.22,4928,0.839,4929,0.433,4930,0.433,4931,0.433,4932,0.397,4933,0.433,4934,0.839,4935,0.397,4936,0.769,4937,0.839,4938,0.433,4939,0.433,4940,0.433,4941,1.447,4942,0.433,4943,0.397,4944,0.433,4945,1.118,4946,1.22,4947,0.373,4948,0.397,4949,0.433,4950,0.433,4951,0.433,4952,0.433,4953,0.433,4954,0.433,4955,0.433,4956,0.433,4957,0.433,4958,1.447,4959,0.839,4960,0.722,4961,0.769,4962,0.839,4963,0.433,4964,0.433,4965,0.433,4966,0.373,4967,0.397,4968,1.917,4969,0.433,4970,0.839,4971,0.341,4972,0.355,4973,0.769,4974,0.433,4975,0.839,4976,0.433,4977,0.433,4978,0.433,4979,0.433,4980,0.433,4981,0.433,4982,0.433,4983,0.433,4984,0.433,4985,0.433,4986,1.579,4987,0.433,4988,0.433,4989,0.433,4990,0.433,4991,0.433,4992,0.433,4993,0.769,4994,0.433,4995,0.433,4996,0.839,4997,0.433,4998,0.433,4999,0.433,5000,0.433,5001,0.433,5002,0.433,5003,0.433,5004,0.433,5005,0.433,5006,0.433,5007,0.433,5008,0.433,5009,0.433,5010,0.433,5011,0.433,5012,0.433,5013,0.433,5014,0.433,5015,0.839,5016,3.097,5017,0.433,5018,0.433,5019,0.433,5020,0.433,5021,0.433,5022,0.433,5023,0.433,5024,0.433,5025,0.433,5026,0.433,5027,0.433,5028,0.433,5029,0.433,5030,0.433,5031,0.433,5032,0.433,5033,0.433,5034,0.397,5035,0.433,5036,0.433,5037,0.433,5038,0.433,5039,0.433,5040,0.433,5041,0.433,5042,0.433,5043,0.433,5044,0.433,5045,0.433,5046,0.433,5047,0.433,5048,0.433,5049,0.433,5050,0.433,5051,0.433,5052,0.433,5053,0.433,5054,0.433,5055,0.433,5056,0.433,5057,0.637,5058,0.433,5059,0.433,5060,0.433,5061,0.397,5062,0.355,5063,0.433,5064,0.433,5065,0.433,5066,0.433,5067,0.433,5068,0.433,5069,0.433,5070,0.433,5071,0.433,5072,0.433,5073,0.433,5074,0.433,5075,0.433,5076,0.433,5077,0.433,5078,0.433,5079,0.433,5080,0.433,5081,0.433,5082,0.839,5083,0.433,5084,0.433,5085,0.373,5086,0.433,5087,0.769,5088,0.433,5089,0.433,5090,0.433,5091,0.433,5092,0.433,5093,0.433,5094,0.355,5095,0.373,5096,0.373,5097,0.433,5098,0.433,5099,0.839,5100,0.373,5101,0.433,5102,0.433,5103,0.433,5104,0.433,5105,1.447,5106,0.839,5107,1.22,5108,0.433,5109,0.433,5110,0.769,5111,0.433,5112,0.373,5113,0.433,5114,0.397,5115,0.433,5116,0.433,5117,0.433,5118,0.433,5119,0.433,5120,0.433,5121,0.769,5122,1.118,5123,0.433,5124,0.769,5125,0.433,5126,0.433,5127,0.839,5128,0.397,5129,0.433,5130,0.839,5131,0.839,5132,0.355,5133,0.433,5134,0.433,5135,0.433,5136,0.433,5137,0.433,5138,0.433,5139,0.329,5140,0.433,5141,0.433,5142,2.539,5143,0.433,5144,0.433,5145,0.433,5146,0.433,5147,0.433,5148,1.447,5149,0.397,5150,0.433,5151,0.769,5152,0.433,5153,0.433,5154,0.433,5155,0.769,5156,0.433,5157,0.722,5158,0.355,5159,0.433,5160,0.433,5161,0.433,5162,0.433,5163,0.397,5164,0.397,5165,0.397,5166,0.373,5167,0.433,5168,0.839,5169,0.433,5170,0.433,5171,0.433,5172,0.433,5173,0.433,5174,0.433,5175,0.839,5176,1.22,5177,0.722,5178,0.433,5179,0.839,5180,0.433,5181,0.433,5182,0.433,5183,0.433,5184,0.433,5185,0.433,5186,0.397,5187,0.373,5188,0.433,5189,0.433,5190,0.341,5191,0.433,5192,0.722,5193,0.397,5194,1.917,5195,0.433,5196,0.373,5197,0.433,5198,0.433,5199,0.355,5200,0.433,5201,0.433,5202,0.433,5203,0.722,5204,0.433,5205,0.433,5206,0.397,5207,1.22,5208,0.433,5209,0.397,5210,0.688,5211,0.433,5212,0.839,5213,0.839,5214,0.433,5215,0.839,5216,0.433,5217,0.433,5218,0.433,5219,0.433,5220,0.433,5221,0.433,5222,0.397,5223,0.433,5224,0.433,5225,0.433,5226,0.433,5227,0.433,5228,0.839,5229,0.373,5230,0.839,5231,0.839,5232,0.433,5233,0.433,5234,0.433,5235,0.433,5236,0.433,5237,0.433,5238,0.433,5239,0.839,5240,0.433,5241,0.433,5242,0.433,5243,0.769,5244,0.433,5245,0.433,5246,0.433,5247,0.433,5248,0.355,5249,0.433,5250,1.917,5251,0.433,5252,0.433,5253,0.433,5254,0.839,5255,0.433,5256,0.433,5257,0.433,5258,0.433,5259,0.433,5260,0.433,5261,0.397,5262,0.433,5263,0.433,5264,0.433,5265,0.397,5266,0.839,5267,0.373,5268,0.397,5269,0.433,5270,0.433,5271,0.433,5272,0.769,5273,0.433,5274,0.433,5275,0.397,5276,0.433,5277,0.839,5278,0.433,5279,0.433,5280,0.839,5281,0.433,5282,0.433,5283,0.433,5284,0.433,5285,0.433,5286,0.355,5287,0.433,5288,0.433,5289,0.397,5290,0.433,5291,0.433,5292,0.397,5293,0.433,5294,0.373,5295,0.397,5296,0.433,5297,0.433,5298,0.373,5299,0.433,5300,0.433,5301,0.839,5302,0.433,5303,0.433,5304,0.433,5305,0.433,5306,0.397,5307,0.397,5308,0.433,5309,0.397,5310,0.355,5311,0.433,5312,0.397,5313,0.433,5314,0.433,5315,0.433,5316,0.397,5317,0.433,5318,0.433,5319,0.433,5320,0.397,5321,0.433,5322,0.341,5323,0.433,5324,0.433,5325,0.433,5326,0.397,5327,0.433,5328,0.433,5329,0.433,5330,0.433,5331,0.373,5332,0.433,5333,0.433,5334,0.433,5335,0.433,5336,0.433,5337,0.722,5338,0.433,5339,0.433,5340,0.433,5341,0.433,5342,0.433,5343,0.433,5344,0.433,5345,0.839,5346,0.839,5347,0.433,5348,0.433,5349,0.397,5350,0.433,5351,0.433,5352,0.433,5353,0.433,5354,0.397,5355,0.433,5356,0.433,5357,0.433,5358,0.433,5359,0.397,5360,0.397,5361,0.433,5362,0.433,5363,0.433,5364,0.397,5365,0.397]],["component/27",[72,0.396]],["keyword/27",[]],["title/28-1",[6,23.694,58,23.497,236,25.958,5366,43.362]],["name/28-1",[]],["text/28-1",[]],["component/28-1",[]],["keyword/28-1",[]],["title/28-2",[6,23.694,58,23.497,236,25.958,546,36.016]],["name/28-2",[]],["text/28-2",[]],["component/28-2",[]],["keyword/28-2",[]],["title/28-3",[10,14.83,15,14.942,25,16.638,58,15.794,236,17.448,291,15.794,350,20.033,990,20.033]],["name/28-3",[]],["text/28-3",[]],["component/28-3",[]],["keyword/28-3",[]],["title/28-4",[546,47.515,1063,35.808,1193,34.702,5367,43.191]],["name/28-4",[]],["text/28-4",[]],["component/28-4",[]],["keyword/28-4",[]],["title/28-5",[546,32.102,1193,51.363,5366,38.649,5368,43.191]],["name/28-5",[]],["text/28-5",[]],["component/28-5",[]],["keyword/28-5",[]],["title/28-6",[21,10.166,236,23.137,350,26.564,1204,23.371,1259,28.155]],["name/28-6",[]],["text/28-6",[]],["component/28-6",[]],["keyword/28-6",[]],["title/28-7",[350,39.415,5369,64.085]],["name/28-7",[]],["text/28-7",[]],["component/28-7",[]],["keyword/28-7",[]],["title/28-8",[21,10.166,350,26.564,656,28.155,1832,33.735,5370,40.591]],["name/28-8",[]],["text/28-8",[]],["component/28-8",[]],["keyword/28-8",[]],["title/28-9",[21,9.169,350,23.96,507,19.899,656,25.395,5371,42.518,5372,38.957]],["name/28-9",[]],["text/28-9",[]],["component/28-9",[]],["keyword/28-9",[]],["title/28-10",[15,22.23,21,11.405,350,29.803,387,31.588]],["name/28-10",[]],["text/28-10",[]],["component/28-10",[]],["keyword/28-10",[]],["title/28-11",[656,41.775,951,48.779]],["name/28-11",[]],["text/28-11",[]],["component/28-11",[]],["keyword/28-11",[]],["title/28-12",[656,41.775,1187,51.489]],["name/28-12",[]],["text/28-12",[]],["component/28-12",[]],["keyword/28-12",[]],["title/28-13",[5373,71.806]],["name/28-13",[]],["text/28-13",[]],["component/28-13",[]],["keyword/28-13",[]],["title/28-14",[15,22.23,350,29.803,3885,37.848,5374,52.886]],["name/28-14",[]],["text/28-14",[]],["component/28-14",[]],["keyword/28-14",[]],["title/28-15",[15,17.872,58,18.89,236,20.869,1293,28.955,3104,31.3,4622,31.3]],["name/28-15",[]],["text/28-15",[]],["component/28-15",[]],["keyword/28-15",[]],["title/28-16",[15,22.23,21,11.405,3014,35.227,5375,41.622]],["name/28-16",[]],["text/28-16",[]],["component/28-16",[]],["keyword/28-16",[]],["title/28-17",[10,12.742,21,6.587,30,12.838,236,14.991,291,13.569,364,15.299,585,16.557,5375,24.037,5376,30.542,5377,30.542]],["name/28-17",[]],["text/28-17",[]],["component/28-17",[]],["keyword/28-17",[]],["title/28-18",[33,19.971,349,41.017,364,30.17]],["name/28-18",[]],["text/28-18",[]],["component/28-18",[]],["keyword/28-18",[]],["title/28-19",[15,22.23,349,36.016,3885,37.848,5378,52.886]],["name/28-19",[]],["text/28-19",[]],["component/28-19",[]],["keyword/28-19",[]],["title/28-20",[361,34.677,5379,57.346]],["name/28-20",[]],["text/28-20",[]],["component/28-20",[]],["keyword/28-20",[]],["title/28-21",[21,11.405,350,29.803,2439,32.098,4153,38.933]],["name/28-21",[]],["text/28-21",[]],["component/28-21",[]],["keyword/28-21",[]],["title/28-22",[21,11.405,350,29.803,2439,32.098,5380,52.886]],["name/28-22",[]],["text/28-22",[]],["component/28-22",[]],["keyword/28-22",[]],["title/28-23",[361,34.677,5381,57.346]],["name/28-23",[]],["text/28-23",[]],["component/28-23",[]],["keyword/28-23",[]],["title/28-24",[351,61.388]],["name/28-24",[]],["text/28-24",[]],["component/28-24",[]],["keyword/28-24",[]],["title/28-25",[5382,76.406]],["name/28-25",[]],["text/28-25",[]],["component/28-25",[]],["keyword/28-25",[]],["title/28-26",[2252,49.806]],["name/28-26",[]],["text/28-26",[]],["component/28-26",[]],["keyword/28-26",[]],["title/28-27",[3334,57.346,5383,60.227]],["name/28-27",[]],["text/28-27",[]],["component/28-27",[]],["keyword/28-27",[]],["title/28-28",[1464,48.779,1535,44.75]],["name/28-28",[]],["text/28-28",[]],["component/28-28",[]],["keyword/28-28",[]],["title/28",[33,17.536,349,36.016,350,29.803,351,38.933]],["name/28",[4354,0.651]],["text/28",[2,3.769,3,0.765,4,0.907,6,3.485,9,0.168,10,3.318,12,0.19,13,3.698,14,1.383,15,3.78,19,0.72,21,2.483,22,0.224,23,0.188,25,4.664,28,0.178,29,0.755,30,3.795,32,3.379,33,2.618,35,3.32,36,0.487,37,2.24,38,3.752,42,0.691,43,1.695,45,2.676,48,0.377,50,0.561,53,0.308,57,1.147,58,3.674,59,1.145,60,0.361,65,0.633,67,1.392,72,0.271,77,0.249,80,0.739,82,0.235,83,2.25,84,0.356,85,0.214,87,0.361,90,0.371,91,2.766,100,0.529,101,3.142,102,0.188,106,0.283,144,3.69,157,0.536,161,0.214,165,0.235,189,0.459,205,0.235,209,0.235,212,0.589,214,1.003,215,0.258,231,0.242,233,0.193,235,0.41,236,0.734,237,0.663,238,0.176,243,0.41,251,0.196,254,0.229,259,0.249,265,0.929,276,0.436,284,0.224,291,3.128,294,0.328,296,1.868,301,0.242,303,0.219,306,0.939,313,0.548,316,0.6,318,0.339,322,0.352,325,0.301,329,0.183,330,1.582,331,0.258,335,0.206,339,0.436,340,0.178,346,0.242,349,3.343,350,4.45,351,2.7,352,2.628,353,0.901,354,0.41,356,1.624,358,1.256,359,1.237,361,0.741,364,3.836,365,1.398,366,0.625,367,0.561,368,0.536,371,0.741,378,0.396,379,2.105,382,1.688,383,0.773,384,0.57,386,0.193,387,0.561,391,0.699,392,0.647,393,0.229,413,0.193,414,0.229,433,0.525,434,0.731,450,0.472,464,0.472,474,1.381,483,0.283,487,1.712,488,0.206,491,1.278,492,0.765,493,0.731,498,0.59,499,0.356,503,0.258,505,0.59,507,2.98,508,1.663,509,0.782,511,0.371,512,0.235,520,0.356,529,0.193,531,0.472,532,1.837,541,0.242,545,0.283,546,4.688,548,1.624,550,0.178,552,1.216,558,0.773,561,0.811,565,1.065,569,0.188,571,0.383,572,0.235,573,0.389,575,1.476,582,0.219,584,0.168,585,0.178,592,0.203,593,0.939,594,0.963,597,0.196,599,0.821,604,0.249,608,0.214,609,0.893,610,0.356,611,0.427,612,1.439,613,0.356,622,1.424,623,0.203,626,0.57,627,0.923,637,0.57,639,0.749,640,0.172,644,1.123,645,0.427,646,1.707,653,0.831,656,1.197,659,0.178,661,0.403,664,0.143,666,0.639,670,2.222,671,0.625,672,0.552,676,0.487,682,0.59,686,0.443,687,0.18,689,1.226,691,0.235,692,0.689,693,0.984,700,0.366,703,0.655,705,0.529,707,0.383,708,0.472,709,0.639,716,0.214,717,0.418,720,0.229,728,2.325,729,0.879,731,0.503,734,0.185,751,0.436,755,0.21,757,0.249,758,0.377,761,0.188,766,0.544,772,0.472,775,1.083,782,0.377,784,0.515,789,0.579,793,0.427,795,1.463,796,1.554,797,1.643,801,1.043,802,0.57,803,0.249,807,0.206,808,0.361,812,0.833,814,0.633,815,0.403,816,0.193,820,0.249,821,0.206,824,0.283,826,0.755,837,0.269,842,1.377,844,0.639,845,0.403,859,0.447,863,0.283,866,0.214,869,0.219,871,0.601,873,0.219,874,0.742,876,0.229,880,0.235,887,0.242,894,1.065,895,0.219,896,0.249,897,0.229,900,0.214,903,0.699,905,0.283,906,0.347,908,0.552,911,0.41,912,0.203,913,0.183,914,0.206,923,0.249,927,0.219,929,0.739,933,0.672,935,0.188,936,1.1,939,0.21,940,0.258,942,0.224,943,0.214,945,0.258,951,0.447,953,0.249,958,0.269,959,0.214,967,0.242,968,0.219,974,0.472,980,0.206,987,1.161,990,0.361,1004,0.472,1006,0.269,1012,0.77,1013,0.396,1016,0.57,1019,0.214,1020,0.427,1022,0.224,1024,0.389,1025,0.418,1027,0.459,1033,0.283,1036,1.527,1049,0.258,1054,0.403,1055,0.427,1062,0.283,1063,1.333,1068,0.235,1083,0.59,1087,0.768,1088,0.459,1096,0.957,1102,0.249,1103,0.249,1113,0.447,1118,0.301,1119,0.301,1121,0.487,1127,2.443,1133,0.459,1141,0.418,1145,0.876,1150,0.525,1166,0.19,1170,1.121,1171,0.206,1179,0.436,1182,0.601,1184,0.249,1187,0.242,1193,0.242,1200,0.525,1201,0.77,1204,0.741,1229,0.242,1231,0.783,1232,0.893,1237,0.235,1244,0.742,1245,0.504,1248,0.447,1257,0.389,1259,0.383,1260,0.57,1261,0.418,1262,0.59,1264,0.249,1267,0.258,1271,0.672,1274,0.219,1285,0.427,1293,1.832,1296,0.229,1302,1.384,1306,0.21,1309,0.301,1312,0.229,1313,0.199,1314,0.963,1317,0.447,1320,0.242,1332,0.242,1333,0.235,1338,0.601,1350,0.396,1351,0.258,1361,0.301,1362,1.408,1379,0.229,1395,0.249,1398,0.283,1400,0.269,1402,0.447,1408,0.403,1419,0.371,1437,0.229,1446,0.504,1450,0.219,1458,0.536,1461,0.41,1477,0.552,1485,0.269,1497,0.929,1502,0.21,1511,0.655,1517,0.283,1520,0.77,1523,0.269,1529,0.963,1536,0.229,1543,0.258,1546,1.435,1547,0.235,1549,0.731,1551,0.283,1556,1.048,1566,0.587,1571,0.258,1572,0.283,1581,0.214,1586,0.587,1589,0.283,1593,0.552,1598,0.283,1619,0.249,1620,0.427,1624,0.269,1641,0.552,1646,2.67,1648,0.487,1649,0.691,1650,0.258,1674,0.587,1678,0.229,1687,0.258,1690,0.283,1698,1.494,1711,3.285,1713,0.601,1721,0.77,1747,0.258,1760,0.301,1768,0.229,1770,0.672,1775,0.242,1776,0.713,1790,0.815,1792,0.427,1797,0.258,1798,0.242,1799,0.472,1806,0.269,1812,0.472,1828,0.283,1829,0.283,1832,0.235,1841,0.269,1852,0.249,1862,0.525,1868,0.269,1869,0.525,1876,0.739,1881,0.427,1902,0.235,1903,0.901,1914,0.587,1917,0.249,1919,0.283,1921,0.242,1922,0.219,1924,0.258,1926,0.249,1930,0.301,1940,0.525,1949,0.283,1951,0.235,1953,0.235,1958,0.242,1966,0.269,1990,0.269,1993,0.552,1994,0.283,2005,0.283,2006,0.403,2025,0.283,2034,0.552,2037,0.525,2040,0.601,2044,0.587,2049,0.436,2055,0.199,2059,0.242,2087,0.459,2092,0.283,2098,0.229,2099,0.739,2107,0.691,2116,1.256,2125,0.258,2135,0.235,2138,0.283,2146,0.301,2157,0.301,2173,0.269,2186,0.283,2190,0.283,2203,0.269,2224,0.691,2227,0.283,2238,0.249,2247,0.552,2252,0.196,2274,0.21,2299,0.283,2301,0.242,2306,0.283,2307,0.283,2321,0.269,2323,0.487,2327,0.283,2336,0.427,2341,0.235,2346,0.269,2351,0.525,2357,0.224,2374,0.815,2381,0.269,2385,0.229,2391,0.249,2392,0.224,2397,0.283,2405,0.552,2430,0.235,2448,1.003,2465,0.86,2478,0.249,2484,0.258,2566,0.504,2571,0.249,2585,0.301,2586,0.235,2591,1.053,2607,0.235,2626,0.301,2633,0.235,2648,0.258,2650,0.472,2676,0.242,2701,0.235,2720,0.876,2721,1.177,2734,0.436,2741,0.269,2753,0.383,2754,0.258,2760,0.269,2761,0.301,2766,0.739,2788,0.301,2789,0.235,2792,0.269,2801,0.487,2814,0.258,2825,0.504,2845,0.283,2846,0.283,2879,1.282,2893,0.242,2894,0.504,2903,0.258,2904,0.283,2916,0.249,2926,0.21,2954,0.249,2960,0.242,2961,0.77,2964,0.269,2965,0.525,2968,0.625,2972,0.235,2974,0.301,2975,0.269,2978,0.224,2991,0.301,2998,0.301,3014,0.815,3020,0.283,3034,0.258,3055,0.713,3057,0.504,3061,0.487,3086,0.219,3104,1.475,3106,0.258,3113,0.472,3127,0.269,3137,0.487,3170,0.301,3178,0.258,3184,0.283,3194,0.269,3199,0.224,3201,0.235,3204,0.249,3211,0.301,3218,0.283,3272,0.301,3273,0.235,3295,0.625,3302,0.283,3328,0.809,3329,0.283,3334,1.439,3361,0.269,3362,0.224,3374,0.229,3390,0.552,3404,0.258,3407,0.269,3418,0.283,3423,0.487,3424,0.459,3425,0.249,3434,1.931,3450,0.269,3452,0.301,3501,0.249,3502,0.418,3513,0.283,3532,0.552,3541,0.242,3596,0.86,3643,1.439,3682,0.963,3688,0.283,3694,0.249,3701,1.053,3733,0.269,3747,1.768,3748,0.283,3751,0.242,3754,0.249,3756,0.283,3760,0.283,3779,0.258,3793,0.639,3802,0.258,3823,0.283,3837,0.283,3876,0.301,3951,0.249,4004,0.269,4076,0.504,4136,0.249,4141,1.287,4142,0.249,4152,0.301,4154,0.242,4158,0.269,4175,0.283,4180,0.249,4184,0.258,4195,0.283,4196,0.301,4326,0.739,4355,0.283,4357,0.283,4359,0.301,4406,0.587,4410,0.301,4415,0.713,4441,1.381,4442,0.525,4443,0.587,4445,0.283,4468,0.301,4470,0.301,4500,0.504,4526,0.504,4533,0.269,4549,0.301,4566,0.249,4569,0.283,4599,0.301,4622,1.651,4626,0.242,4631,0.525,4632,0.459,4637,1.839,4682,0.301,4683,0.301,4697,0.269,4699,0.283,4710,0.301,4712,0.258,4768,1.053,4779,1.287,4781,0.552,4786,0.301,4863,0.269,4880,0.269,4916,0.301,4917,0.552,4923,1.511,4932,0.301,4945,1.121,4947,0.283,4966,0.552,4993,1.836,5061,0.301,5062,0.525,5094,0.269,5096,0.283,5139,0.249,5157,1.053,5163,0.301,5164,0.301,5165,0.301,5166,1.511,5190,0.258,5203,0.283,5209,2.658,5275,0.301,5295,0.301,5306,0.587,5310,0.269,5364,0.301,5366,2.705,5367,0.86,5368,1.608,5369,0.587,5370,0.552,5372,0.301,5373,1.053,5375,3.157,5379,2.859,5381,2.206,5382,3.023,5383,1.287,5384,0.328,5385,0.328,5386,0.328,5387,0.301,5388,0.328,5389,0.328,5390,0.328,5391,0.328,5392,0.641,5393,0.328,5394,0.328,5395,2.597,5396,0.328,5397,0.328,5398,0.328,5399,0.328,5400,0.328,5401,0.269,5402,0.328,5403,0.301,5404,0.328,5405,0.328,5406,0.301,5407,0.301,5408,1.511,5409,2.004,5410,1.608,5411,1.381,5412,1.223,5413,0.328,5414,0.328,5415,0.328,5416,0.328,5417,0.328,5418,0.328,5419,0.328,5420,0.328,5421,0.328,5422,0.328,5423,0.328,5424,0.328,5425,0.328,5426,0.328,5427,0.328,5428,0.283,5429,0.939,5430,0.328,5431,0.328,5432,0.328,5433,0.283,5434,0.269,5435,0.328,5436,0.283,5437,1.287,5438,0.328,5439,0.641,5440,0.283,5441,0.328,5442,0.328,5443,0.641,5444,0.328,5445,0.328,5446,0.328,5447,0.328,5448,0.328,5449,0.328,5450,0.328,5451,0.328,5452,0.328,5453,0.641,5454,0.328,5455,0.328,5456,0.328,5457,0.328,5458,0.328,5459,0.301,5460,0.328,5461,0.328,5462,0.328,5463,1.121,5464,0.641,5465,0.328,5466,0.328,5467,0.328,5468,0.587,5469,0.328,5470,0.641,5471,0.641,5472,0.641,5473,0.641,5474,0.328,5475,0.328,5476,0.328,5477,0.301,5478,0.328,5479,0.328,5480,0.641,5481,0.328,5482,0.552,5483,0.328,5484,0.258,5485,0.328,5486,1.608,5487,0.328,5488,0.301,5489,0.328,5490,0.301,5491,0.328,5492,0.301,5493,0.552,5494,0.641,5495,0.641,5496,0.328,5497,0.269,5498,0.301,5499,0.328,5500,0.641,5501,0.328,5502,0.328,5503,0.328,5504,0.328,5505,0.328,5506,0.301,5507,0.328,5508,0.328,5509,0.328,5510,0.328,5511,0.328,5512,0.328,5513,0.939,5514,0.328,5515,0.328,5516,0.328,5517,0.328,5518,0.328,5519,0.328,5520,0.328,5521,0.328,5522,0.269,5523,0.328,5524,0.328,5525,0.301,5526,0.328,5527,0.301,5528,0.269,5529,0.328,5530,0.328,5531,0.328,5532,0.939,5533,0.328,5534,1.495,5535,0.301,5536,0.328,5537,0.283,5538,0.328,5539,0.328,5540,0.328,5541,0.641,5542,0.328,5543,0.641,5544,0.328,5545,0.328,5546,0.328,5547,0.328,5548,0.328,5549,0.587,5550,0.328,5551,0.328,5552,0.328,5553,0.328,5554,0.328,5555,0.328,5556,0.301,5557,0.641,5558,1.223,5559,0.301,5560,0.283,5561,0.328,5562,0.328,5563,0.301,5564,0.328,5565,0.301,5566,0.328,5567,0.328,5568,0.328,5569,0.328,5570,0.328,5571,0.641,5572,0.328,5573,0.328,5574,0.328,5575,0.328,5576,0.939,5577,0.86,5578,0.939,5579,0.328,5580,0.328,5581,0.328,5582,0.328,5583,0.328,5584,0.328,5585,0.328,5586,0.641,5587,0.301,5588,0.328,5589,0.552,5590,0.328,5591,0.301,5592,0.328,5593,0.301,5594,0.641,5595,0.328,5596,0.328,5597,0.301,5598,1.836,5599,0.301,5600,0.328,5601,0.301,5602,0.328,5603,0.328,5604,0.283,5605,0.641,5606,0.328,5607,0.328,5608,0.328,5609,0.328,5610,0.269,5611,0.328,5612,0.328,5613,0.641,5614,0.552,5615,1.37,5616,0.269,5617,0.328,5618,0.328,5619,0.328,5620,0.328,5621,0.283,5622,1.495,5623,1.223,5624,0.328,5625,0.328,5626,0.301,5627,0.328,5628,0.328,5629,0.328,5630,0.328,5631,0.328,5632,0.328,5633,0.258,5634,0.328,5635,0.328,5636,0.328,5637,0.328,5638,0.328,5639,0.328,5640,0.328,5641,0.328,5642,0.328,5643,0.328,5644,0.328,5645,0.328,5646,0.328,5647,0.328,5648,0.328,5649,0.301,5650,0.301,5651,0.328,5652,0.328,5653,0.328,5654,0.328,5655,0.328,5656,0.328,5657,0.301,5658,0.328,5659,0.328,5660,0.301,5661,0.328,5662,0.328,5663,0.328,5664,0.328,5665,0.328,5666,0.641,5667,0.301,5668,1.755,5669,0.328,5670,0.641,5671,0.328,5672,0.301,5673,0.301,5674,0.283,5675,0.328,5676,0.283,5677,1.608,5678,0.587,5679,0.587,5680,2.055,5681,2.471,5682,3.824,5683,1.755,5684,1.755,5685,1.755,5686,1.755,5687,1.755,5688,2.471,5689,0.86,5690,1.223,5691,1.223,5692,0.641,5693,0.641,5694,3.487,5695,0.641,5696,0.641,5697,0.641,5698,0.641,5699,0.641,5700,0.641,5701,0.641,5702,0.641,5703,0.641,5704,0.641,5705,0.641,5706,0.641,5707,0.641,5708,1.223,5709,1.223,5710,0.641,5711,0.641,5712,0.641,5713,0.641,5714,0.641,5715,0.641,5716,0.641,5717,0.641,5718,0.641,5719,0.641,5720,0.641,5721,0.641,5722,0.641,5723,0.641,5724,0.641,5725,0.641,5726,0.552,5727,0.641,5728,0.641,5729,0.641,5730,0.641,5731,0.641,5732,0.328,5733,0.328,5734,0.641,5735,0.641,5736,0.641,5737,0.328,5738,0.328,5739,0.328,5740,0.328,5741,0.328,5742,1.223,5743,0.328,5744,0.301,5745,2.264,5746,2.206,5747,2.242,5748,2.242,5749,0.301,5750,2.055,5751,0.328,5752,1.945,5753,0.301,5754,0.328,5755,0.301,5756,0.328,5757,0.328,5758,0.328,5759,0.328,5760,0.328,5761,0.328,5762,0.328,5763,0.328,5764,0.328,5765,0.328,5766,0.328,5767,0.587,5768,1.511,5769,0.587,5770,0.587,5771,0.328,5772,0.587,5773,0.283,5774,0.301,5775,0.328,5776,1.223,5777,0.328,5778,1.439,5779,0.86,5780,0.301,5781,0.301,5782,0.301,5783,0.641,5784,0.487,5785,0.328,5786,0.283,5787,0.77,5788,0.328,5789,0.328,5790,0.328,5791,0.328,5792,0.301,5793,0.328,5794,0.283,5795,0.301,5796,0.301,5797,1.495,5798,0.328,5799,0.809,5800,0.328,5801,0.269,5802,0.269,5803,0.328,5804,0.328,5805,0.328,5806,0.328,5807,0.328,5808,0.587,5809,0.283,5810,0.301,5811,0.328,5812,0.328,5813,0.328,5814,0.328,5815,1.223,5816,0.641,5817,0.328,5818,0.552,5819,0.587,5820,0.258,5821,0.269,5822,0.641,5823,0.328,5824,0.328,5825,0.328,5826,0.328,5827,0.328,5828,0.301,5829,0.587,5830,0.328,5831,0.328,5832,0.328,5833,0.641,5834,0.328,5835,0.258,5836,0.328,5837,0.328,5838,0.283,5839,0.328,5840,0.328,5841,0.328,5842,0.328,5843,0.328,5844,0.328]],["component/28",[72,0.396]],["keyword/28",[]],["title/29-1",[21,11.405,551,45.54,612,26.221,653,29.409]],["name/29-1",[]],["text/29-1",[]],["component/29-1",[]],["keyword/29-1",[]],["title/29-2",[702,45.632,767,43.166]],["name/29-2",[]],["text/29-2",[]],["component/29-2",[]],["keyword/29-2",[]],["title/29-3",[2,21.582,291,23.497,1468,38.933,3888,43.362]],["name/29-3",[]],["text/29-3",[]],["component/29-3",[]],["keyword/29-3",[]],["title/29-4",[10,19.665,30,19.814,558,24.386,3744,35.808,5845,43.191]],["name/29-4",[]],["text/29-4",[]],["component/29-4",[]],["keyword/29-4",[]],["title/29-5",[383,31.159,434,35.974,5846,55.186]],["name/29-5",[]],["text/29-5",[]],["component/29-5",[]],["keyword/29-5",[]],["title/29-6",[102,39.961,383,36.183]],["name/29-6",[]],["text/29-6",[]],["component/29-6",[]],["keyword/29-6",[]],["title/29-7",[15,22.23,1089,36.016,4590,45.54,5847,41.622]],["name/29-7",[]],["text/29-7",[]],["component/29-7",[]],["keyword/29-7",[]],["title/29-8",[10,25.127,3744,45.752,5848,55.186]],["name/29-8",[]],["text/29-8",[]],["component/29-8",[]],["keyword/29-8",[]],["title/29-9",[895,40.119,1025,39.296,5849,60.23]],["name/29-9",[]],["text/29-9",[]],["component/29-9",[]],["keyword/29-9",[]],["title/29-10",[102,47.643]],["name/29-10",[]],["text/29-10",[]],["component/29-10",[]],["keyword/29-10",[]],["title/29-11",[21,11.405,102,30.216,550,28.671,653,29.409]],["name/29-11",[]],["text/29-11",[]],["component/29-11",[]],["keyword/29-11",[]],["title/29-12",[739,59.677]],["name/29-12",[]],["text/29-12",[]],["component/29-12",[]],["keyword/29-12",[]],["title/29-13",[5850,76.406]],["name/29-13",[]],["text/29-13",[]],["component/29-13",[]],["keyword/29-13",[]],["title/29-14",[11,44.75,609,41.775]],["name/29-14",[]],["text/29-14",[]],["component/29-14",[]],["keyword/29-14",[]],["title/29-15",[21,12.989,361,29.862,381,40.119]],["name/29-15",[]],["text/29-15",[]],["component/29-15",[]],["keyword/29-15",[]],["title/29-16",[565,36.555,741,37.83,4769,49.383]],["name/29-16",[]],["text/29-16",[]],["component/29-16",[]],["keyword/29-16",[]],["title/29-17",[3741,49.806]],["name/29-17",[]],["text/29-17",[]],["component/29-17",[]],["keyword/29-17",[]],["title/29-18",[739,59.677]],["name/29-18",[]],["text/29-18",[]],["component/29-18",[]],["keyword/29-18",[]],["title/29-19",[465,45.54,740,41.622,825,37.848,1050,43.362]],["name/29-19",[]],["text/29-19",[]],["component/29-19",[]],["keyword/29-19",[]],["title/29-20",[21,9.169,746,18.584,761,24.292,764,31.3,765,25.007,1871,36.612]],["name/29-20",[]],["text/29-20",[]],["component/29-20",[]],["keyword/29-20",[]],["title/29-21",[21,11.405,203,35.227,761,30.216,765,31.106]],["name/29-21",[]],["text/29-21",[]],["component/29-21",[]],["keyword/29-21",[]],["title/29-22",[5851,68.371]],["name/29-22",[]],["text/29-22",[]],["component/29-22",[]],["keyword/29-22",[]],["title/29-23",[5852,71.806]],["name/29-23",[]],["text/29-23",[]],["component/29-23",[]],["keyword/29-23",[]],["title/29-24",[5853,83.389]],["name/29-24",[]],["text/29-24",[]],["component/29-24",[]],["keyword/29-24",[]],["title/29-25",[21,12.989,585,32.652,1204,29.862]],["name/29-25",[]],["text/29-25",[]],["component/29-25",[]],["keyword/29-25",[]],["title/29-26",[612,41.344]],["name/29-26",[]],["text/29-26",[]],["component/29-26",[]],["keyword/29-26",[]],["title/29-27",[653,38.893,2926,44.75]],["name/29-27",[]],["text/29-27",[]],["component/29-27",[]],["keyword/29-27",[]],["title/29-28",[3741,41.775,5854,64.085]],["name/29-28",[]],["text/29-28",[]],["component/29-28",[]],["keyword/29-28",[]],["title/29-29",[45,19.814,784,25.877,3014,31.399,3059,37.098,3741,28.155]],["name/29-29",[]],["text/29-29",[]],["component/29-29",[]],["keyword/29-29",[]],["title/29-30",[3741,41.775,4526,55.045]],["name/29-30",[]],["text/29-30",[]],["component/29-30",[]],["keyword/29-30",[]],["title/29-31",[208,38.933,577,35.227,3741,31.588,3875,33.837]],["name/29-31",[]],["text/29-31",[]],["component/29-31",[]],["keyword/29-31",[]],["title/29-32",[193,36.884,792,36.884,3741,31.588,5855,45.54]],["name/29-32",[]],["text/29-32",[]],["component/29-32",[]],["keyword/29-32",[]],["title/29-33",[792,42.005,3741,35.974,5855,51.864]],["name/29-33",[]],["text/29-33",[]],["component/29-33",[]],["keyword/29-33",[]],["title/29-34",[728,34.905,956,43.104,3741,35.974]],["name/29-34",[]],["text/29-34",[]],["component/29-34",[]],["keyword/29-34",[]],["title/29-35",[728,27.318,3059,37.098,3741,28.155,5856,43.191,5857,43.191]],["name/29-35",[]],["text/29-35",[]],["component/29-35",[]],["keyword/29-35",[]],["title/29-36",[3741,35.974,5857,55.186,5858,55.186]],["name/29-36",[]],["text/29-36",[]],["component/29-36",[]],["keyword/29-36",[]],["title/29-37",[45,17.872,728,24.641,794,31.3,1596,31.3,3422,34.861,3741,25.395]],["name/29-37",[]],["text/29-37",[]],["component/29-37",[]],["keyword/29-37",[]],["title/29-38",[792,36.884,1596,38.933,3741,31.588,5859,48.457]],["name/29-38",[]],["text/29-38",[]],["component/29-38",[]],["keyword/29-38",[]],["title/29-39",[577,46.588,5860,60.227]],["name/29-39",[]],["text/29-39",[]],["component/29-39",[]],["keyword/29-39",[]],["title/29-40",[1204,41.344]],["name/29-40",[]],["text/29-40",[]],["component/29-40",[]],["keyword/29-40",[]],["title/29-41",[1464,48.779,1535,44.75]],["name/29-41",[]],["text/29-41",[]],["component/29-41",[]],["keyword/29-41",[]],["title/29",[33,17.536,100,29.803,102,30.216,3741,31.588]],["name/29",[4354,0.651]],["text/29",[2,3.846,3,1.534,4,2.339,6,3.359,9,1.285,10,4.014,13,3.608,14,2.337,15,3.572,16,2.026,19,0.815,21,2.356,23,0.417,24,0.423,25,4.157,27,1.791,28,1.361,30,3.871,32,1.232,33,3.078,35,4.052,37,2.762,38,3.993,39,0.497,40,0.355,41,0.467,43,2.382,44,0.429,45,3.087,48,1.477,50,0.436,53,1.209,55,0.476,58,3.728,59,0.417,60,1.113,62,1.071,65,1.551,67,0.717,81,0.99,82,0.523,83,1.22,84,1.667,90,0.423,100,2.762,101,4.534,102,3.281,113,0.555,181,0.555,182,0.629,193,0.966,203,0.923,208,1.02,210,0.575,212,1.209,221,0.781,236,0.97,237,0.751,238,0.391,243,0.467,253,0.555,272,0.886,291,2.66,294,1.762,296,1.22,297,0.467,306,0.459,309,1.873,310,0.436,332,0.417,339,0.497,340,1.626,352,0.443,356,1.034,361,1.245,379,2.791,382,1.285,383,2.836,387,0.436,389,0.555,392,1.587,434,1.18,473,0.629,476,0.523,487,0.97,488,1.241,491,0.717,493,0.827,498,0.87,499,0.77,505,0.87,507,2.802,508,2.337,509,2.565,511,0.803,518,0.555,528,0.943,529,0.815,531,0.538,532,0.366,542,0.575,548,0.725,550,0.396,555,0.555,558,1.299,561,1.071,564,0.509,565,1.199,566,0.599,571,1.18,573,0.443,577,3.825,578,2.09,584,1.285,585,3.246,588,0.497,597,1.18,602,0.497,609,0.436,610,0.406,612,0.98,616,1.02,622,0.733,623,0.855,626,1.524,627,0.451,637,0.841,638,0.509,639,1.502,644,0.366,645,0.486,646,0.717,653,0.406,659,1.361,664,0.319,671,0.486,686,0.654,692,0.412,693,0.68,705,1.415,707,0.827,724,2.688,727,0.451,728,0.423,731,0.391,732,1.219,734,3.089,739,0.523,741,0.459,746,1.311,748,0.497,750,0.423,755,0.886,758,1.162,759,0.923,761,1.968,762,1.345,764,2.207,765,1.764,766,1.145,775,0.855,782,0.429,784,2.115,792,5.121,794,1.454,795,0.904,797,1.329,799,0.459,801,0.509,802,0.841,808,1.113,814,0.378,825,3.028,826,0.855,830,0.599,842,1.972,845,0.459,849,0.629,852,0.943,853,0.467,859,0.966,886,0.555,895,0.486,899,0.77,903,0.417,904,0.815,906,0.751,908,0.815,911,0.886,914,0.459,927,1.316,935,0.791,936,1.085,940,0.575,945,0.575,956,0.991,980,0.459,987,0.423,990,0.412,1000,1.136,1001,0.497,1007,0.467,1010,0.855,1012,0.599,1016,0.841,1024,0.443,1025,0.476,1032,1.701,1035,2.302,1038,0.509,1050,2.059,1054,1.577,1055,0.923,1087,0.459,1096,0.467,1105,1.62,1110,0.538,1120,1.052,1124,0.599,1142,1.316,1147,0.575,1157,0.991,1166,1.455,1171,0.459,1194,0.523,1204,1.245,1216,2.301,1229,0.538,1231,0.467,1244,0.443,1257,0.443,1259,1.18,1261,0.476,1262,0.459,1275,1.454,1287,0.523,1296,0.509,1298,0.669,1302,1.219,1306,0.467,1315,0.629,1338,0.467,1362,0.725,1379,0.509,1390,0.575,1395,0.555,1414,1.09,1427,0.575,1433,0.991,1449,0.459,1455,0.599,1456,1.501,1458,0.417,1476,1.956,1502,0.886,1511,0.509,1535,0.467,1547,0.991,1549,0.436,1556,0.827,1591,0.599,1595,0.497,1596,2.536,1616,0.497,1624,0.599,1645,0.599,1649,0.538,1652,2.207,1678,2.091,1697,0.555,1698,0.486,1713,1.264,1733,0.555,1737,0.599,1768,0.509,1774,0.575,1776,0.555,1790,0.486,1791,0.575,1792,0.486,1797,0.575,1807,0.669,1812,0.538,1823,0.497,1846,0.599,1863,2.688,1899,0.629,1923,0.555,1940,0.599,1951,0.991,1952,1.052,1961,0.575,1969,0.575,2006,0.459,2008,0.599,2022,1.976,2040,0.467,2055,0.841,2063,0.555,2070,0.87,2087,0.523,2090,0.669,2099,0.575,2117,0.629,2145,0.943,2168,0.509,2176,0.599,2180,0.629,2225,0.599,2252,0.436,2274,0.467,2336,0.486,2342,0.538,2382,1.02,2389,1.02,2439,0.443,2531,0.669,2540,0.575,2571,0.555,2574,0.555,2591,0.629,2598,0.669,2604,0.555,2607,0.523,2625,1.81,2633,1.414,2653,0.523,2667,0.629,2686,0.555,2689,3.943,2701,0.523,2720,0.523,2721,1.09,2734,0.497,2741,0.599,2753,0.827,2800,2.207,2819,2.162,2822,1.454,2824,0.599,2841,0.669,2845,0.629,2856,0.599,2862,0.669,2871,0.669,2872,0.599,2886,0.669,2887,0.523,2894,0.575,2957,0.523,2969,0.629,3018,1.751,3033,0.538,3059,1.09,3111,0.575,3123,0.629,3141,0.629,3174,0.538,3190,0.629,3253,0.629,3257,0.575,3301,2.042,3346,0.575,3362,0.943,3374,0.509,3383,1.701,3400,0.669,3401,0.555,3427,0.629,3529,0.555,3541,0.538,3574,0.669,3603,1.269,3662,0.575,3676,0.523,3741,4.187,3744,2.927,3747,0.523,3764,1.052,3788,0.599,3793,0.497,3827,0.599,3839,0.599,3844,1.09,3867,1.193,3875,1.607,3888,1.62,3890,1.193,3891,0.669,3932,1.976,3987,0.599,3999,0.669,4027,0.629,4035,1.269,4124,1.193,4153,0.538,4180,1.907,4322,0.538,4331,1.193,4351,0.575,4355,0.629,4356,0.669,4370,1.09,4377,2.162,4389,1.81,4415,1.052,4438,0.669,4453,0.669,4458,0.669,4469,0.599,4488,1.81,4500,0.575,4510,0.669,4511,0.669,4513,0.669,4526,0.575,4566,0.555,4570,1.09,4588,0.669,4590,0.629,4632,0.523,4697,1.136,4701,0.669,4705,0.629,4726,0.669,4769,0.599,4773,0.629,4793,0.629,4795,0.669,4943,0.669,5122,0.669,5193,0.669,5199,0.599,5248,1.62,5316,0.669,5354,0.669,5387,0.669,5401,1.136,5726,0.629,5845,1.269,5846,1.269,5847,1.09,5848,0.669,5850,0.669,5851,1.136,5852,2.582,5854,0.669,5855,1.193,5856,0.669,5858,0.669,5859,0.669,5860,1.193,5861,0.73,5862,0.669,5863,0.669,5864,0.73,5865,0.73,5866,0.73,5867,0.73,5868,0.73,5869,0.669,5870,0.73,5871,0.73,5872,0.73,5873,0.73,5874,0.73,5875,1.385,5876,0.73,5877,0.73,5878,1.385,5879,0.669,5880,0.73,5881,0.73,5882,0.73,5883,0.73,5884,0.73,5885,0.73,5886,0.73,5887,0.669,5888,0.73,5889,0.73,5890,0.73,5891,1.385,5892,1.385,5893,0.73,5894,0.73,5895,0.73,5896,0.73,5897,0.73,5898,0.669,5899,0.73,5900,0.669,5901,0.73,5902,0.73,5903,0.599,5904,0.73,5905,0.599,5906,0.669,5907,0.73,5908,0.73,5909,1.385,5910,0.73,5911,0.73,5912,0.73,5913,0.73,5914,0.669,5915,0.73,5916,0.73,5917,0.73,5918,0.73,5919,0.73,5920,0.599,5921,0.669,5922,0.73,5923,0.73,5924,0.73,5925,0.73,5926,0.73,5927,0.73,5928,0.73,5929,0.73,5930,0.73,5931,0.669,5932,0.73,5933,0.73,5934,0.73,5935,0.73,5936,1.385,5937,0.73,5938,0.73,5939,0.73,5940,0.73,5941,0.73,5942,0.669,5943,0.73,5944,0.669,5945,1.385,5946,0.629,5947,0.73,5948,0.73,5949,0.669,5950,0.555,5951,0.73,5952,0.73,5953,0.73,5954,0.73,5955,0.73,5956,2.999,5957,0.669,5958,0.629,5959,0.669,5960,0.73,5961,0.73,5962,0.73,5963,0.73,5964,0.669,5965,0.599,5966,0.73,5967,0.73,5968,0.73,5969,1.385,5970,0.73,5971,0.629,5972,0.73,5973,0.669,5974,1.385,5975,1.136,5976,0.669,5977,1.976,5978,0.73,5979,0.73,5980,0.73,5981,0.669,5982,1.385,5983,0.73,5984,0.73,5985,0.575,5986,0.73,5987,0.73,5988,0.669,5989,1.976,5990,0.669,5991,0.73,5992,0.599,5993,0.629,5994,0.669,5995,0.73,5996,0.73,5997,0.73,5998,0.73,5999,0.73,6000,0.669,6001,0.73,6002,0.73,6003,0.73,6004,0.73,6005,0.73,6006,1.385,6007,0.73,6008,0.73,6009,0.73,6010,0.73,6011,0.73,6012,0.73,6013,0.73,6014,0.629,6015,0.73,6016,0.629,6017,0.73,6018,0.73,6019,1.269,6020,0.73,6021,0.73,6022,0.73,6023,1.193,6024,1.385,6025,1.385,6026,0.629,6027,0.73,6028,0.599,6029,0.669,6030,0.73,6031,1.81,6032,0.73,6033,0.73,6034,0.73,6035,0.73,6036,0.73,6037,0.73,6038,0.73,6039,0.73,6040,0.73,6041,1.385,6042,0.629,6043,1.976,6044,0.73,6045,0.669,6046,0.73,6047,0.73,6048,0.669,6049,0.73,6050,0.73,6051,0.73,6052,0.73,6053,1.385,6054,0.73,6055,0.73,6056,0.73,6057,0.73,6058,0.73,6059,0.73,6060,0.73,6061,0.73,6062,0.73,6063,0.73,6064,0.73,6065,0.73,6066,0.73,6067,0.73,6068,0.73,6069,0.73,6070,0.73,6071,0.73,6072,0.73,6073,0.73,6074,0.73]],["component/29",[72,0.396]],["keyword/29",[]],["title/30-1",[3970,57.346,6075,60.227]],["name/30-1",[]],["text/30-1",[]],["component/30-1",[]],["keyword/30-1",[]],["title/30-2",[2430,59.677]],["name/30-2",[]],["text/30-2",[]],["component/30-2",[]],["keyword/30-2",[]],["title/30-3",[21,12.989,309,29.272,1182,38.536]],["name/30-3",[]],["text/30-3",[]],["component/30-3",[]],["keyword/30-3",[]],["title/30-4",[334,51.465]],["name/30-4",[]],["text/30-4",[]],["component/30-4",[]],["keyword/30-4",[]],["title/30-5",[508,28.716,1171,37.83,6075,51.864]],["name/30-5",[]],["text/30-5",[]],["component/30-5",[]],["keyword/30-5",[]],["title/30-6",[508,28.716,786,34.412,2430,43.104]],["name/30-6",[]],["text/30-6",[]],["component/30-6",[]],["keyword/30-6",[]],["title/30-7",[333,35.788,3214,48.779]],["name/30-7",[]],["text/30-7",[]],["component/30-7",[]],["keyword/30-7",[]],["title/30-8",[333,35.788,1303,57.346]],["name/30-8",[]],["text/30-8",[]],["component/30-8",[]],["keyword/30-8",[]],["title/30-9",[21,11.405,333,27.06,646,27.359,1204,26.221]],["name/30-9",[]],["text/30-9",[]],["component/30-9",[]],["keyword/30-9",[]],["title/30-10",[642,68.371]],["name/30-10",[]],["text/30-10",[]],["component/30-10",[]],["keyword/30-10",[]],["title/30-11",[641,61.388]],["name/30-11",[]],["text/30-11",[]],["component/30-11",[]],["keyword/30-11",[]],["title/30-12",[643,68.371]],["name/30-12",[]],["text/30-12",[]],["component/30-12",[]],["keyword/30-12",[]],["title/30-13",[21,12.989,784,33.063,2753,35.974]],["name/30-13",[]],["text/30-13",[]],["component/30-13",[]],["keyword/30-13",[]],["title/30-14",[21,12.989,2753,35.974,6076,55.186]],["name/30-14",[]],["text/30-14",[]],["component/30-14",[]],["keyword/30-14",[]],["title/30-15",[3214,58.157]],["name/30-15",[]],["text/30-15",[]],["component/30-15",[]],["keyword/30-15",[]],["title/30-16",[5248,68.371]],["name/30-16",[]],["text/30-16",[]],["component/30-16",[]],["keyword/30-16",[]],["title/30-17",[21,12.989,1922,40.119,2753,35.974]],["name/30-17",[]],["text/30-17",[]],["component/30-17",[]],["keyword/30-17",[]],["title/30-18",[6077,76.406]],["name/30-18",[]],["text/30-18",[]],["component/30-18",[]],["keyword/30-18",[]],["title/30-19",[6078,76.406]],["name/30-19",[]],["text/30-19",[]],["component/30-19",[]],["keyword/30-19",[]],["title/30-20",[333,35.788,903,39.961]],["name/30-20",[]],["text/30-20",[]],["component/30-20",[]],["keyword/30-20",[]],["title/30-21",[6079,76.406]],["name/30-21",[]],["text/30-21",[]],["component/30-21",[]],["keyword/30-21",[]],["title/30-22",[6080,76.406]],["name/30-22",[]],["text/30-22",[]],["component/30-22",[]],["keyword/30-22",[]],["title/30-23",[6081,76.406]],["name/30-23",[]],["text/30-23",[]],["component/30-23",[]],["keyword/30-23",[]],["title/30",[33,17.536,333,27.06,359,32.64,3214,36.884]],["name/30",[4354,0.651]],["text/30",[2,3.752,4,0.837,6,2.965,9,1.006,10,3.12,11,0.465,13,4.079,14,1.424,15,3.896,16,1.157,19,0.811,21,2.529,25,4.524,27,0.434,28,0.394,30,3.565,32,2.81,33,3.164,35,3.058,37,3.026,38,3.768,40,0.353,42,0.535,43,1.667,44,1.47,45,2.053,48,0.427,50,0.823,54,0.427,57,1.006,58,3.62,59,1.706,60,0.777,62,0.747,65,1.017,67,1.545,76,0.552,81,0.69,83,2.52,84,2.883,85,0.899,90,0.421,91,2.163,94,0.882,100,1.108,101,5.479,122,0.626,153,0.596,154,0.596,155,0.596,157,0.415,165,0.52,191,0.596,195,1.743,212,0.663,221,1.409,235,1.599,237,1.355,238,0.738,259,0.552,262,0.899,263,0.882,268,0.552,272,0.465,276,0.495,291,2.027,294,0.372,296,1.667,302,0.52,309,3.013,330,1.157,332,1.706,333,4.042,334,2.601,335,0.456,340,0.394,347,0.507,354,0.882,355,0.441,356,1.029,358,1.789,359,3.015,360,0.507,361,0.683,364,1.923,371,0.36,378,0.448,379,2.217,382,0.372,383,0.713,384,0.837,386,0.427,387,0.823,390,0.484,392,1.323,399,0.572,450,1.015,477,0.626,481,0.552,487,1.227,488,0.456,491,0.376,492,1.279,499,2.716,505,1.235,507,1.17,508,2.009,509,0.38,512,0.52,520,0.404,525,0.434,527,0.474,528,0.495,532,1.923,533,0.837,548,1.308,552,0.394,558,0.713,561,1.066,565,0.837,569,0.415,573,1.194,575,0.434,584,0.372,585,1.066,592,0.851,599,3.097,603,0.52,610,0.404,612,1.903,622,0.384,627,0.448,637,0.441,639,1.252,640,0.38,641,1.015,642,1.612,643,0.596,644,1.496,645,0.918,646,1.293,653,0.766,664,0.318,671,0.484,677,0.52,684,0.626,686,1.181,687,0.757,693,1.466,698,0.899,701,1.13,705,0.777,706,0.626,707,0.434,708,0.535,709,0.495,716,0.474,717,0.474,721,0.507,727,0.851,731,0.389,732,0.851,734,0.409,746,0.318,748,0.495,749,0.535,752,0.507,759,0.918,766,0.799,769,0.474,774,0.52,775,0.851,778,0.596,782,0.427,784,1.883,786,0.415,795,0.474,796,1.599,797,1.041,808,1.409,814,0.376,834,0.823,838,0.394,842,0.372,848,0.507,852,0.495,863,0.626,871,0.882,873,0.484,874,0.441,898,0.552,903,2.193,906,0.747,908,0.427,910,0.456,911,0.882,913,0.404,927,0.484,928,0.434,933,0.52,935,1.124,937,1.175,949,0.52,950,0.535,968,0.918,981,0.507,982,0.52,984,0.961,987,1.14,1001,0.495,1007,0.465,1016,0.837,1021,0.882,1022,1.339,1027,0.52,1035,1.175,1036,0.495,1038,0.507,1052,0.626,1077,1.13,1085,0.535,1087,0.866,1107,0.666,1111,0.507,1113,0.507,1123,0.552,1126,1.047,1133,0.52,1139,0.484,1142,0.484,1150,0.596,1155,0.535,1156,0.596,1166,0.421,1177,0.495,1179,0.939,1182,2.919,1183,0.666,1184,0.552,1186,0.52,1190,0.666,1191,0.666,1194,0.52,1204,0.975,1219,0.552,1232,0.823,1237,2.747,1244,0.837,1257,0.441,1259,0.434,1261,0.474,1264,0.552,1271,0.986,1275,1.015,1286,0.899,1287,0.52,1293,3.107,1296,0.507,1319,0.52,1321,0.626,1338,1.599,1350,1.214,1362,0.38,1367,0.986,1374,0.441,1375,0.572,1378,0.535,1384,1.13,1395,1.047,1405,0.626,1407,0.572,1423,0.572,1435,0.552,1443,0.465,1446,0.572,1458,0.415,1480,0.484,1498,0.572,1502,0.465,1511,0.507,1532,0.596,1538,0.626,1546,0.465,1547,0.52,1549,0.823,1556,0.823,1562,0.495,1595,0.495,1596,0.535,1620,0.918,1631,0.596,1646,0.882,1680,0.666,1713,0.465,1720,1.015,1742,0.596,1770,0.986,1791,0.572,1797,0.572,1802,0.626,1812,0.535,1818,0.596,1822,1.085,1823,0.495,1827,0.666,1846,0.596,1860,0.596,1870,0.596,1889,0.666,1902,0.52,1922,1.665,1923,1.047,1934,0.986,1943,0.572,1958,0.535,1984,0.572,2006,0.456,2031,0.572,2036,0.535,2037,0.596,2059,0.535,2106,0.666,2134,0.572,2150,0.572,2164,0.552,2204,0.918,2226,0.535,2274,0.465,2301,0.535,2341,0.52,2382,0.535,2396,0.626,2398,0.666,2417,0.626,2430,2.455,2462,0.626,2484,1.085,2516,1.263,2540,0.572,2543,0.495,2554,0.572,2571,0.552,2583,0.552,2586,0.52,2595,0.535,2605,0.535,2686,0.552,2701,0.52,2734,0.495,2748,1.015,2753,4.176,2759,0.572,2765,1.015,2792,0.596,2825,0.572,2846,0.626,2861,1.494,2879,0.465,2882,0.626,2887,0.52,2891,1.085,2893,0.535,2917,0.666,2946,0.626,2957,0.52,2964,0.596,2968,0.918,2978,0.495,3018,0.507,3020,0.626,3033,1.84,3084,0.52,3106,0.572,3124,0.626,3138,0.666,3151,0.552,3194,0.596,3214,3.407,3291,0.626,3293,0.572,3295,0.484,3301,0.939,3318,0.666,3325,0.666,3356,0.596,3388,0.666,3389,2.448,3390,0.626,3395,0.666,3396,2.153,3401,1.494,3402,1.263,3420,0.535,3424,1.407,3428,0.666,3433,0.596,3476,0.666,3503,1.085,3535,0.626,3561,0.666,3563,1.693,3627,0.596,3670,0.596,3689,0.552,3697,0.666,3751,0.535,3754,1.047,3756,0.626,3764,0.552,3793,0.495,3820,0.596,3841,0.572,3905,0.626,3932,0.572,3947,0.572,3995,0.626,4136,0.552,4153,0.535,4154,0.535,4175,0.626,4176,0.596,4181,0.596,4187,0.626,4256,0.626,4322,0.535,4326,1.085,4407,1.263,4411,1.693,4419,3.456,4425,0.666,4440,0.666,4487,0.666,4552,0.572,4558,1.047,4622,1.015,4633,0.626,4648,0.666,4776,0.626,4793,0.626,4810,0.666,4814,0.666,4820,0.666,4910,0.626,4921,0.596,4936,0.666,4967,0.666,4972,2.448,5085,0.626,5087,0.666,5128,0.666,5139,0.552,5158,0.596,5177,0.626,5187,0.626,5196,0.626,5210,0.596,5229,0.626,5248,2.448,5265,0.666,5268,0.666,5310,0.596,5326,0.666,5366,0.596,5395,1.085,5428,0.626,5459,1.263,5689,0.666,5726,0.626,5802,0.596,5821,0.596,5835,0.572,5863,0.666,5931,0.666,5958,0.626,6029,1.263,6031,0.666,6042,0.626,6075,2.153,6076,1.802,6077,3.143,6078,3.862,6079,1.263,6080,0.666,6081,0.666,6082,0.726,6083,0.666,6084,0.726,6085,0.726,6086,0.626,6087,0.726,6088,0.726,6089,0.726,6090,1.378,6091,0.726,6092,0.726,6093,0.726,6094,0.726,6095,0.726,6096,0.726,6097,0.726,6098,0.726,6099,0.726,6100,0.726,6101,0.726,6102,0.726,6103,0.726,6104,0.726,6105,0.726,6106,0.626,6107,0.626,6108,0.726,6109,0.726,6110,0.726,6111,0.726,6112,0.726,6113,0.726,6114,0.726,6115,0.726,6116,0.726,6117,0.552,6118,0.726,6119,0.726,6120,0.666,6121,0.726,6122,0.726,6123,0.726,6124,0.726,6125,0.726,6126,0.666,6127,0.726,6128,0.726,6129,1.263,6130,1.263,6131,1.263,6132,0.726,6133,0.726,6134,0.726,6135,0.626,6136,0.726,6137,0.726,6138,0.666,6139,0.666,6140,0.726,6141,0.726,6142,0.626,6143,0.726,6144,0.726,6145,0.666,6146,0.726,6147,0.726,6148,0.726,6149,0.726,6150,0.726,6151,3.43,6152,2.986,6153,0.726,6154,0.726,6155,0.666,6156,0.726,6157,0.572,6158,0.726,6159,0.726,6160,0.726,6161,0.726,6162,0.726,6163,1.378,6164,0.726,6165,0.726,6166,0.596,6167,0.726,6168,0.726,6169,0.726,6170,0.726,6171,0.726,6172,0.666,6173,0.626,6174,0.726,6175,0.726,6176,0.726,6177,0.726,6178,0.726,6179,0.726,6180,0.726,6181,0.626,6182,0.626,6183,0.666,6184,0.726,6185,1.378,6186,0.726,6187,0.726,6188,0.726,6189,0.726,6190,0.726,6191,0.726,6192,0.726,6193,0.666,6194,0.666,6195,0.726,6196,0.726,6197,0.726,6198,0.596,6199,1.378,6200,0.726,6201,0.726,6202,1.378,6203,0.666,6204,0.666,6205,0.726,6206,0.726,6207,0.666,6208,0.726,6209,0.726,6210,0.726,6211,0.726,6212,0.726,6213,0.726,6214,0.726,6215,0.726,6216,0.726,6217,0.726,6218,0.726,6219,0.726,6220,0.726,6221,0.726,6222,0.666,6223,0.726,6224,1.966,6225,1.966,6226,0.726,6227,1.378,6228,1.378,6229,0.726,6230,0.726,6231,0.726,6232,0.726,6233,0.726,6234,0.726,6235,0.726,6236,0.726,6237,0.726,6238,0.726,6239,0.726,6240,0.726,6241,0.726,6242,0.726,6243,0.726,6244,0.726,6245,0.726,6246,0.726,6247,0.726,6248,0.726,6249,0.726,6250,0.726,6251,0.726,6252,0.726,6253,0.726,6254,0.726,6255,0.726,6256,0.726,6257,0.726,6258,0.726,6259,0.726,6260,0.626,6261,0.726,6262,0.726,6263,0.726,6264,0.726,6265,0.726,6266,0.726,6267,0.666,6268,0.726,6269,0.666,6270,0.726,6271,0.726,6272,0.726,6273,0.726,6274,0.726,6275,0.726,6276,0.726,6277,0.726,6278,0.726,6279,0.726,6280,0.726,6281,0.726,6282,0.726,6283,0.726,6284,0.726,6285,0.666,6286,0.626,6287,0.666,6288,0.726,6289,0.726,6290,0.726,6291,0.726,6292,0.726,6293,0.726,6294,0.726,6295,0.726,6296,0.726,6297,0.726,6298,0.726,6299,0.726,6300,0.726,6301,0.726,6302,0.726,6303,0.726,6304,0.726,6305,0.726,6306,0.726,6307,0.726,6308,0.726,6309,0.726,6310,0.726,6311,0.726,6312,0.726,6313,0.666,6314,0.726,6315,0.726,6316,0.726,6317,0.666,6318,0.666,6319,0.726,6320,0.666,6321,0.726]],["component/30",[72,0.396]],["keyword/30",[]],["title/31-1",[1524,53.13,3794,60.227]],["name/31-1",[]],["text/31-1",[]],["component/31-1",[]],["keyword/31-1",[]],["title/31-2",[688,44.339,821,37.83,3981,49.383]],["name/31-2",[]],["text/31-2",[]],["component/31-2",[]],["keyword/31-2",[]],["title/31-3",[1419,48.327]],["name/31-3",[]],["text/31-3",[]],["component/31-3",[]],["keyword/31-3",[]],["title/31-4",[45,25.317,1999,51.864,2000,49.383]],["name/31-4",[]],["text/31-4",[]],["component/31-4",[]],["keyword/31-4",[]],["title/31-5",[45,25.317,565,36.555,6322,60.23]],["name/31-5",[]],["text/31-5",[]],["component/31-5",[]],["keyword/31-5",[]],["title/31",[37,26.759,332,34.412,335,37.83]],["name/31",[4354,0.651]],["text/31",[2,3.013,4,2.359,5,1.428,6,4.034,10,3.081,13,1.771,14,1.853,15,3.104,21,2.275,25,3.693,30,2.141,32,1.908,33,2.759,35,2.874,37,2.263,38,3.169,41,1.454,43,1.889,45,3.104,58,3.859,65,2.635,83,1.889,84,1.264,85,1.483,100,4.447,101,6.258,102,1.298,233,1.337,251,1.357,272,1.454,291,2.263,294,1.163,296,2.475,309,2.93,310,2.322,313,2.282,316,1.908,318,1.203,322,1.248,329,1.264,330,1.337,332,3.871,340,1.232,352,4.112,353,1.673,361,1.127,368,1.298,382,1.163,383,1.176,387,2.322,403,1.957,414,1.585,427,1.585,450,1.673,457,1.789,492,1.989,507,2.384,508,1.853,511,4.573,520,1.264,532,1.138,552,1.232,561,2.107,565,3.091,573,1.379,582,1.514,585,1.232,597,1.357,612,1.927,613,1.264,639,1.947,644,1.947,646,2.635,686,2.406,688,1.673,693,1.116,784,1.248,807,1.428,814,1.176,815,1.428,821,2.442,842,1.989,844,2.647,874,4.112,894,3.091,906,2.107,936,2.796,990,1.281,1013,1.403,1021,2.487,1035,2.322,1055,1.514,1083,1.428,1098,1.863,1204,1.127,1224,1.585,1248,1.585,1260,1.379,1274,2.589,1286,1.483,1362,1.189,1419,2.253,1449,1.428,1465,2.082,1469,1.548,1556,1.357,1570,3.059,1720,2.862,1774,1.789,1868,3.187,1872,1.626,2000,6.054,2006,1.428,2070,1.428,2116,1.626,2126,3.347,2389,3.749,2541,1.726,2673,1.957,2689,4.386,2715,2.082,2734,1.548,2748,1.673,2778,3.562,2827,1.863,2884,2.082,3061,1.726,3087,3.187,3093,1.863,3094,3.187,3099,2.862,3137,3.869,3175,2.082,3187,1.863,3194,3.187,3214,2.711,3273,1.626,3278,1.957,3295,1.514,3502,1.483,3530,1.789,3709,2.082,3754,3.869,3764,1.726,3916,7.23,3933,4.667,3981,1.863,4076,1.789,4296,5.523,4566,1.726,4712,1.789,4791,2.082,5497,1.863,6107,3.347,6142,1.957,6157,1.789,6323,2.273,6324,2.082,6325,4.667,6326,2.082,6327,3.887,6328,2.273,6329,2.082,6330,3.562,6331,2.273,6332,2.273,6333,2.273,6334,2.082,6335,2.273,6336,2.273,6337,2.273,6338,2.273,6339,2.273,6340,2.273,6341,2.273,6342,2.273,6343,2.273,6344,2.273,6345,2.273,6346,2.273,6347,2.273,6348,2.273,6349,2.273,6350,2.273,6351,2.273,6352,2.273,6353,2.273,6354,2.273,6355,2.273,6356,2.273,6357,5.093,6358,2.273,6359,2.273,6360,2.273,6361,2.273,6362,2.273,6363,2.273,6364,2.273,6365,2.273,6366,2.273,6367,2.273,6368,2.273,6369,2.273,6370,3.887,6371,3.887,6372,2.273,6373,2.273,6374,2.273,6375,2.273,6376,2.273,6377,2.273,6378,2.273,6379,2.273,6380,2.273,6381,2.273,6382,2.273,6383,2.273,6384,2.273,6385,2.273,6386,2.273,6387,2.082,6388,1.957,6389,2.273,6390,2.273,6391,2.273]],["component/31",[72,0.396]],["keyword/31",[]],["title/32-1",[370,32.102,371,23.371,372,32.875,644,23.613,1230,37.098]],["name/32-1",[]],["text/32-1",[]],["component/32-1",[]],["keyword/32-1",[]],["title/32-2",[40,33.993,2007,57.346]],["name/32-2",[]],["text/32-2",[]],["component/32-2",[]],["keyword/32-2",[]],["title/32-3",[40,33.993,2252,41.775]],["name/32-3",[]],["text/32-3",[]],["component/32-3",[]],["keyword/32-3",[]],["title/32-4",[2916,63.344]],["name/32-4",[]],["text/32-4",[]],["component/32-4",[]],["keyword/32-4",[]],["title/32-5",[550,37.917,2009,53.13]],["name/32-5",[]],["text/32-5",[]],["component/32-5",[]],["keyword/32-5",[]],["title/32-6",[558,36.183,5950,53.13]],["name/32-6",[]],["text/32-6",[]],["component/32-6",[]],["keyword/32-6",[]],["title/32-7",[550,37.917,6392,64.085]],["name/32-7",[]],["text/32-7",[]],["component/32-7",[]],["keyword/32-7",[]],["title/32-8",[558,36.183,5950,53.13]],["name/32-8",[]],["text/32-8",[]],["component/32-8",[]],["keyword/32-8",[]],["title/32-9",[558,36.183,6393,69.942]],["name/32-9",[]],["text/32-9",[]],["component/32-9",[]],["keyword/32-9",[]],["title/32",[54,41.138,57,35.788]],["name/32",[4354,0.651]],["text/32",[2,3.357,6,3.145,7,0.971,9,0.746,10,3.432,12,1.524,13,3.749,14,2.702,15,2.785,16,2.988,21,2.238,24,2.549,25,3.285,29,1.623,30,3.556,32,4.258,33,3.28,34,3.544,35,2.097,37,3.655,38,3.849,40,3.998,43,1.278,45,0.613,53,0.702,54,2.988,57,4.717,58,1.954,60,2.025,61,1.147,62,1.426,67,0.754,81,1.317,83,0.708,84,1.998,85,2.344,87,3.733,90,0.845,100,2.478,101,4.238,102,2.513,132,1.623,189,1.043,195,2.506,212,0.702,237,0.79,263,0.933,291,1.954,294,0.746,296,1.278,309,2.137,313,0.653,316,0.715,318,0.771,332,4.011,333,1.346,335,0.916,346,2.645,354,0.933,355,0.885,356,0.763,361,1.781,364,1.317,370,3.46,371,0.723,372,3.544,374,1.107,378,0.9,379,1.278,383,2.275,384,0.885,386,0.857,391,2.053,450,2.645,487,3.032,491,1.36,492,0.746,499,0.811,504,1.195,505,2.257,507,3.101,508,2.097,509,1.376,532,1.317,546,0.993,550,3.996,561,1.426,565,1.596,583,1.623,584,1.346,592,0.9,599,0.682,613,0.811,622,1.392,623,2.714,626,1.596,631,3.341,634,3.238,637,0.885,639,0.73,640,0.763,644,0.73,646,1.36,653,0.811,660,0.971,662,1.073,686,2.677,687,3.391,693,2.494,697,0.9,700,0.833,702,0.951,703,2.506,707,2.146,715,1.073,731,1.408,738,0.951,741,0.916,746,0.637,759,0.971,762,0.993,763,1.043,766,1.524,767,0.9,786,0.833,791,1.147,797,2.328,798,0.993,800,1.255,805,0.951,806,0.951,814,0.754,827,1.043,835,2.827,838,2.384,842,3.161,869,2.393,890,1.107,892,1.073,894,0.885,903,0.833,925,0.971,928,2.627,932,0.9,936,0.8,941,0.951,959,0.951,980,0.916,981,2.506,1004,1.073,1013,0.9,1019,2.344,1024,0.885,1035,3.035,1048,1.147,1088,1.043,1142,0.971,1194,1.043,1204,0.723,1230,1.147,1232,1.571,1244,0.885,1257,0.885,1259,1.571,1260,1.596,1261,2.869,1269,1.195,1285,1.752,1299,1.147,1338,2.299,1339,1.147,1350,0.9,1362,1.376,1394,1.073,1408,0.916,1449,2.257,1450,0.971,1458,0.833,1461,0.933,1462,1.195,1497,1.107,1502,2.299,1546,2.299,1556,2.146,1619,2.729,1698,0.971,1747,1.147,1799,1.073,1800,1.255,1823,0.993,1826,2.827,1852,1.998,1859,1.195,1883,1.336,1887,1.107,1890,1.147,1895,1.336,1907,4.647,1932,1.336,1937,0.993,1942,1.195,1955,1.107,1958,2.645,1961,1.147,2006,0.916,2007,5.065,2009,5.839,2010,5.661,2011,2.41,2014,1.336,2015,1.336,2049,0.993,2063,1.107,2098,1.017,2168,1.017,2221,0.993,2227,1.255,2246,1.336,2252,1.571,2274,1.683,2336,0.971,2341,1.043,2384,1.255,2392,2.995,2450,2.265,2604,1.998,2642,1.336,2651,3.461,2676,1.073,2701,1.043,2754,1.147,2762,1.147,2784,1.255,2803,1.336,2804,1.336,2856,1.195,2890,2.265,2916,3.86,2954,1.107,2960,1.073,2969,1.255,3199,0.993,3480,2.571,3689,3.341,3700,1.336,3742,1.336,3781,1.336,3863,1.255,4319,1.195,4421,1.255,4507,1.336,4608,1.255,4741,1.195,4867,1.255,4947,1.255,5203,2.265,5210,1.195,5272,2.41,5286,1.195,5294,1.255,5528,1.195,6117,1.107,6324,1.336,6392,5.661,6394,1.458,6395,1.458,6396,1.458,6397,1.458,6398,1.458,6399,2.41,6400,1.336,6401,1.336,6402,1.336,6403,1.458,6404,1.458,6405,5.193,6406,2.41,6407,4.03,6408,4.398,6409,2.63,6410,1.336,6411,1.458,6412,1.458,6413,1.458,6414,1.458,6415,1.458,6416,1.336,6417,1.458,6418,1.107,6419,1.458,6420,1.458,6421,1.458,6422,1.147,6423,1.458,6424,1.458,6425,3.094,6426,2.41,6427,3.292,6428,2.41,6429,1.336,6430,2.156,6431,1.458,6432,1.336,6433,1.458,6434,2.63,6435,1.458,6436,1.458,6437,1.458,6438,1.458,6439,1.458,6440,1.458,6441,3.292,6442,1.458,6443,2.63,6444,1.458,6445,1.458,6446,1.458,6447,1.458,6448,1.458,6449,1.458,6450,1.458,6451,1.458,6452,1.458,6453,1.336,6454,1.458,6455,2.63,6456,1.458]],["component/32",[72,0.396]],["keyword/32",[]],["title/33",[]],["name/33",[6457,0.856]],["text/33",[]],["component/33",[72,0.396]],["keyword/33",[]],["title/34-1",[507,28.189,2009,45.752,6458,51.864]],["name/34-1",[]],["text/34-1",[]],["component/34-1",[]],["keyword/34-1",[]],["title/34-2",[6425,71.806]],["name/34-2",[]],["text/34-2",[]],["component/34-2",[]],["keyword/34-2",[]],["title/34-3",[6459,76.406]],["name/34-3",[]],["text/34-3",[]],["component/34-3",[]],["keyword/34-3",[]],["title/34-4",[661,52.377]],["name/34-4",[]],["text/34-4",[]],["component/34-4",[]],["keyword/34-4",[]],["title/34",[32,29.563,369,47.402,6460,55.186]],["name/34",[6458,0.804]],["text/34",[2,3.439,6,3.908,10,3.516,13,3.689,14,0.924,15,2.274,21,2.374,23,1.108,24,3.56,25,4.414,30,3.964,32,3.315,33,3.19,34,2.363,35,3.466,37,3.426,38,4.192,40,2.629,41,1.24,43,0.942,45,1.897,50,1.158,51,1.177,53,1.631,54,1.14,57,3.456,58,3.876,60,1.092,67,1.003,71,1.427,81,0.971,83,2.193,100,1.909,101,4.222,102,1.936,132,1.196,212,0.933,291,3.596,294,0.992,313,0.868,332,1.936,335,1.218,340,1.051,352,1.177,361,1.68,369,4.258,370,2.307,372,2.363,378,1.196,379,4.367,382,0.992,384,1.177,387,1.158,389,1.473,391,1.108,392,1.026,487,2.655,492,1.733,501,1.352,507,3.402,508,2.151,509,1.014,511,1.123,520,1.884,527,1.265,529,1.14,532,2.26,543,1.526,548,1.014,550,1.837,552,1.837,555,1.473,561,1.837,564,1.352,569,1.936,573,3.283,582,1.291,584,0.992,597,1.158,611,1.291,612,1.68,613,1.078,616,1.427,622,1.793,623,2.091,626,1.177,639,0.971,644,1.697,646,1.753,655,1.218,686,2.131,687,4.233,693,1.663,700,1.108,705,1.092,716,1.265,728,1.963,734,1.909,738,1.265,758,1.14,759,1.291,766,1.123,769,1.265,773,2.573,781,1.32,784,2.477,787,1.387,789,3.339,797,1.026,826,1.196,838,1.051,842,2.768,845,1.218,869,2.257,881,1.473,899,1.078,908,1.14,912,1.196,936,1.064,942,1.32,959,1.265,964,1.291,987,1.123,1013,1.196,1020,1.291,1024,1.177,1029,1.589,1076,1.427,1087,2.128,1124,1.589,1157,2.424,1169,1.669,1182,1.24,1204,1.68,1259,2.023,1275,1.427,1279,1.387,1287,1.387,1293,1.32,1313,1.177,1362,2.361,1414,1.526,1449,2.834,1461,1.24,1502,1.24,1530,1.669,1546,2.168,1549,1.158,1556,1.158,1588,1.776,1591,1.589,1628,1.352,1652,2.494,1698,1.291,1713,2.168,1858,1.589,1859,1.589,1863,1.352,1870,1.589,1887,1.473,1905,1.669,1906,1.669,1907,1.589,2007,3.699,2009,4.109,2022,1.526,2040,2.887,2150,1.526,2185,1.776,2193,1.526,2252,2.023,2292,1.776,2392,1.32,2484,1.526,2607,1.387,2639,1.669,2648,1.526,2651,1.526,2748,2.494,2753,2.023,2822,1.427,2858,2.917,2879,1.24,2903,2.666,2954,1.473,2960,1.427,3018,1.352,3084,1.387,3214,1.352,3279,2.778,3281,1.589,3295,2.257,3401,3.427,3425,2.573,3681,2.778,3766,1.526,3918,1.776,3981,1.589,4154,1.427,4180,1.473,4376,1.776,4469,1.589,4558,1.473,4586,1.776,5411,1.526,5522,1.589,5818,1.669,5921,1.776,6400,1.776,6401,1.776,6405,1.776,6406,1.776,6407,1.776,6425,5.816,6426,1.776,6427,1.776,6428,1.776,6441,1.776,6453,1.776,6458,5.816,6459,3.104,6460,1.776,6461,1.939,6462,1.939,6463,1.939,6464,1.939,6465,1.939,6466,1.526,6467,1.939,6468,1.939,6469,1.669,6470,1.776,6471,1.939,6472,1.939,6473,1.939,6474,1.939,6475,1.939,6476,1.939,6477,4.512,6478,1.526,6479,1.939,6480,1.939,6481,3.388,6482,1.939,6483,1.939,6484,1.939,6485,1.939,6486,1.939,6487,1.939,6488,3.388,6489,1.939,6490,1.939,6491,3.388,6492,1.939,6493,4.512,6494,3.388,6495,4.512,6496,1.939,6497,4.512,6498,1.939,6499,1.939,6500,1.939,6501,1.776,6502,1.939,6503,1.939,6504,1.939,6505,1.939,6506,1.939,6507,1.939,6508,1.939,6509,1.939,6510,3.388,6511,1.939,6512,1.939,6513,1.939]],["component/34",[72,0.396]],["keyword/34",[]],["title/35-1",[266,40.174,1646,33.837,6514,48.457,6515,48.457]],["name/35-1",[]],["text/35-1",[]],["component/35-1",[]],["keyword/35-1",[]],["title/35-2",[313,31.335,843,55.045]],["name/35-2",[]],["text/35-2",[]],["component/35-2",[]],["keyword/35-2",[]],["title/35-3",[316,34.33,843,55.045]],["name/35-3",[]],["text/35-3",[]],["component/35-3",[]],["keyword/35-3",[]],["title/35-4",[318,37.017,843,55.045]],["name/35-4",[]],["text/35-4",[]],["component/35-4",[]],["keyword/35-4",[]],["title/35-5",[1711,55.045,5395,55.045]],["name/35-5",[]],["text/35-5",[]],["component/35-5",[]],["keyword/35-5",[]],["title/35-6",[6516,76.406]],["name/35-6",[]],["text/35-6",[]],["component/35-6",[]],["keyword/35-6",[]],["title/35-7",[6517,76.406]],["name/35-7",[]],["text/35-7",[]],["component/35-7",[]],["keyword/35-7",[]],["title/35-8",[6518,76.406]],["name/35-8",[]],["text/35-8",[]],["component/35-8",[]],["keyword/35-8",[]],["title/35-9",[6519,76.406]],["name/35-9",[]],["text/35-9",[]],["component/35-9",[]],["keyword/35-9",[]],["title/35-10",[2371,71.806]],["name/35-10",[]],["text/35-10",[]],["component/35-10",[]],["keyword/35-10",[]],["title/35-11",[6520,76.406]],["name/35-11",[]],["text/35-11",[]],["component/35-11",[]],["keyword/35-11",[]],["title/35-12",[6521,76.406]],["name/35-12",[]],["text/35-12",[]],["component/35-12",[]],["keyword/35-12",[]],["title/35-13",[5784,63.344]],["name/35-13",[]],["text/35-13",[]],["component/35-13",[]],["keyword/35-13",[]],["title/35-14",[775,32.64,5057,40.174,6522,45.54,6523,48.457]],["name/35-14",[]],["text/35-14",[]],["component/35-14",[]],["keyword/35-14",[]],["title/35-15",[748,36.016,5057,40.174,6524,48.457,6525,48.457]],["name/35-15",[]],["text/35-15",[]],["component/35-15",[]],["keyword/35-15",[]],["title/35-16",[775,29.092,1646,30.16,3529,35.808,5057,35.808,6526,43.191]],["name/35-16",[]],["text/35-16",[]],["component/35-16",[]],["keyword/35-16",[]],["title/35-17",[361,41.344]],["name/35-17",[]],["text/35-17",[]],["component/35-17",[]],["keyword/35-17",[]],["title/35-18",[5379,68.371]],["name/35-18",[]],["text/35-18",[]],["component/35-18",[]],["keyword/35-18",[]],["title/35-19",[5381,68.371]],["name/35-19",[]],["text/35-19",[]],["component/35-19",[]],["keyword/35-19",[]],["title/35-20",[6527,76.406]],["name/35-20",[]],["text/35-20",[]],["component/35-20",[]],["keyword/35-20",[]],["title/35-21",[6528,76.406]],["name/35-21",[]],["text/35-21",[]],["component/35-21",[]],["keyword/35-21",[]],["title/35-22",[6529,76.406]],["name/35-22",[]],["text/35-22",[]],["component/35-22",[]],["keyword/35-22",[]],["title/35-23",[101,30.17,5395,47.402,6530,55.186]],["name/35-23",[]],["text/35-23",[]],["component/35-23",[]],["keyword/35-23",[]],["title/35-24",[6531,76.406]],["name/35-24",[]],["text/35-24",[]],["component/35-24",[]],["keyword/35-24",[]],["title/35-25",[6532,83.389]],["name/35-25",[]],["text/35-25",[]],["component/35-25",[]],["keyword/35-25",[]],["title/35-26",[646,36.183,796,37.458]],["name/35-26",[]],["text/35-26",[]],["component/35-26",[]],["keyword/35-26",[]],["title/35-27",[21,12.122,313,15.926,377,27.977,4297,29.146,4846,32.572,5784,27.004,6522,30.611]],["name/35-27",[]],["text/35-27",[]],["component/35-27",[]],["keyword/35-27",[]],["title/35-28",[1302,37.172,5375,47.402,5820,47.402]],["name/35-28",[]],["text/35-28",[]],["component/35-28",[]],["keyword/35-28",[]],["title/35-29",[6533,76.406]],["name/35-29",[]],["text/35-29",[]],["component/35-29",[]],["keyword/35-29",[]],["title/35-30",[6534,58.157]],["name/35-30",[]],["text/35-30",[]],["component/35-30",[]],["keyword/35-30",[]],["title/35-31",[6534,48.779,6535,64.085]],["name/35-31",[]],["text/35-31",[]],["component/35-31",[]],["keyword/35-31",[]],["title/35-32",[5493,60.227,6534,48.779]],["name/35-32",[]],["text/35-32",[]],["component/35-32",[]],["keyword/35-32",[]],["title/35-33",[6534,48.779,6536,69.942]],["name/35-33",[]],["text/35-33",[]],["component/35-33",[]],["keyword/35-33",[]],["title/35-34",[1293,41.017,4622,44.339,6534,42.005]],["name/35-34",[]],["text/35-34",[]],["component/35-34",[]],["keyword/35-34",[]],["title/35-35",[1293,41.017,3407,49.383,4622,44.339]],["name/35-35",[]],["text/35-35",[]],["component/35-35",[]],["keyword/35-35",[]],["title/35-36",[6534,48.779,6537,64.085]],["name/35-36",[]],["text/35-36",[]],["component/35-36",[]],["keyword/35-36",[]],["title/35-37",[851,45.752,3580,49.383,6538,55.186]],["name/35-37",[]],["text/35-37",[]],["component/35-37",[]],["keyword/35-37",[]],["title/35-38",[358,59.677]],["name/35-38",[]],["text/35-38",[]],["component/35-38",[]],["keyword/35-38",[]],["title/35-39",[359,51.465]],["name/35-39",[]],["text/35-39",[]],["component/35-39",[]],["keyword/35-39",[]],["title/35-40",[359,43.166,6539,69.942]],["name/35-40",[]],["text/35-40",[]],["component/35-40",[]],["keyword/35-40",[]],["title/35-41",[359,43.166,6540,69.942]],["name/35-41",[]],["text/35-41",[]],["component/35-41",[]],["keyword/35-41",[]],["title/35-42",[359,43.166,3649,60.227]],["name/35-42",[]],["text/35-42",[]],["component/35-42",[]],["keyword/35-42",[]],["title/35-43",[359,43.166,6541,64.085]],["name/35-43",[]],["text/35-43",[]],["component/35-43",[]],["keyword/35-43",[]],["title/35-44",[3257,41.622,5057,40.174,5094,43.362,6135,45.54]],["name/35-44",[]],["text/35-44",[]],["component/35-44",[]],["keyword/35-44",[]],["title/35-45",[2543,47.631,4912,60.227]],["name/35-45",[]],["text/35-45",[]],["component/35-45",[]],["keyword/35-45",[]],["title/35-46",[21,10.166,322,25.877,687,25.877,1391,47.515]],["name/35-46",[]],["text/35-46",[]],["component/35-46",[]],["keyword/35-46",[]],["title/35-47",[21,10.166,318,24.948,1391,47.515,1522,40.591]],["name/35-47",[]],["text/35-47",[]],["component/35-47",[]],["keyword/35-47",[]],["title/35-48",[21,10.166,316,23.137,1391,47.515,1646,30.16]],["name/35-48",[]],["text/35-48",[]],["component/35-48",[]],["keyword/35-48",[]],["title/35-49",[21,8.351,38,14.75,157,22.123,313,17.348,1391,40.931,2879,24.775]],["name/35-49",[]],["text/35-49",[]],["component/35-49",[]],["keyword/35-49",[]],["title/35-50",[32,29.563,352,36.555,612,29.862]],["name/35-50",[]],["text/35-50",[]],["component/35-50",[]],["keyword/35-50",[]],["title/35-51",[364,41.771]],["name/35-51",[]],["text/35-51",[]],["component/35-51",[]],["keyword/35-51",[]],["title/35-52",[903,47.643]],["name/35-52",[]],["text/35-52",[]],["component/35-52",[]],["keyword/35-52",[]],["title/35-53",[1464,48.779,1535,44.75]],["name/35-53",[]],["text/35-53",[]],["component/35-53",[]],["keyword/35-53",[]],["title/35",[360,42.005,371,29.862,1646,38.536]],["name/35",[4354,0.651]],["text/35",[2,3.86,4,0.963,6,3.384,7,0.234,9,0.665,10,3.878,11,0.224,12,0.203,13,3.618,14,0.757,15,3.501,21,2.535,23,0.2,24,0.203,25,4.119,29,0.422,30,3.878,31,1.445,32,1.604,33,2.828,35,3.727,37,1.542,38,4.061,40,0.486,41,0.224,43,1.686,44,0.588,45,2.152,46,0.258,48,0.206,50,0.408,52,0.519,55,0.446,57,0.511,58,3.293,59,1.063,60,0.198,61,0.538,62,0.19,64,0.302,65,0.517,67,0.673,71,0.258,81,0.342,82,0.251,83,2.74,91,0.198,100,0.563,101,3.561,102,0.2,113,0.519,143,0.258,144,0.886,157,3.289,189,0.489,195,0.244,205,0.489,209,0.251,212,0.329,215,0.276,221,0.385,233,0.588,235,1.19,236,0.335,237,0.19,238,0.696,243,0.224,263,0.224,266,0.266,268,0.266,272,0.224,284,0.239,291,2.335,294,0.35,296,0.771,297,0.224,302,0.251,303,0.455,306,0.22,307,0.302,309,0.332,313,1.37,316,0.638,318,0.985,320,1.367,322,1.165,330,0.402,336,0.266,349,2.082,350,2.17,352,0.963,356,0.68,357,0.56,358,4.36,359,1.611,360,2.811,364,2.698,365,0.477,367,0.597,371,0.496,376,0.239,378,0.422,379,2.35,380,0.302,382,0.665,383,0.673,386,0.402,387,0.209,391,0.571,392,0.84,413,0.402,418,0.302,427,0.477,434,0.408,450,0.258,480,0.302,487,1.89,491,0.181,492,0.665,493,0.777,498,0.817,499,0.556,507,2.46,508,1.353,511,0.203,512,0.251,525,0.209,527,0.848,528,0.239,529,0.402,531,0.258,532,1.063,547,0.258,548,0.523,550,0.37,552,0.86,558,0.181,560,0.266,561,1.15,565,0.963,569,0.571,571,0.597,573,0.607,578,0.607,583,0.803,584,0.952,585,0.37,588,0.239,592,0.422,593,0.22,594,0.276,599,2.045,610,0.882,611,0.666,612,1.516,613,0.723,618,0.302,621,0.302,622,0.688,623,1.148,624,0.276,626,0.213,627,0.422,638,0.244,639,0.501,644,2.105,645,0.666,646,1.097,653,0.556,654,0.229,656,0.408,659,0.19,664,0.813,666,0.465,670,0.715,671,1.057,682,0.817,686,0.472,687,1.433,692,0.563,693,1.798,705,1.048,707,0.408,716,0.229,717,0.446,719,0.258,720,0.244,725,0.229,727,0.216,728,2.123,729,1.669,731,0.366,732,0.216,734,0.385,746,0.153,748,0.681,751,0.239,752,0.244,762,1.933,769,0.229,770,0.886,772,0.258,775,1.148,782,0.765,784,0.871,786,0.2,788,0.266,789,0.216,793,0.234,796,1.962,797,0.688,799,0.429,801,0.697,802,0.415,805,0.229,806,0.229,808,0.198,812,0.239,814,0.517,815,0.429,821,0.429,826,0.216,829,1.206,834,0.597,838,0.19,842,1.335,843,2.731,844,5.447,866,0.229,868,0.239,869,0.234,870,0.287,874,0.213,875,1.066,886,0.266,887,0.258,894,1.439,895,0.666,896,0.266,899,0.723,903,1.747,904,0.402,906,0.705,908,0.588,910,0.429,912,0.216,914,0.22,921,0.666,923,0.759,925,0.234,932,0.617,935,0.743,936,1.021,937,0.597,939,0.224,941,0.229,942,0.239,943,0.229,947,0.251,951,0.477,953,0.988,959,0.446,960,1.206,964,0.455,966,0.916,968,0.234,970,0.302,974,0.258,978,0.266,987,0.396,990,1.048,1001,0.239,1010,0.422,1013,0.216,1015,0.963,1016,0.789,1020,0.455,1021,0.639,1026,0.321,1036,0.239,1051,0.276,1054,0.429,1055,0.234,1060,0.287,1067,0.588,1068,2.031,1076,0.258,1083,0.997,1085,0.503,1089,0.465,1092,0.302,1100,0.251,1112,0.321,1113,0.244,1120,0.519,1121,0.519,1127,0.276,1139,0.234,1148,0.787,1155,0.258,1156,0.287,1163,0.321,1177,0.465,1178,0.302,1179,0.465,1193,0.258,1194,0.251,1204,0.174,1210,0.244,1211,0.287,1223,0.287,1224,0.244,1232,0.777,1242,0.258,1244,0.607,1257,0.213,1259,0.209,1260,0.789,1261,0.229,1262,0.22,1269,0.287,1275,0.258,1285,0.234,1286,0.229,1292,0.56,1293,0.681,1302,2.487,1313,0.789,1320,0.258,1327,2.507,1338,0.224,1340,0.302,1350,1.611,1354,0.244,1362,0.68,1370,0.321,1382,0.287,1385,0.321,1391,5.048,1392,0.302,1397,0.287,1401,0.861,1407,0.538,1408,0.22,1426,0.302,1435,0.266,1443,0.224,1450,0.234,1458,0.743,1461,0.437,1476,0.229,1493,0.287,1502,0.437,1511,1.48,1522,3.316,1525,0.287,1529,0.276,1536,0.697,1546,0.224,1547,0.251,1549,0.209,1555,0.56,1556,0.209,1559,1.12,1578,0.819,1581,0.446,1595,0.239,1597,0.56,1598,0.588,1608,0.321,1615,0.321,1616,0.239,1620,0.666,1621,0.302,1628,0.244,1643,0.287,1645,0.287,1646,3.966,1648,0.759,1649,0.258,1650,0.538,1698,0.234,1711,2.883,1713,0.639,1748,0.519,1776,0.266,1778,0.302,1790,0.234,1792,0.666,1799,0.258,1810,0.302,1813,0.244,1822,0.787,1832,0.931,1841,0.287,1850,0.56,1855,0.266,1864,0.276,1885,0.276,1899,0.588,1921,0.258,1922,0.866,1926,0.266,1934,0.489,1937,0.239,1953,0.489,1955,0.266,2031,0.538,2049,0.239,2055,0.415,2069,0.787,2070,0.997,2101,0.302,2107,0.258,2116,0.489,2120,0.321,2136,0.588,2145,0.239,2176,0.287,2203,0.287,2207,0.321,2217,0.266,2225,0.287,2226,0.258,2252,0.597,2274,0.224,2295,0.302,2307,0.302,2308,0.287,2330,0.287,2341,0.251,2342,0.258,2350,0.287,2351,0.287,2357,0.239,2371,1.12,2374,0.455,2375,0.287,2385,1.107,2389,0.258,2401,0.916,2411,0.302,2413,0.759,2414,0.56,2417,0.302,2424,1.367,2435,0.287,2439,0.213,2448,0.56,2484,0.276,2486,0.287,2541,0.519,2543,2.862,2554,0.538,2564,0.321,2566,0.276,2571,0.266,2583,0.266,2590,0.287,2593,0.287,2594,0.258,2596,0.287,2601,0.302,2605,0.258,2607,0.251,2615,0.287,2633,0.251,2650,0.258,2676,0.258,2701,0.251,2709,0.302,2720,0.251,2734,0.465,2748,0.503,2752,0.626,2753,0.408,2759,0.538,2766,0.276,2784,0.302,2789,0.489,2800,0.258,2802,0.321,2814,0.276,2825,0.538,2853,0.302,2879,1.19,2881,0.258,2887,0.251,2891,0.276,2894,0.276,2904,0.588,2926,0.437,2934,0.266,2957,0.251,2959,0.56,2960,0.503,2967,0.302,2978,0.239,3025,0.588,3033,0.957,3087,0.56,3104,0.258,3113,0.258,3137,0.266,3151,0.266,3173,0.266,3174,0.258,3213,0.276,3249,0.258,3273,1.331,3295,0.234,3341,0.321,3361,0.287,3384,0.266,3389,0.287,3404,0.276,3405,0.302,3407,0.287,3420,0.258,3502,0.229,3529,0.266,3532,0.302,3541,0.258,3649,0.588,3662,0.276,3682,0.538,3688,0.588,3689,0.266,3694,0.519,3708,0.321,3747,0.489,3749,0.321,3751,0.258,3755,0.321,3757,0.321,3779,0.276,3793,0.239,3796,0.916,3804,0.287,3815,0.266,3825,0.321,3844,0.276,3865,0.302,3867,0.302,3875,1.517,3890,0.302,3947,0.276,3951,0.519,3970,0.56,4076,0.276,4136,0.266,4141,0.302,4142,0.266,4158,0.287,4160,0.276,4176,0.287,4231,0.302,4297,0.819,4305,0.287,4307,1.12,4308,0.588,4373,0.321,4409,0.276,4415,0.266,4419,0.56,4441,1.67,4442,0.56,4473,2.444,4526,0.276,4532,0.302,4533,0.287,4543,0.321,4552,0.538,4566,0.519,4589,0.759,4601,0.321,4608,0.302,4616,0.321,4622,0.503,4626,0.258,4631,0.56,4637,2.14,4659,0.302,4662,0.626,4727,0.626,4746,1.525,4748,0.302,4751,1.12,4773,0.861,4779,0.302,4781,0.302,4782,0.626,4819,0.626,4833,0.321,4834,0.626,4863,0.287,4867,0.302,4869,0.302,4874,0.588,4880,0.287,4890,0.321,4912,3.47,4921,0.287,4958,0.626,4960,0.302,4961,0.321,4966,0.861,4972,0.56,5034,0.321,5057,2.156,5062,0.287,5094,0.287,5100,0.302,5105,0.321,5110,0.321,5124,0.321,5139,0.266,5151,0.321,5157,0.588,5158,0.287,5166,0.302,5177,0.302,5206,0.321,5222,0.321,5243,0.321,5289,0.626,5292,0.321,5298,0.302,5307,0.321,5310,0.287,5312,0.321,5337,0.302,5370,0.302,5373,0.588,5375,2.054,5379,0.56,5381,1.066,5395,3.439,5408,0.302,5411,0.538,5433,0.302,5434,0.287,5437,0.861,5440,1.827,5463,0.321,5477,0.626,5484,1.464,5486,0.321,5488,0.321,5490,0.626,5492,0.626,5493,0.588,5498,0.321,5506,0.321,5522,0.56,5528,0.56,5549,0.321,5556,0.626,5560,0.302,5563,0.321,5587,0.321,5589,0.302,5598,2.172,5601,0.321,5615,0.321,5621,0.302,5633,0.538,5650,0.321,5674,0.302,5677,0.626,5678,0.321,5679,0.321,5680,0.321,5682,1.191,5745,1.944,5746,1.739,5749,0.321,5750,1.191,5752,3.308,5753,0.321,5755,0.321,5767,0.321,5768,1.12,5769,0.321,5770,0.321,5772,0.321,5773,0.302,5774,0.321,5778,0.287,5779,1.191,5784,1.611,5799,0.302,5801,0.287,5802,0.287,5808,0.321,5818,0.302,5820,1.023,5828,0.321,5847,0.276,5862,0.321,5905,0.287,5906,0.321,5942,0.321,5949,0.321,5985,0.276,6014,0.861,6019,0.626,6023,0.302,6028,0.287,6135,0.588,6139,0.321,6142,1.12,6166,0.56,6260,1.12,6313,0.321,6326,0.916,6329,0.321,6387,0.321,6514,1.454,6515,0.321,6516,1.705,6517,2.172,6518,0.916,6519,1.191,6520,0.916,6521,1.191,6522,3.316,6523,0.321,6524,1.454,6525,0.916,6526,1.454,6527,0.626,6528,1.191,6529,0.321,6530,0.321,6531,0.626,6533,0.626,6534,0.244,6535,0.321,6537,0.626,6538,0.626,6541,0.321,6542,0.351,6543,0.351,6544,1.86,6545,0.351,6546,0.351,6547,0.351,6548,0.302,6549,0.302,6550,0.999,6551,0.351,6552,0.351,6553,0.999,6554,1.3,6555,0.999,6556,0.351,6557,0.351,6558,0.351,6559,0.321,6560,0.351,6561,0.351,6562,0.351,6563,0.999,6564,1.3,6565,0.683,6566,0.683,6567,0.351,6568,0.351,6569,0.321,6570,0.302,6571,0.683,6572,0.916,6573,0.999,6574,0.351,6575,0.999,6576,0.351,6577,0.351,6578,0.351,6579,0.351,6580,0.351,6581,0.351,6582,0.351,6583,0.351,6584,0.351,6585,0.351,6586,0.351,6587,0.999,6588,0.683,6589,0.351,6590,0.683,6591,0.683,6592,0.351,6593,0.351,6594,0.351,6595,0.351,6596,0.351,6597,0.351,6598,0.351,6599,0.351,6600,0.683,6601,0.351,6602,0.351,6603,0.351,6604,0.351,6605,0.351,6606,1.066,6607,0.683,6608,0.351,6609,0.683,6610,0.351,6611,0.351,6612,0.351,6613,0.588,6614,0.351,6615,0.351,6616,0.351,6617,0.351,6618,0.351,6619,0.351,6620,0.351,6621,0.683,6622,0.351,6623,0.351,6624,0.351,6625,0.351,6626,0.351,6627,0.351,6628,0.999,6629,0.351,6630,0.351,6631,0.351,6632,0.321,6633,0.683,6634,0.351,6635,0.351,6636,0.351,6637,0.321,6638,0.321,6639,0.351,6640,0.999,6641,0.351,6642,0.999,6643,0.351,6644,0.321,6645,0.351,6646,0.351,6647,0.351,6648,0.351,6649,0.351,6650,0.351,6651,0.351,6652,0.351,6653,0.302,6654,0.683,6655,0.321,6656,0.351,6657,0.351,6658,1.191,6659,0.351,6660,0.588,6661,0.538,6662,0.351,6663,0.287,6664,0.351,6665,0.351,6666,0.683,6667,0.351,6668,0.351,6669,0.351,6670,0.351,6671,0.351,6672,0.351,6673,0.351,6674,0.321,6675,0.351,6676,0.351,6677,0.351,6678,0.351,6679,0.351,6680,0.626,6681,0.351,6682,0.351,6683,0.351,6684,0.351,6685,0.351,6686,0.351,6687,0.302,6688,0.916,6689,0.351,6690,0.351,6691,0.351,6692,0.351,6693,0.351,6694,0.351,6695,0.683,6696,0.351,6697,0.351,6698,0.321,6699,0.351,6700,0.351,6701,0.351,6702,0.351,6703,0.351,6704,0.351,6705,0.351,6706,0.302,6707,0.351,6708,0.321,6709,0.321,6710,0.351,6711,0.302,6712,0.351,6713,0.351,6714,0.351,6715,0.351,6716,0.351,6717,0.351,6718,0.351,6719,0.351,6720,0.351,6721,0.351,6722,0.683,6723,0.351,6724,0.351,6725,0.351,6726,0.683,6727,0.351,6728,0.351,6729,0.351,6730,0.683,6731,0.351,6732,0.351,6733,0.351,6734,0.351,6735,0.351,6736,0.351,6737,0.351,6738,0.351,6739,0.351,6740,0.351,6741,0.351,6742,0.351,6743,0.321,6744,0.351,6745,4.203,6746,0.351,6747,1.3,6748,0.351,6749,0.351,6750,0.351,6751,0.351,6752,5.12,6753,1.3,6754,0.683,6755,2.121,6756,0.351,6757,0.683,6758,0.683,6759,0.351,6760,1.587,6761,0.351,6762,0.351,6763,0.351,6764,0.351,6765,0.351,6766,0.351,6767,0.351,6768,0.351,6769,0.351,6770,0.351,6771,0.683,6772,0.351,6773,0.351,6774,0.351,6775,0.351,6776,0.351,6777,0.351,6778,0.351,6779,0.351,6780,0.351,6781,0.351,6782,0.351,6783,0.351,6784,0.351,6785,0.351,6786,0.683,6787,0.351,6788,0.351,6789,0.351,6790,0.351,6791,0.999,6792,0.351,6793,0.351,6794,0.683,6795,0.351,6796,0.351,6797,0.351,6798,0.351,6799,0.683,6800,0.351,6801,0.351,6802,1.3,6803,0.351,6804,0.351,6805,0.683,6806,0.999,6807,0.683,6808,0.351,6809,1.587,6810,1.587,6811,0.351,6812,0.683,6813,0.351,6814,0.683,6815,0.683,6816,0.351,6817,0.351,6818,0.683,6819,0.351,6820,0.351,6821,0.351,6822,0.351,6823,0.683,6824,0.351,6825,0.351,6826,0.351,6827,0.351,6828,0.351,6829,0.351,6830,0.351,6831,0.351,6832,0.351,6833,0.351,6834,0.683,6835,0.351,6836,0.351,6837,0.351,6838,0.683,6839,0.351,6840,0.351,6841,0.321,6842,0.351,6843,0.351,6844,0.351,6845,0.351,6846,0.351,6847,0.351,6848,2.121,6849,0.683,6850,0.683,6851,0.351,6852,0.351,6853,0.351,6854,0.351,6855,0.351,6856,0.683,6857,0.351,6858,0.999,6859,0.683,6860,0.351,6861,1.587,6862,0.351,6863,0.351,6864,0.351,6865,0.351,6866,0.56,6867,0.626,6868,0.351,6869,0.351,6870,0.351,6871,0.351,6872,0.351,6873,0.321,6874,0.351,6875,0.351,6876,0.351,6877,0.351,6878,0.351,6879,0.351,6880,0.351,6881,0.351,6882,0.351,6883,0.351,6884,0.351,6885,0.351,6886,0.351,6887,0.351,6888,0.351,6889,0.351,6890,0.351,6891,0.351,6892,0.351,6893,0.351,6894,0.351,6895,1.066,6896,1.86,6897,0.351,6898,0.351,6899,0.302,6900,0.351,6901,0.351,6902,0.351,6903,0.351,6904,0.321,6905,1.587,6906,0.302,6907,0.351,6908,0.351,6909,0.683,6910,0.351,6911,0.351,6912,0.351,6913,0.351,6914,2.61,6915,0.999,6916,0.302,6917,0.302,6918,0.321,6919,0.321,6920,0.351,6921,0.351,6922,0.321,6923,0.321,6924,0.351,6925,0.351,6926,0.351,6927,0.351,6928,0.683,6929,0.351,6930,0.351,6931,0.588,6932,0.351,6933,0.351,6934,0.351,6935,0.351,6936,0.321,6937,0.351,6938,0.351,6939,0.321,6940,0.351,6941,0.351,6942,0.351,6943,0.626,6944,0.351,6945,0.351,6946,0.351,6947,0.351,6948,0.351,6949,0.351,6950,0.351,6951,0.351,6952,0.351,6953,0.351,6954,0.351,6955,0.351,6956,0.626,6957,0.351,6958,0.321,6959,0.351,6960,0.999,6961,0.351,6962,0.351,6963,0.321,6964,0.626,6965,0.351,6966,0.351,6967,0.683,6968,0.351,6969,0.351,6970,0.351,6971,0.351,6972,1.3,6973,1.3,6974,0.351,6975,0.351,6976,0.351,6977,0.351,6978,0.351,6979,0.351,6980,0.351,6981,0.351,6982,0.351,6983,0.351,6984,0.351,6985,0.351,6986,0.351]],["component/35",[72,0.396]],["keyword/35",[]],["title/36-1",[6286,71.806]],["name/36-1",[]],["text/36-1",[]],["component/36-1",[]],["keyword/36-1",[]],["title/36-2",[6987,76.406]],["name/36-2",[]],["text/36-2",[]],["component/36-2",[]],["keyword/36-2",[]],["title/36-3",[6988,76.406]],["name/36-3",[]],["text/36-3",[]],["component/36-3",[]],["keyword/36-3",[]],["title/36-4",[6989,76.406]],["name/36-4",[]],["text/36-4",[]],["component/36-4",[]],["keyword/36-4",[]],["title/36-5",[6990,76.406]],["name/36-5",[]],["text/36-5",[]],["component/36-5",[]],["keyword/36-5",[]],["title/36-6",[6991,76.406]],["name/36-6",[]],["text/36-6",[]],["component/36-6",[]],["keyword/36-6",[]],["title/36-7",[6992,76.406]],["name/36-7",[]],["text/36-7",[]],["component/36-7",[]],["keyword/36-7",[]],["title/36-8",[33,17.536,2605,38.933,3866,43.362,6993,52.886]],["name/36-8",[]],["text/36-8",[]],["component/36-8",[]],["keyword/36-8",[]],["title/36-9",[6994,64.085,6995,64.085]],["name/36-9",[]],["text/36-9",[]],["component/36-9",[]],["keyword/36-9",[]],["title/36",[33,19.971,5821,49.383,6996,55.186]],["name/36",[6997,0.934]],["text/36",[2,3.967,6,3.859,9,1.325,10,3.752,13,4.431,14,3.127,15,4.136,16,0.843,21,2.472,22,0.976,25,4.979,30,3.977,32,3,33,3.038,35,4.201,37,2.49,38,4.052,43,1.258,45,2.356,51,0.869,54,0.843,57,1.812,58,3.996,59,2.023,60,1.996,61,2.037,65,0.741,67,1.339,75,1.127,83,2.109,100,0.807,101,1.297,157,0.818,212,1.705,235,0.917,237,0.777,238,0.767,254,0.999,291,3.996,296,2.109,309,0.696,310,0.856,330,2.553,333,1.325,334,0.884,347,0.999,358,1.025,364,0.718,367,1.546,371,0.71,379,3.38,382,1.325,391,1.479,392,1.37,487,2.464,488,1.626,491,0.741,492,1.325,493,1.546,499,1.969,507,2.861,508,2.069,509,0.749,512,1.025,525,0.856,527,1.689,532,1.774,546,2.412,547,2.607,548,2.271,552,2.353,558,0.741,565,0.869,573,1.571,575,2.115,580,0.999,585,1.403,592,0.884,597,1.546,599,3.255,612,1.283,613,0.797,622,1.37,623,0.884,624,1.127,637,0.869,639,2.807,644,0.718,653,0.797,659,0.777,682,0.9,686,0.677,692,0.807,693,1.738,721,0.999,725,0.935,732,1.598,734,1.459,757,1.088,766,0.83,772,1.055,784,1.944,786,1.479,788,1.088,790,1.175,796,0.767,797,1.37,798,0.976,806,0.935,821,1.626,833,0.917,834,1.546,842,1.812,848,0.999,886,1.088,896,1.088,897,0.999,912,1.598,913,1.44,920,0.954,928,0.856,935,0.818,937,0.856,939,0.917,943,0.935,960,1.966,964,0.954,984,2.47,987,0.83,990,1.459,1001,0.976,1006,1.175,1007,1.656,1019,0.935,1021,0.917,1022,0.976,1024,1.571,1083,0.9,1086,1.088,1089,0.976,1096,0.917,1142,2.359,1145,1.025,1211,1.175,1232,1.546,1244,0.869,1257,0.869,1262,0.9,1267,1.127,1274,3.344,1286,1.689,1306,0.917,1314,1.127,1350,0.884,1362,1.853,1369,1.313,1419,0.83,1426,2.229,1433,1.025,1437,0.999,1443,0.917,1449,0.9,1457,1.313,1473,1.313,1476,0.935,1487,1.234,1502,2.266,1546,0.917,1547,1.025,1551,1.234,1562,0.976,1602,1.313,1620,0.954,1681,0.976,1698,2.359,1737,1.175,1770,1.025,1792,4.369,1813,0.999,1818,1.175,1836,1.313,1859,1.175,1861,1.234,1918,1.175,1921,1.906,1934,1.025,1951,1.025,2055,0.869,2069,1.127,2070,0.9,2082,1.127,2097,0.884,2107,1.906,2165,1.234,2252,0.856,2335,1.234,2357,0.976,2400,1.234,2425,1.175,2430,1.853,2462,1.234,2554,1.127,2605,4.126,2720,2.535,2759,1.127,2877,1.127,2934,2.69,2960,1.055,2972,1.025,3010,5.264,3018,0.999,3177,0.976,3178,1.127,3214,1.805,3326,1.313,3357,1.313,3362,0.976,3435,1.313,3480,1.025,3492,2.229,3501,1.088,3502,0.935,3529,1.088,3641,2.372,3694,2.69,3751,1.055,3754,1.088,3767,1.088,3788,1.175,3841,1.127,3865,3.737,3866,2.904,3875,2.266,4142,1.088,4261,1.234,4473,1.234,4542,1.234,4547,1.313,4566,1.966,4582,1.234,4626,1.906,4776,2.229,4922,2.372,4948,1.313,4972,1.175,5085,1.234,5095,1.234,5100,1.234,5139,1.088,5229,1.234,5434,1.175,5599,1.313,5672,1.313,5786,2.229,5799,1.234,5802,1.175,5821,3.559,5835,1.127,5914,1.313,6107,1.234,6117,1.088,6166,1.175,6198,1.175,6260,1.234,6267,1.313,6286,6.809,6325,1.313,6644,1.313,6658,1.313,6661,1.127,6674,1.313,6698,1.313,6706,1.234,6709,1.313,6943,1.313,6958,2.372,6963,1.313,6987,1.313,6988,2.372,6989,1.313,6990,3.245,6991,1.313,6992,3.245,6994,1.313,6995,1.313,6996,1.313,6998,1.433,6999,1.433,7000,1.313,7001,1.313,7002,2.589,7003,1.234,7004,3.542,7005,1.433,7006,1.433,7007,1.313,7008,3.542,7009,1.433,7010,1.313,7011,1.433,7012,1.433,7013,1.433,7014,1.433,7015,2.589,7016,1.433,7017,1.433,7018,1.433,7019,2.229,7020,1.433,7021,1.433,7022,1.433,7023,1.313,7024,1.234,7025,1.433,7026,1.433,7027,1.433,7028,1.433,7029,2.589,7030,1.313,7031,1.433,7032,1.175,7033,1.433,7034,1.433,7035,1.313,7036,1.433,7037,1.433,7038,1.433,7039,1.433,7040,1.313,7041,1.433,7042,1.313,7043,1.433,7044,1.234,7045,1.433,7046,1.313,7047,1.433,7048,1.313,7049,1.433,7050,1.433,7051,1.433,7052,1.433,7053,1.313,7054,1.433,7055,1.433,7056,2.589,7057,1.433]],["component/36",[72,0.396]],["keyword/36",[]],["title/37-1",[7058,76.406]],["name/37-1",[]],["text/37-1",[]],["component/37-1",[]],["keyword/37-1",[]],["title/37-2",[4563,49.383,5887,55.186,7059,49.383]],["name/37-2",[]],["text/37-2",[]],["component/37-2",[]],["keyword/37-2",[]],["title/37-3",[4563,49.383,7059,49.383,7060,60.23]],["name/37-3",[]],["text/37-3",[]],["component/37-3",[]],["keyword/37-3",[]],["title/37-4",[2824,49.383,4563,49.383,7059,49.383]],["name/37-4",[]],["text/37-4",[]],["component/37-4",[]],["keyword/37-4",[]],["title/37-5",[21,11.405,367,31.588,640,27.669,899,29.409]],["name/37-5",[]],["text/37-5",[]],["component/37-5",[]],["keyword/37-5",[]],["title/37-6",[7061,76.406]],["name/37-6",[]],["text/37-6",[]],["component/37-6",[]],["keyword/37-6",[]],["title/37-7",[7062,76.406]],["name/37-7",[]],["text/37-7",[]],["component/37-7",[]],["keyword/37-7",[]],["title/37-8",[7063,76.406]],["name/37-8",[]],["text/37-8",[]],["component/37-8",[]],["keyword/37-8",[]],["title/37-9",[1549,35.974,7064,60.23,7065,60.23]],["name/37-9",[]],["text/37-9",[]],["component/37-9",[]],["keyword/37-9",[]],["title/37-10",[7066,76.406]],["name/37-10",[]],["text/37-10",[]],["component/37-10",[]],["keyword/37-10",[]],["title/37-11",[741,43.931,7066,64.085]],["name/37-11",[]],["text/37-11",[]],["component/37-11",[]],["keyword/37-11",[]],["title/37-12",[7067,76.406]],["name/37-12",[]],["text/37-12",[]],["component/37-12",[]],["keyword/37-12",[]],["title/37-13",[201,46.588,2486,57.346]],["name/37-13",[]],["text/37-13",[]],["component/37-13",[]],["keyword/37-13",[]],["title/37",[21,11.405,38,20.145,57,27.06,367,31.588]],["name/37",[113,0.709]],["text/37",[2,3.992,3,1.177,6,3.056,9,1.177,10,4.267,13,3.978,14,2.897,15,3.802,16,0.74,18,0.82,19,1.869,21,2.547,25,4.578,29,0.776,30,4.021,31,0.856,32,2.245,33,2.464,35,3.89,37,2.283,38,4.117,43,2.497,45,2.16,48,0.74,49,0.926,53,1.89,54,1.353,57,2.009,58,3.173,59,2.243,62,1.722,65,1.19,67,1.19,75,0.99,80,0.99,81,0.63,83,2.223,91,1.296,94,0.805,101,3.24,111,1.083,112,1.693,113,2.414,114,1.083,157,0.718,199,1.646,212,0.605,236,0.617,245,0.99,251,0.751,262,0.82,291,3.716,296,2.223,301,0.926,309,2.497,310,0.751,330,2.69,332,0.718,335,1.444,340,1.247,347,0.877,352,1.928,354,2.033,356,1.203,361,1.14,364,0.63,366,0.838,367,4.075,368,0.718,371,0.623,379,2.739,382,2.009,383,0.651,487,2.766,490,0.877,491,0.651,492,2.009,507,4.234,508,1.515,509,1.203,525,0.751,527,2.073,529,1.353,532,2.574,533,1.928,543,1.81,544,2.033,546,0.856,548,0.658,550,1.247,552,1.247,556,3.171,560,0.955,561,2.129,569,0.718,571,0.751,572,1.646,578,1.396,584,1.626,588,2.164,599,1.838,609,0.751,612,0.623,613,1.279,623,0.776,637,0.763,640,0.658,644,1.592,653,0.699,662,0.926,671,0.838,687,1.262,688,2.339,692,1.296,700,1.314,705,2.213,707,0.751,720,0.877,729,0.74,731,0.674,734,0.709,738,1.5,739,0.9,766,0.729,767,1.419,782,1.353,786,0.718,795,0.82,797,0.666,805,0.82,814,1.19,833,0.805,835,0.99,838,1.247,842,1.626,845,0.79,867,0.82,877,1.152,899,1.279,900,0.82,901,0.955,927,0.838,928,0.751,933,0.9,936,0.69,941,0.82,943,0.82,954,0.955,959,0.82,964,0.838,974,0.926,980,0.79,987,1.841,1004,0.926,1010,1.419,1019,0.82,1020,1.532,1022,0.856,1025,1.5,1035,0.751,1051,0.99,1064,0.926,1065,1.031,1087,1.996,1090,0.926,1101,1.031,1141,0.82,1142,1.532,1149,0.99,1157,1.646,1166,2.276,1171,0.79,1184,1.747,1210,0.877,1212,0.955,1232,0.751,1244,0.763,1248,1.604,1261,1.5,1270,1.031,1271,0.9,1274,0.838,1283,1.81,1285,1.532,1320,0.926,1337,0.99,1350,0.776,1362,0.658,1390,0.99,1422,2.107,1458,0.718,1468,0.926,1498,0.99,1518,1.031,1535,0.805,1549,0.751,1571,0.99,1589,1.083,1613,1.152,1628,0.877,1646,1.471,1656,2.736,1657,1.152,1681,0.856,1686,0.99,1717,1.031,1718,1.083,1751,1.152,1755,0.955,1792,1.532,1866,1.083,1875,0.877,1903,1.693,1966,1.031,1999,1.083,2006,0.79,2036,0.926,2068,1.031,2097,1.419,2098,0.877,2166,1.98,2173,1.031,2190,1.083,2295,1.083,2306,1.98,2330,1.031,2357,0.856,2373,2.911,2435,1.031,2442,1.152,2450,1.083,2473,1.885,2481,1.083,2594,0.926,2605,2.339,2821,1.031,2822,0.926,2853,1.083,2878,1.083,2879,2.033,2933,1.152,2954,1.747,2983,2.107,3036,1.031,3127,1.031,3199,4.137,3334,3.219,3362,0.856,3423,0.955,3502,0.82,3527,1.083,3535,1.083,3682,0.99,3694,0.955,3748,1.083,3766,0.99,3779,0.99,3793,0.856,3862,1.152,3866,1.031,3875,0.805,4004,1.031,4083,1.152,4154,0.926,4172,1.152,4180,0.955,4297,2.605,4301,1.083,4340,1.083,4409,0.99,4626,0.926,4646,1.152,4741,1.031,4864,1.152,4895,1.083,5261,1.152,5298,1.98,5322,0.99,5383,1.98,5468,1.152,5482,1.083,5484,0.99,5537,1.083,5621,1.083,5673,1.152,5674,1.083,5780,1.152,5820,0.99,5835,2.501,5900,1.152,5920,1.031,5964,1.152,5971,1.98,5993,1.98,6193,1.152,6457,1.152,6572,1.152,6661,2.501,6680,2.107,6706,5.875,6708,1.152,7001,1.152,7007,2.107,7019,2.736,7030,1.152,7058,3.598,7059,2.605,7061,2.107,7062,1.152,7063,2.107,7067,2.107,7068,1.152,7069,1.083,7070,1.083,7071,1.152,7072,1.152,7073,1.152,7074,1.152,7075,1.152,7076,1.152,7077,1.258,7078,1.258,7079,1.258,7080,1.258,7081,1.258,7082,3.177,7083,1.258,7084,1.258,7085,1.258,7086,1.258,7087,1.258,7088,1.258,7089,2.3,7090,1.258,7091,1.258,7092,2.3,7093,3.177,7094,2.3,7095,1.258,7096,2.3,7097,1.258,7098,1.258,7099,1.258,7100,1.258,7101,1.258,7102,2.3,7103,1.258,7104,3.926,7105,1.152,7106,1.258,7107,1.258,7108,1.258,7109,1.258,7110,1.258,7111,1.258,7112,1.258,7113,1.258,7114,1.258,7115,1.152,7116,0.955,7117,1.258,7118,1.083,7119,1.258,7120,1.258,7121,1.258,7122,1.258,7123,1.258,7124,1.258,7125,1.152,7126,2.3,7127,2.107,7128,1.258,7129,1.258,7130,3.177,7131,1.258,7132,1.258,7133,1.258,7134,2.3,7135,1.258,7136,1.258,7137,1.258,7138,1.258,7139,1.258,7140,1.258,7141,1.258,7142,1.258,7143,1.258,7144,1.152,7145,1.258,7146,1.258,7147,1.258,7148,1.258,7149,1.258,7150,1.258,7151,1.258,7152,1.258,7153,1.258,7154,1.258,7155,1.258,7156,1.258,7157,1.258,7158,1.258,7159,1.258]],["component/37",[72,0.396]],["keyword/37",[]],["title/38-1",[1279,59.677]],["name/38-1",[]],["text/38-1",[]],["component/38-1",[]],["keyword/38-1",[]],["title/38",[274,47.402,6534,42.005,7160,55.186]],["name/38",[754,0.709]],["text/38",[2,3.968,5,2.568,6,3.24,9,3.207,10,4.116,12,0.991,13,3.77,14,2.36,15,3.695,19,1.006,21,2.309,24,0.991,25,4.114,30,3.951,31,1.165,33,3.394,35,4.393,37,2.517,38,4.108,40,0.831,43,1.475,44,3.332,45,3.04,48,1.785,49,1.259,50,2.442,51,1.038,53,2.727,58,2.199,59,2.336,62,0.927,65,1.57,67,0.885,81,0.857,83,3.705,90,2.37,91,0.964,206,1.473,207,1.473,231,2.234,236,2.007,238,2.19,253,2.305,261,1.346,265,2.305,270,1.473,271,1.402,272,1.941,274,1.346,291,2.785,296,2.753,309,0.831,313,0.766,329,1.687,339,1.165,340,0.927,361,0.848,368,4.132,371,0.848,379,1.987,386,1.006,392,1.606,393,1.193,487,1.489,491,2.115,492,1.553,499,0.951,503,1.346,507,2.316,508,1.95,520,0.951,525,1.022,532,1.52,558,0.885,561,0.927,569,0.977,571,2.442,578,4.118,581,1.259,584,0.875,589,1.346,595,1.259,597,1.022,599,0.801,609,1.812,610,0.951,614,1.402,622,0.905,626,3.004,629,5.999,638,1.193,639,0.857,644,2.048,646,0.885,654,1.98,661,1.074,664,0.748,686,0.808,693,0.84,716,1.116,724,1.193,725,1.116,732,1.056,738,1.116,749,1.259,751,1.165,754,7.268,758,1.006,766,0.991,769,1.116,781,1.165,782,1.785,784,0.939,799,1.074,806,1.116,808,0.964,814,0.885,816,3.332,834,1.022,838,2.683,848,1.193,869,2.724,876,1.193,884,2.388,899,1.687,900,1.116,901,1.299,904,1.785,910,1.074,913,0.951,925,1.139,926,2.234,927,1.139,935,2.336,937,1.812,941,1.116,947,1.224,981,1.193,1004,1.259,1015,1.038,1016,1.038,1035,1.022,1063,1.299,1089,1.165,1129,2.234,1177,1.165,1182,1.094,1208,1.346,1209,3.895,1262,1.906,1274,1.139,1283,1.346,1286,1.116,1297,2.171,1333,2.926,1334,5.455,1338,1.941,1346,1.473,1354,1.193,1362,0.895,1374,1.038,1377,3.106,1378,1.259,1393,1.346,1406,1.402,1434,3.01,1440,1.567,1443,1.094,1458,1.734,1468,1.259,1497,1.299,1542,1.473,1556,1.812,1578,1.402,1620,1.139,1679,2.488,1686,2.388,1695,1.402,1739,3.218,1768,1.193,1796,2.852,1848,1.567,1874,1.346,1885,1.346,1887,2.305,1924,1.346,2070,1.074,2082,1.346,2097,1.056,2098,1.193,2117,2.613,2127,1.299,2134,3.218,2193,3.218,2238,1.299,2252,2.442,2274,1.094,2336,1.139,2382,1.259,2586,2.171,2615,1.402,2732,1.299,2753,1.812,2789,2.171,2861,1.299,2874,1.473,2920,1.567,2959,1.402,2978,1.165,3026,1.402,3174,1.259,3177,1.165,3480,1.224,3766,1.346,3793,1.165,3885,1.224,3951,1.299,4372,1.567,4413,1.473,4521,4.644,4573,1.402,4589,2.305,4632,2.171,4633,1.473,4960,1.473,5132,2.488,5320,1.567,5497,1.402,5616,1.402,5950,1.299,6000,2.78,6016,1.473,6138,1.567,6198,1.402,6203,1.567,6330,1.567,6418,1.299,6570,1.473,6653,2.613,6663,1.402,6711,1.473,6904,2.78,6906,1.473,6917,1.473,6919,2.78,6956,2.78,7116,1.299,7161,1.473,7162,1.71,7163,1.567,7164,2.613,7165,1.567,7166,1.71,7167,1.71,7168,1.71,7169,2.388,7170,1.567,7171,1.567,7172,1.567,7173,1.567,7174,1.473,7175,1.567,7176,1.567,7177,1.71,7178,1.71,7179,1.71,7180,1.71,7181,3.034,7182,1.402,7183,1.71,7184,1.71,7185,1.473,7186,1.71,7187,1.71,7188,5.19,7189,1.71,7190,4.949,7191,1.567,7192,1.567,7193,1.71,7194,1.567,7195,1.567,7196,1.567,7197,1.473,7198,1.71,7199,1.71,7200,1.567,7201,3.034,7202,1.71,7203,1.567,7204,1.71,7205,1.71,7206,1.71,7207,1.71,7208,1.71,7209,1.71,7210,1.71,7211,1.71,7212,1.567,7213,1.473,7214,1.71,7215,3.034]],["component/38",[72,0.396]],["keyword/38",[]],["title/39-1",[597,41.775,5286,57.346]],["name/39-1",[]],["text/39-1",[]],["component/39-1",[]],["keyword/39-1",[]],["title/39-2",[21,12.962,33,12.84,221,21.821,367,23.128,5992,31.748,7216,35.479]],["name/39-2",[]],["text/39-2",[]],["component/39-2",[]],["keyword/39-2",[]],["title/39-3",[21,12.989,143,44.339,7217,47.402]],["name/39-3",[]],["text/39-3",[]],["component/39-3",[]],["keyword/39-3",[]],["title/39-4",[21,12.989,913,33.493,7217,47.402]],["name/39-4",[]],["text/39-4",[]],["component/39-4",[]],["keyword/39-4",[]],["title/39-5",[15,22.23,21,11.405,44,31.106,356,27.669]],["name/39-5",[]],["text/39-5",[]],["component/39-5",[]],["keyword/39-5",[]],["title/39",[21,8.351,33,19.929,143,28.506,1864,30.475,5851,31.748,7217,30.475]],["name/39",[253,0.709]],["text/39",[2,3.399,3,1.693,5,0.829,6,3.279,10,3.637,13,3.587,14,1.944,15,3.409,16,1.414,21,2.487,25,3.899,27,2.829,28,0.716,30,3.868,33,3.002,35,4.157,37,1.068,38,4.159,43,2.824,44,3.123,45,1.991,48,1.414,50,0.788,51,0.801,58,2.104,62,2.21,65,1.712,81,0.661,83,3.558,84,1.337,85,0.861,87,2.669,90,1.393,221,1.354,231,1.769,233,0.776,236,0.648,237,0.716,243,1.538,244,1.082,252,1.137,253,3.097,254,0.921,262,0.861,263,0.845,291,1.47,294,1.693,296,1.168,306,0.829,309,1.608,313,0.591,316,0.648,333,1.693,340,2.21,356,0.691,361,1.192,367,3.971,379,3.942,382,2.086,383,0.683,386,0.776,392,0.699,413,0.776,446,0.972,487,1.18,492,1.693,498,0.829,499,0.734,507,4.307,508,0.629,509,2.133,525,0.788,529,2.398,532,1.204,547,2.436,548,0.691,552,1.303,555,1.826,569,0.754,571,0.788,577,0.879,578,1.459,584,1.23,585,3.39,586,0.945,597,5.096,608,2.159,610,0.734,611,1.601,612,0.654,613,0.734,617,1.039,622,0.699,627,0.815,639,3.33,645,0.879,647,1.003,653,0.734,654,0.861,655,0.829,664,0.577,688,0.972,692,0.744,693,0.648,700,0.754,705,0.744,731,1.287,734,4.57,758,1.414,765,0.776,773,1.826,774,0.945,782,0.776,783,0.845,784,0.725,786,0.754,789,2.923,790,1.082,792,0.921,793,0.879,796,2.183,797,2.158,798,0.899,801,0.921,803,1.003,807,0.829,808,0.744,814,1.243,816,0.776,825,0.945,833,0.845,834,0.788,842,1.23,867,0.861,903,1.891,904,1.946,906,1.303,908,0.776,913,2.267,914,0.829,921,2.204,927,0.879,935,0.754,936,3.433,937,0.788,939,1.538,940,1.892,941,0.861,954,1.003,959,0.861,983,1.601,987,0.765,1010,0.815,1013,0.815,1014,0.921,1015,0.801,1016,2.875,1021,1.538,1024,3.222,1030,1.137,1035,1.436,1038,0.921,1064,0.972,1096,1.538,1114,0.972,1123,1.003,1124,1.971,1131,1.003,1145,0.945,1147,1.039,1159,1.082,1162,4.353,1166,1.393,1204,0.654,1231,0.845,1237,0.945,1245,1.039,1257,1.459,1263,1.209,1311,1.769,1312,1.676,1313,0.801,1317,0.921,1338,1.538,1367,0.945,1382,1.082,1388,1.003,1402,1.676,1419,0.765,1433,0.945,1443,0.845,1455,1.082,1461,0.845,1477,1.137,1480,2.716,1595,0.899,1652,0.972,1655,1.082,1658,1.971,1733,4.751,1763,1.082,1768,0.921,1839,1.137,1863,4.883,1872,0.945,1881,0.879,1885,1.892,1917,1.003,1926,1.003,1934,1.72,1990,1.082,2043,1.209,2097,0.815,2135,1.72,2136,1.137,2163,1.137,2221,1.637,2252,2.435,2275,1.137,2277,1.082,2301,1.769,2344,1.082,2357,1.637,2360,1.137,2439,0.801,2475,1.209,2574,1.003,2732,1.003,2753,0.788,2792,1.971,3035,3.032,3046,1.003,3106,1.039,3142,1.209,3168,1.676,3301,1.637,3362,0.899,3384,1.003,3419,2.849,3424,0.945,3480,1.72,3502,0.861,3541,0.972,3694,2.514,3732,1.209,3750,1.209,3769,1.209,4184,1.039,4570,1.039,4863,1.082,5096,1.137,5286,1.082,5309,1.209,5616,1.082,5660,1.209,5809,1.137,5852,1.137,5965,1.971,5990,7.211,5992,2.713,6016,1.137,6042,3.511,6045,6.092,6117,1.003,6155,1.209,6285,2.202,6432,1.209,6466,1.039,6606,1.971,6936,1.209,7010,1.209,7023,1.209,7048,1.209,7116,1.003,7174,1.137,7176,1.209,7182,1.082,7191,2.202,7192,1.209,7194,5.324,7195,1.209,7197,1.137,7216,4.864,7217,1.039,7218,1.082,7219,1.209,7220,1.32,7221,3.309,7222,2.403,7223,3.309,7224,4.864,7225,1.32,7226,1.32,7227,1.209,7228,1.209,7229,2.403,7230,2.403,7231,1.209,7232,1.209,7233,1.32,7234,1.32,7235,1.32,7236,1.32,7237,1.209,7238,1.32,7239,1.137,7240,1.32,7241,1.32,7242,1.32,7243,1.32,7244,1.32,7245,1.32,7246,1.32,7247,1.32,7248,1.32,7249,1.32,7250,1.32,7251,1.32,7252,1.32,7253,4.736,7254,1.209,7255,1.32,7256,2.403,7257,1.32,7258,1.32,7259,1.32,7260,1.32,7261,4.077,7262,1.32,7263,1.32,7264,1.32,7265,1.32,7266,1.32,7267,1.32,7268,1.32,7269,1.32,7270,1.32,7271,1.32,7272,1.32,7273,1.32,7274,1.32,7275,1.32,7276,1.32,7277,1.32,7278,2.403,7279,1.32,7280,1.32,7281,3.309,7282,2.403,7283,2.202,7284,1.32,7285,1.32,7286,1.32,7287,1.32,7288,1.32,7289,1.209,7290,1.32,7291,1.32,7292,1.32,7293,1.32,7294,1.32,7295,1.32,7296,1.32,7297,1.32,7298,1.32,7299,1.32,7300,1.32]],["component/39",[72,0.396]],["keyword/39",[]],["title/40-1",[30,25.317,1374,36.555,1391,41.017]],["name/40-1",[]],["text/40-1",[]],["component/40-1",[]],["keyword/40-1",[]],["title/40-2",[1436,71.806]],["name/40-2",[]],["text/40-2",[]],["component/40-2",[]],["keyword/40-2",[]],["title/40-3",[7301,76.406]],["name/40-3",[]],["text/40-3",[]],["component/40-3",[]],["keyword/40-3",[]],["title/40-4",[21,11.405,646,27.359,1204,26.221,1374,32.098]],["name/40-4",[]],["text/40-4",[]],["component/40-4",[]],["keyword/40-4",[]],["title/40-5",[920,35.227,2543,36.016,3015,37.848,3775,43.362]],["name/40-5",[]],["text/40-5",[]],["component/40-5",[]],["keyword/40-5",[]],["title/40-6",[2543,56.789]],["name/40-6",[]],["text/40-6",[]],["component/40-6",[]],["keyword/40-6",[]],["title/40-7",[920,55.545]],["name/40-7",[]],["text/40-7",[]],["component/40-7",[]],["keyword/40-7",[]],["title/40-8",[3015,59.677]],["name/40-8",[]],["text/40-8",[]],["component/40-8",[]],["keyword/40-8",[]],["title/40-9",[920,46.474,2543,47.515,3775,38.649]],["name/40-9",[]],["text/40-9",[]],["component/40-9",[]],["keyword/40-9",[]],["title/40-10",[33,15.63,644,23.613,2040,30.16,2955,34.702,7302,40.591]],["name/40-10",[]],["text/40-10",[]],["component/40-10",[]],["keyword/40-10",[]],["title/40-11",[21,9.169,33,14.098,38,16.196,1407,33.462,2955,31.3,7302,36.612]],["name/40-11",[]],["text/40-11",[]],["component/40-11",[]],["keyword/40-11",[]],["title/40-12",[21,12.989,508,28.716,2955,44.339]],["name/40-12",[]],["text/40-12",[]],["component/40-12",[]],["keyword/40-12",[]],["title/40-13",[1464,48.779,1535,44.75]],["name/40-13",[]],["text/40-13",[]],["component/40-13",[]],["keyword/40-13",[]],["title/40",[21,10.166,28,25.555,33,15.63,1352,33.735,1374,28.609]],["name/40",[446,0.688]],["text/40",[2,4.107,3,0.835,5,0.372,6,3.934,7,0.755,9,1.07,10,3.495,11,1.044,12,0.657,13,3.276,14,2.511,15,3.593,20,0.45,21,2.504,22,0.772,24,2.097,25,4.859,28,0.885,29,0.7,30,4.067,33,3.387,35,3.766,37,2.008,38,4.357,40,0.288,41,0.726,42,0.436,43,2.06,44,2.492,45,2.214,48,0.348,51,0.359,52,1.24,55,0.386,57,1.677,58,4.108,59,0.932,60,0.334,62,0.615,65,1.082,67,1.082,71,0.436,81,0.297,83,3.286,84,0.329,90,1.687,91,0.334,98,0.45,195,0.413,212,0.285,236,1.235,238,1.12,254,0.413,266,0.45,291,2.935,294,1.677,296,2.56,297,0.379,303,0.394,309,2.06,316,0.291,322,0.325,329,1.163,332,0.338,334,0.365,339,0.403,340,0.321,345,0.424,346,0.436,350,0.334,355,1.269,356,0.31,361,0.294,364,0.568,378,0.7,379,3.358,382,1.852,383,1.302,384,1.269,387,0.677,390,0.394,392,0.6,487,2.08,491,0.844,492,0.58,493,0.354,498,0.712,499,0.631,501,0.413,507,1.983,508,1.2,509,2.217,510,0.93,511,0.343,526,0.51,529,0.348,532,1.813,548,1.893,550,0.615,552,1.578,556,1.291,557,0.466,561,1.134,569,0.338,571,1.249,575,0.975,578,0.991,584,1.677,585,0.885,588,1.111,591,0.755,592,0.365,593,1.025,596,0.51,597,0.677,598,0.466,599,2.569,609,0.354,610,1.163,611,0.394,612,1.037,622,0.313,627,1.291,637,0.688,639,1.973,640,0.31,644,1.973,645,0.755,646,1.506,653,0.908,654,0.386,659,0.321,661,1.025,676,1.24,686,0.988,687,3.442,692,1.64,693,0.801,702,0.74,705,1.847,709,0.403,715,0.835,717,0.386,728,0.946,731,0.874,732,0.365,734,0.639,735,0.485,738,0.386,746,0.259,752,0.413,758,2.128,759,0.394,763,0.424,766,0.657,767,0.7,769,0.386,775,1.007,778,0.485,783,1.044,784,1.381,791,0.466,796,0.607,797,0.864,798,0.403,799,0.712,802,0.359,805,0.74,806,0.74,807,0.712,808,0.334,814,0.844,815,1.314,821,1.025,826,0.7,834,0.354,838,0.321,842,1.677,853,0.726,873,0.394,874,0.688,876,0.413,880,0.812,884,0.466,891,0.413,892,0.436,894,0.688,895,0.394,899,0.908,900,0.386,901,0.45,903,0.338,904,0.348,906,0.321,910,1.828,911,0.726,912,0.365,914,1.314,920,6.274,922,0.976,932,1.007,936,0.622,937,0.354,942,0.403,943,1.065,945,0.466,968,0.394,978,0.45,979,0.424,987,0.657,988,0.424,990,0.92,992,0.436,1001,0.772,1003,0.466,1005,0.542,1010,0.365,1013,0.365,1016,0.359,1017,0.861,1021,1.338,1025,0.386,1027,1.168,1029,0.485,1038,1.138,1040,0.835,1055,0.755,1056,0.485,1065,0.485,1083,0.372,1087,0.372,1089,0.772,1111,1.458,1134,0.485,1139,0.394,1141,0.386,1142,0.394,1151,0.485,1154,0.466,1155,0.436,1172,0.466,1182,0.379,1194,0.812,1195,0.485,1204,0.294,1208,0.466,1210,1.138,1224,0.791,1227,0.51,1231,0.726,1244,0.688,1247,0.466,1257,0.359,1260,1.269,1277,0.51,1287,0.424,1297,0.424,1307,0.892,1311,0.436,1312,0.791,1313,0.688,1319,0.424,1332,0.436,1352,2.59,1357,0.861,1362,1.714,1374,3.197,1384,0.485,1391,4.604,1393,0.466,1394,0.436,1402,0.791,1406,0.485,1408,0.712,1419,0.657,1428,1.338,1434,0.436,1435,2.211,1436,0.51,1437,0.413,1445,0.466,1446,0.466,1449,0.372,1450,2.823,1458,0.932,1461,0.379,1462,0.485,1470,0.485,1546,0.379,1549,0.354,1556,0.677,1576,0.51,1620,0.394,1628,1.138,1649,0.436,1659,2.167,1678,0.413,1681,0.772,1686,0.466,1692,0.51,1697,0.45,1706,1.039,1708,0.542,1713,0.726,1720,0.835,1766,0.542,1775,0.436,1790,1.393,1796,0.413,1797,0.892,1798,0.436,1799,0.835,1810,1.405,1813,0.791,1820,1.039,1823,0.772,1826,1.284,1852,0.861,1872,0.424,1876,0.466,1881,0.394,1890,0.466,1918,0.93,1923,0.861,1937,0.403,1949,1.405,1953,0.812,1958,0.436,1961,0.466,2006,0.372,2037,0.485,2040,1.338,2049,0.403,2053,0.51,2055,0.359,2056,0.542,2063,1.24,2070,0.372,2097,0.365,2098,0.791,2107,0.436,2127,0.45,2149,0.542,2166,0.51,2181,0.485,2186,0.51,2193,0.466,2204,0.755,2217,0.861,2226,0.835,2236,0.542,2272,0.51,2288,0.466,2296,0.542,2336,0.755,2341,0.424,2357,1.111,2374,0.755,2389,1.201,2391,0.45,2392,1.424,2413,0.45,2429,0.51,2435,0.485,2439,0.359,2473,0.93,2541,1.24,2543,6.029,2560,0.51,2566,0.466,2574,0.861,2593,0.93,2595,1.201,2604,1.24,2648,0.466,2650,3.327,2675,0.51,2702,0.976,2719,0.51,2734,0.772,2753,0.354,2760,0.485,2762,0.466,2765,0.436,2794,0.424,2800,2.664,2879,0.379,2881,0.835,2887,0.424,2890,0.976,2892,0.51,2924,0.542,2955,4.041,2978,0.403,3014,0.394,3015,4.839,3033,1.852,3068,0.93,3094,0.485,3104,0.436,3105,0.93,3106,0.466,3168,0.791,3174,0.436,3181,0.542,3199,0.403,3201,0.424,3204,0.45,3213,0.466,3273,0.812,3301,1.424,3356,0.485,3362,1.424,3374,0.413,3420,0.436,3424,1.497,3425,0.45,3431,0.542,3501,0.861,3604,0.542,3676,0.424,3686,0.485,3720,0.542,3751,0.436,3754,0.861,3774,0.542,3775,3.922,3776,1.916,3802,0.466,3814,0.542,3816,0.892,3819,0.51,3827,0.485,3836,0.436,3838,0.93,3853,0.542,3868,0.51,3885,0.424,3947,0.466,4076,0.466,4124,0.51,4135,0.542,4136,0.45,4181,0.93,4208,0.485,4231,0.51,4305,0.485,4357,0.51,4415,0.45,4462,1.039,4469,0.485,4552,0.466,4569,0.51,4573,0.485,4686,0.51,4694,0.542,4705,0.51,4712,0.466,5139,0.861,5149,0.542,5190,0.466,5192,0.51,5196,0.51,5199,0.485,5337,0.51,5406,1.039,5484,0.466,5525,1.039,5559,0.542,5604,0.51,5616,0.485,5667,0.542,5744,0.542,5784,0.45,5786,0.51,5801,0.485,5847,0.892,5869,0.542,5946,0.51,5959,0.542,5985,0.892,5994,0.542,6028,0.485,6083,0.542,6086,0.51,6106,1.405,6145,0.542,6157,0.466,6173,0.51,6183,0.542,6269,0.542,6388,0.51,6402,0.542,6418,0.45,6430,0.485,6469,0.51,6478,0.466,6501,0.542,6549,0.51,6660,0.51,6866,0.485,6906,0.51,6916,0.51,6922,0.542,6931,0.51,6964,0.542,7003,0.976,7035,0.542,7044,0.51,7115,0.542,7116,0.45,7182,0.485,7301,2.305,7302,3.891,7303,2.516,7304,0.592,7305,0.592,7306,0.592,7307,0.51,7308,0.592,7309,0.592,7310,0.542,7311,2.167,7312,1.134,7313,0.592,7314,1.632,7315,1.134,7316,0.592,7317,0.592,7318,0.592,7319,1.134,7320,0.592,7321,1.632,7322,1.632,7323,0.592,7324,0.592,7325,0.592,7326,2.516,7327,0.592,7328,1.134,7329,1.134,7330,0.592,7331,0.542,7332,0.592,7333,0.592,7334,0.592,7335,0.592,7336,0.592,7337,0.542,7338,1.134,7339,1.134,7340,0.592,7341,0.592,7342,0.592,7343,0.592,7344,0.592,7345,0.592,7346,0.592,7347,0.592,7348,0.592,7349,1.134,7350,0.592,7351,0.592,7352,2.091,7353,0.592,7354,0.592,7355,0.592,7356,0.592,7357,0.592,7358,0.592,7359,0.592,7360,0.592,7361,0.592,7362,0.592,7363,0.592,7364,2.516,7365,0.592,7366,0.592,7367,1.134,7368,0.592,7369,0.592,7370,0.592,7371,0.592,7372,0.592,7373,0.592,7374,0.592,7375,0.592,7376,0.592,7377,0.592,7378,0.592,7379,0.592,7380,0.592,7381,0.592,7382,0.592,7383,0.592,7384,0.592,7385,0.592,7386,0.592,7387,0.542,7388,1.039,7389,1.134,7390,0.592,7391,0.592,7392,0.592,7393,0.592,7394,0.592,7395,0.592,7396,0.542,7397,0.592,7398,2.167,7399,0.592,7400,0.592,7401,1.134,7402,1.134,7403,0.592,7404,0.592,7405,0.592,7406,0.592,7407,0.592,7408,0.592,7409,0.592,7410,0.592,7411,0.592,7412,0.592,7413,0.592,7414,0.592,7415,0.592,7416,0.592,7417,1.134,7418,0.592,7419,0.592,7420,0.592,7421,0.592,7422,0.592,7423,0.592,7424,0.592,7425,0.542,7426,0.592,7427,0.592,7428,0.592,7429,0.592,7430,0.592,7431,0.592,7432,0.592,7433,0.592,7434,0.592,7435,0.592,7436,0.592,7437,0.592,7438,0.592,7439,0.592,7440,0.592]],["component/40",[72,0.396]],["keyword/40",[]],["title/41-1",[368,47.643]],["name/41-1",[]],["text/41-1",[]],["component/41-1",[]],["keyword/41-1",[]],["title/41-2",[371,29.862,861,41.017,1070,45.752]],["name/41-2",[]],["text/41-2",[]],["component/41-2",[]],["keyword/41-2",[]],["title/41-3",[33,19.971,903,34.412,1362,31.511]],["name/41-3",[]],["text/41-3",[]],["component/41-3",[]],["keyword/41-3",[]],["title/41-4",[655,52.377]],["name/41-4",[]],["text/41-4",[]],["component/41-4",[]],["keyword/41-4",[]],["title/41-5",[30,19.814,33,15.63,1928,40.591,2548,37.098,7441,43.191]],["name/41-5",[]],["text/41-5",[]],["component/41-5",[]],["keyword/41-5",[]],["title/41-6",[33,19.971,1182,38.536,1796,42.005]],["name/41-6",[]],["text/41-6",[]],["component/41-6",[]],["keyword/41-6",[]],["title/41",[4,19.941,21,11.384,27,19.624,203,21.885,272,21.022,743,24.958,744,23.513,1875,22.914]],["name/41",[743,0.709]],["text/41",[2,3.902,3,1.033,4,1.225,6,2.493,9,1.796,10,3.282,12,2.034,13,4.041,14,2.22,15,1.957,19,2.064,21,2.528,25,4.15,27,2.781,30,2.649,31,3.171,33,3.68,35,4.228,37,1.559,38,4.302,39,1.375,40,0.981,44,1.187,45,3.122,53,3.034,58,3.072,59,1.154,81,2.332,83,0.981,90,2.034,91,1.138,203,1.345,212,0.972,221,1.138,236,4.479,238,2.98,272,1.292,281,2.448,294,1.033,296,0.981,297,1.292,329,1.123,355,2.826,361,1.001,368,2.66,371,1.74,379,0.981,384,1.225,393,1.408,487,3.861,490,1.408,491,1.044,501,2.448,507,4.15,509,3.617,541,2.584,548,1.056,556,3.89,558,1.044,561,1.903,578,1.225,580,1.408,583,1.246,603,2.512,604,1.534,610,1.123,640,1.056,644,1.758,646,1.816,654,1.317,655,6.124,661,1.268,664,0.882,692,1.138,693,0.991,717,2.29,743,1.534,744,1.445,745,1.589,746,1.534,747,1.445,748,2.39,749,1.486,750,1.17,753,1.739,765,1.187,769,1.317,789,2.874,796,1.081,797,1.858,801,1.408,814,1.044,816,1.187,832,1.739,834,1.206,838,3.017,852,1.375,853,1.292,866,2.29,873,1.345,874,1.225,890,1.534,899,1.952,900,2.29,903,3.179,904,1.187,906,1.095,912,2.874,928,1.206,936,1.108,964,1.345,998,1.739,1000,2.878,1007,1.292,1015,2.13,1045,1.655,1054,1.268,1086,2.666,1103,1.534,1114,1.486,1141,2.29,1152,1.655,1157,1.445,1166,1.17,1194,1.445,1195,1.655,1208,1.589,1231,2.979,1261,1.317,1262,1.268,1274,1.345,1279,1.445,1297,1.445,1310,1.655,1311,2.584,1320,1.486,1334,1.445,1337,1.589,1349,1.739,1362,4.314,1377,2.666,1388,1.534,1402,1.408,1408,1.268,1449,1.268,1450,5.493,1539,1.589,1543,1.589,1552,2.762,1618,1.589,1697,1.534,1796,3.247,1863,1.408,1874,1.589,1881,1.345,1923,2.666,1928,1.739,2006,2.205,2055,1.225,2059,1.486,2082,1.589,2097,1.246,2121,1.655,2135,1.445,2162,1.739,2168,1.408,2195,2.512,2413,1.534,2548,3.664,2554,1.589,2586,1.445,2651,1.589,2654,2.762,2794,1.445,2800,1.486,2925,1.85,3295,2.338,3301,3.79,3361,1.655,3658,3.022,3695,1.445,3885,1.445,4004,1.655,4153,2.584,4164,1.85,4322,2.584,4506,1.85,4589,1.534,4632,2.512,4971,1.589,5112,1.739,5192,1.739,5322,1.589,5401,2.878,5497,5.668,5676,1.739,5810,1.85,5950,1.534,5975,1.655,6023,1.739,6173,1.739,6181,1.739,6418,1.534,6430,1.655,6569,1.85,6867,1.85,7032,1.655,7069,1.739,7289,1.85,7307,1.739,7396,1.85,7398,1.739,7441,1.85,7442,2.019,7443,2.019,7444,2.019,7445,2.019,7446,2.019,7447,3.51,7448,2.019,7449,1.589,7450,2.019,7451,2.019,7452,2.019,7453,2.666,7454,2.019,7455,1.85,7456,3.51,7457,2.019,7458,2.019,7459,2.019,7460,1.85,7461,1.739,7462,2.019,7463,3.51,7464,2.019,7465,2.019,7466,2.019,7467,2.019,7468,2.019,7469,2.019,7470,2.019,7471,1.739,7472,1.85,7473,1.85,7474,2.019,7475,2.019,7476,2.019]],["component/41",[72,0.396]],["keyword/41",[]],["title/42-1",[201,46.588,284,47.631]],["name/42-1",[]],["text/42-1",[]],["component/42-1",[]],["keyword/42-1",[]],["title/42-2",[203,46.588,284,47.631]],["name/42-2",[]],["text/42-2",[]],["component/42-2",[]],["keyword/42-2",[]],["title/42-3",[214,57.346,918,60.227]],["name/42-3",[]],["text/42-3",[]],["component/42-3",[]],["keyword/42-3",[]],["title/42-4",[28,37.917,201,46.588]],["name/42-4",[]],["text/42-4",[]],["component/42-4",[]],["keyword/42-4",[]],["title/42",[2204,55.545]],["name/42",[2204,0.622]],["text/42",[]],["component/42",[72,0.396]],["keyword/42",[]],["title/43-1",[1015,36.555,1832,43.104,6026,51.864]],["name/43-1",[]],["text/43-1",[]],["component/43-1",[]],["keyword/43-1",[]],["title/43-2",[7185,71.806]],["name/43-2",[]],["text/43-2",[]],["component/43-2",[]],["keyword/43-2",[]],["title/43-3",[10,19.665,21,10.166,1875,32.875,1937,32.102,3695,33.735]],["name/43-3",[]],["text/43-3",[]],["component/43-3",[]],["keyword/43-3",[]],["title/43-4",[21,11.384,33,10.894,38,12.515,238,17.596,367,19.624,767,20.277,854,25.858,1937,22.375]],["name/43-4",[]],["text/43-4",[]],["component/43-4",[]],["keyword/43-4",[]],["title/43-5",[10,19.665,45,19.814,81,23.613,1314,37.098,4413,40.591]],["name/43-5",[]],["text/43-5",[]],["component/43-5",[]],["keyword/43-5",[]],["title/43-6",[10,22.022,21,7.086,33,10.894,1875,22.914,2135,23.513,3695,23.513,5633,25.858,7453,24.958]],["name/43-6",[]],["text/43-6",[]],["component/43-6",[]],["keyword/43-6",[]],["title/43-7",[355,50.61]],["name/43-7",[]],["text/43-7",[]],["component/43-7",[]],["keyword/43-7",[]],["title/43-8",[10,17.738,21,13.927,333,21.755,355,25.805,1480,28.321]],["name/43-8",[]],["text/43-8",[]],["component/43-8",[]],["keyword/43-8",[]],["title/43-9",[13,17.647,21,8.351,38,14.75,48,22.775,355,23.501,734,21.821,1374,23.501]],["name/43-9",[]],["text/43-9",[]],["component/43-9",[]],["keyword/43-9",[]],["title/43-10",[10,17.738,21,13.927,333,21.755,961,31.3,1480,28.321]],["name/43-10",[]],["text/43-10",[]],["component/43-10",[]],["keyword/43-10",[]],["title/43-11",[13,17.647,21,8.351,38,14.75,48,22.775,734,21.821,961,28.506,1374,23.501]],["name/43-11",[]],["text/43-11",[]],["component/43-11",[]],["keyword/43-11",[]],["title/43-12",[13,16.2,21,7.666,38,13.541,383,18.39,754,27.004,1334,25.44,1374,21.575,7477,35.548]],["name/43-12",[]],["text/43-12",[]],["component/43-12",[]],["keyword/43-12",[]],["title/43-13",[81,41.771]],["name/43-13",[]],["text/43-13",[]],["component/43-13",[]],["keyword/43-13",[]],["title/43-14",[181,53.13,3013,57.346]],["name/43-14",[]],["text/43-14",[]],["component/43-14",[]],["keyword/43-14",[]],["title/43-15",[21,15.047,309,22.91,1017,35.808,5787,38.649]],["name/43-15",[]],["text/43-15",[]],["component/43-15",[]],["keyword/43-15",[]],["title/43-16",[746,30.57,3676,50.054]],["name/43-16",[]],["text/43-16",[]],["component/43-16",[]],["keyword/43-16",[]],["title/43-17",[21,11.405,746,23.115,1480,35.227,3695,37.848]],["name/43-17",[]],["text/43-17",[]],["component/43-17",[]],["keyword/43-17",[]],["title/43-18",[21,12.989,746,26.325,1048,47.402]],["name/43-18",[]],["text/43-18",[]],["component/43-18",[]],["keyword/43-18",[]],["title/43-19",[21,10.166,33,15.63,309,22.91,3111,37.098,7478,47.138]],["name/43-19",[]],["text/43-19",[]],["component/43-19",[]],["keyword/43-19",[]],["title/43-20",[353,51.489,746,30.57]],["name/43-20",[]],["text/43-20",[]],["component/43-20",[]],["keyword/43-20",[]],["title/43-21",[21,12.989,309,29.272,961,44.339]],["name/43-21",[]],["text/43-21",[]],["component/43-21",[]],["keyword/43-21",[]],["title/43-22",[21,12.989,1374,36.555,3836,44.339]],["name/43-22",[]],["text/43-22",[]],["component/43-22",[]],["keyword/43-22",[]],["title/43-23",[823,47.631,841,51.489]],["name/43-23",[]],["text/43-23",[]],["component/43-23",[]],["keyword/43-23",[]],["title/43-24",[21,8.351,33,12.84,38,14.75,823,26.37,1141,25.263,1943,30.475,4558,29.414]],["name/43-24",[]],["text/43-24",[]],["component/43-24",[]],["keyword/43-24",[]],["title/43-25",[9,18.189,33,11.787,45,14.942,356,18.598,603,25.44,608,23.193,612,17.625,686,16.791]],["name/43-25",[]],["text/43-25",[]],["component/43-25",[]],["keyword/43-25",[]],["title/43-26",[765,41.138,823,47.631]],["name/43-26",[]],["text/43-26",[]],["component/43-26",[]],["keyword/43-26",[]],["title/43-27",[33,14.098,45,17.872,765,25.007,823,28.955,1158,32.298,3836,31.3]],["name/43-27",[]],["text/43-27",[]],["component/43-27",[]],["keyword/43-27",[]],["title/43-28",[21,10.166,746,20.603,750,27.318,7479,43.191,7480,43.191]],["name/43-28",[]],["text/43-28",[]],["component/43-28",[]],["keyword/43-28",[]],["title/43-29",[682,40.561,746,18.584,972,46.215,7481,38.957]],["name/43-29",[]],["text/43-29",[]],["component/43-29",[]],["keyword/43-29",[]],["title/43-30",[21,11.405,746,23.115,872,45.54,1002,40.174]],["name/43-30",[]],["text/43-30",[]],["component/43-30",[]],["keyword/43-30",[]],["title/43-31",[746,30.57,7482,69.942]],["name/43-31",[]],["text/43-31",[]],["component/43-31",[]],["keyword/43-31",[]],["title/43",[15,14.942,21,12.122,27,21.232,28,19.271,45,14.942,81,17.807,954,27.004]],["name/43",[764,0.688]],["text/43",[2,4.159,3,0.469,4,0.557,6,2.992,7,0.316,9,0.879,10,4.309,12,1.206,13,4.09,14,1.956,15,3.131,16,1.01,19,0.783,21,2.578,24,0.771,25,4.384,27,1.446,28,1.806,30,3.676,31,0.625,33,3.669,35,3.504,37,2.729,38,4.166,40,0.835,43,1.876,45,3.046,48,0.783,51,0.288,53,1.734,55,0.31,58,2.792,59,0.524,62,1.487,65,0.475,67,1.419,81,3.003,83,1.876,84,0.264,87,0.517,91,0.268,98,0.361,143,0.98,181,0.361,212,0.827,221,0.75,231,0.35,235,0.851,236,1.188,237,0.721,238,0.491,251,0.284,259,0.697,260,0.79,261,0.374,262,1.121,263,0.587,272,0.304,274,0.374,279,0.389,280,0.409,281,0.331,291,2.372,294,1.403,296,1.333,297,0.587,298,0.98,301,0.35,302,0.34,303,0.316,309,2.506,310,0.284,313,0.213,329,1.157,333,1.239,340,0.497,345,1.963,353,0.35,355,1.47,356,2.884,361,1.201,364,0.667,365,0.331,367,1.446,368,1.189,371,1.51,376,0.625,379,3.246,381,0.316,382,0.681,387,0.284,392,0.704,437,0.331,476,0.34,487,2.127,491,0.889,492,1.239,493,0.284,499,0.264,501,0.331,505,0.298,507,2.658,508,1.718,509,1.593,520,0.51,525,1.026,532,0.86,544,1.099,548,0.696,550,0.257,552,0.257,556,0.821,557,1.047,558,0.688,561,1.313,569,0.981,571,1.819,575,0.284,578,1.042,580,0.331,584,0.469,585,1.313,588,0.625,589,0.374,591,0.611,592,0.821,595,0.35,597,0.795,599,1.133,602,0.625,603,0.34,608,0.868,609,0.548,610,1.157,612,0.852,614,0.389,622,0.704,626,0.288,629,0.722,638,0.331,639,1.374,640,0.249,644,0.667,646,1.253,653,0.264,654,1.789,655,0.836,656,0.548,657,0.389,664,0.582,666,0.906,671,0.611,677,0.34,682,0.576,686,0.983,687,0.943,692,0.75,693,1.346,697,0.293,698,0.31,700,0.271,702,1.789,716,0.31,717,0.868,720,0.64,724,0.928,725,0.31,727,0.821,729,0.279,731,0.491,732,0.293,734,0.75,738,0.868,739,0.34,740,0.722,741,0.576,742,1.091,743,0.361,745,0.374,746,3.416,750,0.771,752,0.64,754,0.361,755,0.587,758,0.783,761,0.76,765,1.791,766,0.532,767,2.056,770,0.323,771,0.697,774,0.34,775,0.566,780,0.389,781,0.323,782,0.783,783,0.304,786,0.271,787,0.34,788,0.697,793,0.316,796,1.297,797,0.704,800,0.409,801,0.64,802,0.557,804,1.906,806,0.31,807,0.298,808,0.517,812,0.323,813,0.435,814,1.253,815,0.576,816,2.802,820,0.361,821,0.298,823,1.649,831,0.409,833,0.587,834,0.548,835,0.374,836,0.697,837,0.389,838,1.806,839,1.985,841,1.264,842,1.239,845,0.576,848,0.64,851,1.011,853,0.587,856,1.146,861,0.323,866,0.868,867,1.121,869,1.144,870,0.752,871,1.331,873,0.316,884,1.352,886,0.361,891,1.689,895,0.611,897,0.64,898,0.361,899,1.157,900,0.868,901,1.305,903,0.524,904,0.783,908,0.54,910,0.298,911,1.099,912,0.566,921,0.611,926,1.264,927,0.316,928,0.548,931,0.435,935,1.74,936,0.731,937,0.284,939,0.304,941,2.677,947,0.34,950,3.191,954,1.58,959,0.31,961,0.675,964,0.316,968,1.613,970,0.409,973,0.409,978,0.697,979,1.229,981,0.928,983,0.611,984,0.64,987,0.275,988,0.34,990,0.517,997,0.409,1002,1.58,1003,0.374,1004,1.783,1007,0.304,1009,0.409,1010,0.293,1014,0.64,1015,0.557,1016,0.288,1017,4.055,1019,0.868,1021,0.304,1025,0.31,1048,0.374,1051,0.374,1054,0.298,1062,0.409,1063,0.361,1064,2.841,1065,0.389,1068,0.952,1076,0.35,1077,2.249,1082,0.409,1083,0.298,1086,2.313,1087,0.298,1088,0.34,1089,0.625,1090,0.675,1097,0.409,1099,0.79,1100,0.952,1101,1.408,1110,0.35,1111,0.928,1114,0.675,1116,0.374,1123,0.361,1125,0.79,1126,0.361,1129,0.35,1139,0.316,1141,0.599,1145,0.34,1149,0.722,1155,0.35,1156,0.752,1158,0.697,1159,1.706,1166,0.532,1171,0.836,1177,0.323,1204,0.455,1207,0.841,1208,0.374,1209,1.352,1210,0.928,1231,0.851,1232,0.548,1235,0.409,1244,0.557,1248,0.928,1254,0.435,1257,0.288,1261,1.357,1262,0.298,1270,1.091,1274,0.611,1283,0.374,1297,0.657,1302,0.566,1312,0.331,1314,0.374,1317,0.64,1319,0.34,1329,0.435,1330,1.219,1333,0.952,1334,1.229,1336,0.409,1337,0.374,1343,0.435,1348,0.435,1350,0.293,1351,0.374,1352,0.34,1354,0.928,1357,0.361,1362,0.48,1364,0.409,1365,0.435,1374,1.664,1376,1.047,1377,1.011,1378,0.35,1379,0.331,1380,0.389,1395,1.011,1401,0.79,1414,0.374,1416,0.435,1418,0.409,1419,0.995,1434,0.675,1443,0.851,1450,1.144,1453,0.435,1458,1.567,1462,0.389,1464,0.331,1468,0.675,1469,0.323,1476,0.31,1480,2.219,1527,0.435,1539,0.374,1549,0.284,1552,0.374,1556,0.284,1557,0.409,1562,1.17,1581,0.31,1633,0.841,1645,0.389,1673,0.841,1686,0.374,1692,0.409,1730,0.841,1733,0.697,1739,0.374,1762,0.841,1775,0.675,1792,0.886,1796,0.64,1798,0.35,1813,0.331,1832,0.34,1858,1.091,1864,1.047,1874,0.722,1875,3.462,1890,0.722,1917,0.361,1920,0.409,1931,1.047,1935,0.841,1937,1.17,1952,0.697,1990,0.389,1991,0.409,2006,0.298,2031,0.374,2049,0.323,2055,0.557,2068,0.389,2070,1.307,2079,0.435,2087,0.34,2097,1.284,2127,0.361,2134,0.374,2135,1.229,2138,0.409,2168,1.451,2170,0.409,2176,0.752,2192,0.841,2193,0.374,2195,0.34,2204,0.316,2212,0.374,2221,0.323,2224,0.35,2277,0.389,2279,0.409,2288,1.047,2301,0.35,2303,0.435,2311,0.752,2323,0.697,2333,0.435,2336,0.611,2337,1.219,2342,0.35,2344,0.389,2350,0.389,2374,0.611,2385,0.331,2389,0.35,2413,0.361,2414,0.389,2429,0.409,2430,0.657,2439,0.557,2473,0.389,2478,0.361,2482,0.435,2586,0.657,2594,0.35,2607,0.34,2615,0.389,2650,0.35,2653,1.733,2676,0.35,2703,0.409,2705,0.409,2709,1.146,2753,0.284,2754,0.374,2765,0.35,2794,0.34,2877,0.374,2878,0.409,2879,0.304,2893,0.35,2897,0.79,2926,0.304,2934,0.697,2954,0.361,3013,1.091,3026,0.389,3084,0.34,3086,0.611,3098,0.752,3104,0.35,3105,0.389,3173,1.58,3174,0.35,3177,0.906,3197,1.219,3301,0.906,3346,0.374,3356,0.389,3383,1.146,3424,0.34,3434,0.409,3450,0.389,3501,0.697,3502,0.31,3667,0.435,3670,0.389,3676,0.34,3686,0.752,3695,3.102,3741,0.284,3753,1.219,3766,0.374,3767,1.305,3795,0.435,3815,0.361,3816,0.374,3820,0.389,3826,1.574,3832,1.219,3836,0.98,3870,0.435,3885,0.34,4144,0.841,4154,0.35,4158,0.389,4160,0.374,4186,0.435,4187,0.409,4236,0.435,4301,0.409,4315,0.435,4319,0.389,4322,0.35,4326,0.374,4351,0.374,4409,0.722,4411,0.409,4421,0.409,4521,0.752,4558,0.697,4570,0.722,4573,0.389,4589,0.361,4626,0.35,4632,0.34,4659,1.479,4681,0.409,4691,0.435,4725,0.409,4815,0.409,4825,0.435,4865,0.435,4895,0.409,4971,0.374,5132,0.389,5158,0.389,5190,0.374,5294,0.409,5331,1.146,5403,0.435,5410,0.841,5436,0.409,5482,0.409,5522,0.389,5535,0.435,5593,0.435,5610,0.389,5676,1.146,5778,0.752,5782,0.435,5787,1.091,5792,0.435,5795,0.435,5829,0.435,5835,0.374,5838,0.409,5851,1.408,5879,0.435,5903,1.408,5905,0.389,5920,0.752,5950,0.361,5965,0.389,5973,0.435,5975,0.389,5981,0.435,5988,0.435,5993,0.79,6026,0.409,6028,0.389,6086,0.409,6157,0.374,6207,0.435,6317,0.435,6320,0.435,6418,0.361,6422,0.374,6466,0.374,6478,0.374,6534,0.331,6606,1.091,6653,0.79,6663,0.389,6687,1.791,6711,0.409,6923,0.435,7024,0.409,7032,1.091,7044,0.409,7046,1.219,7068,0.841,7069,0.409,7070,0.79,7071,0.841,7072,0.435,7073,0.435,7074,0.435,7075,0.435,7076,0.435,7116,0.697,7118,0.409,7127,0.435,7160,0.435,7161,0.409,7163,0.435,7164,1.146,7165,0.435,7169,0.374,7170,0.435,7171,0.435,7172,0.435,7173,0.435,7174,1.146,7175,0.435,7185,0.79,7200,0.435,7217,1.352,7218,0.389,7219,0.435,7231,0.435,7237,0.435,7239,0.409,7307,0.79,7388,0.435,7398,0.409,7449,0.722,7453,1.011,7455,0.435,7479,3.301,7480,0.435,7481,0.435,7483,0.917,7484,0.475,7485,0.475,7486,0.475,7487,0.475,7488,0.475,7489,0.475,7490,0.475,7491,0.475,7492,0.475,7493,0.475,7494,2.08,7495,0.475,7496,0.475,7497,0.475,7498,0.435,7499,0.841,7500,0.475,7501,0.475,7502,0.917,7503,0.435,7504,0.475,7505,0.475,7506,0.475,7507,0.475,7508,0.475,7509,0.475,7510,0.475,7511,0.475,7512,0.475,7513,0.475,7514,0.475,7515,0.475,7516,0.475,7517,0.475,7518,0.917,7519,0.475,7520,0.475,7521,0.475,7522,0.435,7523,0.435,7524,0.475,7525,0.475,7526,0.435,7527,0.475,7528,1.718,7529,0.917,7530,0.917,7531,0.917,7532,0.917,7533,0.917,7534,0.475,7535,0.475,7536,0.475,7537,0.435,7538,0.475,7539,0.752,7540,0.475,7541,0.435,7542,0.475,7543,0.917,7544,0.475,7545,0.475,7546,0.435,7547,0.475,7548,0.475,7549,1.331,7550,1.331,7551,0.917,7552,0.435,7553,0.475,7554,0.475,7555,0.475,7556,0.475,7557,0.475,7558,0.475,7559,0.475,7560,0.475,7561,0.475,7562,0.917,7563,0.475,7564,0.475,7565,0.475,7566,0.475,7567,0.475,7568,0.475,7569,0.475,7570,0.475,7571,0.475,7572,0.475,7573,0.475,7574,0.475,7575,0.475,7576,0.841,7577,0.475,7578,0.475,7579,0.475,7580,0.475,7581,0.917,7582,0.435,7583,0.435,7584,0.475,7585,0.475,7586,0.435,7587,0.475,7588,0.475,7589,0.435,7590,0.917,7591,0.917,7592,0.475,7593,0.475,7594,0.475,7595,0.475,7596,0.475,7597,0.475,7598,0.475,7599,0.475,7600,0.475,7601,0.435,7602,0.475,7603,0.475,7604,0.475,7605,0.475,7606,0.435,7607,0.475,7608,0.475,7609,0.435,7610,0.374,7611,0.409,7612,0.475,7613,0.475,7614,0.475,7615,0.435,7616,0.475,7617,0.435,7618,0.475,7619,0.435]],["component/43",[72,0.396]],["keyword/43",[]],["title/44-1",[33,17.536,586,37.848,727,32.64,866,34.505]],["name/44-1",[]],["text/44-1",[]],["component/44-1",[]],["keyword/44-1",[]],["title/44-2",[371,26.221,804,41.622,968,35.227,1362,27.669]],["name/44-2",[]],["text/44-2",[]],["component/44-2",[]],["keyword/44-2",[]],["title/44-3",[10,19.665,21,10.166,1362,24.662,1875,32.875,2212,37.098]],["name/44-3",[]],["text/44-3",[]],["component/44-3",[]],["keyword/44-3",[]],["title/44-4",[21,10.166,38,17.956,746,20.603,1546,30.16,1792,31.399]],["name/44-4",[]],["text/44-4",[]],["component/44-4",[]],["keyword/44-4",[]],["title/44-5",[21,11.405,747,37.848,1317,36.884,7620,48.457]],["name/44-5",[]],["text/44-5",[]],["component/44-5",[]],["keyword/44-5",[]],["title/44-6",[45,22.23,747,37.848,838,28.671,1322,41.622]],["name/44-6",[]],["text/44-6",[]],["component/44-6",[]],["keyword/44-6",[]],["title/44-7",[948,57.346,5778,57.346]],["name/44-7",[]],["text/44-7",[]],["component/44-7",[]],["keyword/44-7",[]],["title/44-8",[507,24.752,899,29.409,1357,40.174,6895,43.362]],["name/44-8",[]],["text/44-8",[]],["component/44-8",[]],["keyword/44-8",[]],["title/44-9",[7169,55.045,7621,69.942]],["name/44-9",[]],["text/44-9",[]],["component/44-9",[]],["keyword/44-9",[]],["title/44-10",[608,54.406]],["name/44-10",[]],["text/44-10",[]],["component/44-10",[]],["keyword/44-10",[]],["title/44-11",[834,49.806]],["name/44-11",[]],["text/44-11",[]],["component/44-11",[]],["keyword/44-11",[]],["title/44-12",[10,17.738,21,9.169,38,16.196,533,25.805,962,34.861,1376,33.462]],["name/44-12",[]],["text/44-12",[]],["component/44-12",[]],["keyword/44-12",[]],["title/44-13",[33,19.971,1040,44.339,2204,40.119]],["name/44-13",[]],["text/44-13",[]],["component/44-13",[]],["keyword/44-13",[]],["title/44-14",[1279,59.677]],["name/44-14",[]],["text/44-14",[]],["component/44-14",[]],["keyword/44-14",[]],["title/44-15",[21,12.989,913,33.493,1377,45.752]],["name/44-15",[]],["text/44-15",[]],["component/44-15",[]],["keyword/44-15",[]],["title/44-16",[21,12.989,913,33.493,2877,47.402]],["name/44-16",[]],["text/44-16",[]],["component/44-16",[]],["keyword/44-16",[]],["title/44-17",[21,11.405,746,23.115,913,29.409,7622,43.362]],["name/44-17",[]],["text/44-17",[]],["component/44-17",[]],["keyword/44-17",[]],["title/44-18",[21,12.122,44,20.908,291,15.794,746,15.537,833,22.744,913,19.768,7622,29.146]],["name/44-18",[]],["text/44-18",[]],["component/44-18",[]],["keyword/44-18",[]],["title/44-19",[21,11.405,746,23.115,913,29.409,3695,37.848]],["name/44-19",[]],["text/44-19",[]],["component/44-19",[]],["keyword/44-19",[]],["title/44-20",[21,12.989,913,33.493,7213,51.864]],["name/44-20",[]],["text/44-20",[]],["component/44-20",[]],["keyword/44-20",[]],["title/44-21",[21,10.166,33,15.63,891,32.875,913,26.213,7623,40.591]],["name/44-21",[]],["text/44-21",[]],["component/44-21",[]],["keyword/44-21",[]],["title/44-22",[21,12.989,913,33.493,7461,51.864]],["name/44-22",[]],["text/44-22",[]],["component/44-22",[]],["keyword/44-22",[]],["title/44",[21,11.384,746,14.361,747,23.513,748,22.375,750,19.041,1362,17.19,2338,26.939,7453,24.958]],["name/44",[747,0.668]],["text/44",[2,4.15,3,2.183,4,0.508,5,0.526,6,3.192,9,1.143,10,4.548,12,1.295,13,4.12,14,2.398,15,2.995,19,1.972,21,2.538,22,1.074,25,4.432,27,1.335,30,3.353,32,1.385,33,3.482,35,3.654,37,2.383,38,3.949,43,1.862,44,2.743,45,1.961,49,0.617,50,0.5,53,0.403,57,0.429,58,0.993,59,1.277,62,1.211,65,1.156,67,0.816,83,2.267,90,1.943,101,1.414,233,0.493,235,0.536,236,1.097,237,0.855,243,0.536,284,0.571,291,2.234,294,1.444,296,1.629,313,0.707,316,0.774,318,0.835,322,0.46,329,1.57,340,0.454,356,1.754,357,1.832,361,2.115,368,0.901,370,1.922,372,1.968,379,0.407,381,1.488,382,1.715,389,0.636,390,1.051,392,0.443,413,0.493,427,0.584,434,0.5,487,0.774,491,1.982,492,1.143,499,0.466,507,3.587,508,0.399,509,2.806,525,0.5,528,1.922,529,0.928,532,0.42,533,1.713,544,0.536,558,0.816,561,0.454,569,0.479,571,0.942,572,0.6,575,0.942,578,1.713,581,1.161,584,3.05,585,0.454,586,1.599,597,1.686,599,0.738,608,0.547,610,1.57,612,1.108,622,0.443,639,1.119,646,0.433,654,1.029,655,0.526,656,0.942,664,0.689,666,1.074,687,1.549,692,0.889,693,0.411,700,0.479,705,0.889,712,0.659,715,0.617,717,0.547,727,2.069,728,1.295,731,0.845,732,0.973,734,0.472,738,1.458,745,1.241,746,3.42,747,6.251,748,0.571,750,0.486,752,1.558,755,0.536,758,0.493,761,1.277,765,0.493,769,1.029,771,1.198,781,1.522,782,1.314,789,0.517,793,1.051,796,1.197,797,1.183,798,1.074,801,1.1,803,0.636,804,1.241,805,0.547,814,0.433,816,3.155,820,0.636,830,0.687,832,0.721,833,3.217,834,0.942,838,5,842,1.444,852,0.571,853,0.536,866,1.029,871,0.536,881,0.636,887,0.617,891,1.558,892,1.161,894,0.508,899,3.6,900,3.043,904,0.928,905,0.721,910,0.991,912,0.517,913,3.6,914,1.403,921,0.558,926,0.617,935,0.901,937,0.5,947,1.129,948,1.832,957,2.431,961,0.617,962,4.652,968,1.488,979,2.742,984,1.558,987,1.636,990,0.472,1014,0.584,1015,0.508,1016,0.508,1019,0.547,1020,0.558,1038,0.584,1040,1.161,1060,0.687,1064,1.645,1083,1.403,1085,1.161,1086,5.094,1088,0.6,1089,1.074,1090,0.617,1096,0.536,1100,0.6,1102,0.636,1105,0.687,1111,2.338,1126,0.636,1127,0.659,1139,1.051,1140,1.293,1142,0.558,1166,0.914,1171,0.526,1173,1.924,1177,0.571,1204,0.782,1210,0.584,1212,2.144,1242,0.617,1248,0.584,1259,0.942,1260,0.508,1278,0.659,1279,1.129,1283,0.659,1302,0.517,1312,0.584,1317,2.672,1318,0.768,1322,2.221,1338,1.009,1349,1.358,1354,1.558,1362,2.806,1364,0.721,1367,0.6,1376,5.278,1377,3.241,1378,0.617,1402,2.672,1419,0.486,1433,1.129,1434,0.617,1448,1.445,1450,1.488,1458,2.438,1480,1.88,1511,1.1,1542,1.358,1543,1.241,1546,1.806,1552,4.691,1555,1.293,1557,1.358,1570,1.758,1595,0.571,1658,0.687,1739,1.241,1748,0.636,1763,0.687,1792,0.558,1796,0.584,1839,0.721,1855,0.636,1860,0.687,1861,0.721,1872,0.6,1875,0.584,1922,0.558,1982,1.293,1988,1.924,2006,0.526,2020,0.687,2055,1.356,2087,0.6,2121,1.293,2127,2.546,2135,1.129,2168,0.584,2195,0.6,2204,1.88,2221,0.571,2224,0.617,2238,0.636,2278,0.768,2290,1.924,2301,0.617,2311,1.293,2323,1.198,2336,1.488,2338,0.687,2342,0.617,2381,1.293,2391,0.636,2439,0.957,2548,0.659,2586,1.129,2604,0.636,2638,0.768,2646,0.721,2653,0.6,2676,0.617,2732,1.198,2754,0.659,2757,0.721,2877,0.659,2879,1.009,2961,3.498,2978,0.571,3018,0.584,3084,1.129,3098,1.293,3173,1.198,3177,2.283,3295,2.842,3301,1.922,3384,0.636,3420,0.617,3480,3.338,3501,1.198,3689,4.528,3695,0.6,3863,0.721,4194,0.768,4322,0.617,4351,1.241,4370,0.659,4394,0.768,4441,0.659,4489,0.768,4521,2.314,4542,0.721,4604,0.721,4628,0.768,4632,0.6,4725,0.721,4845,0.768,4941,0.768,5112,1.358,5267,1.358,5322,1.241,5401,1.293,5408,3.299,5411,0.659,5428,0.721,5437,0.721,5610,0.687,5633,0.659,5847,0.659,5898,0.768,5903,0.687,5944,0.768,5971,0.721,5975,0.687,5992,0.687,6120,0.768,6129,0.768,6182,0.721,6410,0.768,6422,1.758,6478,0.659,6548,0.721,6606,0.687,6687,0.721,6688,2.047,6895,3.498,7000,0.768,7019,0.721,7032,0.687,7040,1.445,7070,0.721,7118,1.924,7169,0.659,7197,0.721,7203,1.445,7213,1.924,7218,1.293,7331,2.586,7453,2.144,7461,1.358,7523,1.445,7539,1.293,7546,0.768,7620,1.445,7622,4.123,7623,1.358,7624,0.838,7625,0.721,7626,0.838,7627,0.838,7628,1.577,7629,0.838,7630,0.838,7631,1.358,7632,0.838,7633,0.838,7634,0.838,7635,0.838,7636,0.838,7637,1.577,7638,0.838,7639,0.838,7640,2.047,7641,1.445,7642,0.838,7643,0.838,7644,1.577,7645,1.577,7646,0.838,7647,0.838,7648,0.838,7649,0.838,7650,0.838,7651,0.838,7652,0.838,7653,0.768,7654,0.838,7655,0.768,7656,0.838,7657,0.838,7658,0.838,7659,0.768,7660,0.838,7661,0.768,7662,0.838,7663,1.577,7664,0.838,7665,0.838,7666,0.838,7667,0.838,7668,0.838,7669,1.445,7670,1.577,7671,0.838,7672,0.838,7673,0.838,7674,0.838,7675,0.838,7676,0.838,7677,0.838,7678,1.577]],["component/44",[72,0.396]],["keyword/44",[]],["title/45-1",[1488,57.346,1634,57.346]],["name/45-1",[]],["text/45-1",[]],["component/45-1",[]],["keyword/45-1",[]],["title/45-2",[1010,43.166,1596,51.489]],["name/45-2",[]],["text/45-2",[]],["component/45-2",[]],["keyword/45-2",[]],["title/45-3",[7679,76.406]],["name/45-3",[]],["text/45-3",[]],["component/45-3",[]],["keyword/45-3",[]],["title/45-4",[47,47.631,343,50.054]],["name/45-4",[]],["text/45-4",[]],["component/45-4",[]],["keyword/45-4",[]],["title/45-5",[659,37.917,7680,64.085]],["name/45-5",[]],["text/45-5",[]],["component/45-5",[]],["keyword/45-5",[]],["title/45-6",[659,32.652,7610,47.402,7611,51.864]],["name/45-6",[]],["text/45-6",[]],["component/45-6",[]],["keyword/45-6",[]],["title/45-7",[659,32.652,923,45.752,7610,47.402]],["name/45-7",[]],["text/45-7",[]],["component/45-7",[]],["keyword/45-7",[]],["title/45-8",[21,10.166,38,17.956,659,25.555,729,27.725,7610,37.098]],["name/45-8",[]],["text/45-8",[]],["component/45-8",[]],["keyword/45-8",[]],["title/45-9",[21,12.989,659,32.652,7681,55.186]],["name/45-9",[]],["text/45-9",[]],["component/45-9",[]],["keyword/45-9",[]],["title/45-10",[21,12.989,659,32.652,7682,55.186]],["name/45-10",[]],["text/45-10",[]],["component/45-10",[]],["keyword/45-10",[]],["title/45-11",[21,12.989,659,32.652,7683,55.186]],["name/45-11",[]],["text/45-11",[]],["component/45-11",[]],["keyword/45-11",[]],["title/45-12",[291,17.204,507,18.123,659,20.992,2238,29.414,7684,35.479,7685,35.479,7686,35.479]],["name/45-12",[]],["text/45-12",[]],["component/45-12",[]],["keyword/45-12",[]],["title/45-13",[4163,71.806]],["name/45-13",[]],["text/45-13",[]],["component/45-13",[]],["keyword/45-13",[]],["title/45-14",[21,11.405,873,35.227,892,38.933,1015,32.098]],["name/45-14",[]],["text/45-14",[]],["component/45-14",[]],["keyword/45-14",[]],["title/45-15",[7687,76.406]],["name/45-15",[]],["text/45-15",[]],["component/45-15",[]],["keyword/45-15",[]],["title/45-16",[21,12.989,329,33.493,947,43.104]],["name/45-16",[]],["text/45-16",[]],["component/45-16",[]],["keyword/45-16",[]],["title/45-17",[21,12.989,329,33.493,1204,29.862]],["name/45-17",[]],["text/45-17",[]],["component/45-17",[]],["keyword/45-17",[]],["title/45-18",[21,12.989,2916,45.752,4286,51.864]],["name/45-18",[]],["text/45-18",[]],["component/45-18",[]],["keyword/45-18",[]],["title/45-19",[21,12.989,1015,36.555,1297,43.104]],["name/45-19",[]],["text/45-19",[]],["component/45-19",[]],["keyword/45-19",[]],["title/45-20",[664,30.57,765,41.138]],["name/45-20",[]],["text/45-20",[]],["component/45-20",[]],["keyword/45-20",[]],["title/45-21",[245,55.045,1534,57.346]],["name/45-21",[]],["text/45-21",[]],["component/45-21",[]],["keyword/45-21",[]],["title/45-22",[1670,49.383,7688,55.186,7689,55.186]],["name/45-22",[]],["text/45-22",[]],["component/45-22",[]],["keyword/45-22",[]],["title/45-23",[21,10.166,7690,43.191,7691,43.191,7692,43.191,7693,47.138]],["name/45-23",[]],["text/45-23",[]],["component/45-23",[]],["keyword/45-23",[]],["title/45-24",[7694,64.085,7695,69.942]],["name/45-24",[]],["text/45-24",[]],["component/45-24",[]],["keyword/45-24",[]],["title/45-25",[45,19.814,816,27.725,7696,43.191,7697,43.191,7698,43.191]],["name/45-25",[]],["text/45-25",[]],["component/45-25",[]],["keyword/45-25",[]],["title/45-26",[21,10.166,281,32.875,518,35.808,861,32.102,7625,40.591]],["name/45-26",[]],["text/45-26",[]],["component/45-26",[]],["keyword/45-26",[]],["title/45-27",[7699,69.942,7700,69.942]],["name/45-27",[]],["text/45-27",[]],["component/45-27",[]],["keyword/45-27",[]],["title/45-28",[21,12.989,601,44.339,723,47.402]],["name/45-28",[]],["text/45-28",[]],["component/45-28",[]],["keyword/45-28",[]],["title/45-29",[21,12.989,368,34.412,585,32.652]],["name/45-29",[]],["text/45-29",[]],["component/45-29",[]],["keyword/45-29",[]],["title/45-30",[21,10.166,45,19.814,7144,43.191,7449,37.098,7701,47.138]],["name/45-30",[]],["text/45-30",[]],["component/45-30",[]],["keyword/45-30",[]],["title/45-31",[2204,55.545]],["name/45-31",[]],["text/45-31",[]],["component/45-31",[]],["keyword/45-31",[]],["title/45-32",[1931,55.045,6661,55.045]],["name/45-32",[]],["text/45-32",[]],["component/45-32",[]],["keyword/45-32",[]],["title/45-33",[833,44.75,7702,69.942]],["name/45-33",[]],["text/45-33",[]],["component/45-33",[]],["keyword/45-33",[]],["title/45-34",[21,12.989,833,38.536,3816,47.402]],["name/45-34",[]],["text/45-34",[]],["component/45-34",[]],["keyword/45-34",[]],["title/45-35",[823,56.789]],["name/45-35",[]],["text/45-35",[]],["component/45-35",[]],["keyword/45-35",[]],["title/45-36",[762,56.789]],["name/45-36",[]],["text/45-36",[]],["component/45-36",[]],["keyword/45-36",[]],["title/45-37",[763,59.677]],["name/45-37",[]],["text/45-37",[]],["component/45-37",[]],["keyword/45-37",[]],["title/45-38",[764,61.388]],["name/45-38",[]],["text/45-38",[]],["component/45-38",[]],["keyword/45-38",[]],["title/45-39",[4188,71.806]],["name/45-39",[]],["text/45-39",[]],["component/45-39",[]],["keyword/45-39",[]],["title/45",[104,57.346,2451,55.045]],["name/45",[7703,0.934]],["text/45",[2,4.046,3,1.497,4,0.312,5,0.165,6,3.601,7,0.175,9,0.622,10,3.897,11,0.168,12,0.704,13,3.81,14,3.285,15,3.69,19,1.721,20,0.575,21,2.54,23,0.694,24,0.298,25,4.015,27,2.442,28,0.89,29,0.162,30,3.663,33,3.189,35,3.986,36,0.199,37,2.784,38,4.03,40,0.25,42,0.193,43,3.221,44,2.083,45,3.182,47,2.102,48,0.302,49,0.193,50,0.156,51,0.159,52,0.199,53,2.561,58,3.408,59,0.432,60,0.29,62,0.142,65,1.513,67,1.977,79,1.898,81,1.7,83,1.923,90,0.704,91,0.29,101,0.257,104,0.215,144,0.178,161,0.171,180,0.199,184,0.226,193,0.358,201,0.809,203,0.809,221,0.148,233,0.582,234,0.215,235,0.168,236,0.371,237,0.279,238,0.275,243,0.168,249,0.421,251,0.981,254,0.183,262,0.793,263,0.777,276,0.515,279,0.421,281,0.358,284,1.389,290,0.199,291,3.27,294,0.733,296,1.649,297,0.484,298,0.193,302,0.188,306,1.031,308,0.206,309,0.368,310,0.156,313,1.944,316,0.905,318,1.461,322,0.667,329,4.396,335,0.475,340,0.659,341,0.443,343,3.738,347,0.183,354,0.484,355,0.312,356,0.749,361,0.814,364,0.609,367,0.156,368,0.694,371,0.491,376,0.178,378,0.884,379,2.97,381,0.175,382,1.659,383,0.266,384,0.159,386,0.842,388,0.226,389,1.401,390,0.954,391,1.939,392,1.874,393,0.528,413,1.721,434,0.726,464,0.378,474,0.206,476,0.368,487,1.876,488,0.622,490,0.528,491,0.954,492,1.234,493,0.156,498,0.165,499,0.796,500,1.046,505,0.622,507,3.495,508,1.546,509,2.68,510,0.215,511,0.438,518,0.752,520,0.286,525,0.156,528,0.515,529,0.445,531,0.193,532,3.214,533,0.159,541,0.193,542,0.206,546,0.178,548,0.749,552,1.208,555,0.199,558,0.136,561,1.208,569,1.165,571,1.218,575,0.156,576,0.193,577,0.342,578,1.238,580,1.286,581,0.193,582,0.175,583,0.162,584,1.497,585,1.84,586,1.025,588,1.118,591,0.175,593,1.158,597,0.726,601,0.378,602,0.178,608,0.646,609,0.452,610,1.025,611,1.484,612,0.814,613,0.146,617,2.037,622,0.869,626,0.459,627,0.162,637,0.459,639,0.496,644,1.382,646,1.153,647,0.39,654,0.335,655,1.158,656,1.747,659,3.96,661,0.622,662,0.193,664,0.331,666,0.515,677,0.368,686,0.357,691,0.188,692,0.558,693,0.703,697,0.162,698,0.171,700,0.15,701,0.421,702,0.335,705,1.039,707,0.726,712,0.206,717,0.494,719,1.358,720,0.358,723,2.172,724,0.183,725,0.171,727,0.611,728,0.152,729,1.522,731,0.988,732,0.317,734,0.558,736,0.226,739,0.188,741,0.165,746,0.626,750,0.438,755,0.168,761,0.15,762,0.178,763,1.175,764,1.358,765,1.2,766,0.704,767,0.317,773,0.199,774,1.32,777,0.226,781,0.674,782,1.311,786,0.15,788,0.39,789,0.467,791,0.206,792,0.358,793,0.342,794,0.193,795,0.171,796,0.14,797,0.272,798,0.515,799,1.281,801,0.183,803,0.199,804,1.292,807,0.165,808,0.925,809,0.24,812,4.268,814,1.513,816,4.329,820,0.575,823,1.763,824,0.226,825,0.709,826,0.75,830,0.421,831,0.226,833,2.075,834,0.726,836,0.199,837,0.215,838,0.776,839,0.421,840,0.226,841,0.378,842,2.22,844,0.178,845,0.165,847,0.226,848,0.183,852,0.178,853,0.633,861,0.828,866,0.494,867,1.331,868,0.35,871,0.168,873,0.809,874,0.312,881,0.575,889,0.206,890,0.39,891,0.528,892,0.378,895,0.175,897,0.183,898,0.199,899,0.796,900,0.646,901,0.199,903,1.165,904,0.715,906,0.537,908,0.445,910,1.626,911,0.633,912,0.611,913,0.286,914,0.475,917,0.693,918,0.651,919,0.471,923,0.575,924,0.215,925,0.175,928,0.156,929,0.206,932,0.162,935,1.378,936,0.786,937,0.452,939,0.484,940,0.404,942,0.178,947,1.175,948,0.215,950,1.209,951,0.183,953,0.199,956,0.188,958,0.62,960,0.575,961,0.557,962,0.421,964,0.342,965,0.853,967,0.193,980,0.475,981,0.183,982,0.541,983,0.504,984,0.183,987,1.789,988,0.188,990,0.29,992,0.729,1001,0.35,1002,0.39,1007,0.633,1009,0.443,1010,1.806,1012,0.215,1014,0.183,1015,0.737,1016,0.159,1017,0.752,1021,1.305,1022,0.515,1024,0.601,1025,1.331,1032,0.226,1035,1.101,1036,0.515,1040,0.729,1043,0.471,1044,0.226,1054,0.622,1070,0.199,1083,0.323,1085,0.193,1087,0.763,1090,0.193,1096,0.329,1097,1.046,1098,0.215,1099,0.443,1100,0.188,1102,0.39,1110,0.193,1111,0.358,1114,0.193,1123,0.575,1128,0.226,1129,0.193,1131,0.199,1137,0.226,1138,0.226,1139,0.175,1140,0.215,1141,0.171,1147,0.779,1150,0.215,1152,0.215,1155,0.193,1158,0.199,1166,0.298,1171,0.165,1173,0.226,1177,0.515,1182,0.168,1186,0.541,1199,0.24,1204,0.375,1209,2.429,1210,0.999,1212,0.199,1215,0.471,1218,0.226,1219,0.199,1224,0.358,1229,0.193,1231,0.168,1232,0.307,1240,0.226,1242,0.729,1244,0.159,1245,0.595,1247,0.206,1248,0.999,1252,0.693,1261,1.071,1262,0.622,1267,0.206,1274,0.175,1297,0.188,1306,0.168,1310,0.215,1311,0.378,1313,0.737,1315,0.226,1317,0.183,1321,0.226,1322,0.206,1331,1.088,1332,0.378,1333,1.025,1334,0.709,1338,1.18,1339,0.206,1340,0.226,1345,0.443,1350,0.162,1351,0.206,1354,1.286,1359,0.24,1360,0.24,1362,0.269,1367,0.188,1374,0.312,1376,0.779,1378,0.193,1379,0.69,1381,0.24,1388,0.199,1393,0.956,1394,0.378,1397,0.62,1398,0.226,1402,1.286,1408,0.475,1413,0.24,1414,0.404,1425,0.226,1427,0.595,1428,0.812,1433,0.188,1434,1.905,1437,0.183,1443,0.329,1449,0.165,1450,0.175,1452,0.226,1458,0.818,1470,0.215,1474,0.421,1476,0.646,1481,0.215,1484,0.226,1485,0.215,1488,0.62,1498,0.206,1500,0.206,1502,0.168,1510,0.24,1544,0.226,1549,0.307,1550,0.24,1555,0.812,1559,0.651,1562,0.975,1570,0.206,1571,0.404,1572,0.226,1577,0.471,1578,0.215,1581,0.171,1595,0.35,1596,0.378,1618,0.595,1619,0.199,1620,0.504,1621,0.226,1623,0.471,1634,0.996,1636,0.471,1640,0.907,1641,0.226,1642,0.226,1646,0.329,1652,0.895,1656,0.226,1658,0.421,1663,0.471,1667,0.693,1670,0.812,1671,0.907,1675,0.693,1678,0.183,1681,0.515,1690,0.226,1695,0.215,1713,0.168,1718,0.651,1721,0.215,1739,0.404,1741,0.471,1742,0.215,1748,0.199,1749,0.215,1755,0.575,1759,0.24,1768,0.183,1774,0.595,1775,0.193,1776,0.199,1786,0.24,1796,0.183,1798,0.193,1812,0.193,1823,0.674,1832,0.368,1846,0.215,1869,0.215,1870,0.215,1873,1.046,1881,0.175,1886,0.24,1887,0.199,1897,0.24,1913,0.24,1918,0.421,1920,0.853,1921,0.378,1924,0.206,1926,0.575,1929,0.24,1931,0.595,1937,0.178,1944,0.443,1982,0.215,2006,1.031,2040,0.329,2042,0.226,2050,0.24,2053,0.226,2055,1.353,2059,0.378,2063,0.199,2068,0.215,2069,0.206,2070,0.165,2097,0.884,2114,0.24,2121,0.215,2127,0.752,2135,0.541,2143,0.24,2145,0.674,2162,0.853,2164,0.199,2175,0.693,2204,0.175,2212,0.404,2218,0.693,2221,0.178,2224,0.193,2226,0.557,2238,0.199,2252,0.452,2274,0.484,2275,0.443,2279,0.226,2290,0.226,2311,0.215,2323,0.575,2325,0.24,2341,0.188,2342,0.895,2344,0.215,2352,0.24,2353,0.24,2357,0.178,2360,0.226,2374,0.175,2382,0.193,2384,0.226,2385,0.183,2414,0.215,2421,0.693,2437,0.226,2439,0.312,2448,0.812,2451,0.206,2479,0.24,2481,0.226,2549,0.404,2552,0.24,2566,0.206,2586,0.368,2596,0.215,2631,0.421,2633,0.541,2646,0.226,2649,0.24,2653,0.368,2681,0.24,2686,0.752,2701,0.368,2719,0.226,2721,0.206,2734,0.178,2739,0.226,2748,0.193,2794,0.368,2796,0.226,2872,0.215,2887,0.188,2893,0.378,2894,0.404,2895,0.443,2916,0.575,2934,0.199,2958,0.24,2961,0.421,2968,0.175,2978,0.515,3000,0.226,3007,0.443,3031,0.404,3084,0.368,3095,0.226,3110,0.24,3134,0.24,3168,0.183,3172,0.226,3173,0.39,3174,0.193,3177,1.118,3178,0.206,3186,0.215,3201,0.188,3273,0.368,3295,0.175,3297,0.24,3301,0.178,3384,0.199,3433,0.215,3492,0.226,3502,0.171,3689,0.575,3744,0.199,3758,0.24,3767,0.575,3778,0.471,3788,0.215,3802,0.206,3810,0.24,3816,1.127,3817,0.62,3838,0.215,3841,0.404,3875,0.168,3884,0.24,3947,0.595,3962,0.24,3966,0.24,4094,0.471,4105,0.226,4142,0.199,4153,0.378,4162,0.226,4163,0.226,4169,0.24,4188,0.651,4195,0.853,4218,0.24,4261,0.226,4276,0.24,4286,1.233,4305,0.215,4331,0.226,4370,0.779,4500,0.595,4532,0.226,4533,0.215,4541,1.588,4557,0.24,4570,0.206,4604,0.443,4607,0.693,4632,0.368,4681,0.226,4697,0.62,4728,0.443,4737,0.226,4796,0.693,4815,0.226,4874,0.226,4880,0.215,4902,0.24,4910,0.226,4923,0.226,4935,0.24,4971,0.206,4973,0.24,5121,0.24,5132,0.421,5148,0.24,5155,0.24,5186,0.24,5187,0.651,5199,0.421,5267,0.226,5322,0.404,5331,0.226,5359,3.11,5360,1.312,5365,0.24,5433,0.226,5527,0.24,5528,0.215,5537,0.443,5565,0.24,5591,0.24,5597,0.24,5610,0.421,5614,0.226,5633,0.206,5649,0.471,5657,0.24,5781,0.24,5794,0.226,5796,0.24,5801,0.215,5809,0.853,5820,1.127,5838,0.443,5860,0.226,5903,0.215,5920,0.421,6048,0.693,6117,0.199,6126,0.24,6157,0.956,6166,0.215,6172,0.471,6182,0.853,6222,0.471,6287,1.113,6388,0.226,6399,0.24,6416,0.24,6418,0.199,6422,0.404,6430,0.215,6466,0.404,6469,0.226,6478,0.595,6548,1.233,6549,0.226,6559,0.24,6570,0.226,6655,1.312,6661,0.206,6663,0.215,6841,1.869,6866,0.215,6895,0.62,6899,0.226,6916,0.443,6917,0.443,6918,0.24,6931,0.226,7003,0.226,7024,0.226,7042,0.24,7053,0.24,7105,1.869,7116,0.575,7161,0.226,7164,0.226,7169,1.127,7182,0.215,7188,0.24,7196,0.24,7212,0.907,7218,0.812,7224,0.24,7227,1.113,7228,0.24,7232,0.24,7239,0.226,7254,0.24,7283,4.598,7310,0.24,7311,0.226,7337,0.471,7387,0.907,7425,0.471,7449,0.404,7453,0.39,7460,0.907,7471,0.443,7472,1.504,7473,0.471,7499,0.24,7503,0.471,7522,0.693,7526,0.24,7539,0.215,7541,0.24,7552,0.24,7576,0.24,7582,0.471,7583,0.471,7589,0.471,7606,0.24,7609,0.24,7610,2.172,7611,0.651,7617,0.24,7619,0.24,7622,0.421,7623,0.443,7625,0.443,7631,0.226,7641,0.24,7653,0.24,7659,0.24,7661,0.24,7669,0.24,7679,2.371,7680,1.504,7681,1.312,7682,0.693,7683,2.042,7684,0.471,7685,0.471,7686,0.24,7687,0.693,7688,1.113,7689,0.24,7690,0.471,7691,1.504,7692,0.24,7694,0.693,7696,1.504,7697,1.113,7698,0.24,7704,0.262,7705,0.262,7706,0.262,7707,0.262,7708,0.907,7709,0.262,7710,1.432,7711,0.514,7712,0.262,7713,0.514,7714,0.514,7715,0.262,7716,1.432,7717,0.756,7718,0.262,7719,0.262,7720,0.514,7721,0.262,7722,0.24,7723,0.262,7724,0.262,7725,0.514,7726,0.262,7727,0.262,7728,0.262,7729,0.514,7730,0.262,7731,0.262,7732,0.262,7733,0.262,7734,0.262,7735,0.262,7736,0.262,7737,0.262,7738,0.262,7739,0.262,7740,0.262,7741,0.262,7742,0.262,7743,0.514,7744,0.514,7745,0.514,7746,0.262,7747,0.262,7748,0.262,7749,0.262,7750,0.262,7751,0.262,7752,0.262,7753,0.262,7754,0.756,7755,0.514,7756,0.262,7757,0.514,7758,0.262,7759,0.262,7760,0.262,7761,0.262,7762,0.99,7763,0.262,7764,0.262,7765,1.215,7766,0.514,7767,0.262,7768,0.514,7769,0.514,7770,0.756,7771,0.262,7772,0.262,7773,0.262,7774,0.262,7775,0.514,7776,0.262,7777,0.262,7778,0.756,7779,0.262,7780,0.262,7781,0.262,7782,0.262,7783,0.262,7784,0.262,7785,0.262,7786,0.262,7787,0.262,7788,0.262,7789,0.262,7790,0.262,7791,0.514,7792,0.514,7793,0.262,7794,0.262,7795,0.262,7796,0.262,7797,0.262,7798,0.262,7799,0.262,7800,0.262,7801,0.262,7802,0.262,7803,0.262,7804,0.262,7805,0.262,7806,0.262,7807,0.262,7808,0.262,7809,0.262,7810,0.262,7811,0.514,7812,0.262,7813,0.514,7814,1.432,7815,0.262,7816,0.262,7817,0.262,7818,0.262,7819,0.262,7820,0.262,7821,0.756,7822,0.262,7823,0.756,7824,0.756,7825,0.262,7826,0.514,7827,0.756,7828,0.262,7829,0.262,7830,0.262,7831,0.262,7832,0.262,7833,0.907,7834,0.262,7835,0.262,7836,0.514,7837,0.514,7838,0.514,7839,0.514,7840,0.262,7841,0.262,7842,0.262,7843,0.262,7844,0.262,7845,0.514,7846,0.262,7847,0.514,7848,0.262,7849,0.262,7850,0.262,7851,0.262,7852,0.514,7853,0.262,7854,0.262,7855,0.262,7856,0.514,7857,0.514,7858,0.262,7859,0.262,7860,0.756,7861,0.262,7862,0.262,7863,0.514,7864,0.262,7865,0.262,7866,0.514,7867,0.262,7868,0.262,7869,0.262,7870,0.262,7871,0.262,7872,0.514,7873,0.262,7874,0.262,7875,0.514,7876,0.514,7877,0.262,7878,0.514,7879,0.262,7880,0.756,7881,0.514,7882,0.262,7883,0.262,7884,0.514,7885,0.262,7886,0.262,7887,0.262,7888,0.262,7889,0.262,7890,0.262,7891,0.262,7892,0.262,7893,0.262,7894,0.262,7895,0.262,7896,0.262,7897,0.514,7898,0.262,7899,0.24,7900,0.471,7901,0.262,7902,0.262,7903,0.262,7904,0.262,7905,0.514,7906,0.262,7907,0.262,7908,0.514,7909,0.514,7910,0.262,7911,0.262,7912,0.262,7913,2.411,7914,0.262,7915,0.262,7916,0.262,7917,0.262,7918,0.262,7919,0.262,7920,0.514,7921,0.471,7922,0.514,7923,0.514,7924,0.262,7925,0.262,7926,0.262,7927,0.262,7928,0.262,7929,0.262,7930,0.262,7931,0.514,7932,0.262,7933,0.262,7934,0.262,7935,0.262,7936,0.262,7937,0.262,7938,0.262,7939,0.514,7940,0.514,7941,0.514,7942,0.262,7943,0.262,7944,0.262,7945,0.262,7946,0.262,7947,0.262,7948,0.262,7949,0.262,7950,0.262,7951,0.262,7952,0.262,7953,0.262,7954,0.262,7955,0.262,7956,0.262,7957,0.262,7958,0.262,7959,0.262,7960,0.262,7961,0.262,7962,0.262,7963,0.262,7964,0.262]],["component/45",[72,0.396]],["keyword/45",[]],["title/46-1",[21,10.166,98,35.808,165,33.735,355,28.609,356,24.662]],["name/46-1",[]],["text/46-1",[]],["component/46-1",[]],["keyword/46-1",[]],["title/46-2",[21,12.989,601,44.339,602,41.017]],["name/46-2",[]],["text/46-2",[]],["component/46-2",[]],["keyword/46-2",[]],["title/46-3",[21,15.047,345,33.735,599,22.062,7965,43.191]],["name/46-3",[]],["text/46-3",[]],["component/46-3",[]],["keyword/46-3",[]],["title/46-4",[21,12.989,599,28.189,1204,29.862]],["name/46-4",[]],["text/46-4",[]],["component/46-4",[]],["keyword/46-4",[]],["title/46-5",[21,12.989,1016,36.555,1144,51.864]],["name/46-5",[]],["text/46-5",[]],["component/46-5",[]],["keyword/46-5",[]],["title/46-6",[33,11.787,251,21.232,313,15.926,7966,35.548,7967,32.572,7968,32.572,7969,48.401]],["name/46-6",[]],["text/46-6",[]],["component/46-6",[]],["keyword/46-6",[]],["title/46-7",[660,35.227,1200,43.362,2879,33.837,7969,45.54]],["name/46-7",[]],["text/46-7",[]],["component/46-7",[]],["keyword/46-7",[]],["title/46-8",[6,12.783,21,10.149,157,16.302,251,17.042,313,12.783,1001,19.431,1350,17.61,5746,23.394,7970,26.144,7971,26.144]],["name/46-8",[]],["text/46-8",[]],["component/46-8",[]],["keyword/46-8",[]],["title/46-9",[660,35.227,906,28.671,1835,45.54,2861,40.174]],["name/46-9",[]],["text/46-9",[]],["component/46-9",[]],["keyword/46-9",[]],["title/46-10",[21,14.27,212,15.814,313,14.72,599,15.377,603,23.513,4353,28.292,5752,25.858]],["name/46-10",[]],["text/46-10",[]],["component/46-10",[]],["keyword/46-10",[]],["title/46-11",[660,28.321,1022,28.955,5752,33.462,5784,32.298,7972,42.518,7973,42.518]],["name/46-11",[]],["text/46-11",[]],["component/46-11",[]],["keyword/46-11",[]],["title/46-12",[251,31.588,313,23.694,1312,36.884,7974,52.886]],["name/46-12",[]],["text/46-12",[]],["component/46-12",[]],["keyword/46-12",[]],["title/46-13",[1543,65.628]],["name/46-13",[]],["text/46-13",[]],["component/46-13",[]],["keyword/46-13",[]],["title/46-14",[601,51.489,1313,42.449]],["name/46-14",[]],["text/46-14",[]],["component/46-14",[]],["keyword/46-14",[]],["title/46-15",[21,10.166,799,29.608,1362,24.662,7975,43.191,7976,43.191]],["name/46-15",[]],["text/46-15",[]],["component/46-15",[]],["keyword/46-15",[]],["title/46-16",[291,17.204,1187,28.506,1271,27.711,3113,28.506,4214,33.344,6613,33.344,7977,33.344]],["name/46-16",[]],["text/46-16",[]],["component/46-16",[]],["keyword/46-16",[]],["title/46-17",[157,34.412,612,29.862,7978,55.186]],["name/46-17",[]],["text/46-17",[]],["component/46-17",[]],["keyword/46-17",[]],["title/46-18",[33,19.971,866,39.296,2654,47.402]],["name/46-18",[]],["text/46-18",[]],["component/46-18",[]],["keyword/46-18",[]],["title/46-19",[21,8.351,38,14.75,1400,31.748,3113,28.506,4214,33.344,6613,33.344,7977,33.344]],["name/46-19",[]],["text/46-19",[]],["component/46-19",[]],["keyword/46-19",[]],["title/46-20",[4160,55.045,7471,60.227]],["name/46-20",[]],["text/46-20",[]],["component/46-20",[]],["keyword/46-20",[]],["title/46-21",[1511,58.157]],["name/46-21",[]],["text/46-21",[]],["component/46-21",[]],["keyword/46-21",[]],["title/46-22",[21,15.047,364,23.613,1204,23.371,1922,31.399]],["name/46-22",[]],["text/46-22",[]],["component/46-22",[]],["keyword/46-22",[]],["title/46-23",[364,35.036,805,45.632]],["name/46-23",[]],["text/46-23",[]],["component/46-23",[]],["keyword/46-23",[]],["title/46-24",[21,13.927,212,20.465,364,21.298,599,19.899,5985,33.462]],["name/46-24",[]],["text/46-24",[]],["component/46-24",[]],["keyword/46-24",[]],["title/46-25",[6,23.694,291,23.497,796,28.324,3793,36.016]],["name/46-25",[]],["text/46-25",[]],["component/46-25",[]],["keyword/46-25",[]],["title/46-26",[33,17.536,2035,43.362,2038,43.362,7979,43.362]],["name/46-26",[]],["text/46-26",[]],["component/46-26",[]],["keyword/46-26",[]],["title/46-27",[2035,57.346,7979,57.346]],["name/46-27",[]],["text/46-27",[]],["component/46-27",[]],["keyword/46-27",[]],["title/46-28",[2038,57.346,7979,57.346]],["name/46-28",[]],["text/46-28",[]],["component/46-28",[]],["keyword/46-28",[]],["title/46-29",[21,10.166,1562,32.102,7980,47.138,7981,47.138,7982,47.138]],["name/46-29",[]],["text/46-29",[]],["component/46-29",[]],["keyword/46-29",[]],["title/46-30",[33,19.971,2731,55.186,7983,55.186]],["name/46-30",[]],["text/46-30",[]],["component/46-30",[]],["keyword/46-30",[]],["title/46-31",[21,9.169,212,20.465,599,19.899,3627,34.861,7984,42.518,7985,38.957]],["name/46-31",[]],["text/46-31",[]],["component/46-31",[]],["keyword/46-31",[]],["title/46-32",[21,12.989,3875,38.536,7986,55.186]],["name/46-32",[]],["text/46-32",[]],["component/46-32",[]],["keyword/46-32",[]],["title/46-33",[3404,65.628]],["name/46-33",[]],["text/46-33",[]],["component/46-33",[]],["keyword/46-33",[]],["title/46-34",[1464,48.779,1535,44.75]],["name/46-34",[]],["text/46-34",[]],["component/46-34",[]],["keyword/46-34",[]],["title/46",[]],["name/46",[4354,0.651]],["text/46",[2,4.021,3,1.362,6,3.509,7,0.354,9,0.756,10,4.094,11,0.654,12,0.856,13,3.479,14,0.906,15,3.443,16,0.313,19,0.313,21,2.549,24,0.856,25,4.359,28,1.243,30,3.87,32,1.306,33,2.996,35,3.865,36,0.404,37,2.457,38,4.046,43,2.276,45,1.968,50,0.317,51,0.322,53,0.256,57,1.362,58,3.345,59,0.584,62,0.801,65,0.529,67,0.275,81,0.266,83,1.904,91,1.876,94,0.34,98,2.759,101,3.771,112,0.391,135,0.458,143,0.391,157,1.52,161,0.347,162,0.458,165,1.905,166,0.88,172,0.436,193,0.713,201,0.354,205,0.732,212,2.364,221,0.299,233,0.601,237,0.288,238,0.285,251,2.34,262,0.347,263,0.34,268,0.404,273,0.458,276,0.362,284,0.362,291,2.54,294,0.272,296,0.923,302,0.732,306,0.334,313,3.111,316,1.306,318,0.541,322,1.043,329,0.295,330,0.313,337,0.391,339,0.362,340,0.288,345,0.38,347,0.371,355,2.204,356,3.882,364,3.197,367,0.611,377,0.418,379,0.923,382,1.703,383,0.275,386,0.313,390,0.681,391,0.844,392,2.073,406,0.458,408,0.458,413,1.117,427,0.371,434,1.37,454,0.436,487,1.126,491,1.186,492,1.174,498,0.334,499,0.295,504,0.838,505,0.642,507,2.676,508,2.445,509,0.278,511,0.308,525,0.611,529,0.313,532,2.46,533,0.896,548,0.773,552,0.554,561,1.03,569,1.717,572,0.38,578,0.896,580,1.03,583,1.855,584,1.174,593,0.928,599,4.016,601,1.087,602,1.812,610,0.568,611,0.354,612,0.263,613,0.295,622,0.782,626,0.322,637,0.322,639,1.149,640,0.278,644,1.333,655,0.334,656,1.135,659,1.243,660,1.528,661,0.334,664,0.83,670,0.38,682,0.334,686,0.483,687,2.298,693,1.126,697,0.328,700,0.304,707,0.317,709,0.696,721,0.713,727,1.415,728,0.308,731,0.791,732,0.328,758,0.601,762,0.362,766,0.308,767,0.328,769,1.239,770,0.362,771,0.404,774,1.36,780,0.436,782,0.601,783,0.654,784,1.043,786,0.584,789,0.328,796,1.228,797,1.214,799,2.461,802,0.62,805,0.347,807,0.334,808,0.299,815,0.642,817,1.353,825,0.38,827,0.38,834,0.317,838,1.243,842,1.703,845,0.334,847,0.458,853,0.34,861,0.696,866,1.736,867,0.964,868,1.294,871,0.654,873,0.354,874,1.153,880,0.38,886,0.404,887,0.391,891,0.371,894,1.392,897,0.371,899,0.295,903,0.584,904,0.313,906,1.03,910,0.928,911,0.654,912,0.912,913,0.821,914,0.642,921,0.354,922,0.458,925,0.354,926,0.391,927,0.354,929,0.804,932,0.631,935,1.717,936,1.043,939,0.654,941,0.667,942,1.562,943,0.347,949,0.38,951,1.03,954,0.404,959,0.347,960,2.283,964,0.354,967,0.391,980,0.334,981,0.713,987,0.308,990,0.576,997,1.272,998,0.458,999,0.487,1001,0.362,1007,0.34,1010,0.631,1013,0.328,1014,0.371,1016,1.824,1020,0.354,1022,1.006,1024,0.322,1030,0.458,1036,0.362,1049,0.418,1055,0.354,1060,1.88,1070,0.404,1076,0.391,1079,0.88,1080,0.487,1082,0.458,1083,0.334,1088,0.38,1101,1.211,1102,0.404,1111,0.371,1114,0.391,1121,1.742,1129,0.391,1139,0.354,1141,0.667,1142,0.354,1143,0.418,1144,2.588,1149,0.804,1151,2.182,1158,0.404,1162,0.436,1177,0.362,1178,0.458,1182,0.945,1186,1.36,1187,2.884,1201,1.88,1204,0.732,1211,0.436,1223,0.436,1224,0.713,1226,0.418,1229,0.753,1231,0.34,1232,0.882,1237,0.38,1242,0.753,1244,0.62,1249,0.487,1257,0.62,1259,0.317,1260,0.896,1264,0.404,1266,0.487,1271,0.732,1284,0.487,1296,0.713,1302,0.328,1306,0.34,1308,0.88,1311,1.087,1313,0.322,1320,0.391,1331,0.777,1332,0.753,1334,0.38,1336,0.88,1338,0.654,1350,1.172,1351,0.804,1354,0.371,1355,2.101,1356,0.487,1357,1.122,1362,2.893,1374,0.62,1375,0.418,1380,0.436,1394,0.753,1395,0.777,1408,0.334,1454,0.458,1458,1.085,1470,0.436,1524,0.404,1535,0.34,1536,0.371,1549,0.317,1556,0.882,1562,2.473,1581,0.347,1597,0.436,1618,0.418,1620,0.354,1655,0.436,1678,1.325,1681,0.362,1687,0.418,1695,0.436,1713,0.34,1720,0.391,1721,0.436,1731,1.272,1732,0.937,1733,0.404,1748,0.404,1768,0.371,1770,0.732,1813,0.371,1822,0.804,1830,0.458,1833,0.487,1834,1.353,1835,2.292,1837,0.404,1841,0.838,1852,0.404,1855,0.404,1875,0.371,1876,0.418,1881,0.354,1887,0.404,1922,0.984,1942,0.436,1948,0.458,1955,0.404,1982,0.436,1984,0.418,1991,0.458,2035,1.211,2036,0.391,2038,0.838,2055,0.896,2097,0.912,2098,0.371,2099,0.418,2101,0.458,2116,0.38,2132,0.458,2145,0.362,2168,1.325,2205,0.487,2221,0.696,2240,0.458,2247,0.458,2273,0.487,2276,0.436,2300,0.838,2327,0.458,2336,0.354,2338,0.436,2355,0.487,2374,0.354,2392,1.006,2410,0.487,2411,0.458,2424,0.458,2425,0.436,2437,1.636,2478,0.404,2549,0.804,2574,0.404,2575,0.436,2590,0.436,2593,0.838,2594,2.45,2595,0.391,2602,0.487,2607,0.38,2608,0.487,2614,0.487,2653,0.38,2654,0.418,2675,0.88,2706,0.937,2720,1.36,2721,0.804,2732,0.404,2748,0.391,2759,0.804,2789,1.057,2794,0.38,2801,0.404,2814,0.418,2825,0.418,2856,0.436,2861,2.022,2874,1.272,2875,0.487,2881,0.391,2887,0.38,2895,0.458,2946,0.458,2950,0.458,2968,0.681,2972,0.38,2978,0.696,3011,0.88,3012,0.436,3018,0.713,3019,0.436,3060,0.436,3064,0.487,3086,0.984,3090,0.487,3093,0.436,3098,0.436,3099,0.391,3113,0.753,3168,0.371,3190,0.458,3201,1.36,3213,0.418,3249,0.391,3256,1.636,3273,2.996,3292,0.436,3293,2.094,3353,0.937,3374,0.371,3404,2.858,3464,0.458,3502,1.496,3530,1.162,3564,0.458,3678,0.487,3682,0.804,3711,0.458,3733,0.436,3751,0.391,3793,2.851,3804,0.436,3812,0.937,3815,2.022,3817,0.838,3875,1.703,4026,0.487,4111,1.975,4153,0.391,4160,4.352,4184,0.418,4256,0.88,4278,0.458,4307,3.127,4319,0.436,4409,0.418,4415,1.122,4419,0.436,4420,0.937,4498,0.487,4522,0.487,4524,0.487,4541,0.458,4558,0.404,4572,0.937,4625,0.937,4637,0.436,4640,0.487,4716,0.487,4728,0.458,4869,1.272,4917,0.458,4921,0.436,4971,0.804,5062,1.211,5095,0.458,5114,0.487,5190,0.804,5210,0.436,5349,0.487,5407,0.487,5411,0.804,5434,0.838,5436,0.458,5440,0.458,5484,0.418,5560,0.458,5577,0.487,5589,0.458,5604,0.88,5614,0.458,5626,0.487,5746,4.027,5752,2.619,5768,0.458,5773,0.458,5787,0.436,5794,0.88,5819,0.937,5905,0.436,5946,0.458,5957,0.487,5958,0.458,5965,0.436,5976,0.487,5985,0.804,6014,0.88,6106,0.88,6117,0.404,6130,0.487,6131,0.487,6181,0.458,6194,1.353,6198,0.436,6204,0.937,6318,0.487,6334,2.438,6422,0.418,6429,0.487,6466,0.418,6470,0.487,6632,0.487,6637,0.487,6638,1.353,6660,0.458,6743,0.937,6866,0.436,6873,0.487,6899,0.458,6939,0.487,7125,0.487,7311,0.458,7449,0.418,7498,0.487,7537,0.487,7539,0.436,7586,0.487,7601,0.487,7615,0.937,7631,0.458,7640,0.937,7655,0.487,7708,0.487,7722,0.487,7833,0.487,7899,0.487,7900,0.487,7921,0.487,7965,0.937,7967,1.353,7968,0.937,7969,5.222,7970,0.937,7971,0.487,7975,2.438,7976,0.487,7977,1.636,7978,0.487,7979,1.211,7983,0.937,7985,0.487,7986,1.353,7987,0.531,7988,0.531,7989,0.531,7990,1.022,7991,0.531,7992,0.531,7993,0.531,7994,0.531,7995,0.531,7996,0.531,7997,0.531,7998,1.022,7999,0.531,8000,0.531,8001,0.531,8002,0.531,8003,0.531,8004,0.531,8005,1.477,8006,1.022,8007,0.531,8008,0.531,8009,0.531,8010,1.477,8011,0.531,8012,0.531,8013,0.531,8014,1.022,8015,1.022,8016,0.531,8017,0.531,8018,0.531,8019,0.531,8020,0.531,8021,1.022,8022,0.531,8023,2.661,8024,0.531,8025,1.9,8026,1.022,8027,1.477,8028,0.531,8029,0.531,8030,0.531,8031,0.531,8032,0.531,8033,1.022,8034,0.531,8035,0.531,8036,0.531,8037,0.531,8038,0.531,8039,0.531,8040,0.531,8041,0.531,8042,0.531,8043,0.531,8044,0.531,8045,0.531,8046,1.9,8047,1.477,8048,0.531,8049,0.531,8050,0.531,8051,0.531,8052,1.022,8053,0.531,8054,0.531,8055,1.022,8056,2.293,8057,1.022,8058,1.477,8059,0.531,8060,0.531,8061,0.531,8062,1.022,8063,0.531,8064,1.022,8065,1.477,8066,0.531,8067,1.022,8068,0.531,8069,0.531,8070,0.531,8071,0.531,8072,0.531,8073,0.531,8074,0.531,8075,0.531,8076,0.531,8077,0.531,8078,0.531,8079,1.022,8080,1.022,8081,0.531,8082,0.531,8083,0.531,8084,0.531,8085,0.531,8086,0.531,8087,0.531,8088,0.531,8089,0.531,8090,0.531,8091,0.531,8092,1.477,8093,1.022,8094,0.531,8095,0.531,8096,0.531,8097,0.531,8098,0.531,8099,1.477,8100,1.477,8101,1.022,8102,1.022,8103,0.531,8104,0.531,8105,0.531,8106,0.531,8107,0.531,8108,0.531,8109,0.531,8110,0.531,8111,1.022,8112,1.022,8113,0.531,8114,0.531,8115,0.531,8116,0.531,8117,0.531,8118,0.531,8119,0.531,8120,0.531,8121,0.531,8122,0.531,8123,0.531,8124,0.531,8125,0.531,8126,0.531,8127,0.531,8128,1.022,8129,0.531,8130,0.531,8131,0.531,8132,0.531,8133,1.022,8134,1.9,8135,0.531,8136,0.531,8137,0.531,8138,0.531,8139,0.531,8140,0.531,8141,0.531,8142,0.531,8143,0.531,8144,0.531,8145,0.531,8146,0.531,8147,0.531,8148,0.531,8149,0.531,8150,0.531,8151,0.531,8152,0.531,8153,0.531,8154,0.531,8155,0.531,8156,0.531,8157,0.531,8158,0.531,8159,0.531,8160,0.531,8161,1.022,8162,0.531,8163,0.531,8164,0.531,8165,0.531,8166,0.531,8167,0.531,8168,0.531,8169,0.531,8170,0.531,8171,0.531,8172,0.531,8173,0.531]],["component/46",[72,0.396]],["keyword/46",[]]],"invertedIndex":[["",{"_index":101,"title":{"10-7":{},"11-5":{},"16-24":{},"26-35":{},"35-23":{}},"name":{},"text":{"4":{},"10":{},"11":{},"13":{},"14":{},"16":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["0",{"_index":844,"title":{},"name":{},"text":{"12":{},"13":{},"20":{},"23":{},"24":{},"26":{},"28":{},"31":{},"35":{},"45":{}},"component":{},"keyword":{}}],["0.0",{"_index":6717,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0.00",{"_index":4215,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["0.1.0",{"_index":3745,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["0.3",{"_index":4213,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["0.3.0",{"_index":3739,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["0.5",{"_index":8040,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["0.866667",{"_index":1058,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["0.87",{"_index":1053,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["000",{"_index":2598,"title":{},"name":{},"text":{"17":{},"29":{}},"component":{},"keyword":{}}],["0118",{"_index":4018,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["0198",{"_index":5687,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["02",{"_index":3705,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["03",{"_index":6000,"title":{},"name":{},"text":{"29":{},"38":{}},"component":{},"keyword":{}}],["03:16:50",{"_index":3394,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["05",{"_index":5726,"title":{},"name":{},"text":{"28":{},"29":{},"30":{}},"component":{},"keyword":{}}],["07",{"_index":5734,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["08:00",{"_index":6294,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["08:12:31",{"_index":6102,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["0x1",{"_index":6813,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0x4",{"_index":6828,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0xff000000",{"_index":6808,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0xffffff00",{"_index":6830,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["0z\">{@label}use",{"_index":4033,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["403",{"_index":6152,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["404",{"_index":6151,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["419",{"_index":6513,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["42",{"_index":2778,"title":{},"name":{},"text":{"18":{},"31":{}},"component":{},"keyword":{}}],["43",{"_index":996,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["443",{"_index":5431,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["444",{"_index":6003,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["4480",{"_index":4641,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["45.68.16.159",{"_index":6736,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["4g",{"_index":6629,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["4h",{"_index":4014,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["4h.01m21",{"_index":4016,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["4k",{"_index":8053,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["4x",{"_index":8066,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["4xx",{"_index":1190,"title":{},"name":{},"text":{"14":{},"30":{}},"component":{},"keyword":{}}],["5",{"_index":413,"title":{"19-5":{},"20-15":{},"23-5":{},"24-5":{}},"name":{},"text":{"10":{},"11":{},"13":{},"14":{},"16":{},"18":{},"24":{},"27":{},"28":{},"35":{},"39":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["50",{"_index":2437,"title":{},"name":{},"text":{"16":{},"45":{},"46":{}},"component":{},"keyword":{}}],["500",{"_index":1837,"title":{},"name":{},"text":{"16":{},"18":{},"23":{},"26":{},"27":{},"46":{}},"component":{},"keyword":{}}],["500,000",{"_index":8063,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["5000",{"_index":668,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["512x512",{"_index":6494,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["52",{"_index":6721,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["53",{"_index":5357,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["54",{"_index":6771,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["55",{"_index":8115,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["55.65.117.34.bc..http",{"_index":6769,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["555",{"_index":5421,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["56",{"_index":5166,"title":{},"name":{},"text":{"27":{},"28":{},"35":{}},"component":{},"keyword":{}}],["59915",{"_index":6792,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["5].map(item",{"_index":6358,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["5g",{"_index":6630,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["5xx",{"_index":1191,"title":{},"name":{},"text":{"14":{},"30":{}},"component":{},"keyword":{}}],["6",{"_index":233,"title":{"19-6":{},"20-16":{},"23-6":{},"24-6":{}},"name":{},"text":{"4":{},"10":{},"11":{},"13":{},"16":{},"23":{},"27":{},"28":{},"31":{},"35":{},"39":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["600",{"_index":2865,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["6110",{"_index":5231,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["64",{"_index":4637,"title":{},"name":{},"text":{"26":{},"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["6423",{"_index":5472,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["644",{"_index":4673,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["7",{"_index":427,"title":{"19-7":{},"23-7":{}},"name":{},"text":{"10":{},"11":{},"27":{},"31":{},"35":{},"44":{},"46":{}},"component":{},"keyword":{}}],["70",{"_index":7955,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["700",{"_index":2869,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["700.000",{"_index":5279,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["7000",{"_index":8107,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["71",{"_index":6772,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["7126968760971714560",{"_index":8118,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["72",{"_index":5590,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["72.0",{"_index":6304,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["723",{"_index":3398,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["755",{"_index":4672,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["7700",{"_index":5691,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["777",{"_index":4671,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["780",{"_index":1788,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["79.5",{"_index":6303,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["7d756dffab6d3cd9c786ff5c659954c22944faef9433eee26f1d84eb5370b394",{"_index":5721,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["7xl",{"_index":3983,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["8",{"_index":434,"title":{"19-8":{},"29-5":{}},"name":{},"text":{"10":{},"11":{},"12":{},"16":{},"18":{},"19":{},"23":{},"24":{},"25":{},"28":{},"29":{},"35":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["8.1",{"_index":5300,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["80",{"_index":691,"title":{"25-1":{}},"name":{},"text":{"10":{},"11":{},"16":{},"25":{},"27":{},"28":{},"45":{}},"component":{},"keyword":{}}],["80/20",{"_index":1983,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["800",{"_index":3973,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["8000",{"_index":6296,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["8000x",{"_index":4893,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["8001",{"_index":6297,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["8002",{"_index":6298,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["80x",{"_index":8073,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["816",{"_index":5420,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["832",{"_index":5686,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["84",{"_index":158,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["850",{"_index":1789,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["8601",{"_index":7201,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["8664653403",{"_index":169,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["87",{"_index":4367,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["8].reduce((acc",{"_index":6359,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["9",{"_index":161,"title":{"19-9":{},"23-8":{}},"name":{},"text":{"4":{},"10":{},"11":{},"16":{},"23":{},"24":{},"26":{},"28":{},"45":{},"46":{}},"component":{},"keyword":{}}],["9.3",{"_index":6161,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["90",{"_index":4547,"title":{},"name":{},"text":{"26":{},"36":{}},"component":{},"keyword":{}}],["93697",{"_index":4210,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["940",{"_index":5690,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["95",{"_index":6778,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["9560004352",{"_index":151,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["96",{"_index":4544,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["978",{"_index":107,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["979",{"_index":168,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["9:30",{"_index":7711,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["_",{"_index":3507,"title":{},"name":{},"text":{"20":{},"22":{},"23":{},"24":{}},"component":{},"keyword":{}}],["__dir__",{"_index":4201,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["__module__.__schema__(:field",{"_index":3092,"title":{},"name":{},"text":{"19":{},"23":{},"24":{}},"component":{},"keyword":{}}],["_changeset",{"_index":3267,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["_cursiva_",{"_index":4478,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["_html",{"_index":4288,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["_param",{"_index":3348,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["_quot",{"_index":3266,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["_session",{"_index":3852,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["_valu",{"_index":2910,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["a.nic.cl",{"_index":5695,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["a1(historia",{"_index":4512,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["a1(rama",{"_index":5961,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["aaaa",{"_index":6535,"title":{"35-31":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["aaron",{"_index":4448,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["abajo",{"_index":7616,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["abandon",{"_index":5106,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["abandonar",{"_index":7431,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["abanico",{"_index":6335,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["abarca",{"_index":6556,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["abarcan",{"_index":6574,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["abarcar",{"_index":2997,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["abarrotado",{"_index":2860,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["abastracción",{"_index":2962,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["abierta",{"_index":4589,"title":{},"name":{},"text":{"26":{},"27":{},"35":{},"38":{},"41":{},"43":{}},"component":{},"keyword":{}}],["abierto",{"_index":1934,"title":{},"name":{},"text":{"16":{},"25":{},"26":{},"27":{},"30":{},"35":{},"36":{},"39":{}},"component":{},"keyword":{}}],["abogacía",{"_index":1639,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["abogado",{"_index":1626,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["abonado",{"_index":4871,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["aborda",{"_index":6901,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["abordar",{"_index":1982,"title":{},"name":{},"text":{"16":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["abrevia",{"_index":6279,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["abreviación",{"_index":8011,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["abreviado",{"_index":4946,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["abreviatura",{"_index":5813,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["abril",{"_index":4973,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{},"keyword":{}}],["abrir",{"_index":6855,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["abrupto",{"_index":4691,"title":{},"name":{},"text":{"26":{},"43":{}},"component":{},"keyword":{}}],["absoluta",{"_index":5367,"title":{"28-4":{}},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["absolutament",{"_index":7323,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["abstraccion",{"_index":7516,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["abstracción",{"_index":1392,"title":{},"name":{},"text":{"15":{},"20":{},"35":{}},"component":{},"keyword":{}}],["abstract",{"_index":1,"title":{},"name":{"1":{}},"text":{},"component":{},"keyword":{}}],["abuelo",{"_index":5223,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["abundant",{"_index":1472,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["abus",{"_index":7065,"title":{"37-9":{}},"name":{},"text":{},"component":{},"keyword":{}}],["abusiva",{"_index":1729,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["abuso",{"_index":7122,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["ac",{"_index":3043,"title":{},"name":{},"text":{"19":{},"25":{}},"component":{},"keyword":{}}],["acabaron",{"_index":5092,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["académica",{"_index":4901,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["académico",{"_index":4611,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["acarreaba",{"_index":5200,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["acc",{"_index":6360,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["acced",{"_index":3502,"title":{},"name":{},"text":{"20":{},"24":{},"26":{},"28":{},"31":{},"35":{},"36":{},"37":{},"39":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["acceda",{"_index":6684,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["accedan",{"_index":6648,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["accedemo",{"_index":5666,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["acceden",{"_index":7999,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["accedida",{"_index":7630,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["accediendo",{"_index":5163,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["acceler",{"_index":177,"title":{},"name":{},"text":{"4":{},"10":{},"13":{}},"component":{},"keyword":{}}],["accept",{"_index":749,"title":{},"name":{},"text":{"10":{},"11":{},"19":{},"20":{},"30":{},"38":{},"41":{}},"component":{},"keyword":{}}],["acces",{"_index":5829,"title":{},"name":{},"text":{"28":{},"43":{}},"component":{},"keyword":{}}],["accesibilidad",{"_index":6318,"title":{},"name":{},"text":{"30":{},"46":{}},"component":{},"keyword":{}}],["acceso",{"_index":2879,"title":{"35-49":{},"46-7":{}},"name":{},"text":{"18":{},"26":{},"27":{},"28":{},"30":{},"34":{},"35":{},"37":{},"40":{},"43":{},"44":{}},"component":{},"keyword":{}}],["access",{"_index":3329,"title":{},"name":{},"text":{"19":{},"27":{},"28":{}},"component":{},"keyword":{}}],["accident",{"_index":1490,"title":{"16-9":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["accion",{"_index":1720,"title":{},"name":{},"text":{"16":{},"20":{},"26":{},"30":{},"31":{},"40":{},"46":{}},"component":{},"keyword":{}}],["acción",{"_index":3420,"title":{"20-5":{}},"name":{},"text":{"20":{},"26":{},"30":{},"35":{},"40":{},"44":{}},"component":{},"keyword":{}}],["accustom",{"_index":3240,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["aceleración",{"_index":5181,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["aceleran",{"_index":2783,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["acelerando",{"_index":2713,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["acelerar",{"_index":1415,"title":{},"name":{},"text":{"15":{},"26":{}},"component":{},"keyword":{}}],["acept",{"_index":2338,"title":{"44":{}},"name":{},"text":{"16":{},"44":{},"46":{}},"component":{},"keyword":{}}],["acepta",{"_index":3288,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["aceptación",{"_index":7453,"title":{"44":{},"43-6":{}},"name":{},"text":{"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["aceptada",{"_index":2218,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["aceptado",{"_index":1739,"title":{},"name":{},"text":{"16":{},"38":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["aceptan",{"_index":5535,"title":{},"name":{},"text":{"28":{},"43":{}},"component":{},"keyword":{}}],["aceptar",{"_index":2164,"title":{},"name":{},"text":{"16":{},"17":{},"19":{},"26":{},"30":{},"45":{}},"component":{},"keyword":{}}],["acepten",{"_index":3499,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["acerbo",{"_index":4371,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["acerca",{"_index":1310,"title":{},"name":{},"text":{"15":{},"27":{},"41":{},"45":{}},"component":{},"keyword":{}}],["acervo",{"_index":7170,"title":{},"name":{},"text":{"38":{},"43":{}},"component":{},"keyword":{}}],["acierto",{"_index":3798,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["acomodars",{"_index":2485,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["acomplamiento",{"_index":4150,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["acoplada",{"_index":7378,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["acoplado",{"_index":4492,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["acoplamiento",{"_index":4144,"title":{},"name":{},"text":{"23":{},"43":{}},"component":{},"keyword":{}}],["acord",{"_index":5400,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["acordado",{"_index":7539,"title":{},"name":{},"text":{"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["acordar",{"_index":7934,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["acostumbrado",{"_index":2857,"title":{},"name":{},"text":{"18":{},"26":{}},"component":{},"keyword":{}}],["acotada",{"_index":2937,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["acotado",{"_index":2273,"title":{},"name":{},"text":{"16":{},"46":{}},"component":{},"keyword":{}}],["acrónimo",{"_index":863,"title":{},"name":{},"text":{"13":{},"28":{},"30":{}},"component":{},"keyword":{}}],["action",{"_index":119,"title":{},"name":{},"text":{"4":{},"10":{},"11":{},"13":{},"14":{},"19":{},"20":{},"26":{}},"component":{},"keyword":{}}],["actionscript",{"_index":5195,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["activ",{"_index":2825,"title":{},"name":{},"text":{"18":{},"28":{},"30":{},"35":{},"46":{}},"component":{},"keyword":{}}],["activa",{"_index":4542,"title":{},"name":{},"text":{"26":{},"36":{},"44":{}},"component":{},"keyword":{}}],["activado",{"_index":7580,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["activament",{"_index":7654,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["active:bg",{"_index":2868,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["actividad",{"_index":788,"title":{},"name":{},"text":{"12":{},"27":{},"35":{},"36":{},"43":{},"45":{}},"component":{},"keyword":{}}],["activo",{"_index":1226,"title":{},"name":{},"text":{"14":{},"18":{},"23":{},"27":{},"46":{}},"component":{},"keyword":{}}],["actor",{"_index":7058,"title":{"37-1":{}},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["actual",{"_index":48,"title":{"43-9":{},"43-11":{}},"name":{},"text":{"1":{},"10":{},"14":{},"18":{},"22":{},"26":{},"28":{},"29":{},"30":{},"35":{},"37":{},"38":{},"39":{},"40":{},"43":{},"45":{}},"component":{},"keyword":{}}],["actual_fields_and_typ",{"_index":4224,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["actualic",{"_index":7405,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["actualidad",{"_index":4773,"title":{},"name":{},"text":{"27":{},"29":{},"35":{}},"component":{},"keyword":{}}],["actualiza",{"_index":7403,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["actualizacion",{"_index":7640,"title":{},"name":{},"text":{"44":{},"46":{}},"component":{},"keyword":{}}],["actualización",{"_index":5190,"title":{},"name":{},"text":{"27":{},"28":{},"40":{},"43":{},"46":{}},"component":{},"keyword":{}}],["actualizada",{"_index":2236,"title":{},"name":{},"text":{"16":{},"40":{}},"component":{},"keyword":{}}],["actualizado",{"_index":3174,"title":{},"name":{},"text":{"19":{},"29":{},"35":{},"38":{},"40":{},"43":{},"45":{}},"component":{},"keyword":{}}],["actualizamo",{"_index":3191,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["actualizando",{"_index":7575,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["actualizar",{"_index":3424,"title":{"20-13":{},"20-14":{}},"name":{},"text":{"20":{},"28":{},"30":{},"39":{},"40":{},"43":{}},"component":{},"keyword":{}}],["actualment",{"_index":82,"title":{},"name":{},"text":{"3":{},"10":{},"16":{},"18":{},"27":{},"28":{},"29":{},"35":{}},"component":{},"keyword":{}}],["actúa",{"_index":7401,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["acuerdan",{"_index":1614,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["acuerdo",{"_index":1555,"title":{},"name":{},"text":{"16":{},"35":{},"44":{},"45":{}},"component":{},"keyword":{}}],["acumul",{"_index":7779,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["acumulación",{"_index":7577,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["acumulada",{"_index":7790,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["acumulado",{"_index":7792,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["acumulando",{"_index":7428,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["acus",{"_index":6696,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["acuñado",{"_index":2627,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["acústica",{"_index":4818,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["ad",{"_index":5989,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["ada",{"_index":2002,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["adaptada",{"_index":6421,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["adaptado",{"_index":2378,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["adaptar",{"_index":5262,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["adaptarla",{"_index":6424,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["adaptars",{"_index":2484,"title":{},"name":{},"text":{"16":{},"28":{},"30":{},"34":{},"35":{}},"component":{},"keyword":{}}],["adapten",{"_index":1668,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["adc",{"_index":1606,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["add",{"_index":3059,"title":{"29-29":{},"29-35":{}},"name":{},"text":{"19":{},"23":{},"29":{}},"component":{},"keyword":{}}],["add_unique_quote_ident",{"_index":3497,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["address",{"_index":5682,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["adecuada",{"_index":1858,"title":{},"name":{},"text":{"16":{},"17":{},"34":{},"43":{}},"component":{},"keyword":{}}],["adecuadament",{"_index":2068,"title":{},"name":{},"text":{"16":{},"37":{},"43":{},"45":{}},"component":{},"keyword":{}}],["adecuado",{"_index":4154,"title":{},"name":{},"text":{"23":{},"24":{},"28":{},"30":{},"34":{},"37":{},"43":{}},"component":{},"keyword":{}}],["adelant",{"_index":5944,"title":{},"name":{},"text":{"29":{},"44":{}},"component":{},"keyword":{}}],["adelantado",{"_index":7488,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["ademá",{"_index":908,"title":{},"name":{},"text":{"13":{},"14":{},"16":{},"18":{},"19":{},"21":{},"22":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"39":{},"43":{},"45":{}},"component":{},"keyword":{}}],["adher",{"_index":5996,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["adherencia",{"_index":7569,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["adicion",{"_index":719,"title":{},"name":{},"text":{"10":{},"11":{},"18":{},"20":{},"23":{},"35":{},"45":{}},"component":{},"keyword":{}}],["adicional",{"_index":3947,"title":{},"name":{},"text":{"23":{},"30":{},"35":{},"40":{},"45":{}},"component":{},"keyword":{}}],["adicionalment",{"_index":1147,"title":{},"name":{},"text":{"14":{},"19":{},"29":{},"39":{},"45":{}},"component":{},"keyword":{}}],["adjuntando",{"_index":6017,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["adjuntar",{"_index":7662,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["adjunto",{"_index":7519,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["admin",{"_index":3328,"title":{},"name":{},"text":{"19":{},"20":{},"28":{}},"component":{},"keyword":{}}],["admincl@nic.cl",{"_index":5692,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["administr",{"_index":5689,"title":{},"name":{},"text":{"28":{},"30":{}},"component":{},"keyword":{}}],["administra",{"_index":1760,"title":{},"name":{},"text":{"16":{},"28":{}},"component":{},"keyword":{}}],["administración",{"_index":5787,"title":{"43-15":{}},"name":{},"text":{"28":{},"43":{},"46":{}},"component":{},"keyword":{}}],["administrado",{"_index":7545,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["administrador",{"_index":5797,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["administrar",{"_index":5778,"title":{"44-7":{}},"name":{},"text":{"28":{},"35":{},"43":{}},"component":{},"keyword":{}}],["administrativa",{"_index":6476,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["admit",{"_index":706,"title":{},"name":{},"text":{"10":{},"11":{},"30":{}},"component":{},"keyword":{}}],["adob",{"_index":5168,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["adopción",{"_index":7518,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["adopta",{"_index":3718,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["adoptado",{"_index":4782,"title":{},"name":{},"text":{"27":{},"35":{}},"component":{},"keyword":{}}],["adoptar",{"_index":6419,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["adquiri",{"_index":5090,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["adquirida",{"_index":2244,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["adquirir",{"_index":1309,"title":{},"name":{},"text":{"15":{},"28":{}},"component":{},"keyword":{}}],["adquirirlo",{"_index":5662,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["adquisicion",{"_index":1510,"title":{"16-28":{}},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["adr",{"_index":754,"title":{"43-12":{}},"name":{"38":{}},"text":{"10":{},"11":{},"38":{},"43":{}},"component":{},"keyword":{}}],["adulterada",{"_index":7123,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["adulterado",{"_index":7007,"title":{},"name":{},"text":{"36":{},"37":{}},"component":{},"keyword":{}}],["adulterar",{"_index":7001,"title":{},"name":{},"text":{"36":{},"37":{}},"component":{},"keyword":{}}],["adversa",{"_index":2151,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["advertencia",{"_index":7953,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["advisori",{"_index":7078,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["aerolínea",{"_index":2370,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["afect",{"_index":7793,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["afecta",{"_index":6909,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["afectaba",{"_index":5183,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["afectado",{"_index":7023,"title":{},"name":{},"text":{"36":{},"39":{}},"component":{},"keyword":{}}],["afectar",{"_index":1618,"title":{},"name":{},"text":{"16":{},"26":{},"41":{},"45":{},"46":{}},"component":{},"keyword":{}}],["afectarán",{"_index":5831,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["afectarían",{"_index":7288,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["afecten",{"_index":7943,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["afinación",{"_index":1347,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["afinar",{"_index":7285,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["afirmar",{"_index":5435,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["afortunado",{"_index":2222,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["after:absolut",{"_index":3976,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["after:bord",{"_index":3978,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["after:inset",{"_index":3977,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["after:point",{"_index":3974,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["afterword",{"_index":74,"title":{},"name":{"2":{}},"text":{},"component":{},"keyword":{}}],["afuera",{"_index":2455,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ag",{"_index":6224,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["age:18",{"_index":6271,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["age=0",{"_index":3406,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["agencia",{"_index":1512,"title":{"16-31":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["agenda",{"_index":1561,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["agendado",{"_index":7859,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["agendar",{"_index":7621,"title":{"44-9":{}},"name":{},"text":{},"component":{},"keyword":{}}],["agent",{"_index":6097,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["agilidad",{"_index":779,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["agiliza",{"_index":6311,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["agilizan",{"_index":2707,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["agota",{"_index":6898,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["agotamiento",{"_index":5349,"title":{},"name":{},"text":{"27":{},"46":{}},"component":{},"keyword":{}}],["agplv3",{"_index":726,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["agreement",{"_index":1610,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["agrega",{"_index":6014,"title":{},"name":{},"text":{"29":{},"35":{},"46":{}},"component":{},"keyword":{}}],["agregado",{"_index":6170,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["agregamo",{"_index":3513,"title":{},"name":{},"text":{"20":{},"23":{},"28":{}},"component":{},"keyword":{}}],["agregan",{"_index":6960,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["agregando",{"_index":6965,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["agregar",{"_index":3201,"title":{"20-7":{},"23-1":{}},"name":{},"text":{"19":{},"20":{},"28":{},"40":{},"45":{},"46":{}},"component":{},"keyword":{}}],["agrupa",{"_index":6974,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["agrupación",{"_index":915,"title":{},"name":{},"text":{"13":{},"15":{},"18":{}},"component":{},"keyword":{}}],["agrupada",{"_index":909,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["agrupado",{"_index":5986,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["agrupan",{"_index":3460,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["agréguel",{"_index":1801,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["agua",{"_index":2367,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ahora",{"_index":2968,"title":{},"name":{},"text":{"18":{},"19":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"30":{},"45":{},"46":{}},"component":{},"keyword":{}}],["ahorr",{"_index":3811,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["ahorra",{"_index":1398,"title":{},"name":{},"text":{"15":{},"28":{},"45":{}},"component":{},"keyword":{}}],["ahorrar",{"_index":849,"title":{},"name":{},"text":{"12":{},"22":{},"29":{}},"component":{},"keyword":{}}],["ahorro",{"_index":2254,"title":{},"name":{},"text":{"16":{},"22":{}},"component":{},"keyword":{}}],["ai21",{"_index":2610,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["aim",{"_index":4991,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["air",{"_index":1854,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aislamiento",{"_index":7551,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["aislar",{"_index":3749,"title":{},"name":{},"text":{"22":{},"35":{}},"component":{},"keyword":{}}],["ajena",{"_index":2206,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ajeno",{"_index":2194,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ajust",{"_index":2739,"title":{},"name":{},"text":{"18":{},"27":{},"45":{}},"component":{},"keyword":{}}],["ajustado",{"_index":6636,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ajustan",{"_index":5496,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["ajustars",{"_index":2483,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["al",{"_index":43,"title":{"16-21":{},"23-4":{}},"name":{},"text":{"1":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["alcanc",{"_index":7449,"title":{"45-30":{}},"name":{},"text":{"41":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["alcanz",{"_index":5278,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["alcanzar",{"_index":870,"title":{},"name":{},"text":{"13":{},"16":{},"35":{},"43":{}},"component":{},"keyword":{}}],["aleatoria",{"_index":3277,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["alejado",{"_index":3763,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["alejart",{"_index":2799,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["alemán",{"_index":4836,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["alentador",{"_index":5299,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["alert",{"_index":1218,"title":{},"name":{},"text":{"14":{},"23":{},"45":{}},"component":{},"keyword":{}}],["alerta",{"_index":983,"title":{"14-1":{},"14-2":{},"14-3":{},"14-4":{}},"name":{},"text":{"13":{},"14":{},"15":{},"23":{},"39":{},"43":{},"45":{}},"component":{},"keyword":{}}],["alertar",{"_index":1451,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["alex",{"_index":163,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["alfa/aceptación",{"_index":7482,"title":{"43-31":{}},"name":{},"text":{},"component":{},"keyword":{}}],["alfabético",{"_index":7407,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["alfr",{"_index":4807,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["algo",{"_index":2701,"title":{},"name":{},"text":{"18":{},"27":{},"28":{},"29":{},"30":{},"32":{},"35":{},"45":{}},"component":{},"keyword":{}}],["algoritmo",{"_index":2425,"title":{},"name":{},"text":{"16":{},"18":{},"36":{},"46":{}},"component":{},"keyword":{}}],["alguien",{"_index":1869,"title":{},"name":{},"text":{"16":{},"26":{},"28":{},"45":{}},"component":{},"keyword":{}}],["alguna",{"_index":1338,"title":{"16-17":{}},"name":{},"text":{"15":{},"16":{},"28":{},"29":{},"30":{},"32":{},"35":{},"38":{},"39":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["alguno",{"_index":653,"title":{"29-1":{},"29-11":{},"29-27":{}},"name":{},"text":{"10":{},"11":{},"16":{},"18":{},"21":{},"22":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"35":{},"36":{},"37":{},"39":{},"40":{},"43":{}},"component":{},"keyword":{}}],["algún",{"_index":1245,"title":{},"name":{},"text":{"14":{},"16":{},"28":{},"39":{},"45":{}},"component":{},"keyword":{}}],["alia",{"_index":3135,"title":{},"name":{},"text":{"19":{},"20":{},"23":{},"24":{}},"component":{},"keyword":{}}],["alienado",{"_index":7508,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["align",{"_index":7698,"title":{"45-25":{}},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["alimentación",{"_index":4942,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["alimentándos",{"_index":2067,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["alineación",{"_index":5111,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["alineada",{"_index":7532,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["alineado",{"_index":7523,"title":{},"name":{},"text":{"43":{},"44":{}},"component":{},"keyword":{}}],["alineamiento",{"_index":7466,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["alinear",{"_index":7870,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["alink=\"#ff4c4c",{"_index":5120,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["all_quot",{"_index":3608,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["alla",{"_index":2111,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["allend",{"_index":146,"title":{},"name":{},"text":{"4":{},"10":{},"27":{}},"component":{},"keyword":{}}],["allow",{"_index":3327,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["allow_nil",{"_index":3483,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["alma",{"_index":3801,"title":{"26-18":{}},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["almacena",{"_index":6028,"title":{},"name":{},"text":{"29":{},"35":{},"40":{},"43":{}},"component":{},"keyword":{}}],["almacenada",{"_index":7112,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["almacenado",{"_index":4409,"title":{},"name":{},"text":{"26":{},"35":{},"37":{},"43":{},"46":{}},"component":{},"keyword":{}}],["almacenamiento",{"_index":4160,"title":{"46-20":{}},"name":{},"text":{"23":{},"35":{},"43":{},"46":{}},"component":{},"keyword":{}}],["almacenan",{"_index":5095,"title":{},"name":{},"text":{"27":{},"36":{},"46":{}},"component":{},"keyword":{}}],["almacenando",{"_index":8159,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["almacenar",{"_index":721,"title":{},"name":{},"text":{"10":{},"11":{},"18":{},"19":{},"23":{},"26":{},"30":{},"36":{},"46":{}},"component":{},"keyword":{}}],["almacenarlo",{"_index":6203,"title":{},"name":{},"text":{"30":{},"38":{}},"component":{},"keyword":{}}],["almacén",{"_index":8080,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["almeno",{"_index":2995,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["almuerzo",{"_index":7713,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["aloja",{"_index":4355,"title":{},"name":{},"text":{"26":{},"28":{},"29":{}},"component":{},"keyword":{}}],["alojamiento",{"_index":5779,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["alojan",{"_index":3341,"title":{},"name":{},"text":{"19":{},"35":{}},"component":{},"keyword":{}}],["alpha",{"_index":7276,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["alpin",{"_index":2023,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["alpine.j",{"_index":2883,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["alrededor",{"_index":1731,"title":{},"name":{},"text":{"16":{},"27":{},"46":{}},"component":{},"keyword":{}}],["alta",{"_index":871,"title":{},"name":{},"text":{"13":{},"14":{},"15":{},"16":{},"18":{},"22":{},"27":{},"28":{},"30":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["altament",{"_index":1277,"title":{},"name":{},"text":{"14":{},"22":{},"40":{}},"component":{},"keyword":{}}],["alterado",{"_index":6963,"title":{},"name":{},"text":{"35":{},"36":{}},"component":{},"keyword":{}}],["alterar",{"_index":2589,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["alternativa",{"_index":2252,"title":{"22-10":{},"26-7":{},"28-26":{},"32-3":{}},"name":{},"text":{"16":{},"18":{},"22":{},"26":{},"28":{},"29":{},"32":{},"34":{},"35":{},"36":{},"38":{},"39":{},"45":{}},"component":{},"keyword":{}}],["alternativo",{"_index":7193,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["alto",{"_index":677,"title":{},"name":{},"text":{"10":{},"11":{},"13":{},"16":{},"22":{},"30":{},"43":{},"45":{}},"component":{},"keyword":{}}],["amazon",{"_index":259,"title":{},"name":{},"text":{"4":{},"10":{},"16":{},"28":{},"30":{},"43":{}},"component":{},"keyword":{}}],["amba",{"_index":1463,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["ambient",{"_index":761,"title":{"12":{},"12-1":{},"12-2":{},"12-3":{},"12-4":{},"24-1":{},"29-20":{},"29-21":{}},"name":{},"text":{"12":{},"13":{},"15":{},"16":{},"18":{},"19":{},"24":{},"28":{},"29":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["ambigüedad",{"_index":6285,"title":{},"name":{},"text":{"30":{},"39":{}},"component":{},"keyword":{}}],["ambigüo",{"_index":2119,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ambo",{"_index":2766,"title":{},"name":{},"text":{"18":{},"19":{},"22":{},"28":{},"35":{}},"component":{},"keyword":{}}],["america/santiago",{"_index":7719,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["amig",{"_index":3795,"title":{},"name":{},"text":{"22":{},"43":{}},"component":{},"keyword":{}}],["amigo",{"_index":1636,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["amistoso",{"_index":2075,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["amo",{"_index":4537,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["amontonado",{"_index":7330,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["amplia",{"_index":2031,"title":{},"name":{},"text":{"16":{},"22":{},"30":{},"35":{},"43":{}},"component":{},"keyword":{}}],["ampliabl",{"_index":6093,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["ampliación",{"_index":8128,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["ampliament",{"_index":2417,"title":{},"name":{},"text":{"16":{},"30":{},"35":{}},"component":{},"keyword":{}}],["ampliando",{"_index":2415,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ampliaron",{"_index":4457,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["amplificador",{"_index":4878,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["amplio",{"_index":2933,"title":{},"name":{},"text":{"18":{},"37":{}},"component":{},"keyword":{}}],["amus",{"_index":460,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["analiza",{"_index":1174,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["analizado",{"_index":1764,"title":{},"name":{},"text":{"16":{},"26":{}},"component":{},"keyword":{}}],["analizamo",{"_index":3882,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["analizan",{"_index":6923,"title":{},"name":{},"text":{"35":{},"43":{}},"component":{},"keyword":{}}],["analizando",{"_index":6839,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["analizar",{"_index":1177,"title":{},"name":{},"text":{"14":{},"15":{},"26":{},"30":{},"35":{},"38":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["analysi",{"_index":479,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["analyt",{"_index":480,"title":{},"name":{},"text":{"10":{},"11":{},"35":{}},"component":{},"keyword":{}}],["ancho",{"_index":5164,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["andreessen",{"_index":5104,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["andrej",{"_index":2628,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["android",{"_index":370,"title":{"27-28":{},"32-1":{}},"name":{},"text":{"10":{},"11":{},"16":{},"25":{},"27":{},"32":{},"34":{},"44":{}},"component":{},"keyword":{}}],["anexa",{"_index":2925,"title":{},"name":{},"text":{"18":{},"41":{}},"component":{},"keyword":{}}],["anexo",{"_index":7494,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["angular",{"_index":1961,"title":{},"name":{},"text":{"16":{},"18":{},"29":{},"32":{},"40":{}},"component":{},"keyword":{}}],["anidada",{"_index":3709,"title":{},"name":{},"text":{"22":{},"31":{}},"component":{},"keyword":{}}],["anim",{"_index":5204,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["animacion",{"_index":1998,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["animación",{"_index":4757,"title":{"27-21":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["annalyn’",{"_index":409,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["ano",{"_index":2656,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["anomalía",{"_index":1359,"title":{},"name":{},"text":{"15":{},"45":{}},"component":{},"keyword":{}}],["anonimato",{"_index":6881,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["anonym",{"_index":419,"title":{},"name":{},"text":{"10":{},"11":{},"27":{}},"component":{},"keyword":{}}],["anotacion",{"_index":1197,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["answer",{"_index":6798,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ant",{"_index":1166,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"18":{},"19":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"37":{},"39":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["antel",{"_index":6617,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["antelación",{"_index":7778,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["antena",{"_index":4877,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["anterior",{"_index":1054,"title":{},"name":{},"text":{"13":{},"16":{},"18":{},"20":{},"22":{},"23":{},"24":{},"26":{},"28":{},"29":{},"35":{},"41":{},"43":{},"45":{}},"component":{},"keyword":{}}],["anteriorment",{"_index":5439,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["antigua",{"_index":2150,"title":{"20-15":{}},"name":{},"text":{"16":{},"18":{},"30":{},"34":{}},"component":{},"keyword":{}}],["antiguo",{"_index":1865,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["antigüedad",{"_index":506,"title":{},"name":{},"text":{"10":{},"11":{},"16":{}},"component":{},"keyword":{}}],["antigüo",{"_index":2317,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["antonio",{"_index":4822,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["antora",{"_index":614,"title":{},"name":{},"text":{"10":{},"11":{},"38":{},"43":{}},"component":{},"keyword":{}}],["anual",{"_index":5159,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["anunciado",{"_index":7253,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["anunciant",{"_index":7045,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["anunciar",{"_index":7235,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["anuncio",{"_index":4957,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["anyway",{"_index":3335,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["análisi",{"_index":1129,"title":{},"name":{},"text":{"13":{},"15":{},"16":{},"38":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["análsi",{"_index":2672,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["apach",{"_index":2025,"title":{},"name":{},"text":{"16":{},"18":{},"28":{}},"component":{},"keyword":{}}],["apache2",{"_index":2979,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["apagada",{"_index":3176,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["apagado",{"_index":846,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["apagón",{"_index":1066,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["aparato",{"_index":5215,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["aparec",{"_index":1751,"title":{},"name":{},"text":{"16":{},"37":{}},"component":{},"keyword":{}}],["aparecen",{"_index":4414,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["apareci",{"_index":5230,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["aparecían",{"_index":1735,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aparición",{"_index":5311,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["apariencia",{"_index":5810,"title":{},"name":{},"text":{"28":{},"41":{}},"component":{},"keyword":{}}],["apariencia/presentación",{"_index":5864,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["apart",{"_index":7864,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["api",{"_index":333,"title":{"19":{},"20":{},"23":{},"24":{},"30":{},"10-7":{},"11-5":{},"30-7":{},"30-8":{},"30-9":{},"30-20":{},"43-8":{},"43-10":{}},"name":{},"text":{"10":{},"11":{},"15":{},"17":{},"18":{},"19":{},"20":{},"23":{},"24":{},"26":{},"27":{},"30":{},"32":{},"36":{},"39":{},"43":{}},"component":{},"keyword":{}}],["api/quot",{"_index":3275,"title":{},"name":{},"text":{"19":{},"24":{}},"component":{},"keyword":{}}],["api/quotes/random",{"_index":3276,"title":{},"name":{},"text":{"19":{},"24":{}},"component":{},"keyword":{}}],["apirest",{"_index":3017,"title":{},"name":{"19":{}},"text":{},"component":{},"keyword":{}}],["aplic",{"_index":6196,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["aplica",{"_index":4305,"title":{},"name":{},"text":{"25":{},"35":{},"40":{},"45":{}},"component":{},"keyword":{}}],["aplicacion",{"_index":57,"title":{"27":{},"32":{},"37":{},"27-13":{},"27-22":{},"27-32":{}},"name":{},"text":{"1":{},"3":{},"10":{},"11":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"22":{},"26":{},"27":{},"28":{},"30":{},"32":{},"34":{},"35":{},"36":{},"37":{},"40":{},"44":{},"46":{}},"component":{},"keyword":{}}],["aplicación",{"_index":687,"title":{"35-46":{}},"name":{},"text":{"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"18":{},"19":{},"20":{},"21":{},"24":{},"27":{},"28":{},"30":{},"32":{},"34":{},"35":{},"37":{},"40":{},"43":{},"44":{},"46":{}},"component":{},"keyword":{}}],["aplicada",{"_index":8008,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["aplicado",{"_index":7245,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["aplican",{"_index":7812,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["aplicando",{"_index":2727,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["aplicar",{"_index":2732,"title":{},"name":{},"text":{"18":{},"20":{},"38":{},"39":{},"44":{},"46":{}},"component":{},"keyword":{}}],["aplicarlo",{"_index":8003,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["aplicars",{"_index":6883,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["apliqu",{"_index":7559,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["aportando",{"_index":2387,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aportar",{"_index":7931,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["apoy",{"_index":7167,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["apoya",{"_index":7166,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["apoyar",{"_index":7930,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["apoyo",{"_index":393,"title":{},"name":{},"text":{"10":{},"11":{},"13":{},"16":{},"27":{},"28":{},"38":{},"41":{},"45":{}},"component":{},"keyword":{}}],["app",{"_index":369,"title":{"34":{}},"name":{},"text":{"10":{},"11":{},"27":{},"34":{}},"component":{},"keyword":{}}],["app.webmanifest",{"_index":6482,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["appicon.png",{"_index":6496,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["appicon@2x.png",{"_index":6499,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["appicon_rounded.png",{"_index":6498,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["appl",{"_index":1826,"title":{"27-24":{}},"name":{},"text":{"16":{},"27":{},"32":{},"40":{}},"component":{},"keyword":{}}],["applet",{"_index":5800,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["applic",{"_index":112,"title":{},"name":{},"text":{"4":{},"10":{},"19":{},"26":{},"27":{},"37":{},"46":{}},"component":{},"keyword":{}}],["application.compile_env(:stoic_quot",{"_index":3322,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["application/json",{"_index":3402,"title":{},"name":{},"text":{"19":{},"30":{}},"component":{},"keyword":{}}],["application/manifest+json",{"_index":6484,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["approve_ord",{"_index":3457,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["appstor",{"_index":6401,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{},"keyword":{}}],["apreciacion",{"_index":7214,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["apreciar",{"_index":7337,"title":{},"name":{},"text":{"40":{},"45":{}},"component":{},"keyword":{}}],["aprend",{"_index":339,"title":{},"name":{},"text":{"10":{},"11":{},"16":{},"18":{},"26":{},"28":{},"29":{},"38":{},"40":{},"46":{}},"component":{},"keyword":{}}],["aprenden",{"_index":2580,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["aprendiendo",{"_index":2050,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["aprendizaj",{"_index":381,"title":{"16-56":{},"29-15":{}},"name":{},"text":{"10":{},"11":{},"17":{},"18":{},"22":{},"26":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["aprobacion",{"_index":7461,"title":{"44-22":{}},"name":{},"text":{"41":{},"44":{}},"component":{},"keyword":{}}],["aprobación",{"_index":962,"title":{"44-12":{}},"name":{},"text":{"13":{},"44":{},"45":{}},"component":{},"keyword":{}}],["aprobado",{"_index":830,"title":{},"name":{},"text":{"12":{},"29":{},"44":{},"45":{}},"component":{},"keyword":{}}],["apropiadament",{"_index":5903,"title":{},"name":{},"text":{"29":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["apropiado",{"_index":2279,"title":{},"name":{},"text":{"16":{},"43":{},"45":{}},"component":{},"keyword":{}}],["apropiar",{"_index":1630,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aprovechar",{"_index":6333,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["aproximada",{"_index":7878,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["aproximado",{"_index":8010,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["apunta",{"_index":6858,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["apuntan",{"_index":6856,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["apuntando",{"_index":6864,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["apuntar",{"_index":966,"title":{},"name":{},"text":{"13":{},"35":{}},"component":{},"keyword":{}}],["apuntara",{"_index":4148,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["aqu",{"_index":3711,"title":{},"name":{},"text":{"22":{},"26":{},"46":{}},"component":{},"keyword":{}}],["aquel",{"_index":1553,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aquello",{"_index":3779,"title":{},"name":{},"text":{"22":{},"26":{},"28":{},"35":{},"37":{}},"component":{},"keyword":{}}],["ar",{"_index":5487,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["arab",{"_index":6001,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["arca",{"_index":2229,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["architectur",{"_index":273,"title":{},"name":{},"text":{"4":{},"10":{},"46":{}},"component":{},"keyword":{}}],["archive.instal",{"_index":3441,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["archivo",{"_index":784,"title":{"29-29":{},"30-13":{}},"name":{},"text":{"12":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"46":{}},"component":{},"keyword":{}}],["archivo1",{"_index":4657,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["archivo2",{"_index":4658,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["area",{"_index":6666,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["area:mark",{"_index":6264,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["autorización",{"_index":3433,"title":{},"name":{},"text":{"20":{},"26":{},"30":{},"45":{}},"component":{},"keyword":{}}],["autorizada",{"_index":831,"title":{},"name":{},"text":{"12":{},"43":{},"45":{}},"component":{},"keyword":{}}],["autorizado",{"_index":837,"title":{},"name":{},"text":{"12":{},"28":{},"43":{},"45":{}},"component":{},"keyword":{}}],["autorizar",{"_index":7952,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["autoría",{"_index":1794,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["autoselect",{"_index":6837,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["autossl",{"_index":5822,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["autosuficient",{"_index":7322,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["autónomo",{"_index":1545,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["avail",{"_index":1176,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["avanc",{"_index":580,"title":{},"name":{},"text":{"10":{},"11":{},"16":{},"17":{},"36":{},"41":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["avanza",{"_index":7009,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["avanzada",{"_index":3768,"title":{},"name":{},"text":{"22":{},"27":{}},"component":{},"keyword":{}}],["avanzar",{"_index":7908,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["avecina",{"_index":7608,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["aventurars",{"_index":5915,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["avisado",{"_index":7912,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["aviso",{"_index":2250,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["aw",{"_index":264,"title":{},"name":{},"text":{"4":{},"10":{},"18":{}},"component":{},"keyword":{}}],["awk",{"_index":2018,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ayer",{"_index":1255,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["ayuda",{"_index":895,"title":{"29-9":{}},"name":{},"text":{"13":{},"15":{},"16":{},"26":{},"28":{},"29":{},"35":{},"40":{},"43":{},"45":{}},"component":{},"keyword":{}}],["ayudan",{"_index":884,"title":{},"name":{},"text":{"13":{},"15":{},"38":{},"40":{},"43":{}},"component":{},"keyword":{}}],["ayudando",{"_index":1369,"title":{},"name":{},"text":{"15":{},"36":{}},"component":{},"keyword":{}}],["ayudar",{"_index":1014,"title":{},"name":{},"text":{"13":{},"15":{},"17":{},"27":{},"39":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["ayudarlo",{"_index":2313,"title":{},"name":{},"text":{"16":{},"26":{}},"component":{},"keyword":{}}],["ayudarán",{"_index":7168,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["ayuden",{"_index":7517,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["az7t?trk=public_profile_like_view",{"_index":8119,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["azur",{"_index":2989,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["añad",{"_index":1315,"title":{},"name":{},"text":{"15":{},"29":{},"45":{}},"component":{},"keyword":{}}],["añadido",{"_index":3884,"title":{},"name":{},"text":{"23":{},"45":{}},"component":{},"keyword":{}}],["añadiendo",{"_index":3194,"title":{},"name":{},"text":{"19":{},"28":{},"30":{},"31":{}},"component":{},"keyword":{}}],["añadimo",{"_index":3187,"title":{},"name":{},"text":{"19":{},"23":{},"24":{},"31":{}},"component":{},"keyword":{}}],["añadir",{"_index":982,"title":{"19-4":{}},"name":{},"text":{"13":{},"15":{},"18":{},"19":{},"23":{},"30":{},"45":{}},"component":{},"keyword":{}}],["añadiremo",{"_index":4081,"title":{},"name":{},"text":{"23":{},"26":{}},"component":{},"keyword":{}}],["año",{"_index":505,"title":{},"name":{},"text":{"10":{},"11":{},"13":{},"16":{},"18":{},"22":{},"27":{},"28":{},"29":{},"30":{},"32":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["añádal",{"_index":1804,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["aún",{"_index":1768,"title":{},"name":{},"text":{"16":{},"18":{},"24":{},"28":{},"29":{},"38":{},"39":{},"45":{},"46":{}},"component":{},"keyword":{}}],["b",{"_index":193,"title":{"29-32":{}},"name":{},"text":{"4":{},"10":{},"22":{},"23":{},"27":{},"29":{},"45":{},"46":{}},"component":{},"keyword":{}}],["b.nic.cl",{"_index":5698,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["b1",{"_index":4513,"title":{},"name":{},"text":{"26":{},"29":{}},"component":{},"keyword":{}}],["b1(host",{"_index":4514,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["b1(rama",{"_index":5962,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["b2(rama",{"_index":5963,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["b2[concepto",{"_index":4515,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["b2g",{"_index":5304,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["b3[cpanel",{"_index":4516,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["b4[sistema",{"_index":4517,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["b5[html",{"_index":4518,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["b6[github",{"_index":4519,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["backbon",{"_index":6577,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["backdoor",{"_index":7089,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["backend",{"_index":354,"title":{"18-13":{},"18-26":{}},"name":{},"text":{"10":{},"11":{},"16":{},"18":{},"22":{},"25":{},"28":{},"30":{},"32":{},"37":{},"45":{}},"component":{},"keyword":{}}],["background=\"../../img/bg_stars.jpg",{"_index":5116,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["background_color",{"_index":6489,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["backlog",{"_index":1097,"title":{},"name":{},"text":{"13":{},"43":{},"45":{}},"component":{},"keyword":{}}],["bad_valu",{"_index":3152,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["baja",{"_index":1090,"title":{},"name":{},"text":{"13":{},"14":{},"26":{},"37":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["baja/media",{"_index":5623,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["bajo",{"_index":297,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"16":{},"18":{},"23":{},"27":{},"29":{},"35":{},"40":{},"41":{},"43":{},"45":{}},"component":{},"keyword":{}}],["bajos→ca",{"_index":7973,"title":{"46-11":{}},"name":{},"text":{},"component":{},"keyword":{}}],["baker",{"_index":206,"title":{},"name":{},"text":{"4":{},"10":{},"38":{}},"component":{},"keyword":{}}],["balanc",{"_index":7982,"title":{"46-29":{}},"name":{},"text":{},"component":{},"keyword":{}}],["balanceador",{"_index":8134,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["balanceo",{"_index":7980,"title":{"46-29":{}},"name":{},"text":{},"component":{},"keyword":{}}],["bancaria",{"_index":1592,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["banco",{"_index":1518,"title":{"16-37":{}},"name":{},"text":{"16":{},"18":{},"37":{}},"component":{},"keyword":{}}],["banda",{"_index":5165,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["bandeja",{"_index":2251,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["bandera",{"_index":4737,"title":{"27-1":{}},"name":{},"text":{"27":{},"45":{}},"component":{},"keyword":{}}],["bar",{"_index":3731,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["bar/1",{"_index":3716,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["barato",{"_index":8122,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["barco",{"_index":4777,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["barra",{"_index":2034,"title":{},"name":{},"text":{"16":{},"26":{},"28":{}},"component":{},"keyword":{}}],["basa",{"_index":2554,"title":{},"name":{},"text":{"17":{},"30":{},"35":{},"36":{},"41":{}},"component":{},"keyword":{}}],["basada",{"_index":1133,"title":{"14-3":{}},"name":{},"text":{"14":{},"15":{},"16":{},"22":{},"26":{},"28":{},"30":{}},"component":{},"keyword":{}}],["basado",{"_index":3018,"title":{},"name":{},"text":{"19":{},"26":{},"27":{},"29":{},"30":{},"34":{},"36":{},"44":{},"46":{}},"component":{},"keyword":{}}],["basan",{"_index":7351,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["basars",{"_index":5960,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["base",{"_index":212,"title":{"19-1":{},"19-4":{},"23-6":{},"46-10":{},"46-24":{},"46-31":{}},"name":{},"text":{"4":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"34":{},"35":{},"36":{},"37":{},"40":{},"41":{},"43":{},"46":{}},"component":{},"keyword":{}}],["base/7",{"_index":4028,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["base64",{"_index":6990,"title":{"36-5":{}},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["bash",{"_index":2016,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["basic",{"_index":399,"title":{},"name":{},"text":{"10":{},"11":{},"16":{},"19":{},"30":{}},"component":{},"keyword":{}}],["basico",{"_index":4675,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["bastant",{"_index":2803,"title":{},"name":{},"text":{"18":{},"32":{}},"component":{},"keyword":{}}],["batalla",{"_index":2083,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["batería",{"_index":1840,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["baz",{"_index":3730,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["baz/1",{"_index":3715,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["bb",{"_index":4754,"title":{"27-15":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["bcrypt",{"_index":6989,"title":{"36-4":{}},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["bd",{"_index":3206,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["beam",{"_index":2669,"title":{"18-14":{}},"name":{},"text":{"18":{},"22":{}},"component":{},"keyword":{}}],["beer",{"_index":4930,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["begin",{"_index":3245,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["beginn",{"_index":8162,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["beginner’",{"_index":134,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["behind",{"_index":179,"title":{},"name":{},"text":{"4":{},"10":{},"19":{}},"component":{},"keyword":{}}],["bello",{"_index":1805,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["beneficiarán",{"_index":7633,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["beneficio",{"_index":1157,"title":{"15-2":{}},"name":{},"text":{"14":{},"15":{},"16":{},"29":{},"34":{},"37":{},"41":{}},"component":{},"keyword":{}}],["berner",{"_index":154,"title":{},"name":{},"text":{"4":{},"10":{},"27":{},"30":{}},"component":{},"keyword":{}}],["bert",{"_index":5133,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["best",{"_index":3581,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["beta",{"_index":3769,"title":{},"name":{},"text":{"22":{},"39":{}},"component":{},"keyword":{}}],["beta.5",{"_index":6051,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["between",{"_index":6179,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["beyer",{"_index":192,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["bg",{"_index":2812,"title":{},"name":{},"text":{"18":{},"23":{}},"component":{},"keyword":{}}],["bgcolor=\"#000",{"_index":5885,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["bgcolor=\"#000000",{"_index":5115,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["bi",{"_index":4931,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["bibliografía",{"_index":88,"title":{"4-1":{},"10-10":{}},"name":{},"text":{},"component":{},"keyword":{}}],["bibliographi",{"_index":89,"title":{},"name":{"4":{}},"text":{},"component":{},"keyword":{}}],["biblioteca",{"_index":549,"title":{},"name":{},"text":{"10":{},"11":{},"15":{},"18":{}},"component":{},"keyword":{}}],["bidireccional",{"_index":4861,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["bien",{"_index":758,"title":{},"name":{},"text":{"10":{},"11":{},"13":{},"16":{},"17":{},"18":{},"19":{},"22":{},"26":{},"28":{},"29":{},"34":{},"38":{},"39":{},"40":{},"43":{},"44":{},"46":{}},"component":{},"keyword":{}}],["bienvenida",{"_index":4203,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["bienvenido",{"_index":2645,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["bifurcación",{"_index":4330,"title":{"26-2":{}},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["bigg",{"_index":126,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["bigint",{"_index":8024,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["bigseri",{"_index":3183,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["billon",{"_index":6640,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["billón",{"_index":8017,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["binaria",{"_index":6976,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["binario",{"_index":2759,"title":{},"name":{},"text":{"18":{},"30":{},"35":{},"36":{},"46":{}},"component":{},"keyword":{}}],["bind",{"_index":7418,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["bird",{"_index":444,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["bit",{"_index":4307,"title":{},"name":{},"text":{"25":{},"35":{},"46":{}},"component":{},"keyword":{}}],["bitcoin",{"_index":7016,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["biz",{"_index":5503,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["black",{"_index":5887,"title":{"37-2":{}},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["blackberri",{"_index":4767,"title":{"27-29":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["blade",{"_index":2973,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["blanco",{"_index":4646,"title":{},"name":{},"text":{"26":{},"37":{}},"component":{},"keyword":{}}],["blanda",{"_index":2480,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["blank",{"_index":4244,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["blast",{"_index":6231,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["blazor",{"_index":1979,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["blob",{"_index":8030,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["blob(1mb",{"_index":8110,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["bloc",{"_index":5212,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["blockchain",{"_index":7017,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["blog",{"_index":244,"title":{},"name":{},"text":{"4":{},"10":{},"18":{},"39":{}},"component":{},"keyword":{}}],["bloqu",{"_index":3641,"title":{},"name":{},"text":{"20":{},"36":{}},"component":{},"keyword":{}}],["bloqueo",{"_index":6895,"title":{"44-8":{}},"name":{},"text":{"35":{},"44":{},"45":{}},"component":{},"keyword":{}}],["blue",{"_index":2849,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["bo",{"_index":5134,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["board",{"_index":452,"title":{},"name":{},"text":{"10":{},"11":{},"27":{}},"component":{},"keyword":{}}],["bodi",{"_index":3932,"title":{},"name":{},"text":{"23":{},"26":{},"27":{},"29":{},"30":{}},"component":{},"keyword":{}}],["body>+cambiame{msg}stoicquot",{"_index":3908,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["framework7",{"_index":6425,"title":{"34-2":{}},"name":{},"text":{"32":{},"34":{}},"component":{},"keyword":{}}],["frameworkmi",{"_index":5891,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["h1>world",{"_index":4983,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["h2",{"_index":4027,"title":{},"name":{},"text":{"23":{},"26":{},"29":{}},"component":{},"keyword":{}}],["h2>mi",{"_index":5893,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["h3",{"_index":4474,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["h3>mi",{"_index":5895,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["ha",{"_index":499,"title":{},"name":{},"text":{"10":{},"11":{},"13":{},"14":{},"18":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"35":{},"36":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["haber",{"_index":5199,"title":{},"name":{},"text":{"27":{},"29":{},"40":{},"45":{}},"component":{},"keyword":{}}],["habido",{"_index":6130,"title":{},"name":{},"text":{"30":{},"46":{}},"component":{},"keyword":{}}],["habilidad",{"_index":1116,"title":{"16-20":{}},"name":{},"text":{"13":{},"16":{},"17":{},"43":{}},"component":{},"keyword":{}}],["habilita",{"_index":6184,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["habilitada",{"_index":1206,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["habilitado",{"_index":4186,"title":{},"name":{},"text":{"23":{},"43":{}},"component":{},"keyword":{}}],["habilitar",{"_index":1153,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["habilitar/deshabilitar",{"_index":7394,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["habilitarlo",{"_index":2128,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["habiten",{"_index":7764,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["habitu",{"_index":7315,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["habitual",{"_index":6649,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["habitualment",{"_index":1612,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["habla",{"_index":2117,"title":{},"name":{},"text":{"16":{},"29":{},"38":{}},"component":{},"keyword":{}}],["había",{"_index":5316,"title":{},"name":{},"text":{"27":{},"29":{}},"component":{},"keyword":{}}],["habían",{"_index":1738,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["hace",{"_index":1231,"title":{"16-21":{}},"name":{},"text":{"14":{},"16":{},"18":{},"26":{},"28":{},"29":{},"39":{},"40":{},"41":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["hacemo",{"_index":893,"title":{},"name":{},"text":{"13":{},"26":{}},"component":{},"keyword":{}}],["hacen",{"_index":1797,"title":{},"name":{},"text":{"16":{},"28":{},"29":{},"30":{},"40":{}},"component":{},"keyword":{}}],["hacer",{"_index":980,"title":{},"name":{},"text":{"13":{},"16":{},"18":{},"19":{},"20":{},"22":{},"26":{},"27":{},"28":{},"29":{},"32":{},"37":{},"45":{},"46":{}},"component":{},"keyword":{}}],["hacerla",{"_index":7607,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["hacerlo",{"_index":1651,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["hacers",{"_index":7536,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["hacia",{"_index":1120,"title":{},"name":{},"text":{"13":{},"16":{},"23":{},"27":{},"29":{},"35":{}},"component":{},"keyword":{}}],["haciendo",{"_index":1845,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{},"keyword":{}}],["hack",{"_index":2661,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["hacker",{"_index":7059,"title":{"37-2":{},"37-3":{},"37-4":{}},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["hacía",{"_index":2693,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["haga",{"_index":7960,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["han",{"_index":1111,"title":{},"name":{},"text":{"13":{},"16":{},"27":{},"30":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["hanami",{"_index":2935,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["handle_event(\"inc_temperatur",{"_index":2909,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["handle_event(\"sav",{"_index":4088,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["handle_event(\"valid",{"_index":4085,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["happi",{"_index":3556,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["har",{"_index":7465,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["hard",{"_index":7195,"title":{},"name":{},"text":{"38":{},"39":{}},"component":{},"keyword":{}}],["hardwar",{"_index":3815,"title":{},"name":{},"text":{"22":{},"25":{},"27":{},"35":{},"43":{},"46":{}},"component":{},"keyword":{}}],["harmonyo",{"_index":6397,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["harán",{"_index":5568,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["hash",{"_index":6286,"title":{"36-1":{}},"name":{},"text":{"30":{},"36":{}},"component":{},"keyword":{}}],["hasta",{"_index":939,"title":{},"name":{},"text":{"13":{},"16":{},"17":{},"22":{},"26":{},"27":{},"28":{},"35":{},"36":{},"39":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["hasvalidtoken",{"_index":7152,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["hat",{"_index":4563,"title":{"37-2":{},"37-3":{},"37-4":{}},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["hax",{"_index":5205,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["hay",{"_index":637,"title":{},"name":{},"text":{"10":{},"11":{},"14":{},"16":{},"22":{},"24":{},"27":{},"28":{},"29":{},"30":{},"32":{},"36":{},"37":{},"40":{},"45":{},"46":{}},"component":{},"keyword":{}}],["haya",{"_index":3876,"title":{},"name":{},"text":{"23":{},"28":{}},"component":{},"keyword":{}}],["hayan",{"_index":7636,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["haz",{"_index":2286,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["head",{"_index":3890,"title":{},"name":{},"text":{"23":{},"29":{},"35":{}},"component":{},"keyword":{}}],["header",{"_index":3970,"title":{"30-1":{}},"name":{},"text":{"23":{},"27":{},"35":{}},"component":{},"keyword":{}}],["heat",{"_index":6247,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["hecha",{"_index":5203,"title":{},"name":{},"text":{"27":{},"28":{},"32":{}},"component":{},"keyword":{}}],["hecho",{"_index":759,"title":{},"name":{},"text":{"10":{},"11":{},"18":{},"22":{},"24":{},"27":{},"29":{},"30":{},"32":{},"34":{},"40":{}},"component":{},"keyword":{}}],["height=\"0",{"_index":3944,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["heinrich",{"_index":4837,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["hellman",{"_index":6995,"title":{"36-9":{}},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["hello",{"_index":397,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["help",{"_index":3736,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["helpwhat'",{"_index":5018,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"../datasources/www/servers.html\">w3",{"_index":5027,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"../readme.html\">get",{"_index":5075,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"/assets/css/app.css",{"_index":3912,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["href=\"administration/mailing/overview.html\">mail",{"_index":5003,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"bibliography.html\">bibliographyserversfrequ",{"_index":5012,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"help.html\">helphow",{"_index":5071,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"history.html\">historylin",{"_index":5038,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"linemode/defaults/distribution.html",{"_index":5079,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"mailrobot/overview.html",{"_index":5050,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"news/9211.html\">w3",{"_index":5009,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"next/worldwideweb.html\">nextsteppeoplepolicysoftwar",{"_index":5032,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"status.html#35\">violaexecut",{"_index":5000,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["href=\"technical.html\">technicaltoolsun",{"_index":5257,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["model",{"_index":2541,"title":{"17":{}},"name":{},"text":{"17":{},"22":{},"31":{},"35":{},"40":{}},"component":{},"keyword":{}}],["modelar",{"_index":3429,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["modelo",{"_index":2543,"title":{"35-45":{},"40-5":{},"40-6":{},"40-9":{}},"name":{},"text":{"17":{},"19":{},"27":{},"30":{},"35":{},"40":{}},"component":{},"keyword":{}}],["modern",{"_index":8168,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["moderna",{"_index":1955,"title":{},"name":{},"text":{"16":{},"18":{},"22":{},"32":{},"35":{},"46":{}},"component":{},"keyword":{}}],["modernizado",{"_index":6645,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["moderno",{"_index":1984,"title":{},"name":{},"text":{"16":{},"18":{},"27":{},"30":{},"46":{}},"component":{},"keyword":{}}],["modicamo",{"_index":4145,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["modif",{"_index":5947,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["modifiacion",{"_index":3491,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["modifica",{"_index":6384,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["modificacion",{"_index":3107,"title":{},"name":{},"text":{"19":{},"26":{}},"component":{},"keyword":{}}],["modificación",{"_index":4633,"title":{},"name":{},"text":{"26":{},"30":{},"38":{}},"component":{},"keyword":{}}],["modificada",{"_index":7919,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["modificado",{"_index":3962,"title":{},"name":{},"text":{"23":{},"45":{}},"component":{},"keyword":{}}],["modificamo",{"_index":4133,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["modificando",{"_index":6328,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["modificar",{"_index":1469,"title":{"19-8":{},"20-4":{}},"name":{},"text":{"15":{},"16":{},"19":{},"23":{},"25":{},"26":{},"31":{},"43":{}},"component":{},"keyword":{}}],["modificaremo",{"_index":4129,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["modo",{"_index":1616,"title":{"26-39":{},"26-40":{},"26-41":{}},"name":{},"text":{"16":{},"18":{},"21":{},"24":{},"26":{},"29":{},"35":{}},"component":{},"keyword":{}}],["modul",{"_index":2768,"title":{},"name":{},"text":{"18":{},"19":{},"23":{},"24":{}},"component":{},"keyword":{}}],["moduledoc",{"_index":3131,"title":{},"name":{},"text":{"19":{},"24":{}},"component":{},"keyword":{}}],["modulo",{"_index":3303,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["molecul",{"_index":6223,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["moledora",{"_index":1506,"title":{"16-24":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["momento",{"_index":1096,"title":{},"name":{},"text":{"13":{},"16":{},"19":{},"22":{},"23":{},"26":{},"27":{},"28":{},"29":{},"36":{},"39":{},"44":{},"45":{}},"component":{},"keyword":{}}],["monetario",{"_index":8094,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["mongo",{"_index":2028,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["monitoreada",{"_index":7954,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["monitorean",{"_index":1701,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["monitoreando",{"_index":7746,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["monitorear",{"_index":1140,"title":{},"name":{},"text":{"14":{},"15":{},"44":{},"45":{}},"component":{},"keyword":{}}],["monitoreo",{"_index":1158,"title":{"43-27":{}},"name":{},"text":{"14":{},"15":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["monitorización",{"_index":1945,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["monkey",{"_index":2985,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["monolito",{"_index":1436,"title":{"40-2":{}},"name":{},"text":{"15":{},"40":{}},"component":{},"keyword":{}}],["monolítica",{"_index":7326,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["monolítico",{"_index":7321,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["montada",{"_index":4873,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["montar",{"_index":3864,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["monto",{"_index":1741,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["montón",{"_index":7336,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["moodl",{"_index":2383,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["moral",{"_index":1718,"title":{},"name":{},"text":{"16":{},"37":{},"45":{}},"component":{},"keyword":{}}],["moralidad",{"_index":7100,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["moralment",{"_index":1722,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["morderno",{"_index":6446,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["more",{"_index":3532,"title":{},"name":{},"text":{"20":{},"28":{},"35":{}},"component":{},"keyword":{}}],["mors",{"_index":4739,"title":{"27-3":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["mosaic",{"_index":4756,"title":{"27-18":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["mostrado",{"_index":5878,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["mostrando",{"_index":7648,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["mostrar",{"_index":3362,"title":{},"name":{},"text":{"19":{},"23":{},"26":{},"27":{},"28":{},"29":{},"36":{},"37":{},"39":{},"40":{}},"component":{},"keyword":{}}],["mostraremo",{"_index":3874,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["mostrarlo",{"_index":722,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["mostrars",{"_index":6332,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["motiva",{"_index":2312,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["motivar",{"_index":7211,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["motivo",{"_index":3854,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["motor",{"_index":2590,"title":{},"name":{},"text":{"17":{},"18":{},"35":{},"46":{}},"component":{},"keyword":{}}],["motorola",{"_index":4889,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["mount",{"_index":3963,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["mount(_param",{"_index":3851,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["mount(param",{"_index":3861,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["mover",{"_index":975,"title":{},"name":{},"text":{"13":{},"24":{},"27":{}},"component":{},"keyword":{}}],["movers",{"_index":7101,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["moviendo",{"_index":7862,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["movimiento",{"_index":777,"title":{},"name":{},"text":{"12":{},"16":{},"45":{}},"component":{},"keyword":{}}],["movistar",{"_index":6618,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["mozilla",{"_index":5306,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["mpf",{"_index":652,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["ms",{"_index":5752,"title":{"46-10":{},"46-11":{}},"name":{},"text":{"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["mttr",{"_index":858,"title":{"13-11":{}},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["mtu",{"_index":6802,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["much",{"_index":3242,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["mucha",{"_index":1713,"title":{},"name":{},"text":{"16":{},"18":{},"22":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"40":{},"45":{},"46":{}},"component":{},"keyword":{}}],["mucho",{"_index":1556,"title":{},"name":{},"text":{"16":{},"17":{},"18":{},"22":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"38":{},"40":{},"43":{},"46":{}},"component":{},"keyword":{}}],["muebl",{"_index":7738,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["muert",{"_index":2207,"title":{},"name":{},"text":{"16":{},"35":{}},"component":{},"keyword":{}}],["muerto",{"_index":1417,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["muestr",{"_index":4128,"title":{},"name":{},"text":{"23":{},"26":{}},"component":{},"keyword":{}}],["muestra",{"_index":914,"title":{},"name":{},"text":{"13":{},"14":{},"22":{},"23":{},"24":{},"26":{},"28":{},"29":{},"35":{},"39":{},"40":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["muestran",{"_index":6386,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["muev",{"_index":4652,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["multa",{"_index":7073,"title":{},"name":{},"text":{"37":{},"43":{}},"component":{},"keyword":{}}],["multidisciplinario",{"_index":7989,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["multifuncional",{"_index":2045,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["multimedia",{"_index":6383,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["multinivel",{"_index":4553,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["multiplataforma",{"_index":373,"title":{},"name":{},"text":{"10":{},"11":{},"25":{}},"component":{},"keyword":{}}],["multiplexación",{"_index":6902,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["multiplexar",{"_index":6903,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["mundial",{"_index":2125,"title":{},"name":{},"text":{"16":{},"17":{},"26":{},"27":{},"28":{}},"component":{},"keyword":{}}],["mundo",{"_index":1536,"title":{"16":{}},"name":{},"text":{"16":{},"18":{},"22":{},"26":{},"27":{},"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["murdock",{"_index":4584,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["murphi",{"_index":197,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["music",{"_index":2054,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["mutacion",{"_index":3421,"title":{"20-7":{}},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["mutat",{"_index":3516,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["mutex",{"_index":8044,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["mutualidad",{"_index":1685,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["mutuo",{"_index":1615,"title":{},"name":{},"text":{"16":{},"35":{}},"component":{},"keyword":{}}],["muy",{"_index":60,"title":{},"name":{},"text":{"1":{},"10":{},"11":{},"12":{},"14":{},"16":{},"17":{},"18":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"34":{},"35":{},"36":{},"40":{},"45":{}},"component":{},"keyword":{}}],["mv",{"_index":4348,"title":{"26-31":{}},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["mvc",{"_index":2955,"title":{"40-10":{},"40-11":{},"40-12":{}},"name":{},"text":{"18":{},"19":{},"22":{},"40":{}},"component":{},"keyword":{}}],["mvp",{"_index":7353,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["mvvm",{"_index":7302,"title":{"40-10":{},"40-11":{}},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["mvw",{"_index":7355,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["mx",{"_index":5493,"title":{"35-32":{}},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["my_namespac",{"_index":2771,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["myip",{"_index":6532,"title":{"35-25":{}},"name":{},"text":{},"component":{},"keyword":{}}],["mypage.html",{"_index":6095,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["mysql",{"_index":1993,"title":{},"name":{},"text":{"16":{},"18":{},"28":{}},"component":{},"keyword":{}}],["má",{"_index":508,"title":{"24-7":{},"30-5":{},"30-6":{},"40-12":{}},"name":{},"text":{"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["máquina",{"_index":3793,"title":{"46-25":{}},"name":{},"text":{"22":{},"27":{},"28":{},"29":{},"30":{},"35":{},"37":{},"38":{},"46":{}},"component":{},"keyword":{}}],["máxima",{"_index":811,"title":{},"name":{},"text":{"12":{},"13":{}},"component":{},"keyword":{}}],["máximo",{"_index":617,"title":{},"name":{},"text":{"10":{},"11":{},"16":{},"39":{},"45":{}},"component":{},"keyword":{}}],["médica",{"_index":7686,"title":{"45-12":{}},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["médico",{"_index":7756,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["mérito",{"_index":5198,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["método",{"_index":2430,"title":{"30-2":{},"30-6":{}},"name":{},"text":{"16":{},"27":{},"28":{},"30":{},"36":{},"43":{}},"component":{},"keyword":{}}],["métrica",{"_index":861,"title":{"13":{},"15-6":{},"41-2":{},"45-26":{}},"name":{},"text":{"13":{},"14":{},"15":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["métrico",{"_index":1444,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["méxico",{"_index":5494,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["mínima",{"_index":7791,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["mínimo",{"_index":390,"title":{},"name":{},"text":{"10":{},"11":{},"13":{},"14":{},"16":{},"18":{},"30":{},"40":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["módem",{"_index":4940,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["módulo",{"_index":3086,"title":{"22-2":{}},"name":{},"text":{"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"26":{},"28":{},"43":{},"46":{}},"component":{},"keyword":{}}],["móvil",{"_index":34,"title":{"10-8":{},"11-6":{}},"name":{},"text":{"1":{},"10":{},"11":{},"16":{},"27":{},"32":{},"34":{}},"component":{},"keyword":{}}],["móvile",{"_index":54,"title":{"27":{},"32":{},"16-15":{},"27-22":{},"27-32":{}},"name":{},"text":{"1":{},"3":{},"10":{},"11":{},"16":{},"18":{},"22":{},"27":{},"30":{},"32":{},"34":{},"36":{},"37":{}},"component":{},"keyword":{}}],["múltipl",{"_index":815,"title":{},"name":{},"text":{"12":{},"15":{},"16":{},"18":{},"23":{},"25":{},"26":{},"27":{},"28":{},"31":{},"35":{},"40":{},"43":{},"46":{}},"component":{},"keyword":{}}],["músculo",{"_index":2086,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["música",{"_index":696,"title":{},"name":{},"text":{"10":{},"11":{},"16":{},"25":{},"27":{}},"component":{},"keyword":{}}],["n",{"_index":172,"title":{},"name":{},"text":{"4":{},"10":{},"26":{},"46":{}},"component":{},"keyword":{}}],["n=\"55",{"_index":4982,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["nabu",{"_index":4753,"title":{"27-12":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["naci",{"_index":2742,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["nacieron",{"_index":6402,"title":{},"name":{},"text":{"32":{},"40":{}},"component":{},"keyword":{}}],["nacimiento",{"_index":5082,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["nacion",{"_index":2397,"title":{},"name":{},"text":{"16":{},"27":{},"28":{}},"component":{},"keyword":{}}],["nacional",{"_index":7611,"title":{"45-6":{}},"name":{},"text":{"43":{},"45":{}},"component":{},"keyword":{}}],["nacionalment",{"_index":7804,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["nada",{"_index":1818,"title":{},"name":{},"text":{"16":{},"22":{},"30":{},"36":{}},"component":{},"keyword":{}}],["nadi",{"_index":2149,"title":{},"name":{},"text":{"16":{},"40":{}},"component":{},"keyword":{}}],["name",{"_index":1293,"title":{"28-15":{},"35-34":{},"35-35":{}},"name":{},"text":{"14":{},"19":{},"20":{},"28":{},"30":{},"34":{},"35":{}},"component":{},"keyword":{}}],["name:john",{"_index":6270,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["name=\"author",{"_index":4046,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"csrf",{"_index":3897,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"quot",{"_index":4064,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"sourc",{"_index":4058,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=\"token",{"_index":7147,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["name=\"viewport",{"_index":3892,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["name=0",{"_index":4988,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=13",{"_index":5031,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=14",{"_index":5063,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=15",{"_index":5067,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=24",{"_index":4999,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=25",{"_index":5045,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=26",{"_index":5043,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=27",{"_index":5037,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=29",{"_index":5002,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=30",{"_index":5005,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=34",{"_index":5008,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=35",{"_index":5041,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=37",{"_index":5070,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=40",{"_index":5059,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=41",{"_index":5011,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=44",{"_index":5017,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=45",{"_index":5023,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=46",{"_index":5029,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=47",{"_index":5055,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=48",{"_index":5074,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=49",{"_index":5078,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=51",{"_index":5047,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=52",{"_index":5052,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=53",{"_index":5049,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name=z54",{"_index":5026,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["name={@nam",{"_index":4116,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["nameserv",{"_index":5634,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["namespac",{"_index":5469,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["nation",{"_index":5101,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["nativ",{"_index":2010,"title":{},"name":{},"text":{"16":{},"32":{}},"component":{},"keyword":{}}],["nativa",{"_index":2007,"title":{"32-2":{}},"name":{},"text":{"16":{},"32":{},"34":{}},"component":{},"keyword":{}}],["nativescript",{"_index":6406,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{},"keyword":{}}],["nativo",{"_index":2009,"title":{"32-5":{},"34-1":{}},"name":{},"text":{"16":{},"18":{},"32":{},"34":{}},"component":{},"keyword":{}}],["natur",{"_index":2559,"title":{},"name":{},"text":{"17":{},"27":{}},"component":{},"keyword":{}}],["natural",{"_index":2600,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["naturaleza",{"_index":1662,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["nav",{"_index":2807,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["navegación",{"_index":6474,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["navegador",{"_index":565,"title":{"27-18":{},"29-16":{},"31-5":{}},"name":{},"text":{"10":{},"11":{},"18":{},"23":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"35":{},"36":{}},"component":{},"keyword":{}}],["navegar",{"_index":4692,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["navidad",{"_index":7609,"title":{},"name":{},"text":{"43":{},"45":{}},"component":{},"keyword":{}}],["navig",{"_index":5108,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["nc",{"_index":320,"title":{},"name":{},"text":{"6":{},"10":{},"35":{}},"component":{},"keyword":{}}],["ncsa",{"_index":5099,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["ncsa_mosaic/2.0",{"_index":6098,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["nd6",{"_index":6814,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["nda",{"_index":1604,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["ndice",{"_index":3012,"title":{"19-3":{}},"name":{},"text":{"19":{},"21":{},"46":{}},"component":{},"keyword":{}}],["ndole",{"_index":1893,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["necesaria",{"_index":717,"title":{},"name":{},"text":{"10":{},"11":{},"17":{},"22":{},"28":{},"30":{},"35":{},"40":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["necesariament",{"_index":3172,"title":{},"name":{},"text":{"19":{},"23":{},"45":{}},"component":{},"keyword":{}}],["necesario",{"_index":12,"title":{},"name":{},"text":{"1":{},"10":{},"11":{},"13":{},"16":{},"19":{},"20":{},"23":{},"26":{},"28":{},"32":{},"35":{},"38":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["necesidad",{"_index":912,"title":{},"name":{},"text":{"13":{},"16":{},"18":{},"22":{},"27":{},"28":{},"34":{},"35":{},"36":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["necesit",{"_index":1470,"title":{},"name":{},"text":{"15":{},"40":{},"45":{},"46":{}},"component":{},"keyword":{}}],["necesita",{"_index":2978,"title":{},"name":{},"text":{"18":{},"19":{},"28":{},"30":{},"35":{},"38":{},"40":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["necesitaba",{"_index":4810,"title":{},"name":{},"text":{"27":{},"30":{}},"component":{},"keyword":{}}],["necesitamo",{"_index":3093,"title":{},"name":{},"text":{"19":{},"20":{},"31":{},"46":{}},"component":{},"keyword":{}}],["necesitan",{"_index":769,"title":{},"name":{},"text":{"12":{},"15":{},"16":{},"26":{},"30":{},"34":{},"35":{},"38":{},"40":{},"41":{},"44":{},"46":{}},"component":{},"keyword":{}}],["necesitando",{"_index":2902,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["necesitar",{"_index":8131,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["necesitará",{"_index":5385,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["necesitaría",{"_index":8092,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["necesitemo",{"_index":8031,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["necesiten",{"_index":1345,"title":{},"name":{},"text":{"15":{},"18":{},"45":{}},"component":{},"keyword":{}}],["necess",{"_index":3226,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["need",{"_index":3603,"title":{},"name":{},"text":{"20":{},"29":{}},"component":{},"keyword":{}}],["negativa",{"_index":7493,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["negativament",{"_index":7289,"title":{},"name":{},"text":{"39":{},"41":{}},"component":{},"keyword":{}}],["negativo",{"_index":1119,"title":{},"name":{},"text":{"13":{},"28":{}},"component":{},"keyword":{}}],["negocio",{"_index":1450,"title":{},"name":{},"text":{"15":{},"16":{},"19":{},"28":{},"32":{},"35":{},"40":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["negrita",{"_index":4477,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["negro",{"_index":7084,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["neighbour",{"_index":3597,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["neociti",{"_index":5617,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["nest.j",{"_index":1977,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["net",{"_index":2346,"title":{"18-22":{}},"name":{},"text":{"16":{},"18":{},"28":{}},"component":{},"keyword":{}}],["netcat",{"_index":6846,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["netherland",{"_index":8074,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["netmask",{"_index":6807,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["netscap",{"_index":5107,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["netstat",{"_index":6528,"title":{"35-21":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["network",{"_index":2424,"title":{},"name":{},"text":{"16":{},"35":{},"46":{}},"component":{},"keyword":{}}],["neuronal",{"_index":2565,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["never",{"_index":3579,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["new",{"_index":245,"title":{"45-21":{}},"name":{},"text":{"4":{},"10":{},"23":{},"37":{}},"component":{},"keyword":{}}],["new(attr",{"_index":4146,"title":{},"name":{},"text":{"23":{},"24":{}},"component":{},"keyword":{}}],["new/1",{"_index":4245,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["new_valu",{"_index":3157,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["news:comp.infosystems.www.servers.unix",{"_index":5418,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["news:formulario",{"_index":3878,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["p>nuevo",{"_index":6367,"title":{},"name":{},"text":{"31":{}},"component":{},"keyword":{}}],["package.json",{"_index":6056,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["packet",{"_index":5768,"title":{},"name":{},"text":{"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["pacman",{"_index":411,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["pactar",{"_index":1664,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["padr",{"_index":3868,"title":{},"name":{},"text":{"23":{},"27":{},"40":{}},"component":{},"keyword":{}}],["pagan",{"_index":2325,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["pagar",{"_index":1572,"title":{},"name":{},"text":{"16":{},"28":{},"45":{}},"component":{},"keyword":{}}],["page",{"_index":209,"title":{},"name":{},"text":{"4":{},"10":{},"11":{},"23":{},"24":{},"26":{},"28":{},"35":{}},"component":{},"keyword":{}}],["page.ex",{"_index":3856,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["page.html.heex",{"_index":3857,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["page_titl",{"_index":3965,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["pagecontrol",{"_index":3314,"title":{},"name":{},"text":{"19":{},"23":{}},"component":{},"keyword":{}}],["pagina",{"_index":4425,"title":{},"name":{},"text":{"26":{},"30":{}},"component":{},"keyword":{}}],["pago",{"_index":1593,"title":{},"name":{},"text":{"16":{},"18":{},"28":{}},"component":{},"keyword":{}}],["paguen",{"_index":2191,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["palabra",{"_index":2107,"title":{},"name":{},"text":{"16":{},"17":{},"26":{},"28":{},"35":{},"36":{},"40":{}},"component":{},"keyword":{}}],["paleta",{"_index":4312,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["palmpilot",{"_index":5227,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["pandemia",{"_index":2471,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["panel",{"_index":3434,"title":{},"name":{},"text":{"20":{},"28":{},"43":{}},"component":{},"keyword":{}}],["pantalla",{"_index":1697,"title":{},"name":{},"text":{"16":{},"26":{},"27":{},"29":{},"40":{},"41":{}},"component":{},"keyword":{}}],["papel",{"_index":5914,"title":{},"name":{},"text":{"29":{},"36":{}},"component":{},"keyword":{}}],["paper",{"_index":5061,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["paquet",{"_index":5784,"title":{"35-13":{},"35-27":{},"46-11":{}},"name":{},"text":{"28":{},"35":{},"40":{}},"component":{},"keyword":{}}],["par",{"_index":2375,"title":{},"name":{},"text":{"16":{},"18":{},"20":{},"35":{}},"component":{},"keyword":{}}],["para",{"_index":13,"title":{"24-7":{},"43-9":{},"43-11":{},"43-12":{}},"name":{},"text":{"1":{},"6":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["paradigm",{"_index":2618,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["paraguay",{"_index":6616,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["paralela",{"_index":970,"title":{},"name":{},"text":{"13":{},"35":{},"43":{}},"component":{},"keyword":{}}],["paralelo",{"_index":8130,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["param",{"_index":2773,"title":{},"name":{},"text":{"18":{},"19":{},"23":{},"24":{}},"component":{},"keyword":{}}],["parametro",{"_index":4296,"title":{},"name":{},"text":{"24":{},"31":{}},"component":{},"keyword":{}}],["parcel",{"_index":3003,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["parch",{"_index":7216,"title":{"39-2":{}},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["parcial",{"_index":5809,"title":{},"name":{},"text":{"28":{},"39":{},"45":{}},"component":{},"keyword":{}}],["parcialment",{"_index":7906,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["parec",{"_index":3823,"title":{},"name":{},"text":{"22":{},"27":{},"28":{}},"component":{},"keyword":{}}],["parecen",{"_index":5347,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["pareto",{"_index":1824,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["park",{"_index":461,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["part",{"_index":575,"title":{},"name":{},"text":{"10":{},"11":{},"15":{},"16":{},"17":{},"19":{},"22":{},"24":{},"25":{},"26":{},"28":{},"30":{},"36":{},"40":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["partial",{"_index":3571,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["participa",{"_index":7909,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["participant",{"_index":4960,"title":{},"name":{},"text":{"27":{},"35":{},"38":{}},"component":{},"keyword":{}}],["participar",{"_index":712,"title":{},"name":{},"text":{"10":{},"11":{},"16":{},"44":{},"45":{}},"component":{},"keyword":{}}],["particular",{"_index":4781,"title":{},"name":{},"text":{"27":{},"28":{},"35":{}},"component":{},"keyword":{}}],["partido",{"_index":2072,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["partiendo",{"_index":4412,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["partir",{"_index":1287,"title":{},"name":{},"text":{"14":{},"17":{},"20":{},"26":{},"29":{},"30":{},"34":{},"40":{}},"component":{},"keyword":{}}],["parámetro",{"_index":2595,"title":{},"name":{},"text":{"17":{},"19":{},"23":{},"26":{},"30":{},"40":{},"46":{}},"component":{},"keyword":{}}],["pasa",{"_index":1433,"title":{},"name":{},"text":{"15":{},"16":{},"22":{},"29":{},"36":{},"39":{},"44":{},"45":{}},"component":{},"keyword":{}}],["pasado",{"_index":2686,"title":{},"name":{},"text":{"18":{},"19":{},"27":{},"29":{},"30":{},"45":{}},"component":{},"keyword":{}}],["pasamo",{"_index":3712,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["pasan",{"_index":7833,"title":{},"name":{},"text":{"45":{},"46":{}},"component":{},"keyword":{}}],["pasando",{"_index":1474,"title":{},"name":{},"text":{"15":{},"16":{},"23":{},"45":{}},"component":{},"keyword":{}}],["pasar",{"_index":1652,"title":{},"name":{},"text":{"16":{},"26":{},"27":{},"29":{},"34":{},"39":{},"45":{}},"component":{},"keyword":{}}],["pasarla",{"_index":7882,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pascal",{"_index":7381,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["pase",{"_index":7048,"title":{},"name":{},"text":{"36":{},"39":{}},"component":{},"keyword":{}}],["pasean",{"_index":5324,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["paso",{"_index":664,"title":{"19-1":{},"19-2":{},"19-3":{},"19-4":{},"19-5":{},"19-6":{},"19-7":{},"19-8":{},"19-9":{},"19-10":{},"20-1":{},"20-2":{},"20-7":{},"20-9":{},"23-1":{},"23-2":{},"23-3":{},"23-4":{},"23-5":{},"23-6":{},"23-7":{},"23-8":{},"24-1":{},"24-2":{},"24-3":{},"24-4":{},"24-5":{},"24-6":{},"24-8":{},"45-20":{}},"name":{},"text":{"10":{},"11":{},"13":{},"16":{},"27":{},"28":{},"29":{},"30":{},"35":{},"38":{},"39":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["password",{"_index":3624,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["pasándol",{"_index":3358,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["patch",{"_index":6042,"title":{},"name":{},"text":{"29":{},"30":{},"39":{}},"component":{},"keyword":{}}],["patent",{"_index":4857,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["paternidad",{"_index":7685,"title":{"45-12":{}},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["path",{"_index":4006,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["path.expand(\"../stoic_quotes_test.db",{"_index":4200,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["path.join(__dir__",{"_index":3632,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["patrick",{"_index":6693,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["patron",{"_index":1352,"title":{"40":{}},"name":{},"text":{"15":{},"16":{},"17":{},"20":{},"22":{},"40":{},"43":{}},"component":{},"keyword":{}}],["patrón",{"_index":3775,"title":{"40-5":{},"40-9":{}},"name":{},"text":{"22":{},"40":{}},"component":{},"keyword":{}}],["pattern",{"_index":446,"title":{"22-3":{}},"name":{"40":{}},"text":{"10":{},"11":{},"20":{},"22":{},"39":{}},"component":{},"keyword":{}}],["paul",{"_index":96,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["pausada",{"_index":7829,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pausan",{"_index":7830,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pauta",{"_index":8004,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["paypal",{"_index":5536,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["paí",{"_index":2448,"title":{},"name":{},"text":{"16":{},"28":{},"35":{},"45":{}},"component":{},"keyword":{}}],["país",{"_index":2450,"title":{},"name":{},"text":{"16":{},"32":{},"37":{}},"component":{},"keyword":{}}],["pb",{"_index":4026,"title":{},"name":{},"text":{"23":{},"46":{}},"component":{},"keyword":{}}],["pc",{"_index":4941,"title":{},"name":{},"text":{"27":{},"44":{}},"component":{},"keyword":{}}],["pccw",{"_index":6582,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["pda",{"_index":5207,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["pdf",{"_index":4494,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["pdu",{"_index":6954,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["pedagógico",{"_index":3128,"title":{},"name":{},"text":{"19":{},"23":{}},"component":{},"keyword":{}}],["pedirán",{"_index":7758,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["peer",{"_index":7349,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["pega",{"_index":2364,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pegar",{"_index":4722,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["pelican",{"_index":4434,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["peligro",{"_index":1702,"title":{},"name":{},"text":{"16":{},"26":{}},"component":{},"keyword":{}}],["pemiten",{"_index":4131,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["pena",{"_index":2214,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["penal",{"_index":1821,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pendient",{"_index":5322,"title":{},"name":{},"text":{"27":{},"37":{},"41":{},"44":{},"45":{}},"component":{},"keyword":{}}],["pensaban",{"_index":2129,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pensada",{"_index":7562,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["pensado",{"_index":773,"title":{},"name":{},"text":{"12":{},"16":{},"18":{},"34":{},"39":{},"45":{}},"component":{},"keyword":{}}],["pensamo",{"_index":7995,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["pensando",{"_index":3430,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["pensar",{"_index":3697,"title":{},"name":{},"text":{"22":{},"30":{}},"component":{},"keyword":{}}],["peopl",{"_index":5065,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["pequeña",{"_index":7,"title":{},"name":{},"text":{"1":{},"10":{},"13":{},"16":{},"18":{},"32":{},"35":{},"40":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["pequeño",{"_index":943,"title":{},"name":{},"text":{"13":{},"14":{},"16":{},"18":{},"19":{},"22":{},"28":{},"35":{},"36":{},"37":{},"40":{},"46":{}},"component":{},"keyword":{}}],["per",{"_index":6613,"title":{"46-16":{},"46-19":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["perder",{"_index":1809,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["perderlo",{"_index":5659,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["perecen",{"_index":2202,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["perf",{"_index":6049,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["perfeccionar",{"_index":2096,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["perfección",{"_index":3752,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["perfecta",{"_index":2793,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["perfectament",{"_index":1766,"title":{},"name":{},"text":{"16":{},"40":{}},"component":{},"keyword":{}}],["perfecto",{"_index":2852,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["perfil",{"_index":5364,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["perfom",{"_index":872,"title":{"43-30":{}},"name":{},"text":{"13":{},"15":{}},"component":{},"keyword":{}}],["perform",{"_index":184,"title":{},"name":{},"text":{"4":{},"10":{},"45":{}},"component":{},"keyword":{}}],["periferia",{"_index":1475,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["periférico",{"_index":6659,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["perimetr",{"_index":6679,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["periodicidad",{"_index":7612,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["periodo",{"_index":820,"title":{},"name":{},"text":{"12":{},"14":{},"28":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["periódicament",{"_index":818,"title":{},"name":{},"text":{"12":{}},"component":{},"keyword":{}}],["periódo",{"_index":522,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["perl",{"_index":2964,"title":{},"name":{},"text":{"18":{},"26":{},"28":{},"30":{}},"component":{},"keyword":{}}],["permanec",{"_index":3828,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["permanecen",{"_index":6685,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["permiso",{"_index":4351,"title":{"26-36":{}},"name":{},"text":{"26":{},"29":{},"43":{},"44":{}},"component":{},"keyword":{}}],["permit",{"_index":693,"title":{"26-1":{}},"name":{},"text":{"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"18":{},"19":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"39":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["permita",{"_index":720,"title":{},"name":{},"text":{"10":{},"11":{},"12":{},"19":{},"28":{},"35":{},"37":{},"43":{},"45":{}},"component":{},"keyword":{}}],["permitan",{"_index":901,"title":{},"name":{},"text":{"13":{},"37":{},"38":{},"40":{},"43":{},"45":{}},"component":{},"keyword":{}}],["permiten",{"_index":869,"title":{},"name":{},"text":{"13":{},"14":{},"15":{},"17":{},"24":{},"28":{},"32":{},"34":{},"35":{},"38":{},"43":{}},"component":{},"keyword":{}}],["permiti",{"_index":5087,"title":{},"name":{},"text":{"27":{},"30":{}},"component":{},"keyword":{}}],["permitida",{"_index":618,"title":{},"name":{},"text":{"10":{},"11":{},"35":{}},"component":{},"keyword":{}}],["permitido",{"_index":555,"title":{},"name":{},"text":{"10":{},"11":{},"29":{},"34":{},"39":{},"45":{}},"component":{},"keyword":{}}],["permitiendo",{"_index":848,"title":{},"name":{},"text":{"12":{},"15":{},"18":{},"27":{},"30":{},"36":{},"38":{},"43":{},"45":{}},"component":{},"keyword":{}}],["permitieron",{"_index":2927,"title":{},"name":{},"text":{"18":{},"26":{}},"component":{},"keyword":{}}],["permitir",{"_index":386,"title":{},"name":{},"text":{"10":{},"11":{},"12":{},"13":{},"15":{},"16":{},"18":{},"19":{},"24":{},"27":{},"28":{},"30":{},"32":{},"35":{},"38":{},"39":{},"45":{},"46":{}},"component":{},"keyword":{}}],["permitirl",{"_index":7047,"title":{},"name":{},"text":{"36":{}},"component":{},"keyword":{}}],["permitirán",{"_index":5387,"title":{},"name":{},"text":{"28":{},"29":{}},"component":{},"keyword":{}}],["permitía",{"_index":4959,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["pero",{"_index":705,"title":{},"name":{},"text":{"10":{},"11":{},"12":{},"16":{},"17":{},"18":{},"20":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"37":{},"39":{},"40":{},"44":{},"45":{}},"component":{},"keyword":{}}],["persistencia",{"_index":7314,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["persistent",{"_index":6894,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["person",{"_index":519,"title":{},"name":{},"text":{"10":{},"11":{},"12":{},"16":{},"26":{},"27":{}},"component":{},"keyword":{}}],["persona",{"_index":19,"title":{},"name":{},"text":{"1":{},"10":{},"11":{},"12":{},"16":{},"17":{},"18":{},"26":{},"28":{},"29":{},"30":{},"37":{},"38":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["persona1",{"_index":7203,"title":{},"name":{},"text":{"38":{},"44":{}},"component":{},"keyword":{}}],["persona2",{"_index":7204,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["persona3",{"_index":7205,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["persona4",{"_index":7207,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["persona5",{"_index":7208,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["persona6",{"_index":7209,"title":{},"name":{},"text":{"38":{}},"component":{},"keyword":{}}],["personaj",{"_index":515,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["personal",{"_index":5222,"title":{},"name":{},"text":{"27":{},"35":{}},"component":{},"keyword":{}}],["personalización",{"_index":2747,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["personalizada",{"_index":757,"title":{},"name":{},"text":{"10":{},"11":{},"14":{},"15":{},"28":{},"36":{}},"component":{},"keyword":{}}],["personalizado",{"_index":531,"title":{},"name":{},"text":{"10":{},"11":{},"18":{},"28":{},"29":{},"35":{},"45":{}},"component":{},"keyword":{}}],["personalizar",{"_index":2798,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["perspectiva",{"_index":7454,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["pertenec",{"_index":6120,"title":{},"name":{},"text":{"30":{},"44":{}},"component":{},"keyword":{}}],["pertenecen",{"_index":5506,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["pertenencia",{"_index":7950,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pertinencia",{"_index":7917,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pertinent",{"_index":7945,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["período",{"_index":1222,"title":{},"name":{},"text":{"14":{},"27":{}},"component":{},"keyword":{}}],["pesar",{"_index":3814,"title":{},"name":{},"text":{"22":{},"40":{}},"component":{},"keyword":{}}],["peso",{"_index":2446,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["peso_imagen",{"_index":8111,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["petabyt",{"_index":8021,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["petal",{"_index":2021,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["peter",{"_index":8036,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["peticion",{"_index":1184,"title":{},"name":{},"text":{"14":{},"15":{},"18":{},"28":{},"30":{},"37":{}},"component":{},"keyword":{}}],["petición",{"_index":4419,"title":{},"name":{},"text":{"26":{},"30":{},"35":{},"46":{}},"component":{},"keyword":{}}],["petoff",{"_index":196,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["phalcon",{"_index":2939,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["phd",{"_index":222,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["phi",{"_index":6300,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["phish",{"_index":7066,"title":{"37-10":{},"37-11":{}},"name":{},"text":{},"component":{},"keyword":{}}],["phoenix",{"_index":132,"title":{"22-9":{},"22-10":{}},"name":{},"text":{"4":{},"10":{},"11":{},"16":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"32":{},"34":{}},"component":{},"keyword":{}}],["phoenix.component.live_titl",{"_index":3902,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["phoenix.control",{"_index":3345,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["phoenix.html.form.normalize_value(\"textarea",{"_index":4118,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["phoenix.livedashboard.rout",{"_index":3336,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["phoenix.liveview",{"_index":3859,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["phoenix.liveviewtest",{"_index":4285,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["phoenix_live_view",{"_index":3904,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["phone",{"_index":4768,"title":{"27-30":{}},"name":{},"text":{"27":{},"28":{}},"component":{},"keyword":{}}],["phone.com//dtd",{"_index":5251,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["php",{"_index":1903,"title":{"18-17":{}},"name":{},"text":{"16":{},"18":{},"22":{},"26":{},"28":{},"37":{}},"component":{},"keyword":{}}],["phx",{"_index":2906,"title":{},"name":{},"text":{"18":{},"23":{}},"component":{},"keyword":{}}],["phx.gen",{"_index":3669,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["phx.gen.context",{"_index":3038,"title":{},"name":{},"text":{"19":{},"24":{}},"component":{},"keyword":{}}],["phx.new",{"_index":3029,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["phx.server",{"_index":3385,"title":{},"name":{},"text":{"19":{},"21":{},"23":{}},"component":{},"keyword":{}}],["phx:theme",{"_index":3927,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["phx_new",{"_index":3439,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["pi",{"_index":4325,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["pianista",{"_index":2046,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pica",{"_index":7691,"title":{"45-23":{}},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["pide",{"_index":5566,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["piden",{"_index":2142,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pie",{"_index":4458,"title":{},"name":{},"text":{"26":{},"29":{}},"component":{},"keyword":{}}],["piedra",{"_index":7423,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["pierd",{"_index":1807,"title":{},"name":{},"text":{"16":{},"29":{}},"component":{},"keyword":{}}],["pierden",{"_index":6558,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["pieza",{"_index":2053,"title":{},"name":{},"text":{"16":{},"40":{},"45":{}},"component":{},"keyword":{}}],["pila",{"_index":6924,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["pill",{"_index":2808,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["pin",{"_index":7120,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["pincelada",{"_index":8,"title":{},"name":{},"text":{"1":{},"10":{}},"component":{},"keyword":{}}],["ping",{"_index":5381,"title":{"28-23":{},"35-19":{}},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["pinterest",{"_index":3808,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["pionero",{"_index":2923,"title":{},"name":{},"text":{"18":{},"27":{}},"component":{},"keyword":{}}],["pipe",{"_index":453,"title":{"22-4":{},"26-35":{}},"name":{},"text":{"10":{},"11":{},"22":{},"26":{}},"component":{},"keyword":{}}],["pipe_through",{"_index":3283,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["pipe_through(:api",{"_index":3315,"title":{},"name":{},"text":{"19":{},"24":{}},"component":{},"keyword":{}}],["pipe_through(:brows",{"_index":3313,"title":{},"name":{},"text":{"19":{},"23":{},"24":{}},"component":{},"keyword":{}}],["pipelin",{"_index":973,"title":{},"name":{},"text":{"13":{},"19":{},"43":{}},"component":{},"keyword":{}}],["piso",{"_index":5685,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["pizza",{"_index":2199,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["placeholder:text",{"_index":4052,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["placeholder=\"lorem",{"_index":4101,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["placeholder=\"marcu",{"_index":4095,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["placeholder=\"medit",{"_index":4098,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["plan",{"_index":745,"title":{},"name":{},"text":{"10":{},"11":{},"41":{},"43":{},"44":{}},"component":{},"keyword":{}}],["plane",{"_index":5331,"title":{},"name":{},"text":{"27":{},"43":{},"45":{}},"component":{},"keyword":{}}],["planificación",{"_index":1337,"title":{},"name":{},"text":{"15":{},"27":{},"37":{},"41":{},"43":{}},"component":{},"keyword":{}}],["planificado",{"_index":5403,"title":{},"name":{},"text":{"28":{},"43":{}},"component":{},"keyword":{}}],["planificar",{"_index":589,"title":{},"name":{},"text":{"10":{},"11":{},"16":{},"38":{},"43":{}},"component":{},"keyword":{}}],["plano",{"_index":6198,"title":{},"name":{},"text":{"30":{},"36":{},"38":{},"46":{}},"component":{},"keyword":{}}],["planteado",{"_index":8095,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["plantilla",{"_index":1279,"title":{"38-1":{},"44-14":{}},"name":{},"text":{"14":{},"18":{},"22":{},"34":{},"41":{},"44":{}},"component":{},"keyword":{}}],["plantuml",{"_index":7511,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["plataforma",{"_index":384,"title":{"16-56":{}},"name":{},"text":{"10":{},"11":{},"13":{},"16":{},"22":{},"25":{},"26":{},"27":{},"28":{},"30":{},"32":{},"34":{},"40":{},"41":{},"45":{}},"component":{},"keyword":{}}],["platanu",{"_index":2256,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["play",{"_index":5277,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["player",{"_index":4623,"title":{},"name":{},"text":{"26":{},"27":{}},"component":{},"keyword":{}}],["playground",{"_index":99,"title":{"20-8":{}},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["playstor",{"_index":6400,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{},"keyword":{}}],["plazo",{"_index":586,"title":{"44-1":{}},"name":{},"text":{"10":{},"11":{},"13":{},"16":{},"39":{},"44":{},"45":{}},"component":{},"keyword":{}}],["pleas",{"_index":5740,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["plesk",{"_index":5613,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["plu",{"_index":2386,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["plug",{"_index":3773,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["plug(:accept",{"_index":3289,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug(:fetch_live_flash",{"_index":3308,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug(:fetch_sess",{"_index":3307,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug(:protect_from_forgeri",{"_index":3311,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug(:put_root_layout",{"_index":3309,"title":{},"name":{},"text":{"19":{},"23":{}},"component":{},"keyword":{}}],["plug(:put_secure_browser_head",{"_index":3312,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug.basicauth",{"_index":3331,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plug.swoosh.mailboxpreview",{"_index":3340,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["plugin",{"_index":2737,"title":{},"name":{},"text":{"18":{},"27":{}},"component":{},"keyword":{}}],["plural",{"_index":3039,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["pm",{"_index":1252,"title":{},"name":{},"text":{"14":{},"45":{}},"component":{},"keyword":{}}],["po",{"_index":7105,"title":{},"name":{},"text":{"37":{},"45":{}},"component":{},"keyword":{}}],["poca",{"_index":1247,"title":{},"name":{},"text":{"14":{},"16":{},"27":{},"40":{},"45":{}},"component":{},"keyword":{}}],["pocket",{"_index":5219,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["poco",{"_index":1881,"title":{},"name":{},"text":{"16":{},"18":{},"23":{},"26":{},"27":{},"28":{},"39":{},"40":{},"41":{},"45":{},"46":{}},"component":{},"keyword":{}}],["podcast",{"_index":2443,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["podemo",{"_index":1055,"title":{},"name":{},"text":{"13":{},"19":{},"23":{},"24":{},"26":{},"28":{},"29":{},"31":{},"35":{},"40":{},"46":{}},"component":{},"keyword":{}}],["poder",{"_index":1007,"title":{},"name":{},"text":{"13":{},"16":{},"18":{},"24":{},"26":{},"27":{},"29":{},"30":{},"36":{},"41":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["poderosa",{"_index":4540,"title":{},"name":{},"text":{"26":{},"27":{}},"component":{},"keyword":{}}],["poderoso",{"_index":4545,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["podr",{"_index":1656,"title":{},"name":{},"text":{"16":{},"37":{},"45":{}},"component":{},"keyword":{}}],["podremo",{"_index":3087,"title":{},"name":{},"text":{"19":{},"26":{},"31":{},"35":{}},"component":{},"keyword":{}}],["podrá",{"_index":1914,"title":{},"name":{},"text":{"16":{},"28":{}},"component":{},"keyword":{}}],["podrán",{"_index":1663,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["podría",{"_index":2392,"title":{},"name":{},"text":{"16":{},"17":{},"18":{},"26":{},"27":{},"28":{},"32":{},"34":{},"40":{},"46":{}},"component":{},"keyword":{}}],["podríamo",{"_index":7887,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["podrían",{"_index":3766,"title":{},"name":{},"text":{"22":{},"34":{},"37":{},"38":{},"43":{}},"component":{},"keyword":{}}],["podía",{"_index":3819,"title":{},"name":{},"text":{"22":{},"27":{},"40":{}},"component":{},"keyword":{}}],["podían",{"_index":4962,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["poetri",{"_index":415,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["point",{"_index":407,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["pointer",{"_index":5020,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["polar",{"_index":1725,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["polici",{"_index":418,"title":{},"name":{},"text":{"10":{},"11":{},"35":{}},"component":{},"keyword":{}}],["politica",{"_index":150,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["poll",{"_index":2900,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["política",{"_index":143,"title":{"39":{},"39-3":{}},"name":{},"text":{"4":{},"10":{},"35":{},"43":{},"46":{}},"component":{},"keyword":{}}],["político",{"_index":7091,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["pondr",{"_index":1541,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["poner",{"_index":4705,"title":{},"name":{},"text":{"26":{},"29":{},"40":{}},"component":{},"keyword":{}}],["ponerla",{"_index":5448,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["pong",{"_index":4328,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["pool",{"_index":3636,"title":{},"name":{},"text":{"20":{},"24":{}},"component":{},"keyword":{}}],["pool_siz",{"_index":3631,"title":{},"name":{},"text":{"20":{},"24":{}},"component":{},"keyword":{}}],["pop",{"_index":5826,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["popular",{"_index":1502,"title":{"16-19":{}},"name":{},"text":{"18":{},"22":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"34":{},"35":{},"36":{},"45":{}},"component":{},"keyword":{}}],["popularidad",{"_index":4867,"title":{},"name":{},"text":{"27":{},"32":{},"35":{}},"component":{},"keyword":{}}],["por",{"_index":291,"title":{"15-1":{},"15-3":{},"22-10":{},"27-7":{},"28-3":{},"28-17":{},"29-3":{},"44-18":{},"45-12":{},"46-16":{},"46-25":{}},"name":{},"text":{"6":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["porcentaj",{"_index":1117,"title":{},"name":{},"text":{"13":{},"14":{},"16":{}},"component":{},"keyword":{}}],["porcion",{"_index":7776,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["porqu",{"_index":1649,"title":{},"name":{},"text":{"16":{},"22":{},"26":{},"28":{},"29":{},"35":{},"40":{}},"component":{},"keyword":{}}],["port",{"_index":6295,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["portabilidad",{"_index":1856,"title":{},"name":{},"text":{"16":{},"25":{}},"component":{},"keyword":{}}],["portafolio",{"_index":2418,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["portapapel",{"_index":4723,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["portrait",{"_index":6502,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["portátil",{"_index":1838,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["posean",{"_index":1563,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["poseen",{"_index":4616,"title":{},"name":{},"text":{"26":{},"35":{}},"component":{},"keyword":{}}],["posibilidad",{"_index":1582,"title":{},"name":{},"text":{"16":{},"26":{}},"component":{},"keyword":{}}],["posibl",{"_index":571,"title":{},"name":{},"text":{"10":{},"11":{},"13":{},"16":{},"17":{},"22":{},"27":{},"28":{},"29":{},"35":{},"37":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["posiblement",{"_index":5654,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["posicion",{"_index":4792,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["posicionar",{"_index":5404,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["posicionart",{"_index":2110,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["posición",{"_index":5468,"title":{},"name":{},"text":{"28":{},"37":{}},"component":{},"keyword":{}}],["positiva",{"_index":7492,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["positivo",{"_index":1250,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["possibl",{"_index":3243,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["post",{"_index":3293,"title":{},"name":{},"text":{"19":{},"23":{},"26":{},"30":{},"46":{}},"component":{},"keyword":{}}],["post_statu",{"_index":4527,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["posterior",{"_index":2934,"title":{},"name":{},"text":{"18":{},"27":{},"35":{},"36":{},"43":{},"45":{}},"component":{},"keyword":{}}],["posteriorment",{"_index":4975,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["postgr",{"_index":1908,"title":{"20-10":{},"20-16":{}},"name":{},"text":{"16":{},"18":{},"19":{},"20":{}},"component":{},"keyword":{}}],["postgres,graphql",{"_index":3471,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["postgresql",{"_index":8085,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["postman",{"_index":6079,"title":{"30-21":{}},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["postor",{"_index":7099,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["posts_por_dia",{"_index":8100,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["postulacion",{"_index":2210,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["postular",{"_index":1583,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["potenci",{"_index":2588,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["potencia",{"_index":6334,"title":{},"name":{},"text":{"31":{},"46":{}},"component":{},"keyword":{}}],["potencial",{"_index":1361,"title":{},"name":{},"text":{"15":{},"28":{}},"component":{},"keyword":{}}],["potenciar",{"_index":2685,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["potent",{"_index":5210,"title":{},"name":{},"text":{"27":{},"30":{},"32":{},"46":{}},"component":{},"keyword":{}}],["power",{"_index":3563,"title":{},"name":{},"text":{"20":{},"24":{},"30":{}},"component":{},"keyword":{}}],["pr",{"_index":809,"title":{},"name":{},"text":{"12":{},"45":{}},"component":{},"keyword":{}}],["practica",{"_index":2048,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["practicando",{"_index":2051,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["practicar",{"_index":2093,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pragmat",{"_index":2533,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["pragmático",{"_index":3719,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["prd",{"_index":743,"title":{"41":{}},"name":{"41":{}},"text":{"10":{},"11":{},"41":{},"43":{}},"component":{},"keyword":{}}],["pre",{"_index":1871,"title":{"29-20":{}},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["precaución",{"_index":4395,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["precedi",{"_index":5084,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["precio",{"_index":1852,"title":{},"name":{},"text":{"16":{},"27":{},"28":{},"32":{},"40":{},"46":{}},"component":{},"keyword":{}}],["precisa",{"_index":1405,"title":{},"name":{},"text":{"15":{},"17":{},"30":{}},"component":{},"keyword":{}}],["precisión",{"_index":8027,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["precompilada",{"_index":3784,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["preconstruida",{"_index":2844,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["preconstruido",{"_index":2791,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["precursor",{"_index":4749,"title":{"27-9":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["precursora",{"_index":5218,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["predec",{"_index":7854,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["predecesor",{"_index":5293,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["predefinida",{"_index":4407,"title":{},"name":{},"text":{"26":{},"30":{}},"component":{},"keyword":{}}],["predefinido",{"_index":4107,"title":{},"name":{},"text":{"23":{},"24":{}},"component":{},"keyword":{}}],["predeterminada",{"_index":2904,"title":{},"name":{},"text":{"18":{},"28":{},"35":{}},"component":{},"keyword":{}}],["predeterminado",{"_index":2801,"title":{},"name":{},"text":{"18":{},"19":{},"24":{},"26":{},"28":{},"46":{}},"component":{},"keyword":{}}],["predilecto",{"_index":1980,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["preentrenan",{"_index":2563,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["preescrita",{"_index":2782,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["preestablecida",{"_index":4696,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["prefer",{"_index":5984,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["prefer_transact",{"_index":3618,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["preferencia",{"_index":1861,"title":{},"name":{},"text":{"16":{},"36":{},"44":{}},"component":{},"keyword":{}}],["preferida",{"_index":4571,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["preferido",{"_index":86,"title":{},"name":{},"text":{"3":{},"10":{},"26":{}},"component":{},"keyword":{}}],["preferir",{"_index":7504,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["prefier",{"_index":2969,"title":{},"name":{},"text":{"18":{},"29":{},"32":{}},"component":{},"keyword":{}}],["prefieren",{"_index":5931,"title":{},"name":{},"text":{"29":{},"30":{}},"component":{},"keyword":{}}],["prefixlen",{"_index":6810,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["pregunta",{"_index":1796,"title":{"41-6":{}},"name":{},"text":{"16":{},"17":{},"38":{},"40":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["preguntando",{"_index":7861,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["preguntar",{"_index":4651,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["preinstalada",{"_index":5232,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["premiado",{"_index":7780,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["prendía",{"_index":7596,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["preocupacion",{"_index":7312,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["preocupars",{"_index":8078,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["prepago",{"_index":7785,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["prepar",{"_index":3505,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["prepara",{"_index":7647,"title":{},"name":{},"text":{"44":{}},"component":{},"keyword":{}}],["preparación",{"_index":7185,"title":{"43-2":{}},"name":{},"text":{"38":{},"43":{}},"component":{},"keyword":{}}],["preparada",{"_index":6438,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["preparado",{"_index":1990,"title":{},"name":{},"text":{"16":{},"28":{},"39":{},"43":{}},"component":{},"keyword":{}}],["preparar",{"_index":7653,"title":{},"name":{},"text":{"44":{},"45":{}},"component":{},"keyword":{}}],["preparars",{"_index":2076,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["prepárat",{"_index":2219,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["preseleccionada",{"_index":2949,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["presenc",{"_index":220,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["presenci",{"_index":1691,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["presencia",{"_index":4533,"title":{},"name":{},"text":{"26":{},"28":{},"35":{},"45":{}},"component":{},"keyword":{}}],["presencial",{"_index":7734,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["present",{"_index":2226,"title":{},"name":{},"text":{"16":{},"18":{},"19":{},"30":{},"35":{},"40":{},"45":{}},"component":{},"keyword":{}}],["presenta",{"_index":6906,"title":{},"name":{},"text":{"35":{},"38":{},"40":{}},"component":{},"keyword":{}}],["presentacion",{"_index":4466,"title":{},"name":{},"text":{"26":{},"27":{}},"component":{},"keyword":{}}],["presentación",{"_index":2063,"title":{},"name":{},"text":{"16":{},"27":{},"29":{},"32":{},"40":{},"45":{}},"component":{},"keyword":{}}],["presentado",{"_index":6917,"title":{},"name":{},"text":{"35":{},"38":{},"45":{}},"component":{},"keyword":{}}],["presentador",{"_index":7354,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["presentan",{"_index":2889,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["presentar",{"_index":5267,"title":{},"name":{},"text":{"27":{},"44":{},"45":{}},"component":{},"keyword":{}}],["presentars",{"_index":2058,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["preserv",{"_index":3570,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["press",{"_index":188,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["prestacion",{"_index":1689,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["prestar",{"_index":7956,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["prestashop",{"_index":4683,"title":{},"name":{},"text":{"26":{},"28":{}},"component":{},"keyword":{}}],["prestashop/como",{"_index":4680,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["preston",{"_index":6289,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["presupuestado",{"_index":7888,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["presupuestaria",{"_index":7452,"title":{},"name":{},"text":{"41":{}},"component":{},"keyword":{}}],["presupuesto",{"_index":657,"title":{},"name":{},"text":{"10":{},"11":{},"16":{},"43":{}},"component":{},"keyword":{}}],["pretend",{"_index":6282,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["prevenir",{"_index":7546,"title":{},"name":{},"text":{"43":{},"44":{}},"component":{},"keyword":{}}],["previa",{"_index":7490,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["previament",{"_index":5649,"title":{},"name":{},"text":{"28":{},"45":{}},"component":{},"keyword":{}}],["previen",{"_index":1365,"title":{},"name":{},"text":{"15":{},"43":{}},"component":{},"keyword":{}}],["preview",{"_index":247,"title":{},"name":{},"text":{"4":{},"10":{},"19":{}},"component":{},"keyword":{}}],["previo",{"_index":2477,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["previsión",{"_index":1594,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["prevista",{"_index":7281,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["previsto",{"_index":7851,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["primari",{"_index":2813,"title":{},"name":{},"text":{"18":{},"20":{},"26":{}},"component":{},"keyword":{}}],["primaria",{"_index":3011,"title":{"19-3":{}},"name":{},"text":{"19":{},"46":{}},"component":{},"keyword":{}}],["primario",{"_index":5577,"title":{},"name":{},"text":{"28":{},"46":{}},"component":{},"keyword":{}}],["primer",{"_index":951,"title":{"27-18":{},"28-11":{}},"name":{},"text":{"13":{},"26":{},"27":{},"28":{},"35":{},"45":{},"46":{}},"component":{},"keyword":{}}],["primer/segundo",{"_index":4645,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["primera",{"_index":959,"title":{"27-13":{}},"name":{},"text":{"13":{},"26":{},"27":{},"28":{},"32":{},"34":{},"35":{},"37":{},"39":{},"43":{},"46":{}},"component":{},"keyword":{}}],["primero",{"_index":1678,"title":{},"name":{},"text":{"16":{},"19":{},"20":{},"23":{},"28":{},"29":{},"40":{},"45":{},"46":{}},"component":{},"keyword":{}}],["primo",{"_index":2599,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["primordial",{"_index":5288,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["princip",{"_index":826,"title":{},"name":{},"text":{"12":{},"13":{},"14":{},"16":{},"18":{},"19":{},"23":{},"26":{},"27":{},"28":{},"29":{},"34":{},"35":{},"40":{},"45":{}},"component":{},"keyword":{}}],["principal",{"_index":770,"title":{},"name":{},"text":{"12":{},"14":{},"16":{},"18":{},"19":{},"25":{},"26":{},"35":{},"43":{},"46":{}},"component":{},"keyword":{}}],["principalment",{"_index":29,"title":{},"name":{},"text":{"1":{},"10":{},"11":{},"14":{},"18":{},"19":{},"20":{},"26":{},"27":{},"28":{},"32":{},"35":{},"37":{},"40":{},"45":{}},"component":{},"keyword":{}}],["principio",{"_index":1813,"title":{},"name":{},"text":{"16":{},"18":{},"26":{},"27":{},"35":{},"36":{},"40":{},"43":{},"46":{}},"component":{},"keyword":{}}],["prioridad",{"_index":947,"title":{"45-16":{}},"name":{},"text":{"13":{},"16":{},"35":{},"38":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["prioritaria",{"_index":7836,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["prioriza",{"_index":2298,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["priorización",{"_index":7503,"title":{},"name":{},"text":{"43":{},"45":{}},"component":{},"keyword":{}}],["priorizada",{"_index":7911,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["priorizar",{"_index":7218,"title":{},"name":{},"text":{"39":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["priorizarla",{"_index":1095,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["priv/repo",{"_index":3215,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["priv/repo/migr",{"_index":3646,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["priv/repo/migrations/*_create_quotes.ex",{"_index":3052,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["priv/repo/quotes.json",{"_index":3216,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["priv/repo/seeds.ex",{"_index":3255,"title":{},"name":{},"text":{"19":{},"21":{}},"component":{},"keyword":{}}],["priv/repo/structure.sql",{"_index":3665,"title":{},"name":{},"text":{"21":{}},"component":{},"keyword":{}}],["priv/resource_snapshot",{"_index":3645,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["privacidad",{"_index":1494,"title":{"16-10":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["privada",{"_index":3694,"title":{},"name":{},"text":{"22":{},"28":{},"35":{},"36":{},"37":{},"39":{}},"component":{},"keyword":{}}],["privadament",{"_index":7284,"title":{},"name":{},"text":{"39":{}},"component":{},"keyword":{}}],["privado",{"_index":2190,"title":{},"name":{},"text":{"16":{},"28":{},"37":{}},"component":{},"keyword":{}}],["privat",{"_index":3407,"title":{"35-35":{}},"name":{},"text":{"19":{},"28":{},"35":{}},"component":{},"keyword":{}}],["privilegio",{"_index":5816,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["pro",{"_index":1857,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["proactiva",{"_index":1164,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{},"keyword":{}}],["proactivo",{"_index":1358,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["probabilidad",{"_index":1270,"title":{},"name":{},"text":{"14":{},"16":{},"37":{},"43":{}},"component":{},"keyword":{}}],["probabl",{"_index":2275,"title":{},"name":{},"text":{"16":{},"39":{},"45":{}},"component":{},"keyword":{}}],["probablement",{"_index":1721,"title":{},"name":{},"text":{"16":{},"28":{},"45":{},"46":{}},"component":{},"keyword":{}}],["probada",{"_index":7599,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["probado",{"_index":5972,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["probar",{"_index":979,"title":{"20-8":{}},"name":{},"text":{"13":{},"16":{},"20":{},"24":{},"40":{},"43":{},"44":{}},"component":{},"keyword":{}}],["probaremo",{"_index":4266,"title":{},"name":{},"text":{"24":{}},"component":{},"keyword":{}}],["problema",{"_index":899,"title":{"37-5":{},"44-8":{}},"name":{},"text":{"13":{},"14":{},"15":{},"16":{},"18":{},"22":{},"24":{},"26":{},"27":{},"29":{},"34":{},"35":{},"37":{},"38":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["problemática",{"_index":7348,"title":{},"name":{},"text":{"40":{}},"component":{},"keyword":{}}],["procedimiento",{"_index":5158,"title":{},"name":{},"text":{"27":{},"30":{},"35":{},"43":{}},"component":{},"keyword":{}}],["procesada",{"_index":6126,"title":{},"name":{},"text":{"30":{},"45":{}},"component":{},"keyword":{}}],["procesado",{"_index":6131,"title":{},"name":{},"text":{"30":{},"46":{}},"component":{},"keyword":{}}],["procesador",{"_index":1830,"title":{},"name":{},"text":{"16":{},"26":{},"46":{}},"component":{},"keyword":{}}],["procesamiento",{"_index":4420,"title":{},"name":{},"text":{"26":{},"46":{}},"component":{},"keyword":{}}],["procesando",{"_index":6125,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["procesar",{"_index":3297,"title":{},"name":{},"text":{"19":{},"45":{}},"component":{},"keyword":{}}],["proceso",{"_index":838,"title":{"44-6":{}},"name":{},"text":{"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"25":{},"26":{},"27":{},"30":{},"32":{},"34":{},"35":{},"37":{},"38":{},"40":{},"41":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["processwir",{"_index":1966,"title":{},"name":{},"text":{"16":{},"18":{},"28":{},"37":{}},"component":{},"keyword":{}}],["procura",{"_index":2172,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["prod",{"_index":4188,"title":{"45-39":{}},"name":{},"text":{"24":{},"45":{}},"component":{},"keyword":{}}],["produc",{"_index":4493,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["producción",{"_index":765,"title":{"12-4":{},"29-20":{},"29-21":{},"43-26":{},"43-27":{},"45-20":{}},"name":{},"text":{"12":{},"13":{},"14":{},"16":{},"19":{},"24":{},"29":{},"39":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["producido",{"_index":1112,"title":{},"name":{},"text":{"13":{},"35":{}},"component":{},"keyword":{}}],["producir",{"_index":2100,"title":{},"name":{},"text":{"16":{},"26":{},"27":{}},"component":{},"keyword":{}}],["product",{"_index":203,"title":{"41":{},"29-21":{},"42-2":{}},"name":{},"text":{"4":{},"10":{},"11":{},"12":{},"19":{},"29":{},"41":{},"45":{}},"component":{},"keyword":{}}],["productividad",{"_index":3781,"title":{},"name":{},"text":{"22":{},"32":{}},"component":{},"keyword":{}}],["productivo",{"_index":839,"title":{},"name":{},"text":{"12":{},"13":{},"43":{},"45":{}},"component":{},"keyword":{}}],["producto",{"_index":27,"title":{"41":{},"43":{},"16-47":{}},"name":{},"text":{"1":{},"10":{},"11":{},"16":{},"17":{},"22":{},"27":{},"29":{},"30":{},"39":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["products:contactprofilehome12",{"_index":4020,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["spark",{"_index":2951,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["speci",{"_index":6189,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["special",{"_index":2529,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["specif",{"_index":3452,"title":{},"name":{},"text":{"20":{},"28":{}},"component":{},"keyword":{}}],["spike",{"_index":7823,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["spirit",{"_index":3576,"title":{},"name":{},"text":{"20":{}},"component":{},"keyword":{}}],["spring",{"_index":1959,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["springboot",{"_index":2178,"title":{},"name":{},"text":{"16":{},"18":{},"22":{}},"component":{},"keyword":{}}],["sprite",{"_index":4318,"title":{},"name":{},"text":{"25":{}},"component":{},"keyword":{}}],["sql",{"_index":3036,"title":{},"name":{},"text":{"19":{},"21":{},"26":{},"37":{}},"component":{},"keyword":{}}],["sqlinject",{"_index":7062,"title":{"37-7":{}},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["sqlite",{"_index":619,"title":{"20-10":{},"20-12":{}},"name":{},"text":{"10":{},"11":{},"20":{}},"component":{},"keyword":{}}],["sqlite3",{"_index":3024,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["sqlserver",{"_index":1909,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["squad",{"_index":6218,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["squadnam",{"_index":6217,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["squash",{"_index":4331,"title":{"26-5":{}},"name":{},"text":{"29":{},"45":{}},"component":{},"keyword":{}}],["src",{"_index":6495,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["src=\"/assets/js/app.j",{"_index":3915,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["src=\"/miimagen.gif",{"_index":6108,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["src=\"/phoenix/live_reload/frame\">[ámbito",{"_index":6037,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["titl",{"_index":3905,"title":{},"name":{},"text":{"23":{},"26":{},"30":{}},"component":{},"keyword":{}}],["title=\"carta",{"_index":5256,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["title>th",{"_index":4979,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["tizen",{"_index":6395,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["tl",{"_index":7928,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["tld",{"_index":5534,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["tld.d",{"_index":5708,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["to_form",{"_index":4078,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["to_form(%{\"author",{"_index":4079,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["to_form(param",{"_index":4087,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["tocan",{"_index":2147,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["toda",{"_index":1458,"title":{},"name":{},"text":{"15":{},"16":{},"18":{},"19":{},"21":{},"23":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"35":{},"37":{},"38":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["todavía",{"_index":2959,"title":{},"name":{},"text":{"18":{},"27":{},"35":{},"38":{}},"component":{},"keyword":{}}],["todo",{"_index":584,"title":{},"name":{},"text":{"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"34":{},"35":{},"37":{},"38":{},"39":{},"40":{},"43":{},"44":{},"45":{},"46":{}},"component":{},"keyword":{}}],["toefl",{"_index":2441,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["toggle=\"tab",{"_index":2832,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["token",{"_index":2605,"title":{"36-8":{}},"name":{},"text":{"17":{},"23":{},"30":{},"35":{},"36":{},"37":{}},"component":{},"keyword":{}}],["tolerancia",{"_index":8149,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["tom",{"_index":6288,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["toma",{"_index":925,"title":{},"name":{},"text":{"13":{},"15":{},"16":{},"18":{},"22":{},"26":{},"32":{},"35":{},"38":{},"45":{},"46":{}},"component":{},"keyword":{}}],["tomada",{"_index":7164,"title":{},"name":{},"text":{"38":{},"43":{},"45":{}},"component":{},"keyword":{}}],["tomamo",{"_index":8105,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["toman",{"_index":1695,"title":{},"name":{},"text":{"16":{},"38":{},"45":{},"46":{}},"component":{},"keyword":{}}],["tomando",{"_index":5314,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["tomar",{"_index":1333,"title":{},"name":{},"text":{"15":{},"16":{},"18":{},"27":{},"28":{},"38":{},"43":{},"45":{}},"component":{},"keyword":{}}],["tomaron",{"_index":7529,"title":{},"name":{},"text":{"43":{}},"component":{},"keyword":{}}],["tome",{"_index":2130,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["tomemo",{"_index":1724,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["toml",{"_index":6078,"title":{"30-19":{}},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tomo",{"_index":3299,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["tom’",{"_index":6280,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tonn",{"_index":6238,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tono",{"_index":5264,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["top",{"_index":5482,"title":{},"name":{},"text":{"28":{},"37":{},"43":{}},"component":{},"keyword":{}}],["topic",{"_index":211,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["torno",{"_index":7817,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["total",{"_index":774,"title":{},"name":{},"text":{"12":{},"13":{},"26":{},"30":{},"39":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["totalidad",{"_index":6155,"title":{},"name":{},"text":{"30":{},"39":{}},"component":{},"keyword":{}}],["totalment",{"_index":7003,"title":{},"name":{},"text":{"36":{},"40":{},"45":{}},"component":{},"keyword":{}}],["touch",{"_index":4347,"title":{"26-29":{}},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["tower",{"_index":6221,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tra",{"_index":1747,"title":{},"name":{},"text":{"16":{},"26":{},"27":{},"28":{},"32":{}},"component":{},"keyword":{}}],["trabaj",{"_index":847,"title":{},"name":{},"text":{"12":{},"45":{},"46":{}},"component":{},"keyword":{}}],["trabaja",{"_index":1680,"title":{},"name":{},"text":{"16":{},"30":{}},"component":{},"keyword":{}}],["trabajaba",{"_index":4888,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["trabajado",{"_index":7765,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["trabajador",{"_index":1544,"title":{},"name":{},"text":{"16":{},"26":{},"45":{}},"component":{},"keyword":{}}],["trabajan",{"_index":2166,"title":{},"name":{},"text":{"16":{},"37":{},"40":{}},"component":{},"keyword":{}}],["trabajando",{"_index":1492,"title":{"16-9":{}},"name":{},"text":{},"component":{},"keyword":{}}],["trabajar",{"_index":1427,"title":{},"name":{},"text":{"15":{},"16":{},"26":{},"29":{},"45":{}},"component":{},"keyword":{}}],["trabajarán",{"_index":1565,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["trabajen",{"_index":2767,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["trabajo",{"_index":1010,"title":{"16-1":{},"16-6":{},"45-2":{}},"name":{},"text":{"13":{},"16":{},"18":{},"27":{},"29":{},"35":{},"37":{},"39":{},"40":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["trace",{"_index":1301,"title":{"15-5":{}},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["tracerout",{"_index":6527,"title":{"35-20":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["track",{"_index":3163,"title":{},"name":{},"text":{"19":{},"23":{}},"component":{},"keyword":{}}],["trade",{"_index":1880,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["tradicion",{"_index":2895,"title":{},"name":{},"text":{"18":{},"45":{},"46":{}},"component":{},"keyword":{}}],["tradicional",{"_index":2858,"title":{},"name":{},"text":{"18":{},"19":{},"34":{}},"component":{},"keyword":{}}],["tradicionalment",{"_index":1601,"title":{},"name":{},"text":{"16":{},"18":{}},"component":{},"keyword":{}}],["traduccion",{"_index":5594,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["traducción",{"_index":5558,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["traducir",{"_index":2585,"title":{},"name":{},"text":{"17":{},"28":{}},"component":{},"keyword":{}}],["traer",{"_index":5340,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["traffic",{"_index":1181,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["trailer",{"_index":6967,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["trama",{"_index":6957,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transaccion",{"_index":658,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["transfer",{"_index":6135,"title":{"35-44":{}},"name":{},"text":{"30":{},"35":{}},"component":{},"keyword":{}}],["transferencia",{"_index":4869,"title":{},"name":{},"text":{"27":{},"35":{},"46":{}},"component":{},"keyword":{}}],["transferir",{"_index":8091,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["transferirlo",{"_index":6205,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["transferirs",{"_index":5097,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["transform",{"_index":470,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{},"keyword":{}}],["transforma",{"_index":2752,"title":{},"name":{},"text":{"18":{},"35":{}},"component":{},"keyword":{}}],["transformacion",{"_index":2715,"title":{},"name":{},"text":{"18":{},"31":{}},"component":{},"keyword":{}}],["transformada",{"_index":6969,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transformador",{"_index":2555,"title":{},"name":{},"text":{"17":{}},"component":{},"keyword":{}}],["transformando",{"_index":6550,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transformar",{"_index":8093,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["transformars",{"_index":5318,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["transición",{"_index":4911,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["transitoria",{"_index":5967,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["translat",{"_index":6002,"title":{},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["transmición",{"_index":6699,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transmisión",{"_index":6260,"title":{},"name":{},"text":{"30":{},"35":{},"36":{}},"component":{},"keyword":{}}],["transmisión/protocolo",{"_index":6920,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transmiss",{"_index":6523,"title":{"35-14":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transmit",{"_index":5769,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["transmiti",{"_index":4847,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["transmitida",{"_index":6953,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transmitir",{"_index":4776,"title":{},"name":{},"text":{"27":{},"30":{},"36":{}},"component":{},"keyword":{}}],["transparencia",{"_index":7819,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["transpilación",{"_index":2725,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["transpilador",{"_index":5850,"title":{"29-13":{}},"name":{},"text":{"29":{}},"component":{},"keyword":{}}],["transport",{"_index":1522,"title":{"16-41":{},"35-47":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transporta",{"_index":6561,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transportar",{"_index":6938,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["transversal",{"_index":3953,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["trasera",{"_index":7110,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["trasladar",{"_index":1041,"title":{},"name":{},"text":{"13":{}},"component":{},"keyword":{}}],["trasmisión",{"_index":6091,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["trata",{"_index":896,"title":{},"name":{},"text":{"13":{},"16":{},"27":{},"28":{},"35":{},"36":{}},"component":{},"keyword":{}}],["trataba",{"_index":4919,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["tratamiento",{"_index":1688,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["tratando",{"_index":1478,"title":{},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["travel",{"_index":6252,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["travé",{"_index":1350,"title":{"46-8":{}},"name":{},"text":{"15":{},"17":{},"20":{},"26":{},"27":{},"28":{},"30":{},"32":{},"35":{},"36":{},"37":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["trayecto",{"_index":1491,"title":{"16-9":{}},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["traza",{"_index":1300,"title":{"15-5":{}},"name":{},"text":{"15":{}},"component":{},"keyword":{}}],["trazabilidad",{"_index":1397,"title":{},"name":{},"text":{"15":{},"26":{},"35":{},"45":{}},"component":{},"keyword":{}}],["tre",{"_index":2357,"title":{},"name":{},"text":{"16":{},"22":{},"23":{},"28":{},"35":{},"36":{},"37":{},"39":{},"40":{},"45":{}},"component":{},"keyword":{}}],["treinta",{"_index":3792,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["tremendo",{"_index":2468,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["trend",{"_index":1228,"title":{},"name":{},"text":{"14":{}},"component":{},"keyword":{}}],["trenzado",{"_index":6946,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["trip",{"_index":5773,"title":{},"name":{},"text":{"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["triumph",{"_index":2528,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["triunfaría",{"_index":5259,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["triunfo",{"_index":5235,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["troncal",{"_index":6578,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["tronco",{"_index":1050,"title":{"29-19":{}},"name":{},"text":{"13":{},"26":{},"29":{}},"component":{},"keyword":{}}],["troyano",{"_index":7088,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["true",{"_index":3503,"title":{},"name":{},"text":{"20":{},"22":{},"23":{},"24":{},"30":{}},"component":{},"keyword":{}}],["trunk",{"_index":740,"title":{"29-19":{}},"name":{},"text":{"10":{},"11":{},"13":{},"43":{}},"component":{},"keyword":{}}],["tráfico",{"_index":1121,"title":{},"name":{},"text":{"13":{},"14":{},"15":{},"28":{},"35":{},"46":{}},"component":{},"keyword":{}}],["trámite",{"_index":1577,"title":{},"name":{},"text":{"16":{},"45":{}},"component":{},"keyword":{}}],["ttl",{"_index":6538,"title":{"35-37":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ttl=58",{"_index":5750,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["tu",{"_index":1698,"title":{},"name":{},"text":{"16":{},"18":{},"19":{},"20":{},"26":{},"28":{},"29":{},"32":{},"34":{},"35":{},"36":{}},"component":{},"keyword":{}}],["tue",{"_index":6100,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tupla",{"_index":4156,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["turn",{"_index":6229,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["turno",{"_index":4094,"title":{},"name":{},"text":{"23":{},"45":{}},"component":{},"keyword":{}}],["tutori",{"_index":3019,"title":{},"name":{},"text":{"19":{},"23":{},"24":{},"46":{}},"component":{},"keyword":{}}],["tutorial",{"_index":2420,"title":{"26-37":{},"26-43":{}},"name":{},"text":{"16":{},"24":{}},"component":{},"keyword":{}}],["tuvimo",{"_index":5600,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["tv",{"_index":4884,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["twitter",{"_index":7998,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["txt/spf",{"_index":6536,"title":{"35-33":{}},"name":{},"text":{},"component":{},"keyword":{}}],["type",{"_index":3401,"title":{},"name":{},"text":{"19":{},"20":{},"24":{},"29":{},"30":{},"34":{}},"component":{},"keyword":{}}],["type=\"button",{"_index":2833,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["type=\"hidden",{"_index":7146,"title":{},"name":{},"text":{"37":{}},"component":{},"keyword":{}}],["type=\"reset",{"_index":4068,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type=\"submit",{"_index":4070,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type=\"text",{"_index":4045,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type=\"text/javascript",{"_index":3914,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["type=\"textarea",{"_index":4100,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["typescript",{"_index":6455,"title":{},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["técnica",{"_index":2097,"title":{},"name":{},"text":{"16":{},"17":{},"18":{},"22":{},"24":{},"26":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"43":{},"45":{},"46":{}},"component":{},"keyword":{}}],["técnico",{"_index":2323,"title":{},"name":{},"text":{"16":{},"27":{},"28":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["télex",{"_index":4744,"title":{"27-6":{},"27-11":{}},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["término",{"_index":1145,"title":{},"name":{},"text":{"14":{},"17":{},"18":{},"27":{},"28":{},"36":{},"39":{},"43":{}},"component":{},"keyword":{}}],["típica",{"_index":5549,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["típicament",{"_index":6565,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["típico",{"_index":3699,"title":{},"name":{},"text":{"22":{}},"component":{},"keyword":{}}],["título",{"_index":2169,"title":{},"name":{},"text":{"16":{},"23":{}},"component":{},"keyword":{}}],["títulointroducción",{"_index":6262,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["tóxica",{"_index":2160,"title":{},"name":{},"text":{"16":{}},"component":{},"keyword":{}}],["u",{"_index":2006,"title":{},"name":{},"text":{"16":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"37":{},"40":{},"41":{},"43":{},"44":{},"45":{}},"component":{},"keyword":{}}],["uat",{"_index":747,"title":{"44":{},"44-5":{},"44-6":{}},"name":{"44":{}},"text":{"10":{},"11":{},"41":{},"44":{}},"component":{},"keyword":{}}],["ubicacion",{"_index":6671,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ubicación",{"_index":5411,"title":{},"name":{},"text":{"28":{},"34":{},"35":{},"44":{},"46":{}},"component":{},"keyword":{}}],["ubicada",{"_index":3051,"title":{},"name":{},"text":{"19":{}},"component":{},"keyword":{}}],["ubicado",{"_index":3064,"title":{},"name":{},"text":{"19":{},"46":{}},"component":{},"keyword":{}}],["ubicars",{"_index":8140,"title":{},"name":{},"text":{"46":{}},"component":{},"keyword":{}}],["ubuntu",{"_index":4676,"title":{},"name":{},"text":{"26":{}},"component":{},"keyword":{}}],["ucla",{"_index":4906,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["udp",{"_index":6524,"title":{"35-15":{}},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["udp4",{"_index":6791,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ufinet",{"_index":6597,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["ui",{"_index":7307,"title":{},"name":{},"text":{"40":{},"41":{},"43":{}},"component":{},"keyword":{}}],["ui/ux",{"_index":7932,"title":{},"name":{},"text":{"45":{}},"component":{},"keyword":{}}],["ul",{"_index":2805,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["ul>th",{"_index":4984,"title":{},"name":{},"text":{"27":{}},"component":{},"keyword":{}}],["webassembl",{"_index":2666,"title":{"18-4":{}},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["webdesignplayground",{"_index":95,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{},"keyword":{}}],["webhost",{"_index":5814,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["webmanifest",{"_index":6481,"title":{},"name":{},"text":{"34":{}},"component":{},"keyword":{}}],["webmin",{"_index":5832,"title":{},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["webpack",{"_index":2665,"title":{"18-2":{}},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["websit",{"_index":4406,"title":{},"name":{},"text":{"26":{},"28":{}},"component":{},"keyword":{}}],["websocket",{"_index":2898,"title":{},"name":{},"text":{"18":{}},"component":{},"keyword":{}}],["webview",{"_index":6392,"title":{"32-7":{}},"name":{},"text":{"32":{}},"component":{},"keyword":{}}],["well",{"_index":3223,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["werner",{"_index":6290,"title":{},"name":{},"text":{"30":{}},"component":{},"keyword":{}}],["whatev",{"_index":3604,"title":{},"name":{},"text":{"20":{},"40":{}},"component":{},"keyword":{}}],["whatsapp",{"_index":5289,"title":{},"name":{},"text":{"27":{},"35":{}},"component":{},"keyword":{}}],["whenc",{"_index":3232,"title":{},"name":{},"text":{"19":{},"20":{}},"component":{},"keyword":{}}],["white",{"_index":2824,"title":{"37-4":{}},"name":{},"text":{"18":{},"23":{},"29":{}},"component":{},"keyword":{}}],["white\">sto",{"_index":3993,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["white/10",{"_index":3979,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["white/5",{"_index":4049,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["whm",{"_index":5382,"title":{"28-25":{}},"name":{},"text":{"28":{}},"component":{},"keyword":{}}],["whoi",{"_index":5379,"title":{"28-20":{},"35-18":{}},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["whois.nic.cl",{"_index":5680,"title":{},"name":{},"text":{"28":{},"35":{}},"component":{},"keyword":{}}],["wholesal",{"_index":6568,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["wide",{"_index":4073,"title":{"27":{},"27-16":{}},"name":{},"text":{"23":{},"27":{}},"component":{},"keyword":{}}],["width",{"_index":3894,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["width=\"0",{"_index":3945,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["width=\"2",{"_index":4010,"title":{},"name":{},"text":{"23":{}},"component":{},"keyword":{}}],["wifi",{"_index":6627,"title":{},"name":{},"text":{"35":{}},"component":{},"keyword":{}}],["wiki",{"_index":4372,"title":{},"name":{},"text":{"26":{},"38":{}},"component":{},"keyword":{}}],["wikipedia",{"_index":1566,"title":{},"name":{},"text":{"16":{},"28":{}},"component":{},"keyword":{}}],["wilkins EEx.eval_string \"Hola, <%= @name %>\", assigns: [name: \"Camilo\"] \"Hola, Camilo\" La relación entre los datos, plantillas, script y alertas se puede diagramar de la siguiente manera. Figure 1. Diagrama de Relación Datos, Script, Plantillas y Alertas Además de estandarizar y automatizar la generación de alertas, se recomienda automatizar el proceso de deployment de las mismas, utilizando algún workflow de Github actions por ejemplo.","title":"Golden Signals","component":"ROOT","version":"","name":"golden","url":"/devops/golden.html","titles":[{"text":"Alertas","hash":"alertas","id":1},{"text":"Alertas de Límite Fijo","hash":"alertas-de-límite-fijo","id":2},{"text":"Alertas Basadas en Tendencias","hash":"alertas-basadas-en-tendencias","id":3},{"text":"Automatización y Estandarización de Alertas","hash":"automatización-y-estandarización-de-alertas","id":4}]},"15":{"id":15,"text":"La observabilidad e instrumentación se refiere al proceso de añadir código o herramientas a un sistema para adquirir y analizar datos acerca de su comportamiento y desempeño. Estos datos pueden ser usados para obtener conocimientos sobre el funcionamiento interno del sistema, permitir resolver problemas y mejorar su desempeño en general. La observabilidad e instrumentación consiste en añadir capacidades de monitoreo y generación de registros (logs) a un sistema. Esto es añadir código para registrar métricas como los tiempos de respuesta, tasa de error y utilización de recursos. También añade registrar eventos y capturar trazas de error (stack traces) para proporcionar información detallada sobre la ejecución de un sistema. También puede incluir herramientas de traza distribuidas para tener un seguimiento de un request cuando viaja por múltiples componentes de un sistema. Esto puede ayudar a descubrir cuellos de botella y problemas de desempeño (perfomance). Al instrumentar un sistema para observabilidad, los desarrolladores y operadores pueden obtener una comprehensión más profunda de cómo el sistema se comporta en tiempo real. Esto permite a ellos identificar y resolver rápidamente los problemas, mejorar el desempeño del sistema y tomar decisiones informadas sobre escalamiento y planificación de capacidad. La observabilidad e instrumentación es usada para obtener información sobre el comportamiento y desempeño de un sistema. Algunas razones para implementar son: Resolver problemas e incidentes: Al instrumentar un sistema los desarrolladores y operadores pueden obtener datos sobre el comportamiento y desempeño. Estos datos pueden ser usados para identificar e solucionar incidentes, como tiempos de respuesta lentos, errores o cuellos de botella de recursos. Ayudan a identificar rápidamente la causa raíz de un prolema y resolverlo eficientemente. Mejora de desempeño: Proporciona visibilidad en el desempeño de un sistema. Al obtener métricas como tiempos de respuesta, tasas de error y utilización de recursos, los desarrolladores pueden identificar áreas que necesiten optimización. Se puede tomar decisiones informadas para afinación del desempeño, escalamiento y optimización de la asignación de recursos. Planificación de capacidad y escalamiento: Al monitorear y analizar los datos obtenidos a través de la observabilidad e instrumentación, los desarrolladores pueden entender las exigencias y los patrones de uso de recursos de un sistema. Ésta información es valiosa para la planificación de recursos y decisiones de escalamiento. Ayuda a determinar cuando añadir más recursos o escalar horizontalmente para manejar el tráfico o exigencias de la tarea. Monitoreo y alertas proactivas: La observabilidad e instrumentación permiten el monitoreo proactivo de un sistema. Al establecer alertas basadas en límites o anomalías los desarrolladores pueden ser notificados de potenciales incidentes antes de que los usuarios finales sean impactados. Esto permite una mitigación proactiva y previene potenciales cortes de servicio o degradación del desempeño. Comprender el comportamiento del sistema: Proporciona conocimiento profundo de cómo un sistema se comporta en tiempo real, ayudando a entender el flujo de de peticiones (requests), dependencias entre componentes y el impacto de los cambios. Este conocimiento es crucial para depurar incidentes complejos, optimizar desempeño y realizar decisiones de arquitectura informadas. La observabilidad e instrumentación puede ser usada por una gran variedad de stakeholders involucrados en el desarrollo y operaciones de un sistema. Ayuda a la colaboración, resolución de problemas, optimización de desempeño y toma de decisiones informada. El uso de bibliotecas de observabilidad da varios beneficios importantes como los siguientes: Estandarización de la instrumentación: Las bibliotecas de observabilidad proporcionan una forma estandarizada de instrumentar código para propósitos de observabilidad. Ofrecen integraciones listas para usar y una API que facilita obtener y exponer puntos de datos relevantes, métricas, logs y trazas. Esto permite una consistencia y uniformidad de cómo la instrumentación es implementada a través de distintos componentes de un sistema. Implementación simplificada: Las bibliotecas de observabilidad crean una capa de abstracción a las complejidades de instrumentar código para observabilidad. Esto proporciona interfaces de fácil uso y frameworks que simplifican el procesos de añadir monitoreo, logging y capacidades de trazabilidad a un sistema. Esto ahorra tiempo de desarrollo y esfuerzo, permitiendo a equipos enfocarse en construir y mejorar sus aplicaciones. Obtención de datos consistente: Un SDK de observabilidad permite obtener datos de forma confiable y consistente de diferentes partes del sistema. Pueden manejar los detalles de obteneción de datos, agrupación y formateo, lo que permite obtener datos de forma estandarizada y precisa. La consistencia es de vital importancia para un análisis efectivo y resolución de problemas. Optimización del desempeño: Los SDK tienen capacidades de optimizar el desempeño. Proporcionan información sobre cuellos de botella del sistema, utilización de recursos y tiempos de respuesta, permitiendo a los desarrolladores identificar las áreas que necesitan optimización. Al utilizar los datos obtenidos desde la observabilidad e instrumentación, los equipos pueden mejorar iterativamente mejorando el desempeño de las aplicaciones. Resolución y depuración de problemas mejorada: Los SDK dan mejores herramientas para resolver problemas y depuración de errores ya que proporcionan información detallada acerca del comportamiento del sistema. Ayudan a capturar y registrar eventos, capturar stacks de error y permitir una trazabilidad distribuida. Esto logra facilitar comprender el flujo de las requests e identificar problemas. Permitiendo acelerar el proceso de identificar y resolver problemas, reduciendo los tiempos muertos y mejorando la robustez del sistema. Colaboración y visibilidad funcional cruzada: Utilizar SDK también proporciona y promueve la colaboración y visibilidad funcional cruzada (cross-functional). Equipos diversos como desarrolladores, operarios y QA pueden obtener el mismo conjunto de herramientas de observabilidad y datos para obtener información sobre el comportamiento del sistema. Ésta visibilidad compartida promueve mejor comunicación, facilita el análisis de causa raíz y permite a los equipos trabajar juntos para mejorar la robustez y desempeño de los sistemas. Un sistema correctamente instrumentado debe emitir tazas, métricas y registros que permiten tener una observabilidad del sistema y su entorno. Las trazas proporcionan una vista de águila de lo que pasa cuando una solicitud (request) es realizada al sistema. Independiente si una aplicación es un monolito con una base de datos única o un sofisticado sistema de servicios interconectado, las trazas son escenciales para comprender todo el recorrido que una solicitud tiene en la aplicación. Las métricas son una medición de un servicio capturada en el tiempo de ejecución. El capturar una medición se conoce como evento métrico (metric event), el cual consiste no solo en la medición como tal, si no también el tiempo en el que fue capturada y la metada asociada. Las métricas de aplicación y request son indicadores importantes de la disponibilidad y desempeño de un sistema. Métricas personalizadas proporcionan conocimiento sobre los indicadores que impactan la experiencia de usuario o negocio. Los datos obtenidos pueden ser usados para alertar de un corte de servicios o gatillar decisiones programadas para escalar o desplegar una aplicación automáticamente dependiendo de la alta demanda. Un registro (log) es un texto con marca de tiempo (timestamp), el cual esta estructurado (recomendado) o no estructurado con metadata opcional. De todas las señales de telemetría, los registros (logs) son los más usados y venerables. La mayoría de lenguajes de programación tienen capacidades de generar registros o bibliotecas estandarizadas y robustas de registros (logging). Open Telemetry facilita la instrumentación de los sistemas. Para que un sistema sea observable debe ser instrumentado, esto significa que los componentes del sistema deben emitir traces (trazas), metrics (métricas) y logs (registros). Al usar Open Telemetry se puede instrumentar de dos formas: Utilizar soluciones basadas en código a través del uso de SDK oficiales disponibles para gran cantidad de tecnologías. Utilizar soluciones basadas en \"Zero Code\". Ambas opciones son complementarias y pueden ser usadas al mismo tiempo. La solución utilizando el SDK permite obtener una telemetría rica y profunda de la aplicación. Permite usar el API de Open Telemetry para generar telemetría del sistema, lo que es un gran complemento de la telemetría generada por la opción de \"Zero Code\". Es una gran opción para comenzar o cuando no se puede modificar la aplicación que necesite ser instrumentada. Proporcionan telemetría abundante de las bibliotecas usadas o del ambiente donde el sistema se ejecuta. Una forma de verlo es que dan información sobre qué es lo que está pasando en la periferia del sistema. Siempre es recomendable utilizar el SDK de Open Telemetry, sin embargo en el caso de no estar disponible para el sistema o las tecnologías usadas, se debe recurrir a la instrumentación manual, tratando de crear una capa de abstracción compatible con Open Telemetry. Figure 1. Uso de OpenTelemetry","title":"Observabilidad e Instrumentación","component":"ROOT","version":"","name":"observability","url":"/devops/observability.html","titles":[{"text":"¿Por qué usar Observabilidad e Instrumentación?","hash":"por-qué-usar-observabilidad-e-instrumentación","id":1},{"text":"Beneficios","hash":"beneficios","id":2},{"text":"¿Por qué usar un SDK?","hash":"por-qué-usar-un-sdk","id":3},{"text":"Componentes de la Instrumentación","hash":"componentes-de-la-instrumentación","id":4},{"text":"Trazas (traces)","hash":"trazas-traces","id":5},{"text":"Métricas (metrics)","hash":"métricas-metrics","id":6},{"text":"Registros (logs)","hash":"registros-logs","id":7},{"text":"Open Telemetry","hash":"open-telemetry","id":8},{"text":"SDK","hash":"sdk","id":9},{"text":"Zero Code","hash":"zero-code","id":10},{"text":"Uso","hash":"uso","id":11}]},"16":{"id":16,"text":"El mundo laboral consiste en diversos escenarios posibles. En el siguiente capítulo se pondrá un breve resumen de lo actualmente disponible. Un trabajador autónomo, trabajador por cuenta propia o simplemente independiente (en inglés, freelance), contratista independiente, es un trabajador que se desempeña de forma independiente, es decir, sin depender de otra organización, ofreciendo su fuerza laboral a clientes con libertad de condiciones. Un autónomo es aquel que invierte su tiempo de acuerdo a sus necesidades y las de sus clientes. En muchos casos no cumplen horarios rutinarios o de oficina, tienen la autonomía de modificar su agenda de acuerdo a la carga de trabajo que posean y en la mayoría de los casos ofrecen sus servicios por medio de contratos, especificando el tiempo que trabajarán para el empleador y bajo qué condiciones. Wikipedia: Freelance Si bien es posible realizar boletas de honorarios, se recomienda la creación de una empresa cuando se disponga de un flujo constante de dinero (necesario para pagar las cotizaciones). Lo ideal es siempre contar con la asesoría de un contador profesional para realizar los trámites respectivos con impuestos internos (SII). El tener una empresa ofrece diversos beneficios como: Posibilidad de postular a proyectos en SERCOTEC. Posibilidad de postular a https://www.mercadopublico.cl/ Posibilidad de comprar con factura. Posibilidad de optar a créditos y ofertas especiales en instituciones bancarias. Pago de cotizaciones y previsión de salud. Lo ideal es tener una empresa si se quiere trabajar remoto a distancia para empresas internacionales. Lo recomendable es siempre realizar un contrato que estipule los derechos y deberes tanto del cliente como del proveedor. Tradicionalmente se firma una cláusula de NDA. Un acuerdo de confidencialidad (ADC), acuerdo de no divulgación (en inglés non-disclosure agreement o NDA) se firman habitualmente cuando dos empresas o individuos acuerdan alguna relación comercial. Los acuerdos de confidencialidad pueden ser mutuos, de modo que las dos partes tienen restricciones de uso de la información proporcionada, o pueden afectar sólo a una de las partes. También es común que un empleado firme un acuerdo de confidencialidad o acuerdo similar en el momento de su contratación. La recomendación siempre es asesorarse con un abogado antes de elaborar o firmar un contrato. Hay empresas que incluso desean apropiar de los productos que se realizan en tiempos fuera del horario laboral. O exigir trabajar fuera de lo razonable sin pagar los valores respectivos. Siempre velar por los derechos laborales e intelectuales. Tener en su grupo de amigos, personas que estudien Contador Auditor y Abogacía. Wikipedia: NDA Desde el Jueves 26 de Marzo de 2020 existe una nueva ley que regula el Teletrabajo y Trabajo a Distancia en Chile. Elementos tales como: Un computador Internet Si un trabajador de su propia voluntad quiere utilizar su propio computador porque es una mejor solución para él, puede hacerlo, pero lo que no puede pasar es que el empleador obligue al trabajador a comprarse un computador o utilizar sus propios elementos de trabajo. Empleador debe garantizar un mínimo de 12 horas continuas de desconexión. Se podrá establecer en esta modalidad Tener horario establecido. Tener libertad de horario. Artículo 152 quáter J* Si la naturaleza de las funciones del trabajador a distancia lo permite, las partes podrán pactar que el trabajador distribuya libremente su jornada en los horarios que mejor se adapten a sus necesidades, respetando siempre los límites máximos de la jornada diaria y semanal, sujetándose a las normas sobre duración de la jornada de los artículos 22 y 28 y las relativas al descanso semanal del Párrafo 4° del Capítulo IV del Libro Primero. Quien trabaja desde su casa y tenga un accidente del trabajo o una enfermedad profesional, quedará cubierto por la mutualidad del empleador, por lo que en consecuencia tendrá derecho a los tratamiento que da la mutualidad y el pago de las prestaciones que da la mutualidad. Esto debe ser un accidente a causa del trabajo. El accidente de trayecto también queda cubierto, ya que esta ley permite combinar tiempo de trabajo presencial con tiempo de trabajo a distancia. Malas prácticas como tener una cámara web encendida todo el día, aplicaciones que toman capturas de pantalla de tu computador, que miden el uso de teclado o que monitorean todo lo que haces en el computador son un peligro latente. ¿Qué pasa con esto? No se puede violar la intimidad ni la privacidad de las personas. Los mecanismos de control que el empleador puede tener son los que respetan los derechos fundamentales de las personas, que respetan los derechos laborales. Esto ya está regulado por dictámenes de la Dirección del Trabajo hace mucho tiempo. Video de 9 punto 5 Teletrabajo en Chile Ley 21.220 En muchas ocasiones nos enfrentaremos a un dilema ético - moral. Donde se solicitarán la ejecución de acciones que probablemente sean ética y moralmente cuestionables. Tomemos como ejemplo el caso de La Polar, donde se realizó la repactación unilateral y abusiva de las deudas de alrededor de 1 millón de clientes. Los consumidores se quejaron de que en sus cuentas aparecían reprogramaciones que nunca habían aceptado, con cuotas y montos que eran fijados por la empresa y encarecerían excesivamente la deuda, o bien se enteraban de ello tras recibir cartas de cobranza o aparecer en Dicom. Los ejecutivos que solicitaron el proyecto fueron los mayores imputados por estas malas prácticas. Pero el equipo de tecnología fue quien logró que los sistemas de software cumplieran las características solicitadas. Un sistema de software, sobre todo en empresas que administra dinero y deudas, es laboriosamente auditado, detallado y analizado. El equipo de tecnología sabía perfectamente las consecuencias de ejecutar las órdenes solicitadas y aún así implementó los sistemas para lograr esas malas prácticas. Siempre puedes utilizar la Objeción de conciencia para no participar en proyectos o realizar acciones que sus consecuencias entren en conflicto con tu marco ético - moral. Muchas veces es una decisión difícil (puede que te cueste el puesto de trabajo). Existe un texto que es atribudo a Al-Juarismi; Matemático, geógrafo y astrónomo de una talla intelectual extraordinaria que vivió entre los años 780 y el 850 de nuestra era. Aunque no es posible verificar que realmente sea de su autoría, su contenido es importante de destacar. A la pregunta que le hacen, sobre el valor del ser humano, este responde: \"`Si tiene ética entonces su valor es igual a 1 (uno). Si además es inteligente, agréguele un cero y su valor será igual a 10. Si también es rico, añádale otro cero y su valor será de 100. Si además tiene bello aspecto, agréguele otro cero y su valor será igual a 1000. Pero si pierde el 1 (uno), que corresponde a la ética, perderá todo su valor, pues solamente le quedarán los ceros. Así de sencillo: Sin valores éticos, ni principios sólidos, lo único que queda son delincuentes, corruptos y personas que no valen nada\"` La Ley 19.223 tipifica figuras penales relativas a la informática en Chile. El computador de un desarrollador debería cumplir el principio de Pareto. Esto quiere decir que pueda realizar al menos el 80% de los proyectos con el mismo equipo. Para el caso de un desarrollador web/móvil, un computador Apple es la opción más versátil. Permite desarrollar para Web, Android e iOS, además de poder ser instalado distribuciones Linux. Debe tener las siguientes características: Tener máximo 5 años de antigüedad (2 a 3 como recomendado, nuevo ideal). Tener procesador M1 o superior. Tener 8 GB de Ram o Superior (16 GB o más Recomendado). Tener un disco duro SSD de 256 GB (500 GB o Superior recomendado). Si es un computador portátil fijar que la batería tenga menos de mil (1000) ciclos. Tiendas https://www.maconline.com/ https://www.facebook.com/netcomputacionchile/ https://www.latercera.com/practico/noticia/lo-estas-haciendo-mal-los-diez-errores-mas-frecuentes-al-usar-un-macbook/OMQDM4KG5ZFHDMU5RGHVXY3BOY/ Mac Mini: Ideal para comenzar, rangos de precios más razonables si se compra usado. Macbook Air: Similar a Mac Mini, pero con pantalla incluida y portabilidad. Macbook Pro: La opción más adecuada para desarrollo móvil. Se recomienda comprar un smartphone destinado a pruebas. De preferencia uno de 2 a 3 años de antigüedad. Considerar que los mercados para desarrollo móvil es recomendable probar dispositivos al menos 3 versiones anteriores a la última disponible, para asegurar la compatibilidad con los dispositivos más antiguos. Cuando las empresas buscan a un Full Stack (\"generalista\"), en realidad lo que están buscando es alguien que les pueda resolver sus problemas utilizando una serie de herramientas pre-definidas. Normalmente alguien que pueda participar en la elaboración de una aplicación desde la fase de toma de requerimientos hasta la fase de paso a producción y mantenimiento. Muchas veces se confunde este concepto con alguien que es un \"Maestro Chasquilla\" o \"Jack of All Trades\". Hace de todo un poco, pero sabe poco y sin conocimiento profundo de los temas. Si no tienes cuidado puedes terminar siendo una persona con mucha experiencia, pero no experticia suficiente como para competir en cargos semi senior o senior, incluso con varios años en la industria. Lo ideal es que elijas un conjunto de herramientas que te sirva para resolver problemas de diversa índole y te conviertas en un experto usándolas. Por ejemplo seleccionas un stack de backend y un framework especifico (ej: elixir, golang, rust, python, php, js, ruby), un stack de frontend (ej: liveview, svelte, vue, react), una base de datos (ej: postgres, sqlserver) y un proveedor de servicios (como amazon, firebase, google cloud, etc). Al realizar los proyectos con la mismas herramientas, poco a poco irás generando experticia y dominio de los temas. Podrás competir con niveles semi senior o senior. Evita tener un currículum desparramado por todos lados. Puedes ser generalista en el sentido de que estás capacitado para elaborar una aplicación desde el inicio hasta el final, pasando por el diseño del sistema, las bases de datos, interfaces de usuarios, configuración de servidores y dominio de las reglas de negocio. Pero siempre con un stack determinado en el cual lo conozcas de principio a fin. Esto te evitará maratones de \"Aprender sobre la marcha\" y sorpresas a las 3 Am del fin de semana. Sin embargo, también realizar proyectos y experimentos con nuevas tecnologías y estrategias es importante o se corre el riesgo de estancarse. Siempre ser flexible y estar abiertos al cambio, de forma estratégica y controlada. Según la definición de Edward Melendez La mayoría de la gente se imagina a un desarrollador capaz de gestionar frontend y backend. Pero, en realidad, un verdadero Full Stack incluye mucho más: Base de datos, servidor, redes, infraestructura en la nube, CI/CD, seguridad, monitorización, contenedores, CDN, copias de seguridad…​ y eso es solo el comienzo. Ser un Full Stack hoy en día no se trata solo de escribir código, sino de comprender todo el ecosistema que impulsa las aplicaciones modernas. Figure 1. Definición de Fullstack por Edward Melendez Lenguaje Backend Frontend Elixir Phoenix Framework LiveView / SurfaceUI Java Spring Boot Angular Ruby Rails Hotwire / Inertia.js PHP Laravel / ProcessWire Vue.js / Inertia.js / Livewire Go Gin / Buffalo HTMx Python Django / Fastapi / Masonite Svelte Javascript RedWood.js / Next.js / Nest.js React.js C# ASP.net Blazor Swift Vapor iOS Kotlin Ktor Android El Stack predilecto del profesor es: Elixir, PHP y Swift debido a que permite abordar gran cantidad de casos de uso, utilizando tecnologías modernas y versátiles. Siguiendo el principio de Pareto de 80/20. Tecnología Descripción Elixir + Postgres: Phoenix Permite elaborar sistemas de backend y frontend sofisticados y modernos. Incluso proyectos de IOT, Machine Learning, Mobile, Web Assembly, entre otros. Preparados para alta escalabilidad y concurrencia. PHP + MySQL: ProcessWire / Laravel / Wordpress Permite elaborar sitios webs rápidamente para entornos de hosting con Cpanel, utilizando las capacidades CMS/CMF de los frameworks. Javascript + Inertia.js + Svelte.js + Esbuild: Web Es el lenguaje predilecto para crear animaciones y manipulación del DOM. Si bien puede ser utilizado en otras áreas, se recomienda utilizarlo solamente para el ambiente web, ya que existen opciones más adecuadas para backend. Ada / C / C++ / Rust / Zig: Low Level Permite elaborar aplicaciones de bajo nivel, sobre todo extensiones para Elixir u otros lenguajes. También recomendado para entornos con Web Assembly. Swift: iOS, Kotlin: Android. Permite crear aplicaciones móviles nativas, en un ecosistema integrado y robusto. De preferencia elegir nativo sobre otras opciones como React Native o Flutter. Lua / C# / Wren: Videojuegos Utilizar estos lenguajes para realizar videojuegos con TIC80, DOME, Unity, Godot u otro engine. Framework recomendado Defold. Bash + Sed + Awk / Python / Go: Scripts y CLI Utilizar para elaborar scripts de sistema y utilidades simples o para Devops. PETAL: Phoenix + Elixir + Tailwind + Alpine + LiveView. LAMP: Linux + Apache + MySQL + PHP (Cpanel) TALL: Tailwind + Alpine + Livewire + Laravel MERN: Mongo + Express + React + Node Las personas en forma de T son empleados con amplia experiencia en diferentes disciplinas (que se ilustra con la barra horizontal de \"T\") y tienen una gran experiencia en su campo o disciplina (que se representa con la barra vertical de \"T\"). Por lo tanto, las personas con forma de T tienen una especialidad y, además, tienen una experiencia más amplia con otras habilidades. A diferencia de la forma de T, la forma de M tiene dos barras verticales. Esas barras representan a personas con múltiples conocimientos en sus campos o disciplina. Una persona con más de una especialidad. Los empleados en forma de M tienen el mismo conocimiento, o más, en las habilidades que se esperan de los empleados en forma de T, y los empleados en forma de M a menudo son miembros de equipos multifuncionales de alto rendimiento. Un pianista concertista practica varias horas al día, aprendiendo música, practicando ejercicios y mejorando sus habilidades. Entrena la misma pieza musical una y otra vez hasta aprender cada pequeño detalle hasta lograr la interpretación musical indicada. Por que cuando sea el momento de presentarse ante un público, el pianista desea entregar su mejor interpretación posible. Desea estar orgulloso y justificar tanto el dinero como el tiempo que han invertido las personas para oirlo en su presentación. Un jugador de fútbol profesional pasa horas en el gimnasio, corriendo, alimentándose adecuadamente y haciendo diversos ejercicios físicos una y otra vez hasta ser un maestro. Verá grabaciones de partidos anteriores y estudiará estrategias sobre como mejorar. También jugará partidos de exhibición y amistosos para prepararse para los partidos de campeonato. Un karateka constantemente está practicando katas (movimientos que imitan una secuencia de batalla), cómo respirar y flexionar los músculos en el tiempo correcto. Realizando los movimientos innumerables veces, mejorando en cada repetición. Los mejores desarrolladores tienen la misma forma de ver la profesión. No van a trabajar todos los días y practicar a expensas del empleador. Van e invierten tiempo personal en aprender nuevas herramientas, lenguajes y perfeccionar sus técnicas y conocimientos. Siempre se aprenderá nuevas cosas en el trabajo, pero como hay dinero de por medio está la expectativa de que se va a producir, no a practicar. Fragmento de: Brian P. Hogan. Exercise for Programmers. En palabras simples. Si seguimos una Distribución Normal, debes posicionarte más alla del promedio (13.6% o más) hacia la derecha. De esta forma podrás superar la constante batalla de competencia al buscar un trabajo. En muchas empresas se habla de distintos niveles de seniority (Junior, Engineer, Senior Engineer, etc.). Sin embargo es un concepto muy ambigüo ya que varía entre cada empresa. Para poder estandarizar un poco, se debe detallar lo que se espera de un profesional en cada nivel. Es la responsabilidad de la empresa y del equipo de trabajo proveer un ambiente donde cada persona sea empoderada para ser y crecer al nivel mundial (world-class) en su rol y habilitarlos para alcanzar más de lo que pensaban posible para ellos mismos. Lo importante es que el profesional tome las riendas de su carrera y dirija su evolución según sus criterios, nunca dejar que una empresa defina tu carrera y sea la única fuente de crecimiento profesional. Esta empresa se dedica a la subcontratación. Clientes vienen y les piden personal para elaborar un proyecto. Normalmente, no tienen muy buenas prácticas y tu sueldo no será el mejor (aunque ellos cobrarán mucho más). El contrato será con la moledora y no con la empresa a la cual realizas el proyecto. Usualmente, te tocan proyectos cachos que nadie más quiere hacer con tecnologías, plazos o condiciones antiguas y adversas. Alta probabilidad de Burn Out. Se les dicen moledoras de carne porque te exprimen cada gota de sudor y sangre de ti, para que finalmente te desechen si ya no soportas las condiciones tóxicas de su ambiente. Hay empresas de subcontratación decentes, pero tienes que hacer un proceso de investigación correspondiente antes de aceptar ingresar a ese tipo de empresas. La mayoría de las moledoras trabajan con clientes que exígen ciertos requisitos. Mientras más títulos y certificaciones tengas, más dinero le podrán cobrar al cliente, por lo que si deseas trabajar en este tipo de organización procura tener buenas certificaciones y estudios. Los proyectos en este tipo de empresa son usualmente para bancos, instituciones de salud, gobierno u otras instituciones de gran envergadura y antigüedad. Por lo que las tecnologías usadas estarán dentro del ámbito Microsoft/Oracle/IBM. Java con Spring, Springboot o Struts. C# con ASP.NET. PHP (Proyectos Legacy). Visual Basic 6 Cobol SQLServer Oracle AS400 Empresas que tienen poco capital y experiencia en el mercado. Alto riesgo. Normalmente, dependen de algún fondo como CORFO o de inversionistas privados. Alta probabilidad de que te paguen poco o nada. Muy inestables ya que dependen de factores ajenos a su control (como que su producto sea un éxito, inversionistas den más dinero). Probablemente te ofrezcan un porcentaje de la empresa a cambio de un sueldo ínfimo o cosas como pizza, cervezas y oficinas \"entretenidas\". No es recomendable aceptar este tipo de ofertas, ya que la mayoría de las startups perecen en los primeros años. También suelen tener roles poco definidos y se deba realizar labores ajenas a tu área. También la posibilidad de marchas de la muerte seguidas para cumplir los caprichos de los inversionistas y las postulaciones a fondos. Investigar y evaluar si trabajar en estas condiciones vale la pena. De preferencia buscar Startups con una liquidez ya consolidada para evitar problemas al recibir sueldos. Normalmente, las startups tienen tan poco presupuesto que cualquier persona que pueda hacer el trabajo es aceptada. Idealmente procura conocer bien las herramientas y prepárate para aprender de muchas áreas distintas. Trabajar para startups es ideal para personas que deseen armar su propia startup en el futuro, si son afortunados, tendrán buenas experiencias y podrán conocer las distintas áreas del negocio, hacer contactos y los requisitos para tener una empresa propia. Una cosa que debes saber y tener presente es el Burn Rate de la Startup. Básicamente es la comparación de cúanto dinero existe en las arcas de la empresa versus cúanto dinero se quema mensualmente para mantenerla a flote. Mientras más alto sea el Burn Rate más rápido la empresa se quedará sin dinero y deberá buscar inversionistas o formas de generar ingresos. Si la empresa no te da esta información actualizada y de forma constante considéralo como una red flag. Las personas tienen derecho a conocer y poder planificar su situación laboral con tiempo, si es que la organización da indicios de no poder seguir funcionando. Una gran parte de las Startups tiene por objetivo ser compradas por empresas más grandes. Ten en consideración de que las condiciones de compra pueden no favorecerte. Si la empresa es adquirida por otra, la nueva empresa no está obligada a darte ningún tipo de compensación y puede despedirte sin aviso. Ten siempre en bandeja una alternativa laboral y colchón de ahorros para mantenerte a flote si pierdes el trabajo. Platanus Ventures Startup Chile Fundación Copec Incubadora Chrysalis Imagine Lab IncubaUC FHC NXTP Elixir Ruby PHP Javascript Python Tailwind Android, iOS Estas empresas se dedican a realizar sistemas para campañas publicitarias o apoyo a estas. Páginas webs, captación de usuarios y sistemas de análisis de campañas son proyectos comunes. El principal drama son los plazos extremadamente acotados (2 a 3 semanas) para sistemas completos. El burn out es muy probable y la calidad del software que se realice debido a estos plazos es cuestionable. Antes de entrar a una agencia procura que cumplan con un buen stack tecnológico y de gestión de proyectos. Con sueldos apropiados. Mucha de estas agencias utilizan la técnica de contratar prácticantes universitarios y elaborar todos los proyectos con una alta rotación de personal. Su prioridad es cumplir con lo que se le prometió al cliente, con el menor plazo y coste posible. Haz una buena investigación y obtención de referencias antes de entrar. Al igual que las startups, mientras el trabajo pueda cumplirse a tiempo y con la menor cantidad de defectos posibles. Idealmente conocer sobre marketing, copywriting, usabilidad y diseño ayuda. Wordpress ProcessWire Bootstrap jQuery Themeforest Plataformas No-Code como Bubble. Similar a la agencia de marketing, existe la fábrica de software. Se diferencian por que su foco no es la publicidad, pero si la elaboración de sistemas de software. Ten cuidado ya que muchas al igual que la agencia, prioriza plazos cortos y bajos costos frente a la calidad del software y la calidad de vida de las personas. Las empresas contratistas normalmente tienen a uno o varios clientes a los cuales les ofrecen servicios de desarrollo y soporte. Los clientes normalmente son bancos, retail o instituciones de servicios públicos. Haz una buena investigación antes de entrar sobre sus prácticas laborales, sueldos e historia. Normalmente, realizan una prueba técnica antes de entrar. Se recomienda conocer bien un área como frontend o backend. Además de conceptos de DDD, Solid y Patrones de Diseño. Java con Spring, Springboot o Struts. C# con ASP.NET. PHP, Javascript (Next.js, Nuxt.js). Las pequeñas y medianas empresas u organizaciones no gubernamentales pueden variar en los sueldos y proyectos que pueden ofrecer. Todas necesitan servicios informáticos para gestionar mejor sus organizaciones. Investiga bien si el sueldo ofrecido cumple tus necesidades, o si la causa de la ONG te motiva a ayudarlos. Similares a la startup, son recomendables para personas que deseen practicar sus habilidades y elaborar proyectos con una causa más elevada. Wordpress Bootstrap jQuery ProcessWire En los bancos y otras instituciones financieras o mineras te puedes encontrar con tecnologías antigüos (sistemas legacy como AS400, Cobol, Visual Basic 6, Dbase, Sybase). Pero también (dependiendo del banco) prácticas y tecnologías más modernas. Los bancos suelen trabajar con tecnologías en las cuales una empresa internacional como Oracle, IBM, Microsoft, SAP, ofrece soporte técnico y capacitación. Pagan millonarias sumas por licencias. El riesgo que tiene esta empresa es quedarse estancado con tecnologías empresariales. Ofrecen relativa estabilidad pero tienen prácticas como vestir formal que poco a poco se estan diluyendo. Ve a este tipo de empresas si deseas dar mantención a sistemas antiguos y una estabilidad laboral con sueldos aceptables, pero proyectos quizás menos entretenidos. La mayoría requiere de título universitario en el área informática o relacionado, para ser aceptado. Burocracia considerable. Java Oracle DB Cobol .NET SAP Angular Gestión de Proyectos Instituciones como Hospitales, Cámara de Diputados, Registro civil y otros relacionados. Cuentan con departamentos de informática. Las principales labores son soporte técnico (reparar computadores, redes y equipos de oficina, gestionar sistemas de información, dar asesoría técnica a los usuarios). Gran parte de sus sistemas son elaborados por contratistas, el desarrollo interno no es mucho (aunque depende de cada institución). El título universitario puede ser opcional, sin embargo tener uno puede significar la diferencia entre ganar el sueldo mínimo y tres veces más. Ya que las remuneraciones están basadas en grados y un título da muchos puntos para mejorar el grado. Usualmente dan contratos a plazo fijo y reemplazos antes de darte un cupo definitivo. Una vez que tienes contrato indefinido puedes tener pega por muchos años. Pero igualmente puedes estar años esperando ese cupo. Los sueldos no son los mejores, pero si se puede hacer carrera y subir el sueldo con los años y estudios. Mucho de los procesos ya están pensados, la burocracia es alta. Gestión de proyectos Análisis y Diseño de Sistemas Base de datos .NET Java PHP Similares a los Bancos e Instituciones Estatales. Las empresas de servicios básicos como agua, luz, gas, internet o de retail como Fallabela o aerolíneas como LAN, cuentan con sistemas legacy y alguno que otro proyecto con nuevas tecnologías. Muchas veces conviene más ser contratista de estas empresas a ser contratado directamente. La recomendación es trabajar como empleado un par de años para conocer su ambiente, además de tener contactos y luego fundar una empresa que les brinde servicios adaptados a sus necesidades. Similar a software factory, los bancos o instituciones estatales. Al igual que con las instituciones estatales, las escuelas de educación básica y media tienen un área informática. Normalmente, dedicada a la gestión de los equipos computacionales y solución de problemas de los usuarios. Quizás tengan sistemas para la gestión de notas, página web y otros como Moodle. Los sueldos no son muy elevados (dependiendo del lugar), pero tiene el plus de estar aportando en hacer una diferencia en la vida de los jóvenes. Si deseas hacer clases o participar en un proyecto educativo quizás este tipo de organización sea para ti. No es necesario tener un título relacionado a la informática, pero si sería de mucha ayuda uno relacionado a la educación. Podrías entrar como servicio técnico con un par de certificaciones técnicas. Aunque si deseas hacer clases, una carrera o magíster en docencia es de ayuda. PHP (Moodle) Java .NET En las universidades se puede trabajar como profesor (de preferencia con un magister en educación) o como miembro del equipo de TI. Las labores son similares a una escuela de educación media y organizaciones estatales. Existen algunas universidades que tienen áreas de investigación y desarrollo que también se puede participar, como por ejemplo el Laboratorio Nacional de Computación de Alto Rendimiento (NLHPC). Magíster en Matemática, Física, Estadísticas, Astronomía, Docencia Python, .NET, Java PHP (Moodle) CUDA Certificación LPIC Certificación CCNA. Normalmente, comenzaron como una Startup, pero llevan más de 5 años y tienen una buena salud financiera. Su producto o servicio es rentable y tiene ingresos constantes. Entra a esta organización si te gusta el servicio o producto que tienen y vez aportando a su evolución. Se diferencia del software factory porque la mayor parte de sus proyectos están relacionados del producto o servicio en vez de un cliente externo. Por ejemplo armar un dashboard que tenga indicadores sobre el avance del producto, mejorar los sistemas de comunicación interna y otros. Similar al software factory y Startup. Se recomienda tomar las siguientes acciones: Participar en comunidades de desarrolladores, ampliando la red de contactos. Los mejores empleos son cuando un amigo te recomienda, saltándose ampliamente el proceso de contratación. Elaborar un portafolio de proyectos y promocionarlos (sin seguir tutoriales). Asistir a charlas y conferencias y realizar networking. Practicar Algoritmos y Coding Challenges (https://exercism.org/, https://leetcode.com/). Practicar Diseño de Sistemas, DDD, Solid, Hexagonal. Practicar responder preguntas con el método STAR. Tener un CV bien redactado, estructurado, honesto y orientado al puesto laboral. Elaborar una carta de presentación. Ser resiliente y postular (En promedio 50 postulaciones entregarán resultados). Aprender Inglés y dar la IETLS o TOEFL según sea necesario. Escuchar Podcast de tecnología y estar atentos a las nuevas tendencias. El trabajar para empresas del extranjero permitirá obtener experiencias únicas que darán un gran peso al currículum. Para esto se recomienda aprender bien inglés (o el idioma predilecto de la empresa o país). Chile tiene varios convenios con distintos países, lo que se conoce como Work and Holiday o tomar cursos de maestrías o inglés afuera. https://www.workingholiday.cl/ https://www.kiwihopp.com/ https://www.efset.org/ https://www.ef.com/cl/ La industria tecnológica vive procesos cíclicos constantemente. Por ejemplo a principio de los 2000 se experimentó lo que fue la Burbuja Punto Com. Donde al principio hubo amplias contrataciones y luego tremendos despidos. Lo mismo sucedió en la época de la pandemia del 2020, donde las empresas comenzaron a contratar masivamente, para luego entrar a un proceso de despidos masivos. Actualmente, las empresas han comenzado a reiniciar sus procesos de contratación y tener un ritmo a niveles previos a la pandemia. Lo importante es tener confianza en las habilidades duras (técnicas) y blandas (comunicación, emocional, resiliencia, saber aprender), además de tener redes de contacto. El tener fundamentos sólidos en lo técnico y en lo profesional, permitirá saber ajustarse, adaptarse y acomodarse a los requisitos de la época y contexto tecnológico-social. https://elixircl.github.io/ https://devschile.cl/ https://programadoreschile.org/ https://jschile.org https://9punto5.cl/blog/ https://elixirconf.com/ https://jsconf.cl/ https://dev.events/elixir https://www.meetup.com/es/ioslove/ https://flisol.info/ https://smartlogic.io/podcast/elixir-wizards https://www.elixirnewbie.com/ https://www.thoughtworks.com/radar https://grox.io/ https://learn-elixir.dev/ https://codely.com/ https://www.essentialdeveloper.com/ https://pragprog.com/ https://www.packtpub.com/ https://leanpub.com/ https://talently.tech/ https://aws.amazon.com/es/builders-library https://frontendmasters.com/ https://ocw.mit.edu/ https://www.coursera.org/ https://pll.harvard.edu/course/cs50-introduction-computer-science https://www.getonbrd.com/ https://www.terminal.io/ https://www.toptal.com/ https://www.turing.com/ https://elixirjobs.net/ https://relocate.me/ https://www.fiverr.com/ https://www.upwork.com/ Camilo Castro: Peso Técnico Range: Why Generalists Triumph in a Specialized World McFunley: Choose Boring Technology Pragmatic Thinking and Learning T Shaped Skills M Shaped Skills Exercise for Programmers Principio de Pareto.","title":"Mundo Laboral y su Estado del Arte","component":"ROOT","version":"","name":"jobs","url":"/ecosystem/jobs.html","titles":[{"text":"Trabajo Independiente (Freelance)","hash":"trabajo-independiente-freelance","id":1},{"text":"Creación de una Empresa","hash":"creación-de-una-empresa","id":2},{"text":"Contratos","hash":"contratos","id":3},{"text":"Tip","hash":"tip","id":4},{"text":"Ley de Chilena de Teletrabajo","hash":"ley-de-chilena-de-teletrabajo","id":5},{"text":"El empleador debe proporcionar los elementos de trabajo","hash":"el-empleador-debe-proporcionar-los-elementos-de-trabajo","id":6},{"text":"Derecho a desconexión digital","hash":"derecho-a-desconexión-digital","id":7},{"text":"Cumplir horario o libertad de horario","hash":"cumplir-horario-o-libertad-de-horario","id":8},{"text":"Accidente laboral y de trayecto trabajando desde casa","hash":"accidente-laboral-y-de-trayecto-trabajando-desde-casa","id":9},{"text":"Privacidad","hash":"privacidad","id":10},{"text":"Ética Laboral","hash":"ética-laboral","id":11},{"text":"Ley 19.223","hash":"ley-19-223","id":12},{"text":"Elegir un Computador","hash":"elegir-un-computador","id":13},{"text":"Opciones","hash":"opciones","id":14},{"text":"Dispositivos Móviles","hash":"dispositivos-móviles","id":15},{"text":"¿Qué significa ser Full Stack (Generalista)?","hash":"qué-significa-ser-full-stack-generalista","id":16},{"text":"Algunas Combinaciones Full-Stack","hash":"algunas-combinaciones-full-stack","id":17},{"text":"Stack Sugerido","hash":"stack-sugerido","id":18},{"text":"Stacks Populares","hash":"stacks-populares","id":19},{"text":"Habilidades con forma de \"T\" y \"M\"","hash":"habilidades-con-forma-de-t-y-m","id":20},{"text":"La práctica hace al maestro","hash":"la-práctica-hace-al-maestro","id":21},{"text":"Seniority","hash":"seniority","id":22},{"text":"Tipos de Empresa","hash":"tipos-de-empresa","id":23},{"text":"Moledora de carne (☠️)","hash":"moledora-de-carne","id":24},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes","id":25},{"text":"Startup","hash":"startup","id":26},{"text":"Burn Rate","hash":"burn-rate","id":27},{"text":"Adquisiciones","hash":"adquisiciones","id":28},{"text":"Enlaces a Startups en Chile","hash":"enlaces-a-startups-en-chile","id":29},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-2","id":30},{"text":"Agencia de marketing","hash":"agencia-de-marketing","id":31},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-3","id":32},{"text":"Software factory y contratistas","hash":"software-factory-y-contratistas","id":33},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-4","id":34},{"text":"Pymes y ONGs","hash":"pymes-y-ongs","id":35},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-5","id":36},{"text":"Bancos y minería","hash":"bancos-y-minería","id":37},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-6","id":38},{"text":"Instituciones estatales","hash":"instituciones-estatales","id":39},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-7","id":40},{"text":"Transporte, retail y servicios básicos","hash":"transporte-retail-y-servicios-básicos","id":41},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-8","id":42},{"text":"Escuelas de educación básica, media","hash":"escuelas-de-educación-básica-media","id":43},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-9","id":44},{"text":"Universidades e institutos","hash":"universidades-e-institutos","id":45},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-10","id":46},{"text":"Empresas con producto y/o servicio definido","hash":"empresas-con-producto-yo-servicio-definido","id":47},{"text":"Tecnologías Comunes","hash":"tecnologías-comunes-11","id":48},{"text":"Conseguir empleo","hash":"conseguir-empleo","id":49},{"text":"Tener Experiencia Internacional","hash":"tener-experiencia-internacional","id":50},{"text":"Estar Atento a los Ciclos","hash":"estar-atento-a-los-ciclos","id":51},{"text":"Importancia de los Fundamentos","hash":"importancia-de-los-fundamentos","id":52},{"text":"Comunidades en Chile","hash":"comunidades-en-chile","id":53},{"text":"Eventos y Meetups","hash":"eventos-y-meetups","id":54},{"text":"Noticias","hash":"noticias","id":55},{"text":"Plataformas de Aprendizaje","hash":"plataformas-de-aprendizaje","id":56},{"text":"Empleos con Contrato","hash":"empleos-con-contrato","id":57},{"text":"Empleos como Freelance","hash":"empleos-como-freelance","id":58},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":59}]},"17":{"id":17,"text":"La historia de ChatGPT comienza con los avances en modelos de lenguaje grande (LLM) de OpenAI, evolucionando desde GPT-1 en 2018 hasta GPT-3 en 2020, culminando con el lanzamiento público de ChatGPT el 30 de noviembre de 2022, un chatbot que utiliza el modelo GPT-3.5 y se basa en la arquitectura Transformador, convirtiéndose rápidamente en un fenómeno mundial por su capacidad de generar texto y conversaciones de manera natural. OpenAI cambió los procesos de empresas enteras hasta la forma en que se concebía la educación. Los modelos de lenguaje de gran tamaño, también conocidos como LLM, son modelos de aprendizaje profundo muy grandes que se preentrenan con grandes cantidades de datos. El transformador subyacente es un conjunto de redes neuronales que consta de un codificador y un decodificador con capacidades de autoatención. El codificador y el decodificador extraen significados de una secuencia de texto y comprenden las relaciones entre las palabras y las frases que contiene. Los transformadores LLM son capaces de entrenarse sin supervisión, aunque una explicación más precisa es que los transformadores llevan a cabo un autoaprendizaje. Es a través de este proceso que los transformadores aprenden a entender la gramática, los idiomas y los conocimientos básicos. Los modelos de lenguaje de gran tamaño son increíblemente flexibles. Un modelo puede realizar tareas completamente diferentes, como responder preguntas, resumir documentos, traducir idiomas y completar oraciones. Los LLM tienen el potencial de alterar la creación de contenido y la forma en que las personas utilizan los motores de búsqueda y los asistentes virtuales. Los LLM son grandes, muy grandes. Pueden considerar miles de millones de parámetros y tienen muchos usos posibles. A continuación, se indican varios ejemplos: El modelo GPT-3 de OpenAI tiene 175 000 millones de parámetros. Su primo, ChatGPT, puede identificar patrones a partir de datos y generar resultados naturales y legibles. Si bien no sabemos el tamaño de Claude 2, puede aceptar entradas con hasta 100 000 tokens en cada indicación, lo que significa que puede funcionar en cientos de páginas de documentación técnica o, incluso, en un libro completo. El modelo Jurassic-1 de AI21 Labs tiene 178 000 millones de parámetros y un vocabulario simbólico de partes de 250 000 palabras y capacidades de conversación similares. El modelo Command de Cohere tiene capacidades similares y puede funcionar en más de 100 idiomas diferentes. El Paradigm de LightOn ofrece modelos básicos con capacidades declaradas que superan las del GPT-3. Todos estos LLM vienen con las API que permiten a los desarrolladores crear aplicaciones únicas de IA generativa. El \"Vibe coding\" es un término despectivo utilizado para describir una persona que depende exclusivamente de las herramientas IA para desarrollar un producto de software. Fue acuñado por Andrej Karpathy en febrero del 2025, definiendo a una persona que crea software solo por \"Las Vibras\" que da una solución, dejando todo el desarrollo a las herramientas IA, quedando la persona relegada a un puesto de supervisor más que de creador. Normalmente es utilizado por personas que no tienen una formación adecuada en desarrollo de software y omiten las buenas prácticas necesarias para lograr un producto robusto y de calidad. La contraparte de \"Vibe Coding\" sería \"Assisted Development\" (Desarrollo asistido) donde una persona utiliza las herramientas para mejorar sus procesos y entendimiento del proyecto. Tiene los conocimientos y habilidades necesarias para entregar un producto de calidad. El uso de las herramientas es bienvenido, pero no es limitante y pueden ser omitidas en su gran mayoría, es decir, la persona podría desarrollar el producto de software sin requerir obligatoriamente las IA. Entre los usos éticos de las herramientas LLM y GPT en desarrollo de software están: Ayudar a crear documentación de funciones y del proyecto. Ayudar a descubrir errores de lógica en el código. Ayudar en refactorizar el código. Ayudar a escribir pruebas de código. Crear prototipos desechables para validar supuestos. https://expansion.mx/tecnologia/2023/11/30/chatgpt-historia-impacto-a-un-ano-lanzamiento https://aws.amazon.com/es/what-is/large-language-model/ https://www.erlang-solutions.com/blog/how-chatgpt-improved-my-elixir-code-some-hacks-are-included/ https://en.wikipedia.org/wiki/Vibe_coding","title":"Large Language Models (LLM)","component":"ROOT","version":"","name":"llm","url":"/ecosystem/llm.html","titles":[{"text":"Vibe Coding y Assisted Development","hash":"vibe-coding-y-assisted-development","id":1},{"text":"Uso Ético","hash":"uso-ético","id":2},{"text":"Referencias","hash":"referencias","id":3}]},"18":{"id":18,"text":"Como un vistazo actual de las tecnologías disponibles para desarrollar sistemas web de frontend y backend. Se dará un análsis rápido y general de una pequeña selección de las opciones disponibles. En el mundo del desarrollo web, Javascript es el motor de las aplicaciones web dinámicas, interactivas y de una sola página. Sin embargo, a medida que crece la complejidad de las aplicaciones web modernas, también lo hace el número de bibliotecas, frameworks y dependencias de Javascript. Esto conduce a una base de código hinchada e ineficiente, que compromete el rendimiento y la experiencia del usuario. Para hacer frente a este reto, se introdujeron los bundlers de Javascript. Estos asistentes de optimización están especializados en refinar el código y potenciar el rendimiento. En el pasado, los desarrolladores solían incrustar las etiquetas

      Formulario Estóico

      Estos HTML adicionales están definidos en el directorio layouts/. Son heredados desde el archivo root.html.heex el cual se encuentra en el directorio lib/stoic_quotes_web/components/layouts/. Los contenidos de este archivo son transversales para todas las vistas. Si se desea utilizar otro archivo se debe modificar el router. router.ex plug(:put_root_layout, html: {StoicQuotesWeb.Layouts, :root}) lib/stoic_quotes_web/components/layouts/root.html.heex <.live_title default=\"StoicQuotes\" suffix=\" · Phoenix Framework\"> {assigns[:page_title]} {@inner_content} {assigns[:page_title]}: Imprime el contenido que puede ser modificado usando la estructura sockets en la función mount usando socket = assign(socket, page_title: 'Mi Título'). {@inner_content}: Imprime un texto que puede ser reemplazado por una vista de un LiveView. Editamos nuestro formulario (lib/stoic_quotes_web/quotes_form.html.heex) con el HTML necesario. lib/stoic_quotes_web/quotes_form.html.heex

      Stoic Quotes Form

      <%# Alert Section %>
      12 unread messages. Tap to see.

      Stoic Quote Information

      Use this form to add a new Stoic Quote

      Lo que mostrará una página similar a lo siguiente: Para esto utilizaremos las herramientas proporcionadas por LiveView la cual permite enviar eventos y valores hacia el controlador. Configuramos el valor de cada input para que sea enviado al controlador. Para esto creamos una nueva estructura que almacenará los valores, utilizamos una función llamada empty_form() que utiliza la función de Phoenix to_form() para entregar la estructura que usaremos en el formulario. defp empty_form() do to_form(%{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) end def mount(_params, _session, socket) do {:ok, socket |> assign(form: empty_form())} end También añadiremos dos eventos \"validate\" y \"save\" que por el momento solamente devuelven los valores del formulario. Luego serán mejorados. quotes_form.ex def handle_event(\"validate\", params, socket) do IO.inspect(params, label: :validate) form = to_form(params) {:noreply, socket |> assign(form: form) } end def handle_event(\"save\", params, socket) do IO.inspect(params, label: :save) form = to_form(params) {:noreply, socket |> assign(form: form) } end Quedando el archivo de la siguiente forma: quotes_form.ex defmodule StoicQuotesWeb.Live.QuotesForm do use StoicQuotesWeb, :live_view defp empty_form() do to_form(%{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) end def mount(_params, _session, socket) do {:ok, socket |> assign(form: empty_form())} end def handle_event(\"validate\", params, socket) do IO.inspect(params, label: :validate) form = to_form(params) {:noreply, socket |> assign(form: form) } end def handle_event(\"save\", params, socket) do IO.inspect(params, label: :save) form = to_form(params) {:noreply, socket |> assign(form: form) } end end También es necesario utilizar el elemento .form para asociar el formulario al controlador. Notar los eventos que se manejaran, phx-change y phx-submit. quotes_form.html.heex <.form for={@form} phx-change=\"validate\" phx-submit=\"save\"> ... Ahora es turno de asociar los elementos para que sean enviados en los eventos del formulario. Para esto utilizamos los elementos .input. Author quotes_form.html.heex <.input autofocus=\"true\" placeholder=\"Marcus Aurelius\" phx-debounce=\"blur\" field={@form[:author]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" /> Source quotes_form.html.heex <.input placeholder=\"Meditations\" phx-debounce=\"blur\" field={@form[:source]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" /> Quote quotes_form.html.heex <.input type=\"textarea\" rows=\"5\" placeholder=\"Lorem Ipsum\" phx-debounce=\"blur\" field={@form[:quote]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" /> ¿Dónde están estos elementos de <.form> e <.input>? Estos elementos están definidos en lib/stoic_quotes_web/components/core_components.ex donde corresponden a una función que devuelve un html según los parámetros. Estos son componentes que vienen predefinidos en Phoenix y son opcionales de utilizar, pero recomendados. lib/stoic_quotes_web/components/core_components.ex ... def input(%{type: \"textarea\"} = assigns) do ~H\"\"\"
      <.error :for={msg <- @errors}>{msg}
      \"\"\" end ... Alertas Para generar alertas utilizaremos el componente el cual está dentro del archivo lib/stoic_quotes_web/components/layouts.ex. Este es un mensaje de alerta que cambia de color dependiendo del tipo de alerta (éxito o error). Se utiliza la función put_flash() en el socket para enviar mensajes. quotes_form.html.heex Quedando el formulario como lo siguiente: quotes_form.html.heex

      Stoic Quotes Form

      <.form for={@form} phx-change=\"validate\" phx-submit=\"save\">

      Stoic Quote Information

      Use this form to add a new Stoic Quote

      <.input autofocus=\"true\" required=\"true\" placeholder=\"Marcus Aurelius\" phx-debounce=\"blur\" field={@form[:author]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
      <.input placeholder=\"Meditations\" required=\"true\" phx-debounce=\"blur\" field={@form[:source]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
      <.input type=\"textarea\" required=\"true\" rows=\"5\" placeholder=\"Lorem Ipsum\" phx-debounce=\"blur\" field={@form[:quote]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
      <.button type=\"submit\" class=\"rounded-md btn btn-xl btn-wide bg-indigo-500 px-3 py-2 text-sm font-semibold text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-500\"> Save
      Ahora se realizará la validación del formulario, para que muestre errores si se envía un valor que no sea correcto. Para esto modificaremos la función def handle_event(\"validate\", params, socket), donde crearemos un nuevo changeset, el cual será la estructura usada para realizar todas las validaciones. Como ya tenemos un esquema podemos reutilizarlo, sin embargo también existen los changeset sin esquemas (por ejemplo un formulario de contacto) que pemiten realizar validaciones a formularios no asociados a una base de datos o también cuando sea necesario validar múltiples valores no relacionados en la misma tabla. Primero añadimos el módulo y el Logger. quotes_form.ex defmodule StoicQuotesWeb.Live.QuotesForm do use StoicQuotesWeb, :live_view alias StoicQuotes.Quotes alias StoicQuotes.Quotes.Quote require Logger ... Luego modificamos la función para usar el módulo. Notemos que añadimos una nueva función llamada Quote.new que inicia una validación con los parámetros que le hemos dado. Para esto debemos añadir la función al esquema correspondiente. quotes_form.ex def handle_event(\"validate\", params, socket) do changeset = Quote.new(params) form = to_form(params, errors: changeset.errors) Logger.debug(form) {:noreply, socket |> assign(form: form)} end Notar que separamos el changeset del formulario. Esto es por que un formulario puede tener distintos campos que no necesariamente tienen relación con el esquema y sus validaciones. Por lo que siempre es recomendable tener entidades separadas para mayor mantenibilidad y bajo acoplamiento. Ahora modicamos el esquema para que tenga la función new. @doc false def new(attrs \\\\ %{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) do case changeset(%__MODULE__{}, attrs) do {_, changeset} -> changeset changeset -> changeset end end lib/stoic_quotes/quotes/quote.ex defmodule StoicQuotes.Quotes.Quote do use Ecto.Schema import Ecto.Changeset @optional_fields [:id, :inserted_at, :updated_at] schema \"quotes\" do field(:quote, :string) field(:author, :string) field(:source, :string) timestamps(type: :utc_datetime) end def fields() do __MODULE__.__schema__(:fields) end def required_fields() do fields() -- @optional_fields end @doc false def changeset(quote, attrs) do quote |> cast(attrs, fields()) |> validate_required(required_fields()) |> unsafe_validate_unique(:quote, StoicQuotes.Repo) |> unique_constraint(:quote) end @doc false def new(attrs \\\\ %{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) do case changeset(%__MODULE__{}, attrs) do {_, changeset} -> changeset changeset -> changeset end end end MODULE: Este elemento permite utilizar el módulo dentro del mismo. Siempre apuntara al nombre del módulo, por lo que es buena práctica usarlo para reducir el acomplamiento. changeset(%MODULE{}, attrs): Llamamos a la función existente pasando los parámetros adecuados, como un nuevo struct del módulo. {_, changeset} → changeset: La validación unique_constraint(:quote) entrega una tupla {:error, changeset}, por lo cual debemos estandarizar para simplificar el manejo de errores. changeset → changeset: Si la validación entrega el formato estándar entonces la devolvemos tal cual es. Si las validaciones son exitosas, entonces podemos enviarlo para su almacenamiento en la base de datos. Para esto modificamos la función def handle_event(\"save\", params, socket). Debemos evaluar los casos: las validaciones son correcta o no, se guardo exitosamente o no, como también considerar un caso excepcional donde no se retornó el valor esperado al guardar (éxito o fracaso). quotes_form.ex def handle_event(\"save\", params, socket) do changeset = Quote.new(params) form = to_form(params, errors: changeset.errors) Logger.debug(form) socket = case changeset.valid? do true -> case Quotes.create_quote(params) do {:ok, result} -> Logger.debug(\"Insert completed\") Logger.debug(result) socket |> assign(form: empty_form()) |> put_flash(:info, \"Created new Quote\") {:error, error} -> Logger.debug(\"Insert failed\") Logger.debug(error) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") unknown -> Logger.debug(\"Insert operation with unknown state\") Logger.debug(unknown) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") end false -> Logger.debug(\"Changeset with errors can not be saved\") Logger.debug(changeset.errors) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") end {:noreply, socket} end Ahora que tenemos las validaciones listas se modificará un poco el botón guardar para que solo esté activo si el formulario tiene valores válidos. Para esto le añadimos la propiedad disabled que estará en verdadero si no se puede guardar. disabled={@can_save? == false}. Ahora debemos añadir esta nueva variable en nuestro socket y función de validación. Para esto creamos la variable con su valor inicial en mount. def mount(_params, _session, socket) do {:ok, socket |> assign(can_save?: false) |> assign(form: empty_form())} end Y modificamos tanto la función de validación, como la función de guardado. En la función de validación debemos obtener el valor del changeset de validaciones para determinar si el botón puede ser habilitado. def handle_event(\"validate\", params, socket) do changeset = Quote.new(params) form = to_form(params, errors: changeset.errors) Logger.debug(form) {:noreply, socket |> assign(can_save?: changeset.valid?) |> assign(form: form)} end def handle_event(\"save\", params, socket) do ... case Quotes.create_quote(params) do {:ok, result} -> Logger.debug(\"Insert completed\") Logger.debug(result) socket |> assign(can_save?: false) |> assign(form: empty_form()) |> put_flash(:info, \"Created new Quote\") ... Se mostrará el código final de cada archivo. defmodule StoicQuotesWeb.Live.QuotesForm do use StoicQuotesWeb, :live_view alias StoicQuotes.Quotes.Quote alias StoicQuotes.Quotes require Logger defp empty_form() do to_form(%{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) end def mount(_params, _session, socket) do {:ok, socket |> assign(can_save?: false) |> assign(form: empty_form())} end def handle_event(\"validate\", params, socket) do changeset = Quote.new(params) form = to_form(params, errors: changeset.errors) Logger.debug(form) {:noreply, socket |> assign(can_save?: changeset.valid?) |> assign(form: form)} end def handle_event(\"save\", params, socket) do changeset = Quote.new(params) form = to_form(params, errors: changeset.errors) Logger.debug(form) socket = case changeset.valid? do true -> case Quotes.create_quote(params) do {:ok, result} -> Logger.debug(\"Insert completed\") Logger.debug(result) socket |> assign(can_save?: false) |> assign(form: empty_form()) |> put_flash(:info, \"Created new Quote\") {:error, error} -> Logger.debug(\"Insert failed\") Logger.debug(error) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") unknown -> Logger.debug(\"Insert operation with unknown state\") Logger.debug(unknown) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") end false -> Logger.debug(\"Changeset with errors can not be saved\") Logger.debug(changeset.errors) socket |> assign(form: form) |> put_flash(:error, \"There was an error saving the Quote\") end {:noreply, socket} end end

      Stoic Quotes Form

      <.form for={@form} phx-change=\"validate\" phx-submit=\"save\">

      Stoic Quote Information

      Use this form to add a new Stoic Quote

      <.input autofocus=\"true\" required=\"true\" placeholder=\"Marcus Aurelius\" phx-debounce=\"blur\" field={@form[:author]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
      <.input placeholder=\"Meditations\" required=\"true\" phx-debounce=\"blur\" field={@form[:source]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
      <.input type=\"textarea\" required=\"true\" rows=\"5\" placeholder=\"Lorem Ipsum\" phx-debounce=\"blur\" field={@form[:quote]} class=\"block w-full rounded-md bg-white/5 px-3 py-1.5 text-base text-white outline-1 -outline-offset-1 outline-white/10 placeholder:text-gray-500 focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-500 sm:text-sm/6\" />
      Ahora se debería tener un formulario que realiza validaciones, muestra mensajes de éxito y error y permite insertar registros en la base de datos. El siguiente tutorial verá cómo realizar pruebas unitarias al código realizado.","title":"LiveView: Stoic API","component":"ROOT","version":"","name":"liveview","url":"/elixir/liveview.html","titles":[{"text":"Paso 1: Agregar nuestra ruta de LiveView","hash":"paso-1-agregar-nuestra-ruta-de-liveview","id":1},{"text":"Paso 2: Crear nuestro controlador de LiveView","hash":"paso-2-crear-nuestro-controlador-de-liveview","id":2},{"text":"Paso 3: Implementar el formulario HTML","hash":"paso-3-implementar-el-formulario-html","id":3},{"text":"Paso 4: Conectar el formulario al controlador","hash":"paso-4-conectar-el-formulario-al-controlador","id":4},{"text":"Paso 5: Implementar validación del formulario","hash":"paso-5-implementar-validación-del-formulario","id":5},{"text":"Paso 6: Implementar el guardado en la base de datos","hash":"paso-6-implementar-el-guardado-en-la-base-de-datos","id":6},{"text":"Paso 7: Botón Guardar","hash":"paso-7-botón-guardar","id":7},{"text":"Paso 9: Siguientes pasos","hash":"paso-9-siguientes-pasos","id":8}]},"24":{"id":24,"text":"En este tutorial se verá como realizar pruebas tanto para la API Rest, los esquemas y el formulario creado en los tutoriales anteriores. En el directorio config/ se encuentra las distintas configuraciones para la conexión con la base de datos y otros elementos para distintos ambientes. dev, prod y test. Además de dos archivos especiales config.exs y runtime.exs. dev: Configuraciones para el ambiente de desarrollo local. prod: Configuraciones para el ambiente en producción. test: Configuraciones para el ambiente de pruebas locales. config.exs: Configuraciones en tiempo de compilación. No puede acceder a variables de entorno en tiempo de ejecución. Además llamará a dev, prod y test respectivamente según la variable de entorno MIX_ENV. runtime.exs: Configuraciones que pueden acceder a variables de entorno en tiempo de ejecución (antes de iniciar la aplicación). Los archivos importantes son config.exs y runtime.exs los otros archivos pueden ser estructurados según sea conveniente para la aplicación, y se pueden importar con import_config/1 dentro de config.exs aunque no dentro de runtime.exs (limitaciones técnicas). Dentro del archivo config/test.exs podemos verificar que la conexión con la base de datos se esté realizando en una nueva base de datos de pruebas en modo Sandbox (que cualquier cambio sea efímero). config/test.exs config :stoic_quotes, StoicQuotes.Repo, database: Path.expand(\"../stoic_quotes_test.db\", __DIR__), pool_size: 5, pool: Ecto.Adapters.SQL.Sandbox También debemos borrar algunos archivos en la suit de pruebas debido a que solo son ejemplos predeterminados creados para probar la página de bienvenida. Se deben borrar los siguientes archivos: stoic_quotes_web/controllers/error_html_test.exs stoic_quotes_web/controllers/error_json_test.exs stoic_quotes_web/controllers/page_controller_test.exs Podemos verificar que la suit de pruebas de ejecuta exitosamente con el comando $ mix test Y ver un resultado similar a lo siguiente: Compiling 23 files (.ex) Running ExUnit with seed: 93697, max_cases: 8 ......... Finished in 0.3 seconds (0.00s async, 0.3s sync) 9 tests, 0 failures ¿Dónde están esas 9 pruebas?. Están en el archivo test/stoic_quotes/quotes_test.exs que fue creado por el generador del contexto (mix phx.gen.context) usado en el tutorial de la api rest. Se realizarán las pruebas de los esquemas creados. Se debe probar que los campos tengan su tipo de datos adecuado. Como recordatorio se muestra el esquema a probar. lib/stoic_quotes/quotes/quote.ex defmodule StoicQuotes.Quotes.Quote do use Ecto.Schema import Ecto.Changeset @optional_fields [:id, :inserted_at, :updated_at] schema \"quotes\" do field(:quote, :string) field(:author, :string) field(:source, :string) timestamps(type: :utc_datetime) end def fields() do __MODULE__.__schema__(:fields) end def required_fields() do fields() -- @optional_fields end @doc false def changeset(quote, attrs) do quote |> cast(attrs, fields()) |> validate_required(required_fields()) |> unsafe_validate_unique(:quote, StoicQuotes.Repo) |> unique_constraint(:quote) end @doc false def new(attrs \\\\ %{\"author\" => \"\", \"quote\" => \"\", \"source\" => \"\"}) do case changeset(%__MODULE__{}, attrs) do {_, changeset} -> changeset changeset -> changeset end end end Para crear la prueba se crea un nuevo archivo en test/stoic_quotes/quotes/schema_test.exs test/stoic_quotes/quotes/schema_test.exs defmodule StoicQuotes.Tests.Schemas.Quotes.QuoteSchemaTest do use StoicQuotes.DataCase alias StoicQuotes.Quotes.Quote describe \"quote schema field and types tests\" do test \"that schema has the correct fields and types\" do expected_fields_and_types = [ {:id, :id}, {:quote, :string}, {:author, :string}, {:source, :string}, {:inserted_at, :utc_datetime}, {:updated_at, :utc_datetime} ] actual_fields_and_types = for field <- Quote.__schema__(:fields) do type = Quote.__schema__(:type, field) {field, type} end assert MapSet.new(expected_fields_and_types) == MapSet.new(actual_fields_and_types) end end end defmodule StoicQuotes.Tests.Schemas.Quotes.QuoteSchemaTest: Nombre del módulo siempre debe terminar en Test. use StoicQuotes.DataCase: Usamos las herramientas para crear pruebas unitarias las cuales vienen incluidas en Phoenix. En este caso es una prueba unitaria que utilizará la base de datos. Este módulo esta definido en el archivo test/support/data_case.ex. alias StoicQuotes.Quotes.Quote: Asignamos un alias al esquema para usarlo más fácilmente. describe \"quote schema field and types tests\": Crea un nuevo grupo para que varias pruebas estén cohesionadas en un mismo lugar. test \"that schema has the correct fields and types\": Se crea la prueba unitaria que deberá ser implementada. assert MapSet.new(expected_fields_and_types) == MapSet.new(actual_fields_and_types): El uso de assert permite informar el éxito o fracaso de una prueba, en este caso validamos que dos conjuntos sean iguales. Quote.schema(:type, field): Devuelve el tipo de campo dentro del esquema. Para ejecutar la prueba solo debemos usar mix test, pero si se desea solamente probar un archivo se puede proporcionar en el comando. $ mix test/stoic_quotes/quotes/schema_test.exs O tambien puede ser utilizando la función describe. $ mix test --only describe:\"quote schema field and types tests\" test/stoic_quotes/quotes/schema_test.exs Ahora se realizarán las pruebas de las validaciones, esto permitirá determinar si las validaciones están correctamente establecidas y detectar cualquier problema con ellas. test/stoic_quotes/quotes/schema_test.exs describe \"changeset/2\" do test \"that changeset with valid params is valid\" do params = %{ \"author\" => \"Marcus Aurelius\", \"source\" => \"Meditations\", \"quote\" => \"You have power over your mind — not outside events. Realize this, and you will find strength.\" } changeset = Quote.changeset(%Quote{}, params) assert %Ecto.Changeset{valid?: true, changes: _} = changeset end test \"that changeset with invalid params is invalid\" do params = %{ \"author\" => \"\", \"source\" => \"Meditations\", \"quote\" => \"You have power over your mind — not outside events. Realize this, and you will find strength.\" } changeset = Quote.changeset(%Quote{}, params) assert %Ecto.Changeset{ valid?: false, errors: [{:author, {\"can't be blank\", [validation: :required]}}] } = changeset params = %{ \"author\" => \"Marcus Aurelius\", \"source\" => \"\", \"quote\" => \"You have power over your mind — not outside events. Realize this, and you will find strength.\" } changeset = Quote.changeset(%Quote{}, params) assert %Ecto.Changeset{ valid?: false, errors: [{:source, {\"can't be blank\", [validation: :required]}}] } = changeset params = %{ \"author\" => \"Marcus Aurelius\", \"source\" => \"Meditations\", \"quote\" => \"\" } changeset = Quote.changeset(%Quote{}, params) assert %Ecto.Changeset{ valid?: false, errors: [{:quote, {\"can't be blank\", [validation: :required]}}] } = changeset end end También añadimos una validación para la función new/1 donde comprobaremos que siempre devuelva un changeset. test/stoic_quotes/quotes/schema_test.exs describe \"new/1\" do test \"that returns a changeset\" do params = %{ \"author\" => \"Marcus Aurelius\", \"source\" => \"Meditations\", \"quote\" => \"You have power over your mind — not outside events. Realize this, and you will find strength.\" } changeset = Quote.new(params) assert %Ecto.Changeset{valid?: true, changes: _} = changeset end end Las pruebas de contexto fueron creadas automáticamente por el generador phx.gen.context. Se pueden ver dentro del archivo test/stoic_quotes/quotes_test.exs, pero se recomienda mover el archivo al directorio test/stoic_quotes/quotes/quotes_test.exs para que tenga cohesión con las pruebas del esquema test/stoic_quotes/quotes/schema_test.exs. test/stoic_quotes/quotes_test.exs defmodule StoicQuotes.Tests.Contexts.QuotesContextTest do use StoicQuotes.DataCase alias StoicQuotes.Quotes describe \"quotes\" do alias StoicQuotes.Quotes.Quote import StoicQuotes.QuotesFixtures @invalid_attrs %{author: nil, source: nil, quote: nil} test \"list_quotes/0 returns all quotes\" do quote = quote_fixture() assert Quotes.list_quotes() == [quote] end # ... Lo que se puede destacar es el uso de Fixtures (import StoicQuotes.QuotesFixtures). Esto es una herramienta de pruebas que permite tener un entorno predefinido por ejemplo archivos o valores de base de datos que facilitan la creación de pruebas. Si vamos al archivo test/support/fixtures/quotes_fixtures.ex veremos que simplemente genera un nuevo registro en la base de datos y es utilizado en las pruebas de contexto como quote = quote_fixture(). test/support/fixtures/quotes_fixtures.ex defmodule StoicQuotes.QuotesFixtures do @moduledoc \"\"\" This module defines test helpers for creating entities via the `StoicQuotes.Quotes` context. \"\"\" @doc \"\"\" Generate a quote. \"\"\" def quote_fixture(attrs \\\\ %{}) do {:ok, quote} = attrs |> Enum.into(%{ author: \"some author\", quote: \"some quote\", source: \"some source\" }) |> StoicQuotes.Quotes.create_quote() quote end end Para probar los endpoints rest debemos crear un nuevo archivo en test/stoic_quotes_web/controllers/quotes_controller_test.exs. Para esto probaremos los endpoints definidos en el router router.ex scope \"/api\", StoicQuotesWeb do pipe_through(:api) get(\"/quotes\", QuotesController, :index) get(\"/quotes/random\", QuotesController, :show) end test/stoic_quotes_web/controllers/quotes_controller_test.exs defmodule StoicQuotesWeb.Tests.Controllers.QuotesControllerTest do use StoicQuotesWeb.ConnCase import StoicQuotes.QuotesFixtures describe \"/api/quotes\" do test \"GET /api/quotes\", %{conn: conn} do quote_fixture(%{quote: \"1\"}) quote_fixture(%{quote: \"2\"}) conn = get(conn, ~p\"/api/quotes\") assert [ %{ \"author\" => \"some author\", \"quote\" => \"1\", \"source\" => \"some source\" }, %{ \"author\" => \"some author\", \"quote\" => \"2\", \"source\" => \"some source\" } ] = json_response(conn, 200)[\"data\"] end test \"GET /api/quotes/random\", %{conn: conn} do quote_fixture() conn = get(conn, ~p\"/api/quotes/random\") assert %{ \"author\" => \"some author\", \"quote\" => \"some quote\", \"source\" => \"some source\" } = json_response(conn, 200)[\"data\"] end end end use StoicQuotesWeb.ConnCase: Debemos usar el tipo de prueba ConnCase para poder acceder a levantar el servidor y realizar pruebas. Este módulo esta definido en el archivo test/support/conn_case.ex. conn = get(conn, ~p\"/api/quotes\"): Obtenemos el resultado de llamar al endpoint /api/quotes. json_response(conn, 200)[\"data\"]: Obtenemos la respuesta en formato json y el contenido de la propiedad \"data\" para realizar la comparación. ~p\"/api/quotes\": ~p es un sigilo (macro) de Phoenix que permite verificar que la ruta ingresada existe en el router, lo cual es muy recomendable. Es parte de lo que se conoce como verified routes. Ahora se realizarán las pruebas del formulario hecho con LiveView. El cual se muestra en la siguiente ruta. router.ex scope \"/\", StoicQuotesWeb do pipe_through(:browser) live(\"/\", Live.QuotesForm, :live) end test/stoic_quotes_web/live/quotes_form_test.exs defmodule StoicQuotesWeb.Tests.Live.QuotesFormTest do use StoicQuotesWeb.ConnCase import Phoenix.LiveViewTest describe \"LiveView quotes form page tests\" do test \"that valid form saving is done\", %{conn: conn} do {:ok, lv, _html} = live( conn, ~p\"/\" ) lv |> form(\"form\", %{ \"author\" => \"some author\", \"source\" => \"some source\", \"quote\" => \"some quote\" }) |> render_submit() conn = get(conn, ~p\"/api/quotes\") assert [ %{ \"author\" => \"some author\", \"quote\" => \"some quote\", \"source\" => \"some source\" } ] = json_response(conn, 200)[\"data\"] end test \"that invalid form shows errors\", %{conn: conn} do {:ok, lv, _html} = live( conn, ~p\"/\" ) result = lv |> form(\"form\", %{ \"author\" => \"\", \"source\" => \"\", \"quote\" => \"\" }) |> render_submit() assert result =~ \"can't be blank\" end test \"that valid form cannot save duplicates\", %{conn: conn} do {:ok, lv, _html} = live( conn, ~p\"/\" ) lv |> form(\"form\", %{ \"author\" => \"some author\", \"source\" => \"some source\", \"quote\" => \"some quote\" }) |> render_submit() result = lv |> form(\"form\", %{ \"author\" => \"some author\", \"source\" => \"some source\", \"quote\" => \"some quote\" }) |> render_submit() assert result =~ \"There was an error saving the Quote\" end end end Podemos ver que realizar pruebas con LiveView es muy similar a realizar pruebas con endpoints json. Sin embargo hay algunos códigos que se deben explicar como los siguientes: El siguiente código inicializa la estructura de lv que puede ser usada por otras funciones para renderizar la página. {:ok, lv, _html} = live( conn, ~p\"/\" ) En el siguiente código se llama a funciones especiales de LiveView como form(\"elemento html\", parametros) y render_submit() que permiten realizar el envío de un formulario. lv |> form(\"form\", %{ \"author\" => \"\", \"source\" => \"\", \"quote\" => \"\" }) |> render_submit() LiveView no está solamente asociado a crear pruebas para formularios, se puede probar completamente todo el sitio. En la siguiente fotografía se muestra un ejemplo de prueba aún más completo. Figure 1. por Fredrik Teschke Se ha realizado una aplicación completa con Phoenix y LiveView desde una simple API Rest a una suite de pruebas unitarias. Se pueden ver los siguientes conceptos para profundizar: Desarrollo con TDD (Test Driven Development). Testing Ecto. Property Testing. Testing LiveView.","title":"Testing: Stoic API","component":"ROOT","version":"","name":"testing","url":"/elixir/testing.html","titles":[{"text":"Paso 1: Verificación del Ambiente Testing","hash":"paso-1-verificación-del-ambiente-testing","id":1},{"text":"Paso 2: Pruebas de Ecto Schema","hash":"paso-2-pruebas-de-ecto-schema","id":2},{"text":"Paso 3: Pruebas de Ecto Changeset","hash":"paso-3-pruebas-de-ecto-changeset","id":3},{"text":"Paso 4: Pruebas de Contexto","hash":"paso-4-pruebas-de-contexto","id":4},{"text":"Paso 5: Pruebas de Endpoint Rest","hash":"paso-5-pruebas-de-endpoint-rest","id":5},{"text":"Paso 6: Pruebas de LiveView","hash":"paso-6-pruebas-de-liveview","id":6},{"text":"Más funciones de testing para LiveView","hash":"más-funciones-de-testing-para-liveview","id":7},{"text":"Pasos Finales","hash":"pasos-finales","id":8}]},"25":{"id":25,"text":"Los videojuegos son una parte muy importante de la industria tecnológica y Elixir/Erlang tienen grandes capacidades para elaborar backends para los servidores de los juegos. En este capítulo se verá la creación de un videojuego simple con TIC-80 y luego será compilado para Web, Android e iOS, como forma de comprender mejor este aspecto de la industria y cómo se aplica el proceso de compilación multiplataforma. TIC-80 es una computadora de fantasía gratuita y de código abierto que simula un sistema de 8 bits de la década de 1980, diseñada para crear, jugar y compartir microjuegos. Incluye editores integrados para código, gráficos, mapas y sonido, y soporta múltiples lenguajes como Lua y JavaScript (entre otros). Características principales Computadora de fantasía: Emula un hardware de 8 bits con limitaciones como una paleta de 16 colores, una resolución de 240x136 píxeles y sonido de 4 canales. Herramientas integradas: Ofrece editores para desarrollar juegos de manera integral. Código: Editores para escribir el código del juego. Se pueden usar lenguajes como Lua, JavaScript, Lisp, Python, Ruby, Wren, entre otros. Gráficos: Un editor de sprites para crear elementos visuales. Mapas: Un editor de mapas para diseñar los niveles. Sonido: Herramientas para crear música y efectos de sonido. Código abierto: Es gratuita y de código abierto, lo que permite a los usuarios crear y modificar juegos libremente. Portabilidad: Los juegos creados se pueden exportar como \"cartuchos\" y ejecutarse en diferentes plataformas, incluyendo Windows, macOS, Linux, Android y Raspberry Pi. Interfaz de línea de comandos: Permite ejecutar comandos para gestionar los proyectos directamente desde el entorno. El siguiente es una introducción a TIC-80 Y acá cómo crear un clon del juego Pong.","title":"Videojuegos","component":"ROOT","version":"","name":"games","url":"/games/games.html","titles":[{"text":"TIC-80","hash":"tic-80","id":1}]},"26":{"id":26,"text":"GitHub es un servicio basado en la nube que aloja un sistema de control de versiones (VCS) llamado Git. Éste permite a los desarrolladores colaborar y realizar cambios en proyectos compartidos, a la vez que mantienen un seguimiento detallado de su progreso. El control de versiones es un sistema que ayuda a rastrear y gestionar los cambios realizados en un archivo o conjunto de archivos. Utilizado principalmente por ingenieros de software para hacer un seguimiento de las modificaciones realizadas en el código fuente, el sistema de control de versiones les permite analizar todos los cambios y revertirlos sin repercusiones si se comete un error. Git es un proyecto de código abierto que se inició en 2005 y creció hasta convertirse en uno de los VCS más populares del mercado: cerca del 87% de los desarrolladores utilizan Git para sus proyectos. https://www.hostinger.es/tutoriales/que-es-github https://insights.stackoverflow.com/survey/2018/#work-version-control Gestionar los proyectos con Github Projects. Tener un acerbo documental con Github Wiki. Tener un foro con Github Discussions. Tener una página web estática con Github Pages. Almacenar código y archivos con Github Repos. Tener trazabilidad de las tareas con Github Issues. Realizar acciones y flujos automatizados con Github Actions. Cuando nos gusta el repositorio de alguien y nos gustaría tenerlo en nuestra cuenta de GitHub, hacemos un fork o bifurcación para poder trabajar con él en forma separada. Cuando hacemos un fork de un repositorio, obtenemos una instancia de todo el repositorio con todo su historial. Luego, podemos hacer lo que queramos sin afectar la versión original. https://docs.github.com/es/get-started/quickstart/fork-a-repo Los pull requests son la forma de contribuir a un proyecto grupal o de código abierto. Por ejemplo, un usuario llamado Juan realiza un fork de un repositorio de Luis y le efectúa algunos cambios. Ahora Juan puede hacer un pull request a Luis, pero dependerá de Luis aceptar o declinarlo. Es como decir: \"Luis, ¿podrías por favor extraer (pull) mis cambios?\". En otros sistemas como Gitlab esta acción se le conoce como Merge Request. Todos los commits de la rama se incorporarán al tronco principal. Todos los commits de la rama se fusionarán, solamente un commit con un mensaje nuevo será incorporado al tronco principal. Es la opción recomendada. Reescribe el histórico de commits para incorporar los cambios de la rama. Usar con precaución. https://www.freecodecamp.org/espanol/news/como-hacer-tu-primer-pull-request-en-github/ https://docs.gitlab.com/ee/user/project/merge_requests/ https://www.atlassian.com/git/tutorials/merging-vs-rebasing https://about.gitlab.com/ https://bitbucket.org/ https://about.gitea.com/ https://www.mercurial-scm.org/ https://savannah.gnu.org/ https://github.com/martinvonz/jj Los static website generators son estructuras predefinidas de código sobre las que se pueden crear páginas web estáticas. A diferencia de los sistemas de gestión de contenidos, que recuperan el contenido de las bases de datos, los generadores de páginas estáticas (static site generators) crean los archivos HTML de una página a partir de un script basado en datos de entrada, que están almacenados en un sistema de archivos. Este proceso ya se lleva a cabo durante su desarrollo, mientras se realizan los cambios no solo en el código, sino también en el contenido. En otras palabras, este proceso no se efectúa cuando el usuario accede a la página web a través de su navegador. La instalación y también el manejo de los static site generators se llevan a cabo por medio de la línea de comando. En cuanto al contenido de la página web, está escrito en lenguajes de marcado como, por ejemplo, Markdown. El generador, partiendo de los metadatos que aparecen en el inicio de los archivos, lo que se conoce generalmente como “front matter”, se encarga de que la página web se muestre en el navegador de los visitantes. La diferencia principal entre el static site generator y el CMS se encuentra en el momento en que las páginas web se crean: el static website generator genera la página web durante el proceso de desarrollo, mientras que el CMS lo hace a petición del usuario. Además, el generador elimina la dependencia que existe en relación con las bases de datos u otra fuente de datos externa, así como el procesamiento de datos del lado del servidor al acceder a la página web. Por supuesto, también existe la posibilidad de integrar fuentes de datos externas con una Application Programming Interface (API). https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/que-es-un-static-site-generator/ Jekill es un generador de sitio estático con soporte incorporado para GitHub Pages. Jekyll toma los archivos Markdown y HTML y crea un sitio web estático completo en función de la opción de diseño. https://docs.github.com/es/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll Algunos de los más populares según el lenguaje de programación. Lenguaje Static Site Generator Elixir Serum, Still Go Hugo Rust Zola Python Pelican JavaScript Gatsby Wren Chercan Ruby Jekyll PHP Hyde Swift Publish Kotlin Orquid Markdown es texto sin formato para escribir documentos estructurados, basado en convenciones para indicar el formato en correos electrónicos y publicaciones de Usenet. Fue desarrollado por John Gruber (con la ayuda de Aaron Swartz) y lanzado en 2004 en forma de una descripción de sintaxis y un script Perl (Markdown.pl) para convertir Markdown a HTML. En la próxima década, se desarrollaron docenas de implementaciones en muchos idiomas. Algunos ampliaron la sintaxis original de Markdown con convenciones para notas al pie, tablas y otros elementos del documento. Algunos permitieron que los documentos de Markdown se representaran en formatos distintos de HTML. Sitios web como Reddit, StackOverflow y GitHub tenían millones de personas que usaban Markdown. Y Markdown comenzó a usarse más allá de la web, para escribir libros, artículos, presentaciones de diapositivas, cartas y notas de conferencias. Lo que distingue a Markdown de muchas otras sintaxis de marcado ligeras, que suelen ser más fáciles de escribir, es su legibilidad. Markdown también es usado en algunos lenguajes de programación para generar documentación del código. Elixir Markdown Comments Swift Markdown Comments Ejemplo de Sintaxis Encabezados # H1 ## H2 ### H3 Listas - Item 1 - Item 2 - Item 3 Enlaces [Enlace](https://ninjas.cl) ![Imagen](https://ninjas.cl/imagen.jpg) **Negrita** _Cursiva_ Tablas |Nombre|Descripción| |------|-----------| |Item 1| Ejemplo 1 | |Item 2| Ejemplo 2 | Código ```elixir IO.inspect \"Hola Mundo\" ``` https://spec.commonmark.org/0.30/ https://github.github.com/gfm/ https://rust-lang.github.io/mdBook/ https://mermaid.live/ https://dbml.dbdiagram.io/home/ AsciiDoc es un lenguaje de marcado ligero y semántico diseñado principalmente para escribir documentación técnica. El lenguaje se puede usar para producir una variedad de formatos de salida ricos en presentaciones, todos a partir de contenido codificado en un formato de texto sin formato, conciso y legible por humanos. El lenguaje AsciiDoc no está acoplado al formato de salida que produce. Un procesador AsciiDoc puede analizar y comprender un documento fuente AsciiDoc y convertir la estructura del documento analizado en uno o más formatos de salida, como HTML, PDF, EPUB3, página manual o DocBook. La capacidad de producir múltiples formatos de salida es una de las principales ventajas de AsciiDoc. Esta capacidad permite su uso en generadores de sitios estáticos, IDE, herramientas y servicios git, sistemas CI/CD y otro software. AsciiDoc cierra la brecha entre la facilidad de escritura y los rigurosos requisitos de creación técnica y publicación. AsciiDoc solo requiere un editor de texto para leer o escribir, por lo que ofrece una barra baja para comenzar. Ejemplo de Sintaxis Encabezados = H1 = H2 === H3 Listas - Item 1 - Item 2 - Item 3 Enlaces https://ninjas.cl[Enlace] image:https://ninjas.cl/imagen.jpg[Imagen] *Negrita* _Cursiva_ Tablas |==== |Nombre|Descripción| |Item 1| Ejemplo 1 | |Item 2| Ejemplo 2 | |==== Código [source,elixir] IO.inspect \"Hola Mundo\" https://docs.asciidoctor.org/asciidoc/latest/ Mermaid te permite crear diagramas y visualizaciones usando texto y código. Es una herramienta de creación de diagramas y gráficos basada en JavaScript que genera definiciones de texto inspiradas en Markdown para crear y modificar diagramas dinámicamente. Si estás familiarizado con Markdown, no debería tener problemas para aprender la sintaxis de Mermaid. flowchart TD A1(Historia de la Web) --> |Unidad 1| B1 B1(Hosting y Servidores) --> B2[Conceptos de Servidores] B1 --> B3[Cpanel] B1 --> B4[Sistemas CMS y Static Site Generators] B1 --> B5[HTML, CSS, Markdown] B1 --> B6[Github y Git] Enlaces https://mermaid.js.org/intro/ DBML (Lenguaje de marcado de bases de datos) es un lenguaje DSL de código abierto diseñado para definir y documentar esquemas y estructuras de bases de datos. También viene con una herramienta de línea de comandos y un módulo de código abierto para ayudarlo a convertir entre DBML y SQL. Table users { id integer username varchar role varchar created_at timestamp } Table posts { id integer [primary key] title varchar body text [note: 'Content of the post'] user_id integer status post_status created_at timestamp } Enlaces https://dbml.dbdiagram.io/home/#intro GNU/Linux es hoy por hoy el Sistema Operativo preferido por el mundo de la informática y en general por el mundo corporativo en cuanto a servidores se refiere, y es preferido de manera muy especial en la nube. La confianza depositada en él se refuerza día a día gracias a los casos de éxito y millones de aplicaciones, presencia en servidores de todo tipo en infraestructuras locales, en la nube y dispositivos que corren Linux. He aquí algunos números impresionantes que confirman que Linux es el amo y señor en todas las infraestructuras de servidores a nivel mundial, incluyendo la nube: El 100% de las 500 supercomputadoras más poderosas en el mundo corren Linux. 23 de cada 25 páginas activas de Internet corren Linux, la mayoría de estas están hospedadas en la nube. El 96% de los servidores más poderosos del mundo corren Linux, la mayoría de estos están hospedados en la nube. El 90% de los servidores en los mayores proveedores de servicios de nube son Linux. Dado su extenso uso, recomendamos aprender a utilizarlo y certificar los conocimientos con LPIC-1. La certificación Linux más grande y reconocida del mundo. LPIC-1 es la primera certificación en el programa de certificación profesional Linux multinivel del Linux Professional Institute (LPI). El LPIC-1 validará la capacidad del candidato para realizar tareas de mantenimiento en la línea de comando, instalar y configurar una computadora con Linux y configurar redes básicas. Enlaces https://openwebinars.net/blog/el-poder-de-linux-en-el-cloud-computing/ https://www.lpi.org/es/our-certifications/lpic-1-overview/ Distribuido por Red Hat y ahora parte de IBM, Red Hat o Red Hat Enterprise Linux (RHEL por sus siglas en inglés), como es oficialmente conocido, es una distro sumamente estable, la preferida por la mayoría de las empresas que se dedican a distribuir bases de datos, plataformas de software complejas y demandantes. Las distribuciones basadas en RedHat son las recomendables para entornos con Cpanel. Una excelente alternativa gratuita es Rocky Linux. https://www.hostinger.com/tutorials/centos-replacement https://rockylinux.org/ https://www.redhat.com/en https://www.centos.org/ https://almalinux.org/ El proyecto Debian fue fundado en 1993 por Ian Murdock. Él escribió el manifiesto de Debian, que utilizó como base para la creación de la distribución Linux Debian. Dentro de este texto, los puntos destacables son: mantener la distribución de manera abierta, coherente al espíritu del núcleo Linux y de GNU. Es la distribución recomendada para uso tanto en servidores como escritorio personal. https://servidordebian.org/es/start https://es.wikipedia.org/wiki/Debian_GNU/Linux La distribución de GNU/Linux para equipos Mac ARM. https://asahilinux.org/ FreeBSD y OpenBSD son dos distribuciones y alternativas muy buenas para Linux. La especialidad son servidores, firewalls y otros equipos de red. https://www.freebsd.org/ https://www.openbsd.org/ Noticias sobre las distintas distribuciones de Linux pueden ser encontradas en el sitio https://distrowatch.com/ El FLISoL es el evento de difusión de Software Libre más grande en Latinoamérica y está dirigido a todo tipo de público: estudiantes, académicos, empresarios, trabajadores, funcionarios públicos, entusiastas y aun personas que no poseen mucho conocimiento informático. https://flisol.info/ Lo mejor es experimentar en un entorno que no cause problemas antes de comenzar en serio en un entorno real. Por tanto lo mejor es hacer una instalación virtual. Ahora existen programas excelentes de virtualización. Se recomienda los que van a continuación porque son fáciles de usar y son una excelente plataforma para hacer pruebas. Virtualbox: es un sofware de código abierto que puede ser usado libremente y tiene una lista impresionante de posibilidades. VMWare: dispone de programas gratuitos de virtualización como VMWare Server y VMWare Player, que pueden ser utilizados de forma libre y gratuita. Docker: Docker proporciona un conjunto de herramientas de desarrollo, servicios, contenido de confianza y automatizaciones, que se utilizan individualmente o en conjunto, para acelerar la entrega de aplicaciones seguras. Muestra la ruta del directorio actual. $ pwd /Users/ninjas Muestra los archivos y directorios de la ruta especificada. Predeterminado la ruta actual. El parámetro -a nos permite mostrar archivos ocultos (comienzan por punto). El parámetro -l nos permite mostrar los permisos, grupos, propietarios y fechas de modificación de archivos y directorios. $ ls -la ls -la total 0 drwxr-xr-x 2 ninjas staff 64 Aug 22 21:03 . drwxr-xr-x+ 140 ninjas staff 4480 Aug 22 21:05 .. ls -la directorio: Muestra los contenidos del directorio ls -R: Muestra los contenidos de forma recursiva. Crea un directorio. $ mkdir mi_directorio mkdir -p primer/segundo: Crea tanto el directorio primer como el directorio segundo. Crea un archivo en blanco. Nota: A diferencia de Windows, los archivos en UNIX no necesitan extensión para ser válidos. $ touch archivo Elimina un archivo o directorio. El parámetro r indica recursivo. Necesario para eliminar todos los archivos de un directorio. El parámetro f indica \"forzar\". No preguntará antes de eliminar un archivo. $ rm -rf mi_directorio Mueve un directorio o archivo. Utilizado también para renombrar archivos o directorios. El siguiente ejemplo renombra el directorio1 a directorio2. $ mv directorio1 directorio2 Copia un archivo o directorio. $ cp archivo1 archivo2 $ cp -R directorio1 directorio2 Muestra los contenidos de un archivo. $ cat archivo Cambiar el directorio actual. . Directorio actual .. Directorio anterior Ir a directorio1 $ cd directorio1 Volver al directorio anterior $ cd .. Ir al directorio sub anterior. $ cd ../../ El pipe es una herramienta especial que nos permite concatenar la salida del comando anterior con la entrada del siguiente comando. Comando-1 | Comando-2 | …| Comando-N $ cat contents.txt | grep file 0 Aug 9 13:55 file1 0 Aug 9 13:55 file2 0 Aug 9 13:55 file3 0 Aug 9 13:55 file4 0 Aug 9 13:55 file5 Enlaces https://www.ionos.es/digitalguide/servidores/configuracion/pipes-linux/ Los permisos nos indican quien tiene autorización de ejecución, lectura y escritura de archivos y carpetas. Es un tema extenso pero en general se recomienda tener los siguientes permisos: 777: Peligro, este permiso da acceso total de ejecución, modificación y lectura de forma global. 755: Recomendado para directorios. 644: Recomendado para archivos. Enlaces https://www.profesionalreview.com/2017/01/28/permisos-basicos-linux-ubuntu-chmod/ https://help.wnpower.com/hc/es/articles/360020443892-Cambiar-permisos-chmod-en-Hosting-cPanel https://www.rolige.com/es/blog/consejos-prestashop/como-asignar-los-permisos-correctos-a-mis-ficheros-y-carpetas-de-prestashop https://killercoda.com/pawelpiwosz/course/linuxFundamentals Vi ha sido el primer editor de texto a pantalla completa para sistemas Unix . Además fue creado con la intención de que fuese sencillo en su uso y ligero para no cargar sobremanera el sistema. Para aquellos acostumbrados a usar editores de texto mediante en entornos gráficos, puede resultar un poco abrupto y complejo su aprendizaje, pero si bien porque estamos al cargo de un servidor Linux o porque nuestro entorno gráfico está dando problemas y no carga, deberíamos ser capaces de editar ficheros desde un editor como Vi / Vim. El Modo Comando permite al usuario navegar por el documento así como introducir comandos a ejecutar dentro del propio archivo (buscar, reemplazar, guardar…​), ya que en este modo el programa no interpreta las teclas del teclado por los caracteres que representan, si no por las funciones preestablecidas o comandos asignados a cada tecla. Estos escuetos comandos son combinaciones de letras sensibles a mayúsculas (que corresponden a diferentes órdenes). A algunos de estos comandos podemos introducir un número delante que indicará el número de veces que queremos repetir la acción a ejecutar. Por poner un ejemplo, si el comando yy (o Y ) copia la línea donde se encuentra el cursor, el comando 3yy (o 3Y ) copiará la línea actual y las dos siguientes, sumando un total de 3 líneas. Para entrar al modo comando únicamente deberemos pulsar Esc en nuestro teclado. Ejemplos 0: Ir al principio de la línea. $: Ir al final de la línea. gg: Ir al principio del archivo. G: Ir al final del archivo. i: Pasar al Modo Inserción. o: Modo inserción en línea siguiente. O: Modo inserción en línea anterior. a: Modo inserción en siguiente caracter. A: Modo inserción al final de línea. dd: Cortar la línea actual. 3dd: Cortar 3 líneas. dG: Cortar todo el documento. u: Deshacer cambios. yy: Copiar la línea actual. p: Pegar el contenido del portapapeles. En el Modo ex manipularemos los archivos. Para entrar a este modo deberemos escribir : (dos puntos) seguido directamente por el nombre del comando ‘ex’ que queramos usar. Tras esto, vi volverá automáticamente al modo comando. Ejemplos :0: Ir al principio del archivo. :$: Ir al final del archivo. :w: Guarda los cambios (require que el archivo tenga nombre). :w archivo: Guarda el archivo actual como archivo. :q!: Salir sin guardar cambios. :x: Guardar cambios y salir. :: Ejemplo :2. Ir al número de línea específico. En el Modo inserción simplemente añadiremos texto al fichero. Mientras estemos en este modo, podremos salir al modo comando directamente pulsando Esc. Existen otros modos para Vi / Vim como ‘visual’, ‘selección’, etc. Pero Comando, Ex e Inserción son los más comunes. Enlaces https://openwebinars.net/blog/vim-manual-de-uso-basico/ https://nvchad.com/ https://www.lunarvim.org/ https://spacevim.org/ https://www.spacemacs.org/ https://killercoda.com/vim","title":"Github, Static Site Generators, Markdown, Linux y Vim","component":"ROOT","version":"","name":"chapter","url":"/github/chapter.html","titles":[{"text":"¿Qué nos permite realizar?","hash":"qué-nos-permite-realizar","id":1},{"text":"¿Qué es un Fork (Bifurcación)?","hash":"qué-es-un-fork-bifurcación","id":2},{"text":"¿Qué es un Pull Request?","hash":"qué-es-un-pull-request","id":3},{"text":"Merge commits","hash":"merge-commits","id":4},{"text":"Squash and merge","hash":"squash-and-merge","id":5},{"text":"Rebase and merge","hash":"rebase-and-merge","id":6},{"text":"Alternativas","hash":"alternativas","id":7},{"text":"Static Site Generators","hash":"static-site-generators","id":8},{"text":"Jekyll","hash":"jekyll","id":9},{"text":"Listado de Static Site Generators","hash":"listado-de-static-site-generators","id":10},{"text":"Markdown y Asciidoc","hash":"markdown-y-asciidoc","id":11},{"text":"Complementos","hash":"complementos","id":12},{"text":"Asciidoc","hash":"asciidoc","id":13},{"text":"Mermaid","hash":"mermaid","id":14},{"text":"DBML","hash":"dbml","id":15},{"text":"GNU/Linux","hash":"gnulinux","id":16},{"text":"LPIC-1","hash":"lpic-1","id":17},{"text":"RedHat, CentOS, Rocky y Alma Linux","hash":"redhat-centos-rocky-y-alma-linux","id":18},{"text":"Debian","hash":"debian","id":19},{"text":"Asahi","hash":"asahi","id":20},{"text":"FreeBSD/OpenBSD","hash":"freebsdopenbsd","id":21},{"text":"Distrowatch","hash":"distrowatch","id":22},{"text":"FLISoL","hash":"flisol","id":23},{"text":"Servidores Virtualizados","hash":"servidores-virtualizados","id":24},{"text":"Comandos Básicos","hash":"comandos-básicos","id":25},{"text":"pwd","hash":"pwd","id":26},{"text":"ls","hash":"ls","id":27},{"text":"mkdir","hash":"mkdir","id":28},{"text":"touch","hash":"touch","id":29},{"text":"rm","hash":"rm","id":30},{"text":"mv","hash":"mv","id":31},{"text":"cp","hash":"cp","id":32},{"text":"cat","hash":"cat","id":33},{"text":"cd","hash":"cd","id":34},{"text":"pipe (|)","hash":"pipe","id":35},{"text":"Permisos","hash":"permisos","id":36},{"text":"Tutoriales","hash":"tutoriales","id":37},{"text":"Editor Vim","hash":"editor-vim","id":38},{"text":"Modo Comando","hash":"modo-comando","id":39},{"text":"Modo ex","hash":"modo-ex","id":40},{"text":"Modo Inserción","hash":"modo-inserción","id":41},{"text":"Configuraciones","hash":"configuraciones","id":42},{"text":"Tutoriales","hash":"tutoriales-2","id":43}]},"27":{"id":27,"text":"En el siguiente capítulo detallaremos los inicios de la comunicación a distancia y las diferentes tecnologías utizadas hasta la actualidad. El Código Internacional de Señales de la OMI (Organización Marítima Internacional), esta basado en banderas destinado a transmitir mensajes, ya sea entre dos o más barcos, o entre un barco y la tierra o el puerto, en el cual cada letra o grupo de letras, representadas por banderas, tiene un significado particular. Es el código adoptado internacionalmente. Desde que existe la comunicación por radio, el uso de las banderas de señales para transmitir mensajes ha disminuido notablemente. Sin embargo, se siguen utilizando de forma generalizada las banderas individuales o en combinaciones de dos, para señalizar un aviso determinado. El sistema de \"señales semáforo\", está basado en dos banderas iguales sostenidas una en cada mano del operador, formando distintas posiciones con respecto al cuerpo, era muy utilizado para comunicación diurna antes de la comunicación por radio, hoy en desuso, es solamente una opción de emergencia. Este es un código de deletreo de mensajes, para el cual se utilizan dos banderas Oscar. Durante la noche, la comunicación de emergencia se realiza con luces por medio de código Morse. https://www.buzosargentinos.com.ar/wiki/?a=a&n=86 El artista estadounidense Samuel F. B. Morse, el físico estadounidense Joseph Henry, y el ingeniero mecánico Alfred Vail desarrollaron un sistema de telégrafo eléctrico. Necesitaba un método para transmitir el lenguaje natural utilizando solo pulsos eléctricos y el silencio entre ellos. Alrededor de 1837, Morse, por lo tanto, desarrolló un precursor temprano del código Morse Internacional moderno). Código Morse ARRL El teléfono es un dispositivo de telecomunicación creado para transmitir señales acústicas a distancia por medio de señales eléctricas. Fue inventado por el italiano Antonio Meucci, quien en 1854 construyó su primer prototipo. Teléfono En 1873, el físico escocés James Clerk Maxwell formuló la teoría de las ondas electromagnéticas, que son la base de la radio. En 1887, el físico alemán Heinrich Hertz confirmó las teorías de Maxwell, descubriendo la forma de producir y detectar ondas electromagnéticas, y en 1894 el serbio Nikola Tesla hizo su primera demostración en público donde transmitió en radio. Al poco tiempo, en 1895, el italiano Guillermo Marconi construyó el primer sistema de radio, logrando en 1901 enviar señales a la otra orilla del Atlántico, a través de 3360 km de océano; pero como lo hizo con patentes de Tesla se le atribuye el trabajo a este último. Radio La red télex es una red de teletipos conmutada de cliente a cliente similar a una red telefónica, que utiliza circuitos de conexión de grado telégrafo para mensajes de texto bidireccionales. El télex fue un método importante para enviar mensajes escritos electrónicamente entre empresas durante el período posterior a la Segunda Guerra Mundial. Su uso disminuyó a medida que la máquina de fax creció en popularidad en la década de 1980. Télex CATV es el servicio que ofrece transferencia de imágenes de televisión a los domicilios de los abonados. Existen redes de televisión por cable desde los años 1940. La primera red de cable fue montada en los Estados Unidos por un técnico en Oregón. La red contaba con un sistema de antenas, amplificadores y mezcladores de señal, y la señal era enviada por cables a sus vecinos, haciendo así posible que todos vieran televisión sin necesidad de antenas. Actualmente está extendido por todo el mundo. TV Cable Martin Cooper fue el pionero en esta tecnología. A él se le considera «el padre de la telefonía móvil», al introducir el primer radio-teléfono en 1973, en Estados Unidos, mientras trabajaba para Motorola. En 1983 Motorola lanzó el primer teléfono móvil del mercado: el Motorola DynaTAC 8000x. Su precio era de $3.995 dólares ($10.869 en 2023). Telefonía Celular Motorola DynaTAC ARPANET fue una red de computadoras creada por encargo del Departamento de Defensa de los Estados Unidos (DOD) para utilizarla como medio de comunicación entre las diferentes instituciones académicas y estatales. El primer nodo se creó en la Universidad de California en Los Ángeles (UCLA) y fue la espina dorsal de Internet hasta 1990, tras finalizar la transición al modelo de protocolos TCP/IP, iniciada en 1983. Arpanet El proyecto Synco o proyecto Cybersyn fue el intento chileno de planificación económica controlada en tiempo real, desarrollado en los años del gobierno de Salvador Allende, entre 1971 y 1973. En esencia, se trataba de una red de máquinas de teletipo que comunicaba a las fábricas con un único centro de cómputo en Santiago, donde se controlaba a las máquinas empleando los principios de la cibernética. El principal arquitecto del sistema fue el científico británico Stafford Beer. Cybersyn Revolucionarios Cibernéticos NABU (Natural Access to Bi-directional Utilities) (Acceso natural a servicios públicos bidireccionales) En 1982, se lanzó una computadora personal para el hogar a los consumidores para conectar a familias y empresas en una red mundial. Fundada en Ottawa, Canadá, en 1982, las familias y las escuelas usaban módems de televisión por cable para conectar las PC de NABU a una red nacional. Además de las capacidades de PC estándar, la computadora NABU podría descargar software y contenido de información a través de la alimentación por cable. Las aplicaciones incluían juegos, lenguajes de programación y noticias. NABU El correo electrónico --también llamado simplemente correo-- (en inglés: electronic mail, normalmente abreviado e-mail o email) es un servicio de red que permite a los usuarios enviar y recibir mensajes (también denominados mensajes electrónicos o cartas digitales) mediante redes de comunicación electrónica. […​] El primer mensaje de correo electrónico genuinamente enviado a través de una red data del año 1971. El mensaje, que contenía únicamente el texto «QWERTYUIOP», se envió a través de la red ARPANET. Email Un Bulletin Board System o BBS (en español Sistema de Tablón de anuncios) es un software (un conjunto de programas informáticos instalados en un ordenador) que fue popular en las décadas de 1980 y 1990 en Estados Unidos para redes de ordenadores, ya que permitía a los usuarios participantes conectarse a través de una línea telefónica a una red donde podían ver y consultar distintas informaciones que publicaban usuarios participantes. BBS Tim Berners-Lee, un científico británico, inventó la World Wide Web (WWW) en 1989, mientras trabajaba en el CERN. La web se concibió y desarrolló originalmente para satisfacer la demanda de intercambio automatizado de información entre científicos de universidades e institutos de todo el mundo. El 30 de abril de 1993, el CERN colocó el software de la World Wide Web en el dominio público. Posteriormente, el CERN puso a disposición una versión con una licencia abierta, una forma más segura de maximizar su difusión.
      The World Wide Web project

      World Wide Web

      The WorldWideWeb (W3) is a wide-area hypermedia information retrieval initiative aiming to give universal access to a large universe of documents.

      Everything there is online about W3 is linked directly or indirectly to this document, including an executive summary of the project, Mailing lists , Policy , November's W3 news , Frequently Asked Questions .

      What's out there?
      Pointers to the world's online information, subjects , W3 servers, etc.
      Help
      on the browser you are using
      Software Products
      A list of W3 project components and their current state. (e.g. Line Mode ,X11 Viola , NeXTStep , Servers , Tools , Mail robot , Library )
      Technical
      Details of protocols, formats, program internals etc
      Bibliography
      Paper documentation on W3 and references.
      People
      A list of some people involved in the project.
      History
      A summary of the history of the project.
      How can I help ?
      If you would like to support the web..
      Getting code
      Getting the code by anonymous FTP , etc.
      CERN El nacimiento de la Web Tejiendo la Red Gopher es uno de los sistemas de Internet para divulgar información que precedió a la world wide web. Fue creado en 1991 en la Universidad de Minnesota y fue el primer sistema que permitió pasar de un sitio a otro seleccionando una opción en el menú de una página. Esa es la razón por la que adquirió mayor popularidad que sus competidores, que acabaron siendo sustituidos por la Web. Los servidores Gopher, igual que los servidores FTP almacenan archivos y documentos que puede verse en línea o transferirse al PC. Gopher Gemini Protocol El navegador Mosaic o NCSA Mosaic fue el primer navegador web gráfico disponible para visualizar páginas web en sistemas operativos como Mac, Windows u otros. Este navegador web fue creado en enero de 1993, en el National Center for Supercomputing Applications (NCSA), por Marc Andreessen. […​] En enero de 1997 se abandonó oficialmente el desarrollo de este navegador para dar paso al desarrollo de Netscape Navigator, de la empresa Netscape Communications fundada por los mismos creadores de Mosaic. Mosaic Space Jam 1996 Antes del desarrollo de CSS, toda la información presentacional de los documentos HTML era incluida en el código HTML. Los colores de las fuentes, los estilos de fondo, la alineación de los elementos, los bordes y tamaños eran descritos explícitamente, a veces de manera redundante, dentro del HTML. CSS permite a los diseñadores mover toda la información presentacional a otro archivo, la hoja de estilos, resultando en un código HTML notablemente más simple. […​] CSS fue propuesto por primera vez por Håkon Wium Lie el 10 de octubre de 1994. Al mismo tiempo, Lie trabajaba con Tim Berners-Lee en el CERN. Muchos otros lenguajes de hojas de estilos fueron propuestos al mismo tiempo, y las discusiones en las listas de correo públicas dentro del W3C dieron lugar a la primera Recomendación CSS por el W3C (CSS1)​ en 1996. En particular, la propuesta de Bert Bos fue influyente; él fue el coautor de CSS1 y es reconocido como el cocreador de CSS. CSS JavaScript (abreviado comúnmente JS) es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. […​] JavaScript fue desarrollado originalmente por Brendan Eich de Netscape con el nombre de Mocha, el cual fue renombrado posteriormente a LiveScript, para finalmente quedar como JavaScript. . […​] Desde el lanzamiento en junio de 1997 del estándar ECMAScript 1, han existido las versiones 2, 3 y 5 (la 4 se abandonó). En junio de 2015 se cerró y publicó la versión ECMAScript 6. […​] Desde 2012, todos los navegadores modernos soportan completamente ECMAScript 5. Los navegadores más antiguos soportan por lo menos ECMAScript 3. La sexta edición se liberó en julio de 2015. […​] La versión 7 de ECMAScript se conoce como ECMAScript 2016 y fue publicada en junio de 2016. Se trata de la primera versión para la que se usa un nuevo procedimiento de publicación anual y un proceso de desarrollo abierto. Javascript A fines de la década de 1990, cuando el ancho de banda todavía era de 56 kbit/s para la mayoría de los usuarios de Internet, muchos artistas de animación de Adobe Flash emplearon animación limitada o animación recortada al crear proyectos destinados a la distribución web. Esto permitió a los artistas lanzar cortometrajes y experiencias interactivas muy por debajo de 1 MB, que podían transmitir audio y animación de alta calidad. Hasta la llegada de HTML5, mostrar el vídeo en una página web requería que el navegador disponga del plugin. En 2010, Apple criticó públicamente la aplicación de Adobe Flash de reproducción de vídeo por no tomar ventaja de la aceleración de hardware, además criticó toda la tecnología Flash en general, argumentando que no es un estándar abierto, y que afectaba el rendimiento de las baterías de sus equipos, razones por las que no lo incluirla en sus dispositivos móviles. Flash Player fue descontinuado el 31 de diciembre de 2020 y su página de descarga desapareció dos días después. En octubre de 2020, Microsoft lanzó una actualización opcional KB4577586 que elimina Flash Player de Windows. Flash fue un sistema para la creación de webs completamente dinámicas. con flash los diseñadores eran capaces de crear animaciones efectos interacción de una manera avanzada, pero sin necesidad de grandes complicaciones con el código. También tenía un lenguaje de programación llamado ActionScript qué permitía a programadores realizar todo tipo de aplicaciones, interacción avanzada, comunicación cliente / servidor, etc. Ostenta el mérito de haber sido precursor de muchas de las utilidades con las que cuentan hoy en día los estándares abiertos de la web, sin embargo era un sistema propietario qué acarreaba además diversos problemas para usuarios, dispositivos y sistemas informáticos que debían reconocer el contenido de las páginas hechas con Flash. Flash Flash Animation Desarrollo Web con Flash Páginas Web Hechas con Flash Haxe. Lenguaje de Programación En 1984 Psion lanzó al mercado la que fue considerada como la primera PDA (Personal Digital Assistant) del mundo. Se llamaba Psion Organiser. No es que esta PDA fuera muy potente, pero tenía un software interno que incluía programas como un editor de texto, agenda, bloc de notas, base de datos de contactos, calculadora y otras funciones simples. De hecho, ni siquiera podías realizar o recibir llamadas con este aparato, pero sentaría las bases para las aplicaciones móviles del futuro. Psion Esta PDA reconocía la escritura y podía conectarse directamente a ordenadores Mac, PC, siendo la precursora de la plataforma iOS. Además, también tenía acceso a una variedad de aplicaciones de proveedores externos, como, por ejemplo, un navegador web, Pocket Quicken (una aplicación para el control de las finanzas personales) o un cliente de email. Este abuelo del iPhone se vendería entre 1993 y 1998 y, en su momento, fue un fracaso comercial ante la irrupción de equipos como la PalmPilot (1997) o los canadienses de BlackBerry (1999). Apple Newton En 1997 apareció el Nokia 6110. Sin embargo, este teléfono móvil tenía preinstalada la primera aplicación móvil de la historia que gozaría de un éxito mundial. El arrollador triunfo del juego de ‘La Serpiente’ sorprendió incluso a sus fabricantes. Snake Nokia 6110 ¿Qué fue del Snake? El nacimiento del WAP (2002) se lo debemos, entre otros, a Sony, Nokia, Motorola y Openwave. Estas cuatro compañías fueron las responsables de la creación de un estándar como el WAP, y que supuso el primer paso para conceder a los teléfonos móviles un completo acceso a internet, que finalmente culminó con la llegada del protocolo HTTP que domina en estos momentos.

      Un ejemplo para entrar a página.

      Sin embargo, esto no triunfaría, ya que los desarrolladores encontraron grandes problemas a la hora de intentar adaptar el contenido a los múltiples tipos de pantallas de móviles. De esta época nos quedó como legado poder descargar distintos tonos de llamada y fondos de pantalla. ¿Qué fue del WAP? WAP WML El 29 de junio del 2007, Steve Jobs apareció en un escenario para presentar lo nunca visto hasta entonces. La joya de la corona: el iPhone. Apple crearía, en julio del 2008, la App Store, permitiendo a proveedores externos crear aplicaciones para ser comercializadas a través de ella. Arrancó con 500 aplicaciones en oferta. Presentación de Steve Jobs iPhone iPhone 1 Google en 2008 lanzó el primer teléfono móvil con sistema operativo Android. Además de crear una tienda de aplicaciones denominada Android Market y que hoy conocemos como Google Play o Play Store. En sólo 4 años alcanzó las 700.000 aplicaciones. HTC Dream BlackBerry fue una marca de teléfonos inteligentes desarrollada por la compañía canadiense BlackBerry. Marcas como Nokia, HTC o incluso LG, sufrieron una decadencia principalmente por estancarse en lo que en el pasado les funcionaba como el teclado físico y ofrecer productos experimentales para el público. BlackBerry OS, quedaba corto en aplicaciones primordiales como WhatsApp, apps de mensajería, juegos y apps de utilidad. BlackBerry Windows Phone (abreviado WP) fue un sistema operativo móvil actualmente descontinuado,desarrollado por Microsoft como sucesor de Windows Mobile. A diferencia de su predecesor fue enfocado en el mercado de consumo en lugar del mercado empresarial. Con Windows Phone, Microsoft ofreció una nueva interfaz de usuario que integró varios de sus servicios activos. Compitió directamente contra Android de Google y iOS de Apple, con resultados poco alentadores. Su última versión fue Windows Phone 8.1, lanzado el 14 de abril de 2014. Nokia Lumia Windows Phone Firefox OS (nombre clave: Boot to Gecko o B2G) es un sistema operativo móvil descontinuado,basado en HTML5 con núcleo Linux, de código abierto para varias plataformas. Desarrollado por Mozilla Corporation bajo el apoyo de otras empresas y una gran comunidad de voluntarios de todo el mundo. El sistema operativo estuvo diseñado para permitir a las aplicaciones HTML5 comunicarse directamente con el hardware del dispositivo usando JavaScript y Open Web APIs. Firefox OS La aparición de las primeras aplicaciones móviles tenía como razón principal poder organizar el trabajo de ejecutivos y profesionales. Agendas, calculadoras, bloc de notas, editores de texto, hojas de cálculo, contactos, email, etc. Sin embargo, con el paso del tiempo, el sector del entretenimiento fue tomando protagonismo. El teléfono móvil había dejado de ser un aparato con el que hacer y recibir llamadas y mensajes de texto para transformarse es una potente máquina, equiparable a un ordenador, con la que poder llevar a cabo casi cualquier tarea diaria. Ahora, caminas por la calle y ves al 80% de la gente pendiente de su móvil. Escuchan música mientras corren o pasean; leen libros o noticias en el metro o autobús; comprueban si la meteorología les va a estropear los planes del fin de semana; disfrutan — y se enganchan — del último juego de moda…​ Pero, el mayor uso que le damos a nuestros teléfonos móviles, es el social. Sin embargo, entre 2014 y 2018, las aplicaciones que han crecido más rápidamente son las que mejoran — y controlan — nuestra calidad de vida (apps para hacer la compra, para controlar y mejorar nuestro estado de salud, para regular la actividad deportiva…​). El futuro parece traer también las aplicaciones que nos servirán para controlar coches, casas…​ Y focalizadas en la temida y poderosa inteligencia artificial. Hay algunos datos que parecen indicar la existencia de cierto agotamiento en el mercado de las aplicaciones móviles. No es que vayan a desaparecer, sino que se acerca una evolución hacia algo diferente, más centrado en la inteligencia artificial, la realidad aumentada (término que se usa para definir la visión de un entorno físico del mundo real, a través de un dispositivo tecnológico) y las aplicaciones en la nube. Y es que las estadísticas indican que la mitad de las aplicaciones móviles descargadas se usan menos de 10 veces y tan solo el 53% de los usuarios se descargan una aplicación nueva al mes. Las aplicaciones móviles del mañana, si quieren tener éxito, tendrán que centrarse en ser más rápidas, intuitivas y recolectar toda la información posible sobre el usuario, con la intención de desarrollar el producto que más se ajuste a su perfil. Historia de las Apps Móviles Lecturas y actividades que pueden ayudar a dar contexto y ser de interés. Libro Revolucionarios Cibernéticos [revolucionariosciber]. Libro Tejiendo la Web [tejiendolared].","title":"Historia de la World Wide Web y Aplicaciones Móviles","component":"ROOT","version":"","name":"chapter","url":"/history/chapter.html","titles":[{"text":"Mensajes con Banderas","hash":"mensajes-con-banderas","id":1},{"text":"Mensajes con señales semáforo","hash":"mensajes-con-señales-semáforo","id":2},{"text":"Código Morse y Telégrafos","hash":"código-morse-y-telégrafos","id":3},{"text":"El Teléfono","hash":"el-teléfono","id":4},{"text":"La Radio","hash":"la-radio","id":5},{"text":"Los Teletipos (Télex)","hash":"los-teletipos-télex","id":6},{"text":"Televisión por Cable","hash":"televisión-por-cable","id":7},{"text":"Telefonía Celular","hash":"telefonía-celular","id":8},{"text":"Los precursores de Internet","hash":"los-precursores-de-internet","id":9},{"text":"Arpanet (Red Telefónica)","hash":"arpanet-red-telefónica","id":10},{"text":"Cybersyn/Synco (Red Télex)","hash":"cybersynsynco-red-télex","id":11},{"text":"Nabu (Red Cable)","hash":"nabu-red-cable","id":12},{"text":"Primeras Aplicaciones de Red","hash":"primeras-aplicaciones-de-red","id":13},{"text":"Email","hash":"email","id":14},{"text":"BBS","hash":"bbs","id":15},{"text":"La World Wide Web","hash":"la-world-wide-web","id":16},{"text":"Red Gopher","hash":"red-gopher","id":17},{"text":"Mosaic El Primer Navegador Gráfico","hash":"mosaic-el-primer-navegador-gráfico","id":18},{"text":"CSS","hash":"css","id":19},{"text":"Javascript","hash":"javascript","id":20},{"text":"Animación Flash (SWF)","hash":"animación-flash-swf","id":21},{"text":"Aplicaciones Móviles","hash":"aplicaciones-móviles","id":22},{"text":"Psion Organizer","hash":"psion-organizer","id":23},{"text":"Apple Newton","hash":"apple-newton","id":24},{"text":"Nokia","hash":"nokia","id":25},{"text":"Tecnología WAP","hash":"tecnología-wap","id":26},{"text":"iPhone (2007)","hash":"iphone-2007","id":27},{"text":"Android (2008)","hash":"android-2008","id":28},{"text":"BlackBerry","hash":"blackberry","id":29},{"text":"Windows Phone","hash":"windows-phone","id":30},{"text":"Firefox OS","hash":"firefox-os","id":31},{"text":"El Futuro de las Aplicaciones Móviles","hash":"el-futuro-de-las-aplicaciones-móviles","id":32},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":33}]},"28":{"id":28,"text":"Registrar un dominio en Internet es el primer paso para tener presencia en la web. Sin embargo, con solo un dominio no podrás publicar tu sitio web, ya que también necesitarás un web hosting. Es importante recalcar que con la elección y registro de tu dominio en Internet podrás crear cuentas de correos personalizados que te permitirán proyectar profesionalismo y ganarte la confianza de los clientes potenciales. Otro de los puntos importantes de los dominios en Internet es que son términos memorizables y fáciles de recordar por los internautas, porque ¿no te parece que es más sencillo recordar google.com que su dirección IP 172.217.10.110?. Recuerda que será mucho más sencillo encontrarte si eliges un dominio que va acorde a lo que ofreces o quién eres. Elegir la extensión de dominio va a depender de tus objetivos, ya que si tienes planificado un mercado global lo mejor para ti es elegir un dominio genérico. Ahora bien, si tu mercado es nacional, lo más conveniente que uses un dominio geográfico porque ¡sí! tu página web se posicionará mucho mejor en ese país, debido a que Google — u otro buscador — lo considerará como un dominio casi exclusivo para esa región. ¿Qué es un Dominio? Una URI o identificador uniforme de recursos es una cadena de caracteres que generalmente identifica cualquier recurso web mediante un nombre, una ubicación o ambos. Un localizador uniforme de recursos (URL) y un nombre uniforme de recursos (URN) son los dos tipos de URI. esquema:[//autoridad]ruta[?query][#fragmento] Ejemplos: ftp://ftp.is.co.za/rfc/rfc1808.txt http://www.ietf.org/rfc/rfc2396.txt ldap://[2001:db8::7]/c=GB?objectClass?one mailto:John.Doe@example.com news:comp.infosystems.www.servers.unix tel:+1-816-555-1212 telnet://192.0.2.16:80/ urn:oasis:names:specification:docbook:dtd:xml:4.1.2 RFC2141 RFC3986 Mozilla: URI URI URI vs URL Una URL o localizador universal de recursos, por su siglas en inglés, es una dirección completa de un sitio web que lleva a los usuarios a una página específica dentro de ese website. En síntesis, se trata de la dirección web que tiene cada uno de los recursos en Internet que les permite ser encontrados por los navegadores e identificados por diferentes herramientas. Cada elemento que hace parte del WWW, sin importar su formato o propósito, debe tener una dirección URL específica donde está guardada. En cuanto al puerto, es el número específico que identifica qué servicio web estás solicitando en un servidor web. Por ejemplo, el número de puerto predeterminado para la URL HTTP es 80 y para la URL HTTPS es 443. Sin embargo, si el servidor web utiliza un protocolo estándar como HTTP o HTTPS, el puerto suele omitirse en la URL. Básicamente, una URL está compuesta de un protocolo, el dominio y la ruta. Donde el protocolo garantiza la certificación de seguridad SSL, el dominio es la dirección y la ruta es la dirección de la página específica dentro del sitio web. Entonces, es válido afirmar que los dominios para páginas web solo es una parte de los caracteres con los que está hecha un URL. Las partes requeridas de una URL dependen en gran medida del contexto en el que se utiliza la URL. En la barra de direcciones de su navegador, una URL no tiene ningún contexto, por lo que debe proporcionar una URL completa (o absoluta), como las que vimos anteriormente. No necesita incluir el protocolo (el navegador usa HTTP de manera predeterminada) o el puerto (que solo se requiere cuando el servidor web de destino está utilizando algún puerto inusual), pero todas las otras partes de la URL son necesarias. Cuando se usa una URL dentro de un documento, como en una página HTML, las cosas son un poco diferentes. Debido a que el navegador ya tiene la propia URL del documento, puede usar esta información para completar las partes faltantes de cualquier URL disponible dentro de ese documento. Podemos diferenciar entre una URL absoluta y una URL relativa mirando solo la parte de ruta de la URL. Si la parte de ruta de la URL comienza con el carácter \"/\", el navegador buscará ese recurso desde la raíz superior del servidor, sin referencia al contexto dado por el documento actual. El uso de URLs relativas puede ser un riesgo para el robo de contenido ya que la gente no tiene que reescribir ningún enlace interno. Pueden copiar fácilmente tu página y ponerla en un nuevo dominio utilizando un raspador web (web scrapper). URL Descripción https://developer.mozilla.org/es/docs/Learn URL Completa (absoluta) //developer.mozilla.org/es/docs/Learn URL relativa con protocolo implícito (Reutiliza el protocolo inicial) /es/docs/Learn URL relativa con dominio implícito Skills/Infrastructure/Understanding_URLs URL relativa que utiliza el directorio actual. ../CSS/display URL relativa que utiliza el directorio anterior. URL Mozilla. ¿Qué es una URL? Mailchimp: 10 partes de una URL URL Semánticas Aunque en algunos casos un identificador uniforme de recursos (URI) y un localizador de recursos uniforme (URL) pueden utilizarse indistintamente, no son lo mismo. URI significa identificador de recursos uniforme, una cadena de caracteres que generalmente identifica un recurso por un nombre, una ubicación o ambos en Internet. Además, un URI puede diferenciar tipos de archivos y otros recursos. Por otro lado, una URL o localizador de recursos uniforme es una cadena de caracteres que muestra la dirección del recurso y cómo acceder a él en la página web. Como la URL es una parte de la URI, siguen una estructura similar. En resumen, la principal diferencia entre una URI y una URL es que la primera puede ser un nombre, una ubicación o ambos, mientras que la segunda sólo proporciona la ubicación de un recurso. A diferencia de una URL, una URN no proporciona ninguna información sobre la ubicación del recurso, sino que simplemente lo identifica, al igual que una URI pura. En particular, una URN es una URI cuyo esquema es urn y tiene la siguiente estructura, tal como lo describe el RFC 2141: urn:: El marcador de posición IDENTIFICADOR DE ESPACIO DE NOMBRES> representa una cadena que representa la categoría de recursos que desea identificar. es el identificador específico del recurso y su formato depende del identificador del espacio de nombres. urn:isbn:1234567890 urn:ISSN:0167-6423 urn:ietf:rfc:2648 Esos URN identifican objetos de diferentes tipos. Por ejemplo, urn:isbn:1234567890 identifica una publicación a través del sistema ISBN; urn:ISSN:0167-6423 identifica una publicación a través del sistema ISSN; urn:ietf:rfc:2648 es un RFC emitido por el IETF. RFC 2141 RFC 3986 URL, URI, URN Hay tres tipos --o extensiones — de dominios que puedes utilizar para tu empresa y dependerá de lo que más adecuado para tu organización. También llamados territoriales o ccTLD (Country code Top-Level Domain). Este dominio es conformado por dos letras que van asociadas con el país de origen del sitio web. Estos se usan para señalar la ubicación de la empresa. Algunos ejemplos de dominios geográficos son: .cl, para Chile .ar, para Argentina; .br, para Brasil; .co, para Colombia; .mx, para México; entre otros. También conocido como gTLD (Generic Top-Level Domain) Son los más utilizados y comunes a nivel mundial. Estos no se ajustan a un país determinado y definen cuál es el fin del sitio web. Ejemplo: .com, es un sitio web de uso comercial; .net, su significado es red y se relaciona con empresas de servicios de Internet o también para asociar un dominio que ya existe con la terminación .com; .org, organización sin fines de lucro, ONG o instituciones; .edu, se usa para instituciones de educación; .info, sitio informativo; .biz, página de negocios; .gob, reservados exclusivamente para departamentos y entidades gubernamentales; .mil, su uso es únicamente para entidades que pertenecen a las Fuerzas Armadas de un país; entre otros. Los dominios de tercer nivel son aquellos que resultan tras combinar un dominio gTLD y uno ccTLD. En otras palabras, tienen la misma finalidad que los dominios genéricos, pero se limitan territoralmente. Entonces, sería: .com.mx, para entidades comerciales mexicanas; .org.mx, referente a organizaciones no lucrativas mexicanas; .edu.mx, consta de instituciones educativas mexicanas; .gob.mx, entidades del Gobierno de México. Su estructura consta de dos niveles. Sin embargo, en el inicio existe un dominio raíz, que es solo un nombre vacío del que salen los demás dominios de Internet. Ahora bien, ¿en qué consisten? Del dominio raíz sale este primer nivel. Estos pueden ser: .cl, .com, .mx, .org, entre otros. Es el nombre que se eligió para el dominio. En nuestro caso es: ninjascl. Es un derivado del dominio de segundo nivel, que se crea añadiendo una o varias palabras separada(s) por un punto. El www. es el subdominio más común. Sin embargo, también se puede agregar otros para permitir el acceso directo a una determinada sección de la página web. Te recomendamos que para crear subdominios uses nombres cortos y palabras claves que tengan relación con el contenido que quieras mostrar. URL Descripción https://nic.cl Compra de dominios en Chile. Valor promedio $10.000 CLP por año. https://dynadot.com Compra de dominios Internacional. Valor depende del TLD. Aceptan Paypal o tarjetas de crédito internacional como https://www.tenpo.cl/ o https://dalecoopeuch.cl/ https://dynv6.com/ Subdominios gratuitos. Ideal para tener servidores hogareños sin recurrir a un dominio principal. https://www.noip.com Subdominios gratuitos. Ideal para tener servidores hogareños sin recurrir a un dominio principal. El sistema DNS (Domain Name Server) es el sistema más importante para el funcionamiento de internet. Sin DNS’s no funcionarían los nombres de dominios que utilizamos comúnmente. Cada computadora conectada a internet tiene una dirección “lógica” única, algo así como un número telefónico, a la que llamamos dirección IP. Las direcciones IP que se utilizan actualmente (versión 4) constan de cuatro secciones numéricas separadas por un punto. Una dirección IP típica luciría así: 151.120.134.89 (esto es solo un ejemplo). En términos prácticos, el sistema DNS es el que nos permite traducir “www.google.com” o cualquier otro dominio textual, a su equivalente numérico. Cuando una persona escribe una dirección web en la barra de direcciones de su navegador, la computadora irá a buscar jerárquicamente por la traducción de dicha dirección en una dirección IP. Se dice jerárquicamente, ya que normalmente se comienza la búsqueda primero en los DNS’s raíz de internet (que son unos servidores que mantienen largas tablas de enrutamiento que hacen funcionar el corazón de este sistema) y una vez que haya encontrado el mapeo correcto la máquina irá a buscar la dirección concreta del equipo o “host” a los servidores DNS ligados al dominio en particular que estamos buscando. Es por esta razón que cuando una persona va a “dirigir” su dominio a un servidor nuevo, se le pide que ingrese los servidores DNS que harán la función de direccionadores. Un ejemplo de esto es el siguiente: Contratamos el dominio “ejemplo.com” con un proveedor de registro de dominios Deseamos que “ejemplo.com” lleve directamente a nuestra página web que está localizada en la dirección IP 192.185.124.130 Nuestro proveedor del servicio de Hospedaje Web dará de alta el dominio en el servidor. Nuestro proveedor del servicio de Hospedaje Web dará de alta el dominio en los servidores DNS que sean necesarios y nos proporcionará la dirección URL de estos servidores (al menos del servidor DNS primario y secundario, por ejemplo: ns1.ejemplo.com y ns2.ejempo.com) Agregamos los servidores DNS primario y secundario a nuestro dominio directamente con nuestro proveedor de registro de dominios (ya sea por medio de algún panel de control o solicitándolo de otra forma) En este ejemplo, hicimos lo siguiente: 1.- Registramos un nombre de dominio 2.- Dimos de alta el dominio en un servidor 3.- Dirigimos el dominio al servidor por medio de los servidores DNS primario y secundario. Otra situación sumamente común es que cuando cambiamos el direccionamiento de un dominio de unos servidores DNS a otros, nuestro proveedor nos indica que la “propagación” puede tardar 24 a 72 horas (normalmente es mucho menos). ¿Esto qué significa? Lo que sucede es que para no sobrecargar los servidores raíz de internet y disminuir el tráfico por consultas de “traducciones” DNS de nombres de dominio a direcciones IP, el sistema de DNS funciona de tal forma que se guardan registros temporales de ciertas traducciones populares, por ejemplo: si uno hace una consulta para buscar ninjas.cl, el sistema DNS de nuestro proveedor de acceso a internet nos devolverá la IP resultante de dicha consulta. Para hacer esa traducción muy probablemente tuvimos que consultar directamente a un servidor raíz de internet, sin embargo, si nosotros mismos volvemos a buscar esa dirección (o alguien que esté en la misma red o “vecindario” la busca) muy probablemente la traducción ya se encuentre guardada temporalmente en un servidor DNS de nuestro proveedor de acceso a internet, con lo que éste se ahorra el tener que ir a buscar dicha traducción directamente a los servidores raíz de internet. El aspecto negativo de esto (por así llamarlo), es que si cambiamos en este momento el mapeo dominio/IP de ninjas.cl, mucha gente en el mundo que esté accediendo a nuestra página web tendrá un periodo de tiempo de algunas horas en las que probablemente accederá aún a la dirección IP anterior que estará guardada en los servidores DNS de su proveedor de acceso a internet (el término correcto es que tiene el mapeo guardado en “caché”). Este mapeo, ahora incorrecto, se corregirá automáticamente cuando el cambio se “propague” hasta los servidores DNS de dicho proveedor de acceso a internet, lo cual por el tamaño de internet puede tardar varias horas. DNS Entre los hosting web existen principalmente las siguientes opciones: Shared Hosting: Hosting Compartido. Un servidor con Cpanel (o Plesk) en el cual los recursos de la máquina (IP, RAM, CPU, Disco, etc) son compartidos por múltiples usuarios. Ideal para opciones económicas y menos exigencia. Dedicated Hosting: (Hosting Dedicado). Un servidor con Cpanel en el cual los recursos de la máquina (IP, RAM, CPU, Disco, etc) son asignados a un solo usuario. Ideal para opciones que requieran mayor velocidad y recursos. VPS (Virtual Private Server): Servidor Privado Virtual . Un servidor dedicado en el cual se debe instalar todo de forma manual (no tiene Cpanel u otros similares). Ideal para aplicaciones personalizadas (Como Backend) en lenguajes de programación distintos a PHP o que requieran recursos personalizados, más flexibles y que puedan adaptarse a las necesidades de crecimiento de la aplicación. Hosting HTML Estático: Hosting especializado en páginas web estáticas. Solamente permite archivos con lógica en el cliente como HTML, CSS, JS y archivos (imágenes, documentos). No permite lenguajes como PHP, Elixir o Python. Se pueden mencionar neocities y github pages entre los más conocidos. Servidor de Aplicaciones en la Nube: Servidor especializado en tener un ambiente preparado para algunos frameworks de backend, a diferencia de los VPS ya viene con algunas configuraciones y herramientas de apoyo. Alguno de los más conocidos son Heroku.com o Fly.io. URL Descripción https://cpanelhost.cl Hosting económico gama baja/media para servidores en Chile. Valor promedio $10.000 CLP por año. Ideal para tener un servidor de correos propio de forma económica. Páginas webs simples o de poco tráfico. https://silverhost.cl Hosting de gama media en Chile. Valor promedio $30.000 CLP por año. Ideal para páginas web más exigentes o múltiples dominios. https://gohosting.cl Hosting de gama baja/media en servidores internacionales. https://hostgator.com Hosting gama baja/media internacional. Muchos resellers compran a Hostgator y revenden en Chile. Revisar siempre que las ips y nameservers sean de chile antes de seleccionar un hosting chileno. https://www.hostinger.com/ Hosting de gama baja/media internacional https://www.digitalocean.com/ VPS https://www.linode.com/ VPS https://www.vultr.com/ VPS https://neocities.org/ Hosting gratuito de páginas web estáticas https://www.cloudflare.com/ Entre sus servicios gratuitos hospeda páginas web estáticas https://pages.github.com/ Si se tiene un proyecto en Github se puede utilizar su hosting gratuito para web estáticas. Ideal para documentación de proyectos o experimentos https://www.heroku.com/ Servidor de Aplicaciones en la Nube https://fly.io/ Servidor de Aplicaciones en la Nube. Recomendado para Elixir. https://vercel.com/ Servidor de Aplicaciones en la Nube. Especializado en Frontend. https://aws.amazon.com/es/ Plataforma de Servicios en la Nube de Amazon. https://azure.microsoft.com/en-us Plataforma de Servicios en la Nube de Microsoft. https://cloud.google.com/ Plataforma de Servicios en la Nube de Google. Al momento de querer adquirir un dominio se debe verificar que no esté previamente registrado. Podemos utilizar las búsquedas de un proveedor de dominios, pero nos arriesgamos a que nuestra búsqueda quede registrada y posiblemente alguien desee comprar nuestro dominio dejándonos en una posición difícil. La recomendación es siempre comprar un dominión lo más pronto posible, ya que se arriesga a perderlo y verse obligado a pagar copiosas sumas de dinero por adquirirlo. Para asegurárnos que nuestra búsqueda de dominio sea protegida de posibles oportunistas, utilizamos la herramienta whois. Cuando accedemos a los detalles con whois, tendremos acceso a la información de contacto asociada con la persona o empresa que registró el nombre de dominio en la red, es por ello que al usar whois accedemos a detalles como: El nombre y la información de contacto del registrante La fecha de registro El nombre y la información de contacto del registrador Última actualización del registro Fecha de expiración del registro Es por esto que se debe elegir un proveedor de dominios que permita el ocultar información privada, para evitar ser víctima de spam por medio de la obtención de datos usando whois. Al usar el comando whois debemos tener en cuenta los siguientes términos: Registry: hace referencia a la empresa que administra la lista donde se aloja un conjunto de nombres de dominio Registrant: es el propietario legal del dominio Registrar: hace uso de un registrador para realizar el registro Whois $ whois ninjas.cl % IANA WHOIS server % for more information on IANA, visit http://www.iana.org % This query returned 1 object refer: whois.nic.cl domain: CL organisation: NIC Chile (University of Chile) address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile contact: administrative name: TLD Admin Contact organisation: NIC Chile organisation: University of Chile address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile phone: +56 22 940 7700 e-mail: admincl@nic.cl contact: technical name: TLD Technical Contact organisation: NIC Chile organisation: University of Chile address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile phone: +56 22 940 7700 e-mail: techcl@nic.cl nserver: A.NIC.CL 190.124.27.10 2001:1398:121:0:190:124:27:10 nserver: B.NIC.CL 200.7.4.7 2001:1398:274:0:200:7:4:7 nserver: C.NIC.CL 200.16.112.16 2001:1398:275:0:200:16:112:16 nserver: CL-NS.ANYCAST.PCH.NET 2001:500:14:6030:ad:0:0:1 204.61.216.30 nserver: CL1-TLD.D-ZONE.CA 185.159.197.56 2620:10a:80aa:0:0:0:0:56 nserver: CL1.DNSNODE.NET 194.146.106.34 2001:67c:1010:8:0:0:0:53 nserver: CL2-TLD.D-ZONE.CA 185.159.198.56 2620:10a:80ab:0:0:0:0:56 ds-rdata: 21199 8 2 7d756dffab6d3cd9c786ff5c659954c22944faef9433eee26f1d84eb5370b394 whois: whois.nic.cl status: ACTIVE remarks: Registration information: http://www.nic.cl/ created: 1987-12-15 changed: 2021-05-28 source: IANA # whois.nic.cl %% %% This is the NIC Chile Whois server (whois.nic.cl). %% %% Rights restricted by copyright. %% See https://www.nic.cl/normativa/politica-publicacion-de-datos-cl.pdf %% Domain name: ninjas.cl Registrant name: Camilo Registrant organisation: Registrar name: NIC Chile Registrar URL: https://www.nic.cl Creation date: 2023-07-26 16:12:11 CLST Expiration date: 2024-07-26 16:12:11 CLST Name server: ns1.cpanelhost.cl Name server: ns2.cpanelhost.cl %% %% For communication with domain contacts please use website. %% See https://www.nic.cl/registry/Whois.do?d=ninjas.cl %% $ whois ninjas-fake.cl % IANA WHOIS server % for more information on IANA, visit http://www.iana.org % This query returned 1 object refer: whois.nic.cl domain: CL organisation: NIC Chile (University of Chile) address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile contact: administrative name: TLD Admin Contact organisation: NIC Chile organisation: University of Chile address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile phone: +56 22 940 7700 e-mail: admincl@nic.cl contact: technical name: TLD Technical Contact organisation: NIC Chile organisation: University of Chile address: Miraflores 222, Piso 14 address: Santiago RM 832-0198 address: Chile phone: +56 22 940 7700 e-mail: techcl@nic.cl nserver: A.NIC.CL 190.124.27.10 2001:1398:121:0:190:124:27:10 nserver: B.NIC.CL 200.7.4.7 2001:1398:274:0:200:7:4:7 nserver: C.NIC.CL 200.16.112.16 2001:1398:275:0:200:16:112:16 nserver: CL-NS.ANYCAST.PCH.NET 2001:500:14:6030:ad:0:0:1 204.61.216.30 nserver: CL1-TLD.D-ZONE.CA 185.159.197.56 2620:10a:80aa:0:0:0:0:56 nserver: CL1.DNSNODE.NET 194.146.106.34 2001:67c:1010:8:0:0:0:53 nserver: CL2-TLD.D-ZONE.CA 185.159.198.56 2620:10a:80ab:0:0:0:0:56 ds-rdata: 21199 8 2 7d756dffab6d3cd9c786ff5c659954c22944faef9433eee26f1d84eb5370b394 whois: whois.nic.cl status: ACTIVE remarks: Registration information: http://www.nic.cl/ created: 1987-12-15 changed: 2021-05-28 source: IANA # whois.nic.cl %% %% This is the NIC Chile Whois server (whois.nic.cl). %% %% Rights restricted by copyright. %% See https://www.nic.cl/normativa/politica-publicacion-de-datos-cl.pdf %% ninjas-fake.cl: no entries found. Ping nos ayuda a verificar que un servidor este operativo y escuchando peticiones. Ping Respuesta Exitosa $ ping ninjas.cl PING ninjas.cl (190.107.177.35): 56 data bytes Request timeout for icmp_seq 0 64 bytes from 190.107.177.35: icmp_seq=1 ttl=58 time=23.394 ms 64 bytes from 190.107.177.35: icmp_seq=2 ttl=58 time=28.447 ms 64 bytes from 190.107.177.35: icmp_seq=3 ttl=58 time=15.794 ms 64 bytes from 190.107.177.35: icmp_seq=4 ttl=58 time=22.296 ms 64 bytes from 190.107.177.35: icmp_seq=5 ttl=58 time=16.409 ms 64 bytes from 190.107.177.35: icmp_seq=6 ttl=58 time=14.523 ms 64 bytes from 190.107.177.35: icmp_seq=7 ttl=58 time=14.737 ms 64 bytes from 190.107.177.35: icmp_seq=8 ttl=58 time=20.764 ms --- ninjas.cl ping statistics --- 9 packets transmitted, 8 packets received, 11.1% packet loss round-trip min/avg/max/stddev = 14.523/19.545/28.447/4.682 ms Respuesta de Servidor No Encontrado $ ping ninjas-fake.cl ping: cannot resolve ninjas-fake.cl: Unknown host Respuesta de Servidor que No Responde $ ping 127.0.0.2 PING 127.0.0.2 (127.0.0.2): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1 Request timeout for icmp_seq 2 Request timeout for icmp_seq 3 Request timeout for icmp_seq 4 Request timeout for icmp_seq 5 Request timeout for icmp_seq 6 --- 127.0.0.2 ping statistics --- 8 packets transmitted, 0 packets received, 100.0% packet loss cPanel (acrónimo de control Panel o ‘Panel de control’) es un panel de control para administrar servidores de alojamiento web que proveen herramientas de automatización y una interfaz gráfica basada en páginas web. Es software de tipo propietario y se ha desarrollado para ser compatible con la mayoría de las distribuciones de Linux que usen RPM como gestor de paquetes. Hoy en día, cPanel se ha convertido prácticamente un estándar en servicios de hosting web. Tanto es así que se considera por muchos un criterio fundamental a la hora de elegir un hosting. Su principal ventaja es que el usuario de un hosting web, muchas veces personas sin perfil técnico, dispone de una interfaz web sencilla que le permite administrar los servicios más importantes de su hosting, principalmente: Administración de ficheros: principalmente para la instalación de aplicaciones PHP como ProcessWire, WordPress, Joomla o Prestashop. Configuración de los dominios: necesaria para vincular el sitio web el correo electrónico al (los) dominio(s) que se quiere(n) utilizar. Gestión de cuentas de correo: creación y mantenimiento de cuentas de correo electrónico con dominio propio. Gestión de bases de datos MySQL: creación y mantenimiento de bases de bases de datos, principalmente porque las aplicaciones típicas usadas en un hosting como las arriba mencionadas suelen requerir una base de datos MySQL. Gestión de los recursos: espacio en disco, consumo de ancho de banda mensual, etc. cPanel entrega un gran nivel de control al usuario individual, mientras se mantiene la seguridad. Aunque el administrador de sistema puede desactivar cualquier característica para cada cliente en cualquier momento, el usuario puede usar cualquier elemento que se encuentre disponible. SSH Access: tiene integrado un applet Java que permite una conexión directa con el servidor vía SSH. Se encuentra desactivado en la mayoría de los sitios debido a que es un riesgo para la seguridad del servidor. Crontab: provee una interfaz para el manejo de las listas de tareas. OpenPGP: soporte técnico. CGI Scripts: autoinstala varios scripts para cualquier sitio web. Permite evitar el acceso a direcciones IP específicas. Se distingue, respecto a otros control Panel, por su facilidad para realizar respaldos completos o parciales (algunos proveedores de hospedaje no dan derechos para restaurar respaldos). Tiene una apariencia flexible y fácil de entender, llamada Paper Lantern, también hay otra llamada Jupiter. WHM, abreviatura de WebHost Manager, es una herramienta basada en la web que se utiliza para la administración del servidor. Hay al menos dos niveles de WHM, a menudo denominados \"WHM raíz\" y WHM no raíz (o WHM de revendedor). Root WHM es utilizado por administradores de servidores y WHM no root (con menos privilegios) es utilizado por otros, como departamentos de entidades y revendedores para administrar cuentas de alojamiento a menudo denominadas cuentas cPanel en un servidor web. WHM también se usa para administrar certificados SSL (tanto certificados SSL autogenerados por el servidor como proporcionados por CA), usuarios de cPanel, paquetes de alojamiento, zonas DNS, temas y métodos de autenticación. El SSL automático predeterminado (AutoSSL) proporcionado por cPanel es impulsado por Sectigo (anteriormente Comodo CA). Además, WHM también se puede usar para administrar servicios de FTP, correo (POP, IMAP y SMTP) y SSH en el servidor. Además de ser accesible para el administrador raíz, WHM también es accesible para los usuarios con privilegios de revendedor. Los usuarios revendedores de cPanel tienen un conjunto de funciones más pequeño que el usuario raíz, generalmente limitado por el administrador del servidor, a funciones que determinan que afectarán las cuentas de sus clientes en lugar del servidor en su conjunto. Desde la raíz WHM, el administrador del servidor puede realizar operaciones de mantenimiento, como actualizar y volver a compilar Apache y PHP, instalar módulos Perl y actualizar los RPM instalados en el sistema. Enlaces Wikipedia: Cpanel Wikipedia: WHM Página Oficial de Cpanel WHM Muchas veces Cpanel puede no ser la mejor opción, debido a su precio o sus restricciones tecnológicas. Para esto existen algunas alternativas a considerar: Direct Admin (Pago) Plesk (Pago) Webmin (Gratis) Froxlor (Gratis) Son certificados que permiten a las aplicaciones comunicarse de forma segura. Por ejemplo al momento de enviar un formulario, si la página es solamente http, toda la información enviada podría ser obtenida por un tercero no autorizado. Por esto siempre es importante utilizar certificados SSL (https) al momento de crear sistemas web. En los paneles Cpanel existe una opción llamada AutoSSL que genera certificados. Puede también ser utilizado https://letsencrypt.org/, una opción gratuita que no está ligada a Cpanel. Enlaces SSL Siempre tener en cuenta que estos solo son paneles de administración en servidores (usualmente Linux), por lo que todas las operaciones que realizan estos paneles se pueden realizar mediante la terminal del sistema operativo. Se recomienda mucho aprender Linux/FreeBSD y tomar la certificación respectiva para aprender administrar servidores. https://training.linuxfoundation.org/training/linux-system-administration-essentials-lfs207/ https://training.linuxfoundation.org/certification/linux-foundation-certified-sysadmin-lfcs/ Linux FreeBSD","title":"Hosting, Dominios y Cpanel","component":"ROOT","version":"","name":"chapter","url":"/hosting/chapter.html","titles":[{"text":"¿Qué es una URI?","hash":"qué-es-una-uri","id":1},{"text":"¿Qué es una URL?","hash":"qué-es-una-url","id":2},{"text":"¿Por qué no es lo mismo que un dominio?","hash":"por-qué-no-es-lo-mismo-que-un-dominio","id":3},{"text":"URL absolutas vs URL relativas","hash":"url-absolutas-vs-url-relativas","id":4},{"text":"URL vs URI vs URN","hash":"url-vs-uri-vs-urn","id":5},{"text":"¿Qué tipos de Dominios Existen?","hash":"qué-tipos-de-dominios-existen","id":6},{"text":"Dominios Geográficos","hash":"dominios-geográficos","id":7},{"text":"Dominio de Nivel Superior Genéricos","hash":"dominio-de-nivel-superior-genéricos","id":8},{"text":"Dominios mixtos o de tercer nivel","hash":"dominios-mixtos-o-de-tercer-nivel","id":9},{"text":"Estructura de un Dominio","hash":"estructura-de-un-dominio","id":10},{"text":"Primer nivel","hash":"primer-nivel","id":11},{"text":"Segundo nivel","hash":"segundo-nivel","id":12},{"text":"Subdominio","hash":"subdominio","id":13},{"text":"¿Dónde Compro un Dominio?","hash":"dónde-compro-un-dominio","id":14},{"text":"¿Qué es un Domain Name Server?","hash":"qué-es-un-domain-name-server","id":15},{"text":"Ruta de un DNS","hash":"ruta-de-un-dns","id":16},{"text":"¿Por qué tardan los cambios de servidores DNS en propagar?","hash":"por-qué-tardan-los-cambios-de-servidores-dns-en-propagar","id":17},{"text":"Servidores y Hostings","hash":"servidores-y-hostings","id":18},{"text":"¿Dónde Consigo un Hosting?","hash":"dónde-consigo-un-hosting","id":19},{"text":"Herramienta Whois","hash":"herramienta-whois","id":20},{"text":"Resultado de Dominio Existente","hash":"resultado-de-dominio-existente","id":21},{"text":"Resultado de Dominio Inexistente","hash":"resultado-de-dominio-inexistente","id":22},{"text":"Herramienta Ping","hash":"herramienta-ping","id":23},{"text":"Cpanel","hash":"cpanel","id":24},{"text":"WHM","hash":"whm","id":25},{"text":"Alternativas","hash":"alternativas","id":26},{"text":"Certificados SSL","hash":"certificados-ssl","id":27},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":28}]},"29":{"id":29,"text":"HTML (Lenguaje de Marcas de Hipertexto, del inglés HyperText Markup Language) es el componente más básico de la Web. Define el significado y la estructura del contenido web. Además de HTML, generalmente se utilizan otras tecnologías para describir la apariencia/presentación de una página web (CSS) o la funcionalidad/comportamiento (JavaScript). https://developer.mozilla.org/es/docs/Web/HTML https://html5up.net/ https://templated.co/ informa al navegador qué versión de HTML (o XML) se usó para escribir el documento. Doctype es una declaración no una etiqueta. Además, podemos referirnos a ella como \"document type declaration\" o por las siglas \"DTD\". Para los documentos html el tag recomendado es: https://developer.mozilla.org/es/docs/Glossary/Doctype El utilizar mayúsculas era muy popular en los primeros años, pero hoy en día se recomienda utilizar los tags en minúsculas.
          La etiqueta permite definir que caracteres son los utilizados por el documento. En los primeros días, había muchas opciones como Windows-1252. Sin embargo hoy en día utilizar utf-8 es lo recomendado y cualquier lenguaje humano puede ser mostrado con dicha codificación. https://developer.mozilla.org/es/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML https://blog.hubspot.com/website/what-is-utf-8 https://www.w3.org/International/questions/qa-choosing-encodings En los primeros días, antes de CSS se incluían los estilos dentro de los tags html. Esto llevaba a mucha repetición y suciedad en el código. Siempre utilizar css para dar estilo y formato a los documentos HTML. Es recomendable que el orden sea coherente, por ejemplo, una etiqueta h2 debe venir despúes de una h1.

          Mi Título

          Mi Subtítuo

          Mi Título

          Mi Subtítuo

          Los navegadores hacen todo lo posible para interpretar un documento HTML y mostrar un resultado, aún si las etiquetas son mal usadas o le falta información. El navegador llenará los espacios lo mejor que pueda. Como desarrolladores debemos ser responsables y verificar que las etiquetas se utilicen de forma correcta y esten cerradas apropiadamente. y antes de partir con body --> Si bien esto no es obligatorio para que un documento sea válido y bien estructurado, considerar a las personas con dificultades de visión u otra condición de diferencia dentro de los elementos para facilitarles la experiencia dentro del sistema web. https://www.a11yproject.com/posts/what-is-semantic-html/ Hojas de Estilo en Cascada (del inglés Cascading Style Sheets) o CSS es el lenguaje de estilos utilizado para describir la presentación de documentos HTML o XML (en-US) (incluyendo varios lenguajes basados en XML como SVG, MathML o XHTML). CSS describe como debe ser renderizado el elemento estructurado en la pantalla, en papel, en el habla o en otros medios. Se recomienda aprender a utilizar CSS de forma manual, antes de aventurarse a utilizar frameworks como Bootstrap o Tailwind. https://developer.mozilla.org/es/docs/Web/CSS https://getbootstrap.com/ https://tailwindcss.com/ https://bulma.io/ https://get.foundation/ https://github.com/picocss/pico Nota: Tailwind es una de las opciones más populares del momento y se recomienda su uso por sobre Bootstrap. Existen algunas metodologías para organización del CSS. Se recomiendan utilizar si se debe programar mucho CSS personalizado. Aunque en la actualidad se prefiere utilizar herramientas más automatizadas como Tailwind para nombrar las clases. https://getbem.com/introduction/ http://smacss.com/ https://webuild.envato.com/blog/how-to-scale-and-maintain-legacy-css-with-sass-and-smacss/ Existen algunos transpiladores de CSS como: https://sass-lang.com/ https://lesscss.org/ Aunque actualmente se prefieren otras alternativas como Tailwind por sobre estos lenguajes intermedios, debido a que las nuevas características de CSS3 implementan mucha de las ideas que estas herramientas brindaban en los primeros años de CSS. Flexbox CSS Grid Color Flexbox Froggy Grid Garden Es una versión de Firefox especialmente diseñada para los desarrolladores. Tiene herramientas especiales que permitirán facilitar el trabajar con CSS. https://www.mozilla.org/es-ES/firefox/developer/ ¿Qué es un control de versiones, y por qué debería importarte? Un control de versiones es un sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante. Dicho sistema te permite regresar a versiones anteriores de tus archivos, regresar a una versión anterior del proyecto completo, comparar cambios a lo largo del tiempo, ver quién modificó por última vez algo que pueda estar causando problemas, ver quién introdujo un problema y cuándo, y mucho más. Usar un VCS también significa generalmente que si arruinas o pierdes archivos, será posible recuperarlos fácilmente. Adicionalmente, obtendrás todos estos beneficios a un costo muy bajo. Existen numerosas formas de organizar los proyectos que utilizan Git, tales como Gitflow, Github Flow, Gitlab Flow, pero la más recomendable es el Desarrollo Basado En Tronco. El desarrollo basado en tronco (o main), consiste en separar las ramas por ambiente, teniendo una rama principal que es la fuente de la verdad donde todos los desarrollos deben basarse. flowchart TD A1(Rama Main) --> B1 B1(Rama Staging) --> B2(Rama Production) La rama principal. Todos los Pull Request deben ser hacia esta rama y no deben tener conflictos con ella. Los desarrolladores crean una rama desde el tronco, para luego mandar su Pull Request, el cual debe estar actualizado con la última versión del tronco main, ser aprobado por los responsables mediante un Code Review y pasar todas las pruebas unitarias. Los desarrolladores realizan pruebas en su ambiente local. Cuando el producto está lo suficientemente maduro y estable, pasa a la siguiente rama que es staging. Se realiza un squash commits al pasar a la siguiente rama. Se crea una nueva etiqueta con la versión de staging. Se elimina la rama transitoria que elaboró el desarrollador (ej: camilo/1085) al hacer un merge exitoso con main. Esta es la rama del ambiente de pruebas que replica el ambiente de producción. Este ambiente es el paso anterior a producción y se deben realizar pruebas manuales y automatizadas para validar que el código funcionará y cumplirá las expectativas y requisitos del producto en producción. Una vez se ha validado el producto en este ambiente, pasa a la siguiente rama que es producción. Se realiza un squash commits al pasar a la siguiente rama. Se crea una nueva etiqueta con la versión de producción. Esta es la rama que aloja el producto que es finalmente mostrado al cliente y usuario final. Debe ser el código más estable, probado y robusto posible, que ha pasado por las pruebas locales y de staging anteriores. Nunca se debe pasar un código desde main a production sin antes pasar por staging. Hay diversas formas de versionar el código, entre las más conocidas están: SemVer y Calver. Cada una tiene sus beneficios y complicaciones. Lo importante es que podemos utilizar las Etiquetas de Git (Tags) para poder marcar cada nueva versión del producto de software dentro de la historia. La recomendación es usar SemVer si la cantidad de releases es muy frecuente y Calver cuando se realicen releases menos frecuentes. $ git tag -a v1.4 -m \"v1.4\" $ git tag v0.1 v1.3 v1.4 Un changelog (registro de cambios), es un archivo que contiene una lista cronológicamente ordenada de los cambios más destacables para cada versión de un proyecto. Las personas. Ya sean consumidores o desarrolladores, los usuarios finales del software son seres humanos a los que le importa lo que hay en el software. Cuando el software cambia, la gente quiere saber el porqué y el cómo. Si bien utilizar Conventional Commits ayuda, no es recomendable usar el registro de git como changelog y es preferible utilizar un archivo separado y dedicado. Están hechos para los seres humanos, no para las máquinas. Debe haber una entrada para cada versión. Los mismos tipos de cambios deben ser agrupados. Versiones y secciones deben ser enlazables. La última versión va primero. Debe mostrar la fecha de publicación de cada versión. Indicar si el proyecto sigue el Versionamiento Semántico. Added para funcionalidades nuevas. Changed para los cambios en las funcionalidades existentes. Deprecated para indicar que una característica o funcionalidad está obsoleta y que se eliminará en las próximas versiones. Removed para las características en desuso que se eliminaron en esta versión. Fixed para corrección de errores. Security en caso de vulnerabilidades. # Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [1.1.1] - 2023-03-05 ### Added - Arabic translation (#444). Enlaces https://semver.org/ https://calver.org/ https://git-scm.com/book/es/v2/Fundamentos-de-Git-Etiquetado https://keepachangelog.com/es-ES/1.0.0/ https://github.com/conventional-changelog/conventional-changelog https://github.com/lintingzhen/commitizen-go Inicia un nuevo repositorio de git. $ git init Agrega un archivo al registro de git. $ git add mi_archivo Muestra el estado actual del historial de cambios por guardar. $ git status El historial de cambios se guarda de forma definitiva, adjuntando un mensaje significativo. $ git commit -m 'nuevo cambio' Crea una nueva rama y la asigna como la rama de trabajo actual. $ git checkout -b mi_rama $ git checkout -b camilo/1085 Nota: Se recomendaría crear ramas con el formato (nombre usuario)/(número de issue) para ahorrar espacio y facilitar búsquedas al tener mejor orden. Cambia hacia una rama que ya existe y la asigna como la rama de trabajo actual. Obtiene los cambios de una rama y los combina con los cambios de la rama actual. $ git merge main Añade un nuevo repositorio remoto. $ git remote add git@github.com:elixircl/elixir-fullstack.git origin: Normalmente asignado al repositorio remoto que se tiene permisos de escritura. upstream: Asignado a un repositorio remoto que solamente se tiene lectura. Clona un repositorio remoto. $ git clone git@github.com:elixircl/elixir-fullstack.git Obtiene los cambios del repositorio remoto y las almacena en nuestra rama local. $ git pull origin main Envía nuestros cambios a la rama dentro del repositorio remoto. $ git push origin main La especificación de Commits Convencionales es una convención ligera sobre los mensajes de commits. Proporciona un conjunto sencillo de reglas para crear un historial de commits explícito; lo que hace más fácil escribir herramientas automatizadas encima del historial. Esta convención encaja con SemVer, al describir en los mensajes de los commits las funcionalidades, arreglos, y cambios de ruptura hechos. El mensaje del commit debe ser estructurado de la siguiente manera: [ámbito opcional]: [cuerpo opcional] [nota(s) al pie opcional(es)] fix: un commit de tipo fix corrige un error en la base del código (se correlaciona con PATCH en el Versionado Semántico). feat: un commit de tipo feat introduce una nueva funcionalidad en la base del código (se correlaciona con MINOR en el Versionado Semántico). tipos distintos a fix: y feat: están permitidos, por ejemplo (basados en la convención de Angular) que recomienda build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, y otros. Ejemplos docs(changelog): update changelog to beta.5 fix(release): need to depend on latest rxjs and zone.js The version in our package.json gets copied to the one we publish, and users need the latest of these. Uso de Número de Issue También es válido poner en el ámbito el número de issue relacionado. docs(1085): added conventional commits. https://www.conventionalcommits.org/es/v1.0.0/ https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines https://git-scm.com/book/es/v2 https://trunkbaseddevelopment.com/ https://about.gitlab.com/topics/version-control/what-is-gitlab-flow/ https://about.gitlab.com/blog/2020/03/05/what-is-gitlab-flow/ https://www.atlassian.com/es/continuous-delivery/continuous-integration/trunk-based-development https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow https://docs.github.com/en/get-started/quickstart/github-flow https://killercoda.com/pawelpiwosz/course/gitFundamentals/","title":"HTML, CSS y GIT","component":"ROOT","version":"","name":"chapter","url":"/html/chapter.html","titles":[{"text":"Algunos Templates de Ejemplo","hash":"algunos-templates-de-ejemplo","id":1},{"text":"Buenas Prácticas","hash":"buenas-prácticas","id":2},{"text":"Comenzar por el DOCTYPE","hash":"comenzar-por-el-doctype","id":3},{"text":"Usar minúsculas en los tags","hash":"usar-minúsculas-en-los-tags","id":4},{"text":"Utilizar UTF-8","hash":"utilizar-utf-8","id":5},{"text":"Utilizar CSS","hash":"utilizar-css","id":6},{"text":"Mantener un orden coherente","hash":"mantener-un-orden-coherente","id":7},{"text":"Cerrar los tags","hash":"cerrar-los-tags","id":8},{"text":"Considerar ayuda a no videntes","hash":"considerar-ayuda-a-no-videntes","id":9},{"text":"CSS","hash":"css","id":10},{"text":"Algunos Frameworks de CSS","hash":"algunos-frameworks-de-css","id":11},{"text":"Metodologías","hash":"metodologías","id":12},{"text":"Transpiladores","hash":"transpiladores","id":13},{"text":"Conceptos Importantes","hash":"conceptos-importantes","id":14},{"text":"Herramientas de Aprendizaje","hash":"herramientas-de-aprendizaje","id":15},{"text":"Navegador Firefox Developer","hash":"navegador-firefox-developer","id":16},{"text":"GIT","hash":"git","id":17},{"text":"Metodologías","hash":"metodologías-2","id":18},{"text":"main (tronco, trunk, master)","hash":"main-tronco-trunk-master","id":19},{"text":"staging (ambiente de pruebas pre-producción)","hash":"staging-ambiente-de-pruebas-pre-producción","id":20},{"text":"production (ambiente de producción)","hash":"production-ambiente-de-producción","id":21},{"text":"Versionado","hash":"versionado","id":22},{"text":"Changelog","hash":"changelog","id":23},{"text":"Directrices","hash":"directrices","id":24},{"text":"Tipos de cambios","hash":"tipos-de-cambios","id":25},{"text":"Ejemplo","hash":"ejemplo","id":26},{"text":"Algunos Comandos","hash":"algunos-comandos","id":27},{"text":"git init","hash":"git-init","id":28},{"text":"git add ruta del archivo","hash":"git-add-ruta-del-archivo","id":29},{"text":"git status","hash":"git-status","id":30},{"text":"git commit -m mensaje","hash":"git-commit-m-mensaje","id":31},{"text":"git checkout -b rama","hash":"git-checkout-b-rama","id":32},{"text":"git checkout rama","hash":"git-checkout-rama","id":33},{"text":"git merge nombre","hash":"git-merge-nombre","id":34},{"text":"git remote add nombre repo.remoto.git","hash":"git-remote-add-nombre-repo-remoto-git","id":35},{"text":"git clone repo.remoto.git","hash":"git-clone-repo-remoto-git","id":36},{"text":"git pull nombre del repo remoto","hash":"git-pull-nombre-del-repo-remoto","id":37},{"text":"git push remoto rama","hash":"git-push-remoto-rama","id":38},{"text":"Conventional Commits","hash":"conventional-commits","id":39},{"text":"Tipos","hash":"tipos","id":40},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":41}]},"30":{"id":30,"text":"HTTP es el protocolo en el que se basa la Web. Fue inventado por Tim Berners-Lee entre los años 1989-1991, HTTP ha visto muchos cambios, manteniendo la mayor parte de su simplicidad y desarrollando su flexibilidad. HTTP ha evolucionado, desde un protocolo destinado al intercambio de archivos en un entorno de un laboratorio semi-seguro, al actual laberinto de Internet, sirviendo ahora para el intercambio de imágenes, vídeos en alta resolución y en 3D. https://developer.mozilla.org/es/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP El concepto de cabeceras de HTTP, se presentó tanto para las peticiones (requests) como para las respuestas (responses), permitiendo la trasmisión de meta-data y conformando un protocolo muy versátil y ampliable. Con el uso de las cabeceras de HTTP, se pudieron transmitir otros documentos además de HTML, mediante la cabecera Content-Type. GET /mypage.html HTTP/1.0 User-Agent: NCSA_Mosaic/2.0 (Windows 3.1) 200 OK Date: Tue, 15 Nov 1994 08:12:31 GMT Server: CERN/3.0 libwww/2.17 Content-Type: text/html Una pagina web con una imagen https://es.wikipedia.org/wiki/Anexo:Cabeceras_HTTP HTTP define una serie predefinida de métodos de petición (algunas veces referido como \"verbos\") que pueden utilizarse. El protocolo tiene flexibilidad para ir añadiendo nuevos métodos y para así añadir nuevas funcionalidades. Cada método indica la acción que desea que se efectúe sobre el recurso identificado. Lo que este recurso representa depende de la aplicación del servidor. Por ejemplo, el recurso puede corresponderse con un archivo que reside en el servidor. https://en.wikipedia.org/wiki/HTTP#Request_methods El código de respuesta, estado o retorno es un número que indica que ha pasado con la petición. El resto del contenido de la respuesta dependerá del valor de este código. El sistema es flexible y de hecho la lista de códigos ha ido aumentando para así adaptarse a los cambios e identificar nuevas situaciones. Cada código tiene un significado concreto. Sin embargo el número de los códigos están elegidos de tal forma que según si pertenece a una centena u otra se pueda identificar el tipo de respuesta que ha dado el servidor: Códigos con formato 1xx: Respuestas informativas. Indica que la petición ha sido recibida y se está procesando. Códigos con formato 2xx: Respuestas correctas. Indica que la petición ha sido procesada correctamente. Códigos con formato 3xx: Respuestas de redirección. Indica que el cliente necesita realizar más acciones para finalizar la petición. Códigos con formato 4xx: Errores causados por el cliente. Indica que ha habido un error en el procesado de la petición a causa de que el cliente ha hecho algo mal. Códigos con formato 5xx: Errores causados por el servidor. Indica que ha habido un error en el procesado de la petición a causa de un fallo en el servidor. Enlaces https://es.wikipedia.org/wiki/Anexo:C%C3%B3digos_de_estado_HTTP https://en.wikipedia.org/wiki/List_of_HTTP_status_codes En el año 2000, un nuevo formato para usar HTTP fue diseñado: REST (del inglés: 'Representational State Transfer'). Las acciones de la nueva API, no estaban supeditadas a nuevos métodos HTTP, unicamente al acceso a URIs especificas con métodos HTTP/1.1). Esto permitió que cualquier aplicación Web dispusiera de una API, para permitir la recuperación y modificación de datos, sin tener que actualizar servidores o navegadores; todo lo que se necesitaba era incluido en los archivos servidos por los sitios Web. La contrapartida del modelo REST está en que cada sitio Web define su propia versión no estándar de API RESTful y tiene un control total sobre ella; al contrario del formato *DAV donde clientes y servidores eran interoperables. La arquitectura REST empezó a ser muy común a partir del año 2010. |== | Cabecera | Descripción | Ejemplo | Content-Type | Define el tipo de contenido que se envía en la petición | application/json | Accept | Define el tipo de contenido que se aceptará en la respuesta | application/json |https://developer.mozilla.org/es/docs/Web/HTTP/Headers/Authorization[Authorization]|Permite enviar tokens de autorización.| Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l |== |== | Método | Uso recomendado | Códigos de Estado Comunes | GET | Obtener información | 200, 404, 403 | POST | Permite crear recursos | 201, 202, 404, 403 | PUT | Permite actualizar recursos en su totalidad | 200, 404, 403 | PATCH | Permite actualizar un campo dentro de un recurso | 200, 404, 403 | DELETE | Permite eliminar un recurso | 200, 404, 403 |== Nota: No se recomienda el código de estado 204 (No content) debido a que no entrega ninguna respuesta (body) al cliente. Es mejor siempre devolver un cuerpo con información relacionada a la operación. https://developer.mozilla.org/es/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP https://apisyouwonthate.com/books/ https://www.rfc-editor.org/rfc/rfc9110.html#section-9.3 JSON API es una convención (no un estándar) para expresar datos de APIs en formato JSON o json api. Es decir, es un JavaScript Object Notation en una Interfaz de Programación en Aplicaciones. También puedes pensar en JSON API como un formato que trabaja con HTTP. https://jsonapi.org/ https://keepcoding.io/blog/json-api-que-es-para-que-sirve/ La especificación OpenAPI es un lenguaje de especificación para API HTTP que proporciona un medio estandarizado para definir su API ante otros. Puede descubrir rápidamente cómo funciona una API, configurar la infraestructura, generar código de cliente y crear casos de prueba para sus API. Obtenga más información sobre cómo puede obtener el control de sus API ahora, comprender el ciclo de vida completo de las API y comunicarse con las comunidades de desarrolladores dentro y fuera de su organización. https://www.openapis.org/ SOAP es una tecnología antigua que requiere un contrato de comunicación estricto entre sistemas. Con el tiempo, se han agregado nuevos estándares de servicios web para adaptarse a los cambios tecnológicos, pero generan gastos generales adicionales. REST se desarrolló después de SOAP y soluciona de forma inherente muchas de sus deficiencias. Los servicios web REST también se denominan servicios web RESTful. https://aws.amazon.com/es/compare/the-difference-between-soap-rest/ GraphQL es un lenguaje de consulta para API y un tiempo de ejecución para completar esas consultas con sus datos existentes. GraphQL proporciona una descripción completa y comprensible de los datos de su API, brinda a los clientes el poder de solicitar exactamente lo que necesitan y nada más, facilita la evolución de las API con el tiempo y habilita potentes herramientas para desarrolladores. { hero { name friends { name homeWorld { name climate } species { name lifespan origin { name } } } } } https://graphql.org/ gRPC es un marco moderno de llamada a procedimiento remoto (RPC) de código abierto y alto rendimiento que puede ejecutarse en cualquier entorno. Puede conectar de manera eficiente servicios dentro y entre centros de datos con soporte conectable para equilibrio de carga, rastreo, verificación de estado y autenticación. También es aplicable en la última milla de la informática distribuida para conectar dispositivos, aplicaciones móviles y navegadores a servicios backend. https://grpc.io/ Existen diversos formatos y estándares para compartir datos y configurar los productos de software. Normalmente son formatos de texto plano (pueden ser leidos por un humano) y también hay en formato binario (pueden ser leidos solo por un computador), entre los más populares están JSON, XML, YAML y TOML. Siempre que desee enviar alguna estructura de datos o un objeto a través de redes informáticas, digamos Internet, debe convertirlo en un formato especial para leerlo y almacenarlo. El proceso se conoce comúnmente como serialización y es de enorme importancia en la web. Un ejemplo de uso común de serialización es al leer datos de bases de datos y transferirlos a través de la web. Algunas formaciones de serialización incluyen JSON y XML. JSON (JavaScript Object Notation - Notación de Objetos de JavaScript) es un formato ligero de intercambio de datos. Leerlo y escribirlo es simple para humanos, mientras que para las máquinas es simple interpretarlo y generarlo. Está basado en un subconjunto del Lenguaje de Programación JavaScript, Standard ECMA-262 3rd Edition - Diciembre 1999. JSON es un formato de texto que es completamente independiente del lenguaje pero utiliza convenciones que son ampliamente conocidos por los programadores de la familia de lenguajes C, incluyendo C, C++, C#, Java, JavaScript, Perl, Python, y muchos otros. Estas propiedades hacen que JSON sea un lenguaje ideal para el intercambio de datos. Ejemplo { \"squadName\": \"Super hero squad\", \"homeTown\": \"Metro City\", \"formed\": 2016, \"secretBase\": \"Super tower\", \"active\": true, \"members\": [ { \"name\": \"Molecule Man\", \"age\": 29, \"secretIdentity\": \"Dan Jukes\", \"powers\": [\"Radiation resistance\", \"Turning tiny\", \"Radiation blast\"] }, { \"name\": \"Madame Uppercut\", \"age\": 39, \"secretIdentity\": \"Jane Wilson\", \"powers\": [ \"Million tonne punch\", \"Damage resistance\", \"Superhuman reflexes\" ] }, { \"name\": \"Eternal Flame\", \"age\": 1000000, \"secretIdentity\": \"Unknown\", \"powers\": [ \"Immortality\", \"Heat Immunity\", \"Inferno\", \"Teleportation\", \"Interdimensional travel\" ] } ] } https://developer.mozilla.org/es/docs/Learn/JavaScript/Objects/JSON https://www.ecma-international.org/publications-and-standards/standards/ecma-404/ https://www.json.org/json-es.html El lenguaje de marcado extensible (XML) permite definir y almacenar datos de forma compartible. XML admite el intercambio de información entre sistemas de computación, como sitios web, bases de datos y aplicaciones de terceros. Las reglas predefinidas facilitan la transmisión de datos como archivos XML a través de cualquier red, ya que el destinatario puede usar esas reglas para leer los datos de forma precisa y eficiente. Ejemplo Introducción a Amazon Web Services Mark Wilkins https://aws.amazon.com/es/what-is/xml/ Los formatos de configuración son más adecuados para establecer parámetros en los programas, más que enviar información por las vías de comunicación. Algunos formatos son YAML y TOML. JSON también es comunmente usado como un formato de configuración, aunque algunos prefieren utilizar variantes como JSONC que incluye comentarios. YAML es un lenguaje sencillo que las personas pueden comprender y suele utilizarse en el diseño de archivos de configuración. Para algunas personas, YAML significa otro lenguaje de marcado más; para otras, es un acrónimo recursivo que quiere decir \"YAML no es un lenguaje de marcado\", lo que enfatiza la idea de que se utiliza para los datos, no para los documentos. Ejemplo name:John age:18 Hobbies: Hobby1:Football Hobby2:BasketBall Hobby3:Hockey Job: -System administrator -Programmer https://www.redhat.com/es/topics/automation/what-is-yaml https://yaml.org/ https://geekflare.com/es/yaml-introduction/ TOML se abrevia como Tom’s Obvious Markup Language. TOML pretende ser un formato de archivo de configuración mínimo que sea fácil de leer debido a una semántica obvia. TOML está diseñado para asignarse sin ambigüedades a una tabla hash. TOML debería ser fácil de analizar en estructuras de datos en una amplia variedad de lenguajes. Ejemplo # This is a TOML document title = \"TOML Example\" [owner] name = \"Tom Preston-Werner\" dob = 1979-05-27T07:32:00-08:00 [database] enabled = true ports = [ 8000, 8001, 8002 ] data = [ [\"delta\", \"phi\"], [3.14] ] temp_targets = { cpu = 79.5, case = 72.0 } [servers] [servers.alpha] ip = \"10.0.0.1\" role = \"frontend\" [servers.beta] ip = \"10.0.0.2\" role = \"backend\" https://toml.io/en/ https://www.w3schools.io/file/toml-introduction/ Postman es una plataforma API para crear y utilizar API. Postman simplifica cada paso del ciclo de vida de la API y agiliza la colaboración para que puedas crear mejores API, más rápido. https://www.postman.com/ Kong Insomnia es una plataforma colaborativa de desarrollo de API de código abierto que facilita la creación de API de alta calidad, sin la sobrecarga y el desorden de otras herramientas. https://insomnia.rest/ Hoppscotch es una suite de desarrollo de API liviana basada en web. Fue creada desde cero teniendo en cuenta la facilidad de uso y la accesibilidad, brindando toda la funcionalidad necesaria para los desarrolladores de API con una interfaz de usuario minimalista y discreta. https://hoppscotch.io/","title":"HTTP, JSON y APIS","component":"ROOT","version":"","name":"chapter","url":"/http/chapter.html","titles":[{"text":"Cabeceras (Headers)","hash":"cabeceras-headers","id":1},{"text":"Métodos","hash":"métodos","id":2},{"text":"Códigos de Respuesta","hash":"códigos-de-respuesta","id":3},{"text":"REST","hash":"rest","id":4},{"text":"Cabeceras Más Usadas","hash":"cabeceras-más-usadas","id":5},{"text":"Métodos Más Usados","hash":"métodos-más-usados","id":6},{"text":"JSON API","hash":"json-api","id":7},{"text":"Open API","hash":"open-api","id":8},{"text":"Otros Tipos de APIS","hash":"otros-tipos-de-apis","id":9},{"text":"SOAP","hash":"soap","id":10},{"text":"GraphQL","hash":"graphql","id":11},{"text":"gRPC","hash":"grpc","id":12},{"text":"Formatos de Archivos","hash":"formatos-de-archivos","id":13},{"text":"Formatos de Serialización","hash":"formatos-de-serialización","id":14},{"text":"JSON","hash":"json","id":15},{"text":"XML","hash":"xml","id":16},{"text":"Formatos de Configuración","hash":"formatos-de-configuración","id":17},{"text":"YAML","hash":"yaml","id":18},{"text":"TOML","hash":"toml","id":19},{"text":"Clientes APIs","hash":"clientes-apis","id":20},{"text":"Postman","hash":"postman","id":21},{"text":"Insomnia","hash":"insomnia","id":22},{"text":"Hoppscotch","hash":"hoppscotch","id":23}]},"31":{"id":31,"text":"Las siglas DOM significan Document Object Model, o lo que es lo mismo, la estructura del documento HTML. Una página HTML está formada por múltiples etiquetas HTML, anidadas una dentro de otra, formando un árbol de etiquetas relacionadas entre sí, que se denomina árbol DOM (o simplemente DOM). En Javascript, cuando nos referimos al DOM nos referimos a esta estructura de árbol, mediante la cuál podemos acceder a ella y modificar los elementos del HTML desde Javascript, añadiendo nuevas etiquetas, modificando o eliminando otras, cambiando sus atributos HTML, añadiendo clases, cambiando el contenido de texto, etc. Si únicamente utilizamos HTML/CSS, solo podremos crear páginas «estáticas», es decir, páginas que no pueden mostrarse de una forma diferente dependiendo de acciones del usuario. Si añadimos Javascript, podremos crear páginas «dinámicas», es decir, aprovechar la potencia y flexibilidad que nos da un lenguaje de programación para crear documentos y páginas mucho más ricas, con una experiencia más completa y con las que se pueden automatizar un gran abanico de tareas y acciones. https://lenguajejs.com/javascript/dom/que-es/ (() => { // Variables let mivar = 1313; // Constantes const constante = 42; const funcion = () => 42; const funcion2 = function(parametro) { return parametro; }; console.log(constante); console.log(funcion()); console.log(funcion2(42)) // Objetos const objeto = { valor: \"este es otro valor\", funcion: (parametro) => { return parametro; } }; objeto.clave = \"Una nueva clave\"; console.log(JSON.stringify(objeto)); // Transformacion de un String Json a Objeto const json = JSON.parse(` {\"clave\": \"este es un valor\"} `); console.log(json[\"clave\"]); // Creación de una clase class Clase { metodo(parametro) { return parametro; } } console.log((new Clase()).metodo(42)); })(); Cuando necesitamos manipular el DOM desde la consola del navegador u otros contextos, se recomienda encapsular el código dentro de una función para evitar conflictos. Una forma de realizar esto es utilizar una Función Auto Ejecutable que es invocada automáticamente luego de ser definida. (() => { // Código })(); https://keepcoding.io/blog/funciones-autoejecutables-en-javascript/ (() => { [1, 2, 3].forEach(item => console.log(item + 1)); console.log( [3, 4, 5].map(item => item + 1) ); console.log( [6, 7, 8].reduce((acc, valor) => acc + valor, 0) ); console.log( [10, 11, 12].filter(number => number % 2 = 0) ); })(); El DOM puede ser manipulado al buscar elementos utilizando los atributos id y class (entre otros) del HTML. Ejemplo buscando por id
          Cambiame
          (() => { const elemento = document.getElementById(\"mi-elemento\"); elemento.innerHTML = '

          Nuevo HTML

          '; })(); Ejemplo buscando por tipo de elemento
          (() => { const elementos = document.getElementsByTagName(\"img\"); Array.from(elementos).forEach(elemento => { elemento.src = \"https://place-hold.it/400x400\" }); })(); https://developer.mozilla.org/es/docs/Web/API/Document/getElementById https://developer.mozilla.org/es/docs/Web/API/Document/getElementsByClassName https://developer.mozilla.org/es/docs/Web/API/Document/getElementsByTagName Inspeccionar elementos es una característica de los navegadores web que permite ver y editar el código fuente de un sitio web, incluidos sus archivos HTML, CSS, JavaScript y multimedia. Cuando modificas el código fuente con la herramienta de inspección, los cambios se muestran en vivo dentro de la ventana del navegador. https://firefox-source-docs.mozilla.org/devtools-user/page_inspector/how_to/open_the_inspector/index.html","title":"Frontend con Javascript","component":"ROOT","version":"","name":"chapter","url":"/javascript/chapter.html","titles":[{"text":"Sintaxis Básica","hash":"sintaxis-básica","id":1},{"text":"Función Auto ejecutable","hash":"función-auto-ejecutable","id":2},{"text":"Funcional","hash":"funcional","id":3},{"text":"Manipulación del DOM","hash":"manipulación-del-dom","id":4},{"text":"Inspector del Navegador","hash":"inspector-del-navegador","id":5}]},"32":{"id":32,"text":"Las aplicaciones móviles son ejecutadas en los denominados \"Teléfonos Inteligentes\" o Smartphones. La industria de las aplicaciones móviles está dominada principalmente por dos sistemas operativos: Android (Google) e iOS (Apple). Aunque existen otros menores como Tizen (Samsung) y HarmonyOS (Hwuawei). Plataforma Precio cuenta Dev Lenguajes de Programación Tienda Comentario Android $20 USD (único) Kotlin, Java Playstore Popular en Latinoamérica y países donde no hay Apple Store oficial. iOS $100 USD (al año) Swift, Objective-C Appstore Popular en países donde existen Apple Store oficiales, debido a su más elevado precio. Android utiliza los lenguajes de programación Kotlin y Java. iOS utiliza los lenguajes de programación Swift y Objective-C. En los últimos años nacieron varias formas nuevas de crear aplicaciones móviles. Enfocadas en reutilizar el código y reducir el esfuerzo del desarrollador necesario para dar vida a una aplicación. Se ha seleccionado algunas tecnologías diferentes: Onsen, NativeScript, React Native, Jasonelle, Elixir Desktop y LiveNative. Para permitir una comparación, aunque no es una lista exhaustiva. Entre los frameworks de desarrollo móvil nos encontramos con dos grandes categorías. Son tecnologías que permiten compilar a nativo la aplicación (no utilizan un navegador web como base). Aplicaciones hechas con Kotlin/Swift/C. Aplicaciones hechas con frameworks de videojuegos (Godot, SDL, Unity, Unreal). Aplicaciones que tras un proceso de compilación, ejecutan el código nativo (React Native, Native Script, LiveNative). La mayoría de las opciones utilizan o están inspiradas en tecnologías que surgieron de la web ( Javascript, CSS, HTML). Por lo tanto, en determinadas situaciones es mejor seguir con las tecnologías de desarrollador oficiales para Android o iOS. Algunas razones válidas son: La organización invirtió mucho en Kotlin o Swift Developers. Los desarrolladores son verdaderos expertos en Java, Kotlin, Objective-C o Swift. Tienen muchos años de experiencia y utilizar una de las nuevas tecnologías debería ser un proceso lento. La organización ya tiene implementados procesos de pruebas, herramientas de integración continua, mejores prácticas y otras cosas. Adoptar estas nuevas tecnologías significa rehacer todo el proceso de definición de herramientas adaptadas a las nuevas tecnologías. El uso de nuevas tecnologías debe ser sólo en proyectos experimentales o no críticos. Si no se toma con suficiente cuidado, la organización corre el riesgo de ralentizar la productividad y frustrar a los desarrolladores. Si el cliente requiere algo hecho sólo con código nativo. Los requisitos sólo se pueden realizar con SDK oficiales. Los frameworks tipo WebView permiten crear aplicaciones utilizando las tecnologías web (HTML, JS, CSS). Básicamente son un navegador web que permite utilizar algunas APIs nativas a través de puentes creados con código nativo. Son muy populares sobre todo si ya tienes una aplicación web y debes adaptarla a móvil, o para hacer prototipos rápidos. En ésta categoría están. Jasonelle Onsen Framework7 Ionic Cordova Capacitor Elixir Desktop Útil para crear aplicaciones y prototipos rápidos. Algunos prototipos requerirán integrar herramientas nativas, la web no cuenta con todas las apis que tiene una opción nativa. La experiencia de usuario web (Web UX) es diferente a UX móvil nativo. Tener en cuenta que al diseñar interfaces y experiencias de usuario, especialmente cuando se utilizan entradas seleccionadas u otros componentes. La contraparte nativa podría ser más grande y podría romper el diseño original. Pequeñas aplicaciones Prototipos rápidos Aplicaciones simples de línea de negocios (https://en.wikipedia.org/wiki/Line_of_business). Aplicaciones que utilizan mucho formularios y gráficos para la entrada y presentación de datos. Si la organización está formada principalmente por desarrolladores web, utilizar Onsen o Jasonelle podría ser la primera opción para empezar a crear aplicaciones móviles. Si usan React, entonces React Native podría ser la opción correcta. Si lo prefiere, puede elegir Angular, Framework7, Onsen, Flutter y NativeScript. Elixir Desktop y LiveViewNative son dos opciones muy buenas que permiten utilizar la potente tecnología de Elixir para el desarrollo de aplicaciones móviles. No solamente tendrás una aplicación móvil, si no también el backend completo, por lo que eligiendo la tecnologías de Elixir simplificarás en gran medida los componentes necesarios para tener una aplicación móvil robusta y preparada para el futuro. Table 1. Componentes HTML + JS + CSS Framework Web Categoría Comentario Onsen https://onsen.io/ WebView + Javascript Puedes generar tu aplicación con HTML, CSS y JS. Framework7 https://framework7.io/ WebView + Javascript Similar a Onsen, tiene más popularidad. Table 2. Wrappers Web Nativos Framework Web Categoría Comentario Jasonelle https://jasonelle.com WebView + Javascript Es un envoltorio (wrapper) para una url y convertirla a aplicación. Cordova https://cordova.apache.org/ WebView + Javascript Envoltorio (wrapper) bastante usado aunque no muy morderno. Capacitor https://capacitorjs.com/ WebView + Javascript Alternativa a Cordova más moderna. Elixir Desktop https://github.com/elixir-desktop/desktop WebView + Elixir Ejecuta un servidor web local con el framework Phoenix. Table 3. Frameworks Completos Framework Web Categoría Comentario LiveViewNative https://github.com/liveview-native Nativo + Elixir Permite generar aplicaciones nativas conectándose a un servidor con Phoenix framework. Flutter https://flutter.dev/ Nativo + Dart Permite crear aplicaciones nativas usando componentes comunes. Ionic https://ionicframework.com/ Nativo + Javascript Permite generar aplicaciones con tecnologías web. Alternativa a ReactNative. Native Script https://nativescript.org/ Nativo + Typescript Permite crear aplicaciones nativas usando Typescript y ser un puente para otras tecnologías. React Native https://reactnative.dev/ Nativo + Javascript Enfocado en generar aplicaciones para iOS y Android usando Javascript y el frontend framework React.","title":"Aplicaciones Móviles","component":"ROOT","version":"","name":"chapter","url":"/mobile/chapter.html","titles":[{"text":"Comparación entre Android e iOS","hash":"comparación-entre-android-e-ios","id":1},{"text":"Tecnologías Nativas","hash":"tecnologías-nativas","id":2},{"text":"Tecnologías Alternativas","hash":"tecnologías-alternativas","id":3},{"text":"Categorías","hash":"categorías","id":4},{"text":"Frameworks Nativos","hash":"frameworks-nativos","id":5},{"text":"¿Cuándo usar?","hash":"cuándo-usar","id":6},{"text":"Frameworks WebView","hash":"frameworks-webview","id":7},{"text":"¿Cuándo usar?","hash":"cuándo-usar-2","id":8},{"text":"¿Cúal usar?","hash":"cúal-usar","id":9}]},"33":{"id":33,"text":"","title":"","component":"ROOT","version":"","name":"punteo","url":"/mobile/punteo.html","titles":[]},"34":{"id":34,"text":"Una forma de crear aplicaciones y prototipos es utilizando las Progresive Web Apps (PWA). Esta es una tecnología que permite que las aplicaciones web sean \"instaladas\" en el smartphone como si fuesen una aplicación nativa. El principal beneficio es que son de rápida creación con las tecnologías web tradicionales y si se utilizan las herramientas adecuadas se puede lograr una experiencia de usuario muy similar a los elementos nativos. No necesitan pasar por el proceso de subir la aplicación al Appstore o Playstore, por lo que también permite mayor flexibilidad en los contenidos permitidos. Beneficios Permiten mayor rapidez y flexibilidad en contenidos y estructura de la aplicación. Utilizan tecnologías web tradicionales como Javascript, CSS y HTML. Dificultades No dan acceso a características nativas sin un Wrapper (Jasonelle, Cordova, Capacitor). Pueden ser más inconsistentes y requerir configuraciones especiales para las diferencias entre cada plataforma (Android, iOS). La respuesta depende de muchos factores, pero la gran mayoría de proyectos puede partir como una aplicación web en formato PWA y luego pasar a nativo. Se recomienda optar por nativo solo si se dispone del suficiente capital humano y expertise, o que la solución requiera de tecnologías solamente disponibles para las aplicaciones nativas. Framework7 es una de las alternativas más populares para crear PWA, ya que a diferencia de Onsen, Ionic, NativeScript o ReactNative que son pensados como una aplicación completa, Framework7 es simplemente una serie de componentes de Javascript, HTML y CSS que permiten elaborar una aplicación web con la experiencia de usuario de una aplicación móvil Android o iOS. Además de que Framework7 tiene distintas plantillas de aplicaciones y componentes ya disponibles para crear una aplicación como base en Theme Forest. Figure 1. Framework7 en ThemeForest Framework7 cuenta con dos versiones. La primera es la versión completa con todos sus componentes como el \"router\" y la versión ligera (lite) que solo cuenta con lo básico y los demás componentes como el \"router\" son proporcionados por otro framework de frontend como React, Vue, Svelte o incluso Phoenix. En las soluciones PWA pueden ocurrir ciertos problemas de experiencia de usuario o inconsistencias que no ocurrirían en nativo, por lo que siempre estar atento a como se renderiza la página en los distintos dispositivos y tamaños. En el desarrollo de aplicaciones móviles, contar con el framework adecuado puede marcar la diferencia. Existen muchas otras opciones disponibles que podrían adaptarse mejor a las necesidades del proyecto. Alternativas KonstaUI: Por los creadores de Framework7, son componentes basados en Tailwind pensados para la navegación móvil. Tabler: Un dashboard hecho en Bootstrap para las aplicaciones administrativas. El archivo manifest.json es el encargado de configurar la PWA, por ejemplo su nombre, íconos, colores, entre otras configuraciones. Para esto se debe seguir un formato específico y tenerlo en la misma ubicación del archivo index.html. Su extensión oficial es .webmanifest, por lo que podrías nombrar tu manifiesto como app.webmanifest. Si bien la extensión recomendada es .webmanifest, cualquier nombre de archivo funcionará siempre y cuando se entregue con el tipo de contenido application/manifest+json o con otro tipo de contenido válido para JSON, como text/json. Por lo tanto, muchas PWA, en especial las más antiguas, usan manifest.json. Existen herramientas para facilitar la creación de un manifest como: https://progressier.com/pwa-manifest-generator Ejemplo de manifest.json { \"theme_color\": \"#2196f3\", \"background_color\": \"#2196f3\", \"icons\": [ { \"purpose\": \"maskable\", \"sizes\": \"512x512\", \"src\": \"AppIcon.png\", \"type\": \"image/png\" }, { \"sizes\": \"512x512\", \"src\": \"AppIcon_rounded.png\", \"type\": \"image/png\" }, { \"purpose\": \"any\", \"src\": \"AppIcon@2x.png\", \"sizes\": \"1024x1024\", \"type\": \"image/png\" } ], \"orientation\": \"portrait\", \"display\": \"standalone\", \"dir\": \"auto\", \"lang\": \"es-ES\", \"name\": \"Mi App\", \"short_name\": \"Mi App\", \"description\": \"Descripción\", \"start_url\": \"https://myweb.example\", \"scope\": \"https://myweb.example/\" } https://web.dev/learn/pwa/web-app-manifest?hl=es-419","title":"Progresive Web Apps","component":"ROOT","version":"","name":"pwa","url":"/mobile/pwa.html","titles":[{"text":"¿PWA o Nativo?","hash":"pwa-o-nativo","id":1},{"text":"Framework7","hash":"framework7","id":2},{"text":"Manifest","hash":"manifest","id":3},{"text":"Referencias","hash":"referencias","id":4}]},"35":{"id":35,"text":"SUBTEL (Subsecretaría de Telecomunicaciones): es un organismo dependiente del Ministerio de Transportes y Telecomunicaciones. Su trabajo está orientado a coordinar, promover, fomentar y desarrollar las telecomunicaciones en Chile, transformando a este sector en motor para el desarrollo económico y social del país. https://www.subtel.gob.cl Existen diversas formas de clasificar a los ISP, sin embargo, la tipificación comúnmente utilizada es “TIER”, la cual se relaciona directamente con la cobertura geográfica que abarca. El número de TIER que se le asigna a cada operador depende de la importancia en cobertura que presente en la red, comenzando con los operadores TIER 1 (aquellos de mayor cobertura) y descendiendo a medida que pierden relevancia en el ecosistema IP. Una tipificación alternativa clasifica a los ISP de acuerdo a la cantidad de redes IP que transporta. Independientemente de la clasificación, los operadores que ofrecen servicio de conectividad a otros ISP, típicamente se les denomina como Carriers, Mayoristas o Wholesale. A continuación, se detalla la clasificación considerando cada tipificación posible. Son las redes de los grandes operadores globales (Global Carriers) que tienen tendidos de fibra óptica que abarcan al menos dos continentes. Desde una red TIER 1 se puede acceder a cualquier punto de Internet gracias a que es una condición necesaria para su clasificación que todos los operadores TIER 1 deben estar conectados entre sí. Se puede decir que las redes TIER 1 forman el actual “Backbone” o troncal de Internet. Algunos ejemplos de compañías que poseen redes TIER 1 son: AT&T (Estados Unidos), Orange (Francia), PCCW Global (Hong Kong), Tata Communications (India) y Verizon (Estados Unidos). Los operadores TIER 1 en general despliegan cables submarinos para interconectar continente, además de cables terrestres para cubrir el área intra-continental. Son operadores de ámbito regional que no pueden alcanzar todos los puntos de Internet, por lo tanto, necesitan conectarse a una red TIER 1. Su principal función es ofrecer servicios de conectividad a los operadores TIER 3. Algunos ejemplos de operadores TIER 2 en LATAM son: Columbus Networks, GlobeNet, Internexa, Ufinet, Silica Networks e IFX Corporation. Los operadores TIER 2 en general despliegan cables terrestres para lograr conectividad entre ciudades además de cables submarinos en caso de buscar cubrir grandes distancias. Pertenecen a los operadores que dan servicio de conexión a Internet a los usuarios finales, tales como: residenciales, empresas, universidades, entidades gubernamentales, etc. A estos se les denomina típicamente como ISP (Internet Service Provider) o proveedores de acceso a Internet. Algunos ejemplos en Latinoamérica son: Telecom Argentina, Comteco, Nuevatel, Telefónica Celular de Bolivia, Telefónica Brasil, Claro Brasil, Telefónica Chile, Claro Chile, Entel Chile, Claro Colombia, EPM Telecomunicaciones, Tigo Colombia, CNT, Conecel, Otecel, Claro Perú, Media Networks (Telefónica), Entel Perú, CO.PA.CO, Giganet, Tigo Paraguay, ANTEL, Movistar Uruguay, Telstar. En general las redes TIER 3 despliegan principalmente tendidos de fibra óptica o redes inalámbricas de larga distancia para lograr conectividad entre ciudades de un mismo país. Además, cuentan con redes de acceso orientadas tanto a cobertura masiva como a nichos específicos a través de tecnología satelital, FTTH, WiFi, Ethernet, 4G, 5G, entre otras, dependiendo del tipo de servicio que busque ofrecer. IPv4 (Internet Protocol versión 4) es el formato de dirección estándar que permite que todas las máquinas en Internet se comuniquen entre sí. IPv4 se escribe como una cadena de dígitos de 32 bits y una dirección IPv4 se compone de cuatro números entre 0 y 255, separados por puntos. IPv6 (Internet Protocol versión 6) es un estándar actualizado para identificar ordenadores en Internet. Al igual que IPv4, proporciona un identificador único a cada dispositivo, pero uno que se ha ajustado para adaptarse al creciente número de ordenadores conectados a Internet en la actualidad. IPv6 aumenta el número de direcciones IP posibles desde los 4 mil millones de IPv4 hasta los 340 billones de billones de billones. IPv6 se escribe como una cadena hexadecimal de dígitos de 128 bits, y una dirección IPv6 típica es algo así: 2001:0ab8:85a2:0000:0000:8a3e:0370:7334 IPv6 se ha optimizado para estar al día con el Internet modernizado de la actualidad. Esto significa deshacerse de ciertos componentes del sistema IPv4 que ya no son necesarios. https://www.avg.com/es/signal/ipv4-vs-ipv6 Las empresas usan las Intranets para que los empleados de los diferentes departamentos accedan la información necesaria para el desarrollo de su actividad. La información compartida puede variar según la empresa, son muy habituales las redes para compartir documentos y bases de datos de gestión. Muchas aplicaciones corporativas pueden considerarse dentro de esta definición. https://blog.dataprius.com/index.php/2019/11/22/una-intranet-que-es-y-para-que-sirve-en-la-empresa/ VPN son las siglas de Virtual Private Network. Una conexión VPN lo que te permite es crear una red local sin necesidad que sus integrantes estén físicamente conectados entre sí, sino a través de Internet. Obtienes las ventajas de la red local (y alguna extra), con una mayor flexibilidad, pues la conexión es a través de Internet y puede por ejemplo ser de una punta del mundo a la otra. https://www.xataka.com/basics/que-es-una-conexion-vpn-para-que-sirve-y-que-ventajas-tiene Una red de área local (LAN) es un grupo de computadoras y dispositivos periféricos que comparten una línea de comunicaciones común o un enlace inalámbrico a un servidor dentro de un área geográfica específica. Una red de área local puede servir a tan solo dos o tres usuarios en una oficina en casa o miles de usuarios en la oficina central de una corporación. https://www.computerweekly.com/es/definicion/Red-de-area-local-o-LAN Una red de área amplia (WAN) es la tecnología que conecta entre sí a las oficinas, los centros de datos, las aplicaciones en la nube y el almacenamiento en la nube. Se denomina red de área amplia porque se extiende más allá de un solo edificio o un gran recinto para incluir múltiples ubicaciones repartidas a lo largo de una zona geográfica concreta, o incluso del mundo. Por ejemplo, las empresas con muchas sucursales internacionales utilizan una WAN para conectar las redes de las oficinas entre sí. La WAN más grande del mundo es Internet puesto que se trata de un conjunto de muchas redes internacionales que se conectan entre sí. https://aws.amazon.com/es/what-is/wan/ Una zona desmilitarizada (demilitarized zone, DMZ) es una red perimetral que protege la red de área local (local-area network, LAN) interna contra el tráfico no confiable. Un significado común para una DMZ es una subred que se encuentra entre la Internet pública y las redes privadas. Expone los servicios externos a redes no confiables y agrega una capa adicional de seguridad para proteger los datos confidenciales almacenados en redes internas, utilizando firewalls para filtrar el tráfico. El objetivo final de una DMZ es permitir que una organización acceda a redes no confiables, como Internet, a la vez que garantiza que su red privada o LAN permanecen seguras. https://www.fortinet.com/lat/resources/cyberglossary/what-is-dmz El Protocolo TCP/IP o Transfer Control Protocol consiste en un acuerdo estandarizado sobre el que se realiza la transmisión de datos entre los participantes de una red informática. La importancia de TCP es que asegura que los mensajes son recibidos en el mismo orden en que son enviados. Por lo que es ideal para el envío de documentos como HTML y aplicaciones de Chat. https://ayudaleyprotecciondatos.es/2021/07/29/protocolo-tcp/ Debido a que el protocolo TCP, aunque proporciona seguridad, también retrasa la transmisión, David Patrick Reed publicó en 1980 su idea del protocolo de datagramas de usuario (User datagram protocol o UDP) como una alternativa más simple y rápida al protocolo estándar. El protocolo UDP es una alternativa directa al protocolo más utilizado, el TCP, aunque ambos se diferencian sobre todo en un punto: mientras que la transmisión en el protocolo TCP tiene lugar una vez se ha producido el enlace obligatorio de 3 vías (con acuse de recibo mutuo entre el emisor y el receptor, incluida la sesión de comunicación), el protocolo UDP no utiliza este procedimiento con el fin de mantener el tiempo de transmisión lo más bajo posible. Un ejemplo común es la transmición de video en vivo (VideoLlamadas, Streaming). https://www.ionos.es/digitalguide/servidores/know-how/udp-user-datagram-protocol/ El Protocolo de control de mensajes de Internet (ICMP) se utiliza para diagnosticar problemas de red en Internet. El ICMP se utiliza principalmente para determinar si los datos llegan o no a su destino a su debido tiempo. El ICMP es crucial para informar de errores y realizar pruebas, pero también se puede utilizar en ataques de denegación de servicio distribuido (DDoS) (Ping de la Muerte). https://www.cloudflare.com/es-es/learning/ddos/glossary/internet-control-message-protocol-icmp/ Nos permite revisar si un dominio ya se encuentra registrado. $ whois ninjas.cl % IANA WHOIS server % for more information on IANA, visit http://www.iana.org % This query returned 1 object refer: whois.nic.cl domain: CL [...] Nos permite ver si un servidor está respondiendo. $ ping ninjas.cl PING ninjas.cl (190.107.177.35): 56 data bytes 64 bytes from 190.107.177.35: icmp_seq=0 ttl=58 time=23.956 ms 64 bytes from 190.107.177.35: icmp_seq=1 ttl=58 time=18.623 ms 64 bytes from 190.107.177.35: icmp_seq=2 ttl=58 time=18.846 ms 64 bytes from 190.107.177.35: icmp_seq=3 ttl=58 time=18.614 ms ^C --- ninjas.cl ping statistics --- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 18.614/20.010/23.956/2.280 ms Nos permite tener trazabilidad sobre donde viajan los paquetes. $ traceroute ninjas.cl traceroute to ninjas.cl (190.107.177.35), 64 hops max, 52 byte packets 1 192.168.0.1 (192.168.0.1) 4.532 ms 2.967 ms 3.716 ms 2 * * * 3 192.168.182.186 (192.168.182.186) 14.507 ms 13.943 ms 12.952 ms 4 * * * 5 192.168.99.29 (192.168.99.29) 19.805 ms 16.914 ms 19.183 ms 6 wirenet-265831.scl.pitchile.cl (45.68.16.159) 19.812 ms 17.184 ms 18.760 ms 7 * * * 8 * * * Nos permite ver las conexiones abiertas. $ netstat Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 192.168.0.9.50417 ec2-35-163-144-2.https ESTABLISHED tcp4 0 0 localhost.63342 localhost.50416 ESTABLISHED tcp4 0 0 localhost.50416 localhost.63342 ESTABLISHED tcp6 0 0 2800:150:14a:174.50411 whatsapp-cdn6-sh.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50320 2800:3f0:4003:c0.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50319 2800:3f0:4003:c0.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50299 2800:3f0:4003:c0.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50296 2800:3f0:4003:c0.https ESTABLISHED tcp4 0 0 192.168.0.9.50294 149.154.175.54.https ESTABLISHED tcp4 0 0 192.168.0.9.50139 192.168.0.8.52148 ESTABLISHED tcp4 0 0 192.168.0.9.50159 55.65.117.34.bc..https ESTABLISHED tcp4 0 0 192.168.0.9.50157 ec2-54-71-185-24.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50155 2800:3f0:4003:c0.https ESTABLISHED tcp4 0 0 192.168.0.9.50153 ec2-54-173-95-25.https ESTABLISHED tcp4 0 0 192.168.0.9.50151 ec2-3-232-128-21.https ESTABLISHED tcp6 0 0 2800:150:14a:174.50145 whatsapp-cdn6-sh.https ESTABLISHED tcp4 0 0 192.168.0.9.50141 149.154.175.50.https ESTABLISHED tcp4 0 0 localhost.63342 localhost.49772 ESTABLISHED tcp4 0 0 localhost.49772 localhost.63342 ESTABLISHED tcp4 0 0 192.168.0.9.50968 249.195.120.34.b.443 ESTABLISHED tcp4 0 0 192.168.0.9.50933 17.57.144.40.5223 ESTABLISHED udp4 0 0 *.59915 *.* udp4 0 0 *.xserveraid *.* udp4 0 0 *.* *.* [....] Permite ver los datos de un dominio. $ nslookup > www.ninjas.cl Server: 2800:150:e:4::4 Address: 2800:150:e:4::4#53 Non-authoritative answer: www.ninjas.cl canonical name = ninjas.cl. Name: ninjas.cl Address: 190.107.177.35 Nos permite ver nuestra dirección IP local. $ ifconfig lo0: flags=8049 mtu 16384 options=1203 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=201 gif0: flags=8010 mtu 1280 stf0: flags=0<> mtu 1280 en0: flags=8863 mtu 1500 options=400 ether d4:61:9d:1d:89:90 inet6 fe80::469:56de:4f74:fe68%en0 prefixlen 64 secured scopeid 0x4 inet 192.168.0.9 netmask 0xffffff00 broadcast 192.168.0.255 inet6 2800:150:14a:174f:18f5:d82e:f403:2091 prefixlen 64 autoconf secured inet6 2800:150:14a:174f:8994:3b2d:4707:3179 prefixlen 64 autoconf temporary nd6 options=201 media: autoselect status: active [...] Wireshark nos permite analizar los paquetes enviados y recibidos. Útil para realizar ingeniería inversa sobre servidores propietarios, analizando la comunicación cliente-servidor. https://www.wireshark.org/ Permiten verificar la dirección IP que tenemos asignada. Útil para revisar si la conexión a VPN es exitosa. https://www.myip.com/ https://cmyip.co/ https://downforeveryoneorjustme.com/: Permite verificar si el servicio está disponible. https://builtwith.com/: Permite saber qué tecnologías utilizan los sistemas web. Utilizando el comando nc (netcat) podemos crear un cliente y servidor que nos permita demostrar el envío de un paquete utiizando TCP. Paso 1: Creamos nuestro servidor $ nc -l 3000 Paso 2: Creamos nuestro cliente en la ip local (en otra terminal) $ nc 127.0.0.1 3000 Paso 3: Si utilizamos el comando netstat podremos ver las conexiones abiertas. $ netstat -an | grep 3000 $ netstat -an | grep 3000 tcp4 0 0 127.0.0.1.3000 127.0.0.1.49557 ESTABLISHED tcp4 0 0 127.0.0.1.49557 127.0.0.1.3000 ESTABLISHED tcp4 0 0 *.3000 *.* LISTEN Paso 4: En la terminal del cliente escribimos un mensaje para ser enviado. $ nc 127.0.0.1 3000 hola Paso 5: Verificamos que el servidor lo recibió. $ nc -l 3000 hola Paso 6: Al abrir Wireshark podremos analizar los paquetes TCP enviados. Cuando registra un dominio, se crea un archivo de zona (conjunto de registros DNS) para ese dominio. La configuración contenida en el archivo de zona solo funciona si los servidores de nombres de su dominio apuntan al hosting, si los servidores de nombres apuntan a otra empresa, entonces el dominio estaría utilizando la configuración de DNS de la otra empresa. CNAME (Canonical Name) es un nombre de host que apunta a otro nombre de host (info.mi-dominio.net a info.mi-dominio.com). Los propietarios de dominios generalmente lo usan para apuntar un dominio o subdominio a otro nombre de dominio (los subdominios normales solo pueden apuntar a un directorio dentro de su cuenta de alojamiento). Utilizado normalmente para Github Pages. Asigna una dirección para tu dominio a una IP específica (www a 12.345.678.90). Los símbolos @ y www se utilizan para indicar el propio dominio raíz. Por ejemplo, un registro @ A para dominio.com es lo mismo que dominio.com apuntando a una determinada IP, y cuando agrega www a un registro A es lo mismo que www.dominio.com para apuntar a una determinada IP. Normalmente usado Para controlar qué servidores específicos alojan una función particular asociada con su presencia en línea (sitio web, correo electrónico, etc.). Muchos otros registros DNS requieren un registro A asociado para funcionar correctamente. El registro AAAA especifica la dirección IP (IPv6) para un host dado. Por lo general, resuelve un nombre de dominio (o apunta el nombre de dominio) a la ubicación correcta por medio de la dirección IPv6. Un nombre de host que define los servidores de recepción de correo y la prioridad en la que se usa cada servidor en caso de que un servidor no pueda recibir correo. Para utilizar un servicio de correo electrónico diferente al de su proveedor de alojamiento o para designar servidores personales como respaldos de correo en caso de que las opciones de correo predeterminadas fallen. Utilizado normalmente para servidores de correo externos. Ejemplo Google Workspace. Un Sender Policy Framework (marco de políticas de remitente), ayuda a reducir el spam y la suplantación de dominio. Para verificar la seguridad del dominio, utilícelo con servicios externos, como Google Analytics. Un nombre de host que apunta a un servidor de nombres específico (shop.tu-dominio.com a ns1.example.com). Para administrar todos los demás registros. Los cambios en los registros A, registros MX y otros registros DNS deben realizarse donde se encuentran sus servidores de nombres. Le permite definir sus propios servidores de nombres en lugar de utilizar los genéricos proporcionados por nosotros (ns1.tu-dominio.com en lugar de ns1.empresa-hosting.com). Para mantener el anonimato entre su negocio en línea y su proveedor de alojamiento, o para utilizar alojamiento en su VPS o servidor dedicado. Los registros SRV (servicio) son registros DNS personalizados que se utilizan para establecer conexiones entre un servicio y un nombre de host. Cuando una aplicación necesita encontrar una ubicación de servicio específica, buscará un registro SRV relacionado. No todas las empresas de hosting soportan esta configuración. El valor de tiempo de vida (TTL) determina cuánto tiempo un servidor DNS, como el ISP, almacena en caché el registro. Lo recomendable es dejar el TTL en su configuración predeterminada. Los cambios en los registros DNS, como los registros A, MX y CNAME, suelen tardar de 4 a 8 horas en aplicarse por completo. Enlaces https://www.ipage.com/help/article/dns-management-dns-records-explained https://bind9.readthedocs.io/en/v9.18.18/ HTTP, de sus siglas en inglés: \"Hypertext Transfer Protocol\", es el nombre de un protocolo el cual nos permite realizar una petición de datos y recursos, como pueden ser documentos HTML. Es la base de cualquier intercambio de datos en la Web, y un protocolo de estructura cliente-servidor, esto quiere decir que una petición de datos es iniciada por el elemento que recibirá los datos (el cliente), normalmente un navegador Web. Así, una página web completa resulta de la unión de distintos sub-documentos recibidos, como, por ejemplo: un documento que especifique el estilo de maquetación de la página web (CSS), el texto, las imágenes, vídeos, scripts, etc. https://developer.mozilla.org/es/docs/Web/HTTP/Overview https://bytebytego.ck.page/subscribe Se finalizó y se documentó completamente en 1996. Cada solicitud al mismo servidor requiere una conexión TCP separada. Se publicó en 1997. Una conexión TCP se puede dejar abierta para su reutilización (conexión persistente), pero no resuelve el problema de bloqueo HOL (head-of-line). El Bloqueo HOL es cuando se agota la cantidad de solicitudes paralelas permitidas en el navegador, las solicitudes posteriores deben esperar a que se completen las anteriores. Se publicó en 2015. Aborda el problema de HOL a través de la multiplexación de solicitudes, lo que elimina el bloqueo de HOL en la capa de aplicación, pero HOL todavía existe en la capa de transporte (TCP). HTTP 2.0 introdujo el concepto de \"flujos\" HTTP: una abstracción que permite multiplexar diferentes intercambios HTTP en la misma conexión TCP. El primer borrador de HTTP 3.0 se publicó en 2020. Es el sucesor propuesto de HTTP 2.0. Utiliza QUIC en lugar de TCP para el protocolo de transporte subyacente, eliminando así el bloqueo HOL en la capa de transporte. QUIC se basa en UDP. Presenta flujos como ciudadanos de primera clase en la capa de transporte. Los flujos QUIC comparten la misma conexión QUIC, por lo que no se requieren protocolos de enlace adicionales ni inicios lentos para crear otros nuevos, pero los flujos QUIC se entregan de forma independiente, de modo que en la mayoría de los casos, la pérdida de paquetes que afecta a un flujo no afecta a los demás. Protocolo utilizado para transferencia de archivos. Programas https://filezilla-project.org/ https://cyberduck.io/ El modelo de interconexión de sistemas abiertos (OSI) describe siete capas que los sistemas informáticos utilizan para comunicarse a través de una red. Fue el primer modelo estándar para comunicaciones en red, adoptado por todas las principales empresas de informática y telecomunicaciones a principios de la década de 1980. La Internet moderna no se basa en OSI, sino en el modelo TCP/IP más simple. Sin embargo, el modelo OSI de 7 capas todavía se usa ampliamente, ya que ayuda a visualizar y comunicar cómo funcionan las redes, y ayuda a aislar y solucionar problemas de red. OSI fue presentado en 1983 por representantes de las principales empresas de informática y telecomunicaciones, y fue adoptado por ISO como estándar internacional en 1984. El protocolo más popular en uso en la actualidad es el Protocolo de control de transmisión/Protocolo de Internet (TCP/IP). Actualmente, Internet y la mayoría de las intranets empresariales utilizan TCP/IP debido a su popularidad, flexibilidad, compatibilidad y capacidad de implementación en redes grandes y pequeñas. El modelo TCP/IP consta de cuatro capas en lugar de las siete del modelo OSI. Las cuatro capas del modelo TCP/IP se correlacionan con las siete capas del modelo OSI, pero las capas del modelo TCP/IP combinan varias capas del modelo OSI. Cuando se analizan los diferentes protocolos en la pila de IP, las capas de los modelos OSI y TCP/IP son intercambiables. En otras palabras, la capa de Internet y la capa de red describen lo mismo, al igual que las capas de transporte, las otras dos capas del modelo TCP/IP están compuestas por múltiples capas del modelo OSI. TCP/IP es de código abierto; sus estándares y protocolos se definen en un foro público a través del IETF (Grupo de trabajo de ingeniería de Internet (IETF)) y se publican mediante RFC (Solicitudes de comentarios). El envío de un mensaje a través de las capas varía según su dirección, es decir, el mensaje de origen tiene que empezar desde la capa superior a la inferior, y cuando llega a su destino, empieza desde la capa inferior a la superior. La capa de aplicación es la capa superior del modelo TCP/IP; la capa de aplicación define los protocolos de aplicación TCP/IP y cómo los programas host interactúan con los servicios de la capa de transporte para usar la red. La capa de aplicación incluye todos los protocolos de nivel superior, como DNS, HTTP, Telnet, SSH, FTP, TFTP, SMTP, DHCP, X Window, RDP, etc. La capa de transporte es la tercera capa del modelo TCP/IP, el propósito de la capa de transporte es permitir que los dispositivos host de origen y destino mantengan una conversación. La capa de transporte define el nivel de servicio y el estado de la conexión utilizada para transportar los datos. Los principales protocolos incluidos en la capa de transporte son TCP (Transmission Control Protocol) y UDP (User Datagram Protocol). La capa de Internet es la segunda capa del modelo TCP/IP de cuatro capas. La capa de Internet proporciona la información de la dirección de origen y destino (dirección lógica o dirección IP) para reenviar datos entre hosts a través de la red; la capa de Internet también es responsable de enrutar datagramas IP. Los principales protocolos incluidos en la capa de Internet son IP (Protocolo de Internet), ICMP (Protocolo de mensajes de control de Internet), ARP (Protocolo de resolución de direcciones), RARP (Protocolo de resolución de direcciones inversa) e IGMP (Protocolo de gestión de grupos de Internet). La capa de acceso a la red, también conocida como capa de acceso al medio, es la primera capa del modelo TCP/IP. La capa de acceso a la red define cómo se envían físicamente los datos a través de la red, incluido cómo los dispositivos físicos (hardware) señalan y envían los bits que interactúan directamente con un medio de red, por ejemplo, un cable coaxial, fibra óptica, cable de cobre de par trenzado, de forma inalámbrica, etc Los protocolos incluidos en la capa de acceso a la red son Ethernet, Token Ring, FDDI, X.25, Frame Relay, entre otros, siendo el más popular Ethernet. Ejemplificamos la comunicación por TCP/IP mediante un caso de una página web hospedada en un servidor web, la cual es transmitida hacia un cliente (navegador). Capa PDU (Protocol Data Unit) Mensajes Encapsulados Aplicación Datos Transporte Segmentos Red Paquetes Enlace de Datos Tramas Física Bits El servidor transforma la información a un formato transportable por el medio físico y se envía al cliente. Capa Descripción Aplicación Toma el contenido de la página web creado por un framework o un archivo html. Opcionalmente las encripta (SSL/TLS). Transforma los datos a binario. Se agregan los encabezados del protocolo HTTP (Ej. 200 OK) Transporte Si la página tiene un tamaño mayor a 1500 bytes, el contenido es fragmentado en paquetes más pequeños. Enviado utilizando los protocolos TCP que agregan (encapsulan) sus propios encabezados (por ejemplo puertos de origen y destino). Red Los contenidos ya no serán alterados. Entra en acción el protocolo IP y encapsula agregando sus encabezados (Ej. IP de origen e IP destino), esto se conoce como información de direccionamiento lógico. Enlace de Datos Encapsula y agrega un encabezado header (dirección MAC origen {servidor} y dirección MAC destino {cliente}) y un encabezado trailer (Detección de Errores) Física Luego de ser encapsulada por todas las capas anteriores. No se agregan más encabezados y es transformada a un medio físico como señales eléctricas, ondas electromagnéticas o señales de luz y es enviada hacia el cliente web. El cliente aplica el proceso inverso y finalmente muestra el resultado en el navegador web. Capa Descripción Física Decodifica el mensaje transformando las señales eléctricas, electromagnéticas o de luz a código binario. Enlace de Datos Desencapsula, quitando los encabezados de header y trailer respectivos. Red Desencapsula, quitando los encabezados de IP respectivos. Transporte Desencapsula, quitando los encabezados de TCP respectivos. Agrupa todos los segmentos (o fragmentos) para formar un solo archivo Aplicación Desencapsula, quitando los encabezados de HTTP. Transformando la información binaria a caracteres legibles por el ser humano y finalmente construir el sitio web en el navegador. https://ccnadesdecero.es/ https://www.youtube.com/@MasteringIT https://jmcristobal.com/2017/04/26/tcpip-model/ https://www.imperva.com/learn/application-security/osi-model/ https://www.ietf.org/ https://datatracker.ietf.org/doc/html/rfc1180 https://www.ionos.com/digitalguide/server/know-how/introduction-to-tcpip/","title":"Redes e Internet","component":"ROOT","version":"","name":"chapter","url":"/networking/chapter.html","titles":[{"text":"ISP: Internet Service Provider","hash":"isp-internet-service-provider","id":1},{"text":"Tier 1","hash":"tier-1","id":2},{"text":"Tier 2","hash":"tier-2","id":3},{"text":"Tier 3","hash":"tier-3","id":4},{"text":"Dirección IP","hash":"dirección-ip","id":5},{"text":"IPv4","hash":"ipv4","id":6},{"text":"IPv6","hash":"ipv6","id":7},{"text":"Intranet","hash":"intranet","id":8},{"text":"VPN","hash":"vpn","id":9},{"text":"LAN","hash":"lan","id":10},{"text":"WAN","hash":"wan","id":11},{"text":"DMZ","hash":"dmz","id":12},{"text":"Paquetes","hash":"paquetes","id":13},{"text":"TCP (Transmission Control Protocol)","hash":"tcp-transmission-control-protocol","id":14},{"text":"UDP (User Datagram Protocol)","hash":"udp-user-datagram-protocol","id":15},{"text":"ICMP (Internet Control Message Protocol)","hash":"icmp-internet-control-message-protocol","id":16},{"text":"Herramientas","hash":"herramientas","id":17},{"text":"whois","hash":"whois","id":18},{"text":"ping","hash":"ping","id":19},{"text":"traceroute","hash":"traceroute","id":20},{"text":"netstat","hash":"netstat","id":21},{"text":"nslookup","hash":"nslookup","id":22},{"text":"ifconfig / ip","hash":"ifconfig-ip","id":23},{"text":"Wireshark","hash":"wireshark","id":24},{"text":"Myip","hash":"myip","id":25},{"text":"Otros Servicios","hash":"otros-servicios","id":26},{"text":"Ejercicio 1: Demostración de envío de Paquetes TCP","hash":"ejercicio-1-demostración-de-envío-de-paquetes-tcp","id":27},{"text":"Registros DNS (Zona)","hash":"registros-dns-zona","id":28},{"text":"CNAME","hash":"cname","id":29},{"text":"A Record","hash":"a-record","id":30},{"text":"AAAA Record","hash":"aaaa-record","id":31},{"text":"MX Record","hash":"mx-record","id":32},{"text":"TXT/SPF Record","hash":"txtspf-record","id":33},{"text":"Name Server Record","hash":"name-server-record","id":34},{"text":"Private Name Server","hash":"private-name-server","id":35},{"text":"SRV Record","hash":"srv-record","id":36},{"text":"TTL (Time To Live)","hash":"ttl-time-to-live","id":37},{"text":"Protocolos","hash":"protocolos","id":38},{"text":"HTTP","hash":"http","id":39},{"text":"HTTP 1.0","hash":"http-1-0","id":40},{"text":"HTTP 1.1","hash":"http-1-1","id":41},{"text":"HTTP 2.0","hash":"http-2-0","id":42},{"text":"HTTP 3.0","hash":"http-3-0","id":43},{"text":"FTP (File Transfer Protocol)","hash":"ftp-file-transfer-protocol","id":44},{"text":"Modelo TCP/IP","hash":"modelo-tcpip","id":45},{"text":"Capa 4. Capa de aplicación","hash":"capa-4-capa-de-aplicación","id":46},{"text":"Capa 3. Capa de transporte","hash":"capa-3-capa-de-transporte","id":47},{"text":"Capa 2. Capa de Internet","hash":"capa-2-capa-de-internet","id":48},{"text":"Capa 1. Capa de acceso a la red","hash":"capa-1-capa-de-acceso-a-la-red","id":49},{"text":"Ejemplo: Página Web","hash":"ejemplo-página-web","id":50},{"text":"Servidor","hash":"servidor","id":51},{"text":"Cliente","hash":"cliente","id":52},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":53}]},"36":{"id":36,"text":"La criptografía juega un papel fundamental en la seguridad de aplicaciones web y móviles. Permite transmitir información de forma que solo pueda ser vista y comprendida por el emisor y el receptor designado, ayudando a que terceros no puedan visualizar o adulterar el contenido original. El hash es una forma de codificar un dato para detectar cualquier cambio de forma sencilla. El menor cambio mostrará una secuencia de caracteres totalmente distinta. El hash tiene la característica que es solo de una vía, un contenido no puede volver a su versión original si pasa por una función de hash. Los hash son usados, por ejemplo, por las criptomonedas al momento de verificar los bloques utilizando técnicas como el Árbol de Merkle. También son usados para verificar si un archivo ha sido descargado correctamente y no ha sido adulterado al verificar su hash. MD5 es un hash creado en 1991 que fue muy popular en las aplicaciones webs de los 90s y principios del 2000. Hoy en día no es recomendado para nada más que verificar la integridad de datos. Ya que con el avance tecnológico el poder de cómputo avanza hasta lograr quebrar este algoritmo, provocando que pueda ser descubierto el dato original (usando tablas de palabras) o existan colisiones, es decir dos o más datos con el mismo hash. Es un hash muy popular originado en 1993, su versión SHA-256 es utilizado por criptomonedas como Bitcoin para verificar los bloques del blockchain. Sin enmbargo no es recomendable para almacenar contraseñas, debido a que el SHA está optimizado para velocidad. Bcrypt es un hash originado en 1999, recomendado para ocultar contraseñas en las bases de datos. Tiene la característica de ser resistente a ataques de tablas de palabras (rainbow tables) y fuerza bruta, por lo que no se ve afectado por el aumento del poder de cómputo en el tiempo. Base64 es una forma de codificar binario en texto plano. Sirve por ejemplo para incrustrar imágenes en sitios web dentro del mismo archivo html. Hay que tener en cuenta de que algunos caracteres de Base64 no son compatibles con las URL, por lo que se debe ver una variante que no tenga los caracteres como / si se usará para enviar datos por url (URL Safe Base64). HMAC son las siglas de Código de Autenticación de Mensajes basado en Hash (por sus siglas en inglés, Hash-based Message Authentication Code). Se trata de un método de seguridad que utiliza una función hash criptográfica y una clave secreta compartida para verificar la integridad y la autenticidad de un mensaje. Esto significa que garantiza que el mensaje no ha sido alterado durante la transmisión y que proviene de la fuente esperada. Un JWT (JSON Web Token) es un estándar abierto para transmitir de forma segura información entre partes como un objeto JSON. Se utiliza comúnmente para la autenticación, permitiendo que el servidor verifique la identidad del usuario en cada solicitud posterior sin necesidad de consultar la base de datos repetidamente. Está compuesto por tres partes separadas por puntos: un encabezado (metadata), una carga útil (claims de datos) y una firma (para verificar la integridad del token). Ejemplode JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30 Las cookies son pequeños archivos de texto que los sitios web envían a tu navegador y que se almacenan en tu dispositivo (computadora, tablet, etc.). Se utilizan para que los sitios web \"recuerden\" información sobre tu visita, como el inicio de sesión, preferencias y actividad, para ofrecerte una experiencia más personalizada y útil. También pueden servir para registrar cómo interactúas con un sitio, lo que permite a los desarrolladores y anunciantes entender mejor a los usuarios. Una alternativa a las cookies de sesión es el uso de tokens de autenticación, el cual es más popular en situaciones de comunicación via API REST. Un token de autenticación es un dato que verifica la identidad de un usuario o dispositivo para permitirle acceder a aplicaciones, servicios o APIs sin necesidad de ingresar credenciales cada vez. Funciona como un \"pase\" digital que se genera después de un inicio de sesión exitoso y se envía en solicitudes posteriores para mantener la sesión activa. Los tokens pueden ser digitales, como los tokens web (JWT), o físicos, como los que se conectan a través de USB o se reciben en un smartphone. https://www.cloudflare.com/es-es/learning/privacy/what-are-cookies/ El intercambio de claves Diffie-Hellman es un protocolo criptográfico que permite a dos partes crear de forma segura una clave secreta compartida sobre un canal público e inseguro, sin que esa clave viaje nunca por la red. Este método se basa en la matemática de las funciones de un solo sentido y es fundamental para el cifrado de comunicaciones, ya que las claves resultantes se usan para asegurar la comunicación posterior. Es muy común verlo utilizado para verificar conexiones ssh y generar llaves únicas para las criptomonedas. En términos simples existe una llave privada que será solo conocida por el autor y una llave pública que será divulgada públicamente. Lo que se encripta con la llave privada puede ser decodificado solamente por la llave pública, lo que se encripta con la llave pública puede solamente ser decodificado por la llave privada. Esto se conoce como encriptación asimétrica.","title":"Criptografía y Autenticación","component":"ROOT","version":"","name":"cryptography","url":"/security/cryptography.html","titles":[{"text":"Hash","hash":"hash","id":1},{"text":"MD5","hash":"md5","id":2},{"text":"SHA","hash":"sha","id":3},{"text":"Bcrypt","hash":"bcrypt","id":4},{"text":"Base64","hash":"base64","id":5},{"text":"HMAC","hash":"hmac","id":6},{"text":"JWT","hash":"jwt","id":7},{"text":"Sesiones, Tokens y Cookies","hash":"sesiones-tokens-y-cookies","id":8},{"text":"Diffie-Hellman","hash":"diffie-hellman","id":9}]},"37":{"id":37,"text":"En el ciclo de desarrollo se debe resolver tempranamente los requerimientos de seguridad, regulaciones, cumplimiento y riesgos asociados. Por lo que se deben considerar en las primeras etapas de planificación del proyecto. Es adecuado seguir las recomendaciones de seguridad de la última versión del Owasp Top 10. Beneficios de considerar Reducir la probabilidad de una falla de seguridad y sus consecuencias, como pérdida de reputación comercial o multas. Evitar fisuras que permitan liberar información delicada que pueden costar millones de dólares por incidente. Para mayor información se recomiendan los siguientes recursos: https://github.com/mirego/elixir-security-advisories https://softwarepatternslexicon.com/patterns-elixir/23/2/ https://hacksplaining.com/lessons https://www.manning.com/books/grokking-web-application-security Entre los actores de la seguridad se encuentran principalmente tres y se diferencian con un \"color de sombrero\". Los hackers de sobrero negro. Son los actores maliosos, también conocidos como crackers. Trabajan para fines no éticos y crean virus, troyanos, backdoors, keyloggers, entre otras herramientas para obtener beneficios económicos o mandar mensajes políticos. Son los criminales de la ciber seguridad. Algunos contratados por organizaciones criminales e individuos de baja fibra moral. Los hackers de sombrero gris son aquellos que intentan vulnerar los sistemas pero sin el conocimiento de las organizaciones, aunque pueden ofrecerlo sus descubrimientos a la organización o al mejor postor. Están en una zona gris donde depende de la moralidad de la persona en qué área moverse. Podrían ser actores contratados por el gobierno para realizar ataques de ciber guerra. Los hackers de sombrero blanco. Son investigadores de la ciber seguridad contratados por las empresas para intentar vulnerar a los sistemas antes de que los actores maliciosos descubran vulnerabilidades. Utilizan las mismas herramientas y metodologías de los atacantes, pero siempre en pos de mejorar la seguridad de la organización para la cual trabajan. La seguridad es un tema amplio, por lo que se mostrará solo un pequeño punteo de los problemas más comunes que pueden aparecer en aplicaciones web y móviles. Se recomienda la lectura de libros especializados en el tema, como Grokking Web Application Security para profundizar. Los ataques de Cross Site Scripting (XSS) consisten en lograr subir un script ejecutable como Javascript o PHP al sitio web, debido a que los formularios no son adecuadamente protegidos, validados ni verificados en el frontend o en el backend. Por lo que un atacante puede subir código ejecutable que permita obtener acceso a datos valiosos como las contraseñas, cookies o incluso acceso al servidor al instalar puertas traseras (backdoors) dentro del código ejecutable. Los ataques de SQLInjections son similares a los XSS, pero están más orientados a ejecutar consultas SQL y realizar operaciones para obtener la base de datos o dañar la información almacenada. El ataque Man in The Middle (Hombre en el medio). Consiste en escuchar las comunicaciones entre un dispositivo y el internet. Esto es posible con que el dispositivo se conecte a una red no segura o que este utilizando un proxy que desvié las comunicaciones al computador de un tercero antes de llegar a internet. Normalmente las comunicaciones deben estar encriptadas con SSL pero no todos los sitios web y aplicaciones están correctamente configuradas. En las aplicaciones móviles para proteger de un MITM se utiliza la técnica de fijación de SSL o SSL Pinning el cual consiste en tener un certificado de SSL almacenado en la aplicación, por lo que siempre se podrá verificar la autenticidad de un certificado y no podrá ser adulterado por un proxy atacante. El envenenamiento de las dependencias o abuso de la cadena de dependencias, consiste en que las dependencias de una aplicación son adulteradas por un tercero en la fuente original. Por lo que es un ataque masivo a todas las aplicaciones que utilicen la dependencia. Esto ocurre por problemas de seguridad en el origen de las dependencias o por que los autores originales de la misma fueron atacados para robar sus contraseñas o dispositivos. Para evitar estos ataques se debe estar pendiente de cualquier vulnerabilidad en los canales oficiales y seguir las recomendaciones de seguridad del framework usado. Más Info. Es el envío de emails o links que simulan ser una página oficial como un banco o tienda. Solicita a la persona datos privados usando formularios adulterados con urls sospechosas similares a una página oficial. Hay una nueva modalidad de ataque a los desarrolladores, sobre todo los que buscan trabajo de enviar un proyecto para ser mejorado dentro del contexto de reclutamiento para una posición de trabajo. Este proyecto tiene dependencias o código malicioso que puede robar contraseñas u otras cosas importantes, como acceso a código de proyectos empresariales. Se recomienda siempre utilizar una máquina virtual con Linux (recomendanción Debian) antes de ejecutar cualquier código para un tercero, sobre todo para cuando se tenga estos procesos de reclutamiento. Desconfiar si el reclutador es de países sospechosos o insiste en ejecutar el código antes de comenzar cualquier formalidad en el proceso de reclutamiento. Cross Site Request Forgery (Falsificación de Peticiones de Sitio Cruzado) Los formularios pueden ser incrustrados en otras páginas que simulan ser la original. Si el sitio no protege sus formularios contra este ataque puede hacer que sus usuarios sean víctima de ataques MITM o clonación de datos, también el sitio puede ser sobrepasado con envíos masivos de peticiones (DDoS) o utilización de recursos para envío de SPAM y otras prácticas nocivas. Los stacks tecnológicos actuales proveen protección contra este ataque al generar un token único que se incrusta en el formulario. Este token solo puede ser validado por el backend, por lo que un atacante no podrá adulterar el formulario. El siguiente es un ejemplo utilizando el framework ProcessWire de PHP. frontend // Incluir en los campos del formulario CSRF->renderInput(); ?>\"> backend // verificar si el token es válido if($session->CSRF->hasValidToken()) { // se puede continuar } else { // el formulario es sospechoso throw new WireException('CSRF check failed!'); } Es la práctica de convencer a personas para que liberen información privada a través de engaños o manipulación emocional. Es una técnica usada normalmente por estafadores de teléfono para acceder a dineros o claves de tarjeta de crédito.","title":"Seguridad de las Aplicaciones","component":"ROOT","version":"","name":"security","url":"/security/security.html","titles":[{"text":"Actores","hash":"actores","id":1},{"text":"Black Hat Hackers","hash":"black-hat-hackers","id":2},{"text":"Grey Hat Hackers","hash":"grey-hat-hackers","id":3},{"text":"White Hat Hackers","hash":"white-hat-hackers","id":4},{"text":"Problemas de Seguridad Comunes","hash":"problemas-de-seguridad-comunes","id":5},{"text":"XSS","hash":"xss","id":6},{"text":"SQLInjections","hash":"sqlinjections","id":7},{"text":"MITM","hash":"mitm","id":8},{"text":"Dependency Chain Abuse","hash":"dependency-chain-abuse","id":9},{"text":"Phishing","hash":"phishing","id":10},{"text":"Developer Phishing","hash":"developer-phishing","id":11},{"text":"CSRF","hash":"csrf","id":12},{"text":"Social Engineering","hash":"social-engineering","id":13}]},"38":{"id":38,"text":"Las elecciones de tecnología y soluciones propuestas para completar un projecto están influenciadas por diversas decisiones tomadas por los miembros del equipo involucrados en el proyecto durante la fase de desarrollo. Las ADR ayudan a nuevos integrantes del equipo a comenzar más rápido y a documentar los factores que jugaron un rol importante para llegar a una decisión, dando contexto y respondiendo las preguntas ¿Qué?, ¿Por qué?, ¿Cómo?, ¿Cuándo? y ¿Dónde? de cada decisión ([cognitect-2011]). En la comunicación técnica no se habla mucho sobre cómo se apoya las decisiones. En muchos casos se habla sobre apoyo a las tareas. La información que las personas necesitan para completar las tareas no es unicamente la relativa a sobre cómo operar las máquinas o procesos, mas bien se necesita información que apoye la toma de decisiones. Documentar los procesos no es suficiente, ya que es necesario documentar el contexto, permitiendo a los usuarios conocer las decisiones que deben tomar, sus consecuencias como también recursos y referencias que ayudarán a determinar la decisión a tomar ([baker-2013]). Entre alguna de las ventajas de usar ADR se puede mencionar: Ayudan a reducir el número de reuniones. Permiten tener un acervo documental para tomar decisiones más complejas. Dan contexto y permiten analizar distintas opciones para encausar el proyecto al mejor camino de forma más certera. Permiten una conversación abierta a los integrantes del equipo y reducen el tiempo de explicación sobre las deciciones tomadas en un área. Recomendaciones Todas las decisiones importantes deben ser documentadas con ADR. Los miembros del equipo deben aprender el formato para crear y leer ADR. Las discuciones sobre los ADR deben ser realizadas en herramientas de colaboración que reduzcan los tiempos de reuniones al permitir que cada miembro pueda comentar asíncronamente. Los miembros del equipo deben mantener actualizados los ADR cambiando su estado, datos y metadatos según la evolución histórica de las decisiones. Los ADR son escenciales para ver la evolución histórica de un proyecto, como una central de todas las decisiones. Por lo que son vitales para planificar nuevas características y evolución futura del proyecto. Almacenarlos en un directorio llamado decisions (decisiones) dentro del código del proyecto con archivos en formato de texto plano como Asciidoc o dentro de un repositorio documental público y común (antora, wiki, confluence). Table 1. Tabla de Estados de un ADR Estado Descripción Borrador (Draft) El ADR todavía está en preparación. Propuesta (Proposed) El ADR se ha creado y está siendo discutido por los involucrados. Aceptado (Accepted) El ADR fue aceptado para su implementación. Completado (Ready) El ADR fue aceptado e implementado correctamente. Obsoleto Suave (Soft Deprecated) Un ADR completado será obsoleto. Aún no existe un ADR completado alternativo. Obsoleto Fuerte (Hard Deprecated) Un ADR completado está obsoleto y existe un ADR completado que lo reemplaza. Cerrado (Declined) El ADR no llegó a una conclusión definitiva en un tiempo determinado o no se completo lo suficiente para ser relevante en el contexto actual. Estado: Borrador Fecha Creación: 2024-03-22 (ISO 8601) Fecha Última Modificación: 2024-03-22 (ISO 8601) Participantes: (Quienes pueden opinar) @Persona1 @Persona2 @Persona3 Decisores: (Quienes toman la decisión) @Persona4 @Persona5 @Persona6 Contexto El contexto permite a los decidores realizar su análisis y aplicar su juicio. Se recomienda dar la mayor cantidad de información posible. Entre algunas cosas que puede llevar el contexto se encuentra: Breve descripción de la situación actual, Diagramas de arquitectura, flujo, estado, secuencias, componentes, entre otros. ¿Cuál es el problema a resolver?, ¿Qué factores claves pueden motivar la decisión? (complejidad, riesgos, optimización, calendarios y otras prioridades). Lista de opciones y alternativas Se presenta una lista de opciones y alternativas con sus respectivos análisis (descripción, diagramas, ventajas, desventajas, posibles consecuencias de su elección) que permitan elegir una decisión final. Decisión Se da una decisión final por los involucrados considerando todos los factores y opciones presentados en el contexto y alternativas. Observaciones y Notas Se da apreciaciones sobre posibles problemas o consideración que podrían tener con la decisión y los pasos a seguir para continuar con su implementación. Normalmente realizadas en el proceso de discución, se deben documentar en este segmento. Preguntas Abiertas Se da una lista de preguntas a tener en consideración y sus respuestas. Normalmente realizadas en el proceso de discución, se deben documentar en este segmento.","title":"Arquitecture Decision Records","component":"ROOT","version":"","name":"adr","url":"/swe/adr.html","titles":[{"text":"Plantilla","hash":"plantilla","id":1}]},"39":{"id":39,"text":"Como una forma de priorizar contratos preparados para el futuro, que reducen lo más posible cambios en el lado del cliente cuando las APIs evolucionen. Se recomienda utilizar el formato de versiones vMAJOR.MINOR.PATCH. MAJOR: Generado manualmente (número autoincremental) al momento de eliminar características marcadas como \"obsoleta de forma fuerte\". El incremento reinicia el número de MINOR y PATCH. MINOR: Generado manualmente (número autoincremental) al momento de marcar características como \"obsoleta de forma fuerte\" o cuando se desee reiniciar el número de PATCH. Se recomienda realizar una nueva versión MINOR cada 6 meses. PATCH: Generado automáticamente (número autoincremental) cuando se hace un nuevo commit a la rama main. No tiene un límite máximo definido. Queda a jurisdicción del equipo fijar los criterios para aumentar la versión MINOR o MAJOR. Las versiones MINOR y PATCH son retrocompatibles, esto quiere decir que las APIs bien definidas y documentadas en una versión seguirán funcionado en futuras versiones. Si bien la gran mayoría de los consumidores seguirán siendo compatibles con el tiempo, es imposible garantizar que cambios futuros no rompan algún contrato. En algunas situaciones específicas y poco probables se debe recurrir a romper el contrato establecido: Seguridad: Un incidente de seguridad en la implementación donde su solución requiera quebrar la retrocompatibilidad. En dicho caso se debe marcar en la documentación como seguridad y anunciar en los canales de comunicación para permitir a los consumidores actualizar raudamente sus clientes. Fallos de Comportamiendo: Cuando una API tiene un comportamiento inadecuado (resultados erróneos o similar), un consumidor que la utilice puede verse afectado, por lo que la retrocompabilidad no está garantizada. Corrección de ambigüedades o herramientas: Cuando herramientas asociadas o comportamientos no están los suficientemente claros o detallados y se deben mejorar para reducir la ambigüedad. Adicionalmente algunas características pueden ser marcadas como Experimentales, las cuales no ofrecen ninguna garantía evolutiva y pueden cambiar o ser eliminadas en su totalidad hasta que no se les considere como Estables. Se recomienda aplicar corrección de errores solamente a la versión MINOR actual. Los parches de seguridad deben ser aplicados para las últimas 5 versiones MINOR disponibles. En la siguiente tabla se muestra como el lenguaje de programación Elixir ([hexdocs-elixir-deprecations-2024]) da soporte a las distintas versiones. Table 1. Versiones soportadas en Elixir Versión de Elixir Tipo de soporte 1.17 Corrección de errores y parches de seguridad 1.16 Solamente parches de seguridad 1.15 Solamente parches de seguridad 1.14 Solamente parches de seguridad 1.13 Solamente parches de seguridad Cuando una característica se marca como obsoleta (deprecated) pasa por tres etapas: La característica tiene un estado \"obsoleta de forma suave\" (soft-deprecation). Esto significa mencionar en el archivo CHANGELOG y la documentación que la característica esta marcada como obsoleta, pero dentro del código no se mostrará ninguna alerta cuando se ejecute el código. Los desarrolladores no están obligados a realizar cambios en su código cuando una característica esta con estado \"obsoleta de forma suave\". La característica tiene un estado de \"obsoleta de forma fuerte\" (hard-deprecation). Esto significa que el uso de la característica emitira alertas anunciado su estado, además de proporcionar la alternativa o documentación correspondiente. Para que una característica pase a \"obsoleta de forma fuerte\" su alternativa DEBE existir desde por al menos TRES versiones menores (MINOR). Se recomienda a los desarrolladores migrar a la alternativa. La característica marcada como \"obsoleta de forma fuerte\" es removida solo al paso de versiones mayores. Es decir si la versión actual es v1.x solamente serán removidas en v2.x. La siguiente es una tabla de ejemplo que contiene una lista de características marcadas como obsoletas. La primera columna indica la versión donde fue marcada como \"obsoleta de forma fuerte\". La segunda columna describe brevemente la característica obsoleta y la tercera columna explica su reemplazo y en qué versión estuvo disponible. Table 2. Tabla de Obsolescencia del Lenguaje Elixir Versión Característica Obsoleta Alternativa (disponible desde) v1.17 Single-quoted charlists ('foo') ~c\"foo\" (v1.0) v1.17 left..right in patterns and guards left..right//step (v1.11) v1.17 ExUnit.Case.register_test/4 register_test/6 (v1.10) v1.17 :all in IO.read/2 and IO.binread/2 :eof (v1.13) Dentro del desarrollo de software se conoce como Alpha o Beta las versiones de productos o servicios que aún no están en su versión final y se esperan cambios parciales o totales hasta llegar a su versión definitiva. Sin embargo dichos términos no son lo suficientemente claros o consistentes para ayudar a comprender a los clientes los estados de las nuevas funciones de un sistema y como encajan los cambios en sus flujos de trabajo. Para esto y utilizando la terminología de Github ([github-blog-2024]), se proporciona la siguiente tabla que permite categorizar correctamente el estado de madurez y disponibilidad de un producto, característica o servicio. Terminología Descripción Prevista Privada No anunciado. Disponibilidad privada. Pensado para un selecto grupo de colaboradores internos o consumidores específicos. Prevista Técnica Anunciado privadamente. Disponibilidad privada. Pensado para un selecto grupo de colaboradores internos o consumidores específicos. Normalmente usado para afinar detalles y comprobar funcionalidad antes de la disponibilidad pública. Prevista Pública Anunciado públicamente. Disponibilidad pública. Puede estar abierto para todos o estar limitado a un grupo de consumidores detrás de una lista de espera. Algunos detalles pueden cambiar antes de la versión final. Disponibilidad General Versión final implementada en producción. Esta abierto a todos los consumidores que cumplan los criterios para acceder a la funcionalidad. Cambios drásticos en el producto o servicio no están permitidos ya que afectarían negativamente a los consumidores. Cualquier cambio al contrato inicial debe ser anunciado, gradual, incremental y retrocompatible dentro de las versiones MINOR y solo permitido cambios fuertes al pasar a una versión MAJOR. Cerrando (Closing Down) Señala que un producto o servicio está siendo cerrado y dejará de estar disponible en un plazo establecido. Atardecer (Sunset) El producto o característica ha llegado al fin de su ciclo de vida. No estará disponible, soportado o mantenido.","title":"Versionado y Política de Compatibilidad y Obsolescencia","component":"ROOT","version":"","name":"deprecation","url":"/swe/deprecation.html","titles":[{"text":"Características experimentales","hash":"características-experimentales","id":1},{"text":"Corrección de Errores y Parches de Seguridad","hash":"corrección-de-errores-y-parches-de-seguridad","id":2},{"text":"Política de Obsolescencia","hash":"política-de-obsolescencia","id":3},{"text":"Tabla de Obsolescencia","hash":"tabla-de-obsolescencia","id":4},{"text":"Estados de un Sistema","hash":"estados-de-un-sistema","id":5}]},"40":{"id":40,"text":"Un estilo arquitectónico establece un marco de referencia a partir del cual es posible construir aplicaciones que comparten un conjunto de atributos y características mediante el cual es posible identificarlos y clasificarlos. La arquitectura en capas es una de las más utilizadas, no solo por su simplicidad, sino porque también es utilizada por defecto cuando no estamos seguros que arquitectura debemos de utilizar para nuestra aplicación. La arquitectura en capas consta en dividir la aplicación en capas, con la intención de que cada capa tenga un rol muy definido, como podría ser, una capa de presentación (UI), una capa de reglas de negocio (servicios) y una capa de acceso a datos (DAO), sin embargo, este estilo arquitectónico no define cuantas capas debe de tener la aplicación, sino más bien, se centra en la separación de la aplicación en capas (Aplica el principio Separación de preocupaciones (SoC)). En la práctica, la mayoría de las veces este estilo arquitectónico es implementado en 4 capas, presentación, negocio, persistencia y base de datos, sin embargo, es habitual ver que la capa de negocio y persistencia se combinan en una solo capa, sobre todo cuando la lógica de persistencia está incrustada dentro de la capa de negocio. Un detalle a tener en cuenta en esta arquitectura, es que cada capa debe de ser un componente independiente, de tal forma que se puedan desplegar por separado, incluso, es habitual que estos componentes residan en servidores separados pero que se comunican entre sí. Referencias https://reactiveprogramming.io/blog/es/estilos-arquitectonicos/capas El estilo arquitectónico monolítico consiste en crear una aplicación autosuficiente que contenga absolutamente toda la funcionalidad necesaria para realizar la tarea para la cual fue diseñada, sin contar con dependencias externas que complementen su funcionalidad. En este sentido, sus componentes trabajan juntos, compartiendo los mismos recursos y memoria. En pocas palabras, una aplicación monolítica es una unidad cohesiva de código. Una falsa creencia es que, una aplicación monolítica es un caos por dentro, donde todo el código está amontonado, no hay una estructura clara y que por lo general tiene miles de clases u objetos, sin embargo, esto es solo una mala fama que se le ha dado, si bien es verdad que se podía dar el caso, recordemos que eso también se podría dar en cualquier estilo de arquitectura, pues eso dependen más bien del programador y no del estilo arquitectónico. Otra falsa creencia es creer que las aplicaciones Monolíticas son solo las aplicaciones grandísimas que hacen un montón de cosas, pero lo cierto es que un monolítico puede ser de una sola clase, o de miles, lo que define un estilo monolítico no es el número de clases, archivos o líneas de código, lo que lo define es que es autosuficiente, es decir, que tiene toda la funcionalidad para operar por sí mismo y sin depender de nadie más. En la imagen podemos apreciar cómo funciona el proceso de compilación de una aplicación Monolítica, el cual todos los paquetes junto con sus dependencias son compilados y da como resultado un solo artefacto, el cual incluye todo el código junto con las dependencias. En este ejemplo decimos que hemos creado un EXE, pero se pudo haber creado un Jar en el caso de Java o un JS en el caso de JavaScript, dependiendo la tecnología utilizada tendremos un artefacto diferente, pero al final, todos contendrán todo el código con sus dependencias. Referencias https://reactiveprogramming.io/blog/es/estilos-arquitectonicos/monolitico El estilo de Microservicios consiste en crear pequeños componentes de software que solo hacen una tarea, la hace bien y son totalmente autosuficientes, lo que les permite evolucionar de forma totalmente independiente del resto de componentes. Un Microservicios es un pequeño programa que se especializa en realizar una pequeña tarea y se enfoca únicamente en eso, por ello, decimos que los Microservicios son Altamente Cohesivos, pues toda las operaciones o funcionalidad que tiene dentro está extremadamente relacionadas para resolver un único problema. En este sentido, podemos decir que los Microservicios son todo lo contrario a las aplicaciones Monolíticas, pues en una arquitectura de Microservicios se busca desmenuzar una gran aplicación en muchos y pequeños componentes que realizar de forma independiente una pequeña tarea de la problemática general. REST Cliente Servidor Service Oriented Peer 2 Peer Event Driven MicroKernel MVC (Modelo-Vista-Controlador) es un patrón en el diseño de software comúnmente utilizado para implementar interfaces de usuario, datos y lógica de control. Enfatiza una separación entre la lógica de negocios y su visualización. Esta \"separación de preocupaciones\" proporciona una mejor división del trabajo y una mejora de mantenimiento. Algunos otros patrones de diseño se basan en MVC, como MVVM (Modelo-Vista-VistaModelo), MVP (Modelo-Vista-Presentador) y MVW (Modelo-Vista-Whatever). El patrón Modelo-Vista-Controlador (MVC), es uno de los primeros que se debería aprender. Es tan fundamental que ha sobrevivido décadas en la industria y sus ideas se han esparcido por muchas plataformas. Es el padre de muchos otros patrones derivados como MVVM (Modelo-Vista-VistaModelo), entre otros. Este patrón es esencial debido a que ayuda a responder una de las preguntas más comunes: ¿Dónde debería poner esta pieza de código?. El patrón MVC es uno de arquitectura. Entrega un mapa de la estructura de la aplicación y como su nombre dice, consiste en tres capas: modelo, vista y controlador. El siguiente diagrama de Apple muestra un poco la relación de las vistas y controladores. https://developer.apple.com/library/archive/featuredarticles/ViewControllerPGforiPhoneOS/index.html El principal problema de MVC y por qué razón nacieron otros patrones derivados es debido a la tendencia de que los controladores crecían de forma exponencial. Incluso llegando a ser llamado \"Massive View Controllers\", por la cantidad de responsabilidades que tenían que cumplir. En su origen en SmallTalk el patrón representaba tres conceptos fundamentales. El Modelo (Datos y sus validaciones), la Vista (Presentación) y el Controlador (Lógica de Negocios) que tenían una relación como se muestra en la siguiente figura. MVC en SmallTalk En la figura las líneas continuas implican una asociación directa. Las líneas discontinuas, una asociación indirecta por parte de un observador. Por lo tanto, se puede notar que el modelo desconoce la vista y el controlador, excepto indirectamente mediante notificaciones, y por lo tanto, el código del modelo es reutilizable. El controlador y la vista se vinculan al modelo, no al revés. La función de la vista y el controlador está fuertemente acoplada, pero no significa que el controlador tenga la responsabilidad sobre múltiples vistas. Apple se desvió de la versión de SmallTalk original al promover un controlador masivo para múltiples vistas y modelos, por lo que se entiende una diferencia entre SmallTalk MVC y Cocoa MVC (Apple). Esto pudo ser consecuencia de las limitaciones en lenguajes como C y Pascal que no contaban con las características de SmallTalk que facilitaban la observabilidad de propiedades. Para entender bien este patrón se debe mencionar que el Modelo es un objeto que puede ser observado y que encapsula la lógica compleja de las relaciones entre sus propiedades. Es decir, si ocurre un cambio de estado debe lanzar un evento que notifique a la vista y esta a su vez al controlador para que estos puedan actualizar sus estados internos. El modelo es independiente y no interactúa directamente con la vista o el controlador. El estado de la vista siempre debe ser el último estado del modelo. Como mínimo una vista debe ser notificada de las siguientes cosas: ¿Qué cambió?. Puede ser una notificación tan simple como \"El modelo asociado a la vista\". El nuevo valor a mostrar. Para una implementación robusta el Modelo debe ser capaz de notificar exactamente las partes que han cambiado y cómo han cambiado. De esta forma logrando ser compatible con cualquier tipo de vista presente o futura. Como este patrón es compuesto, puede llegar a ocurrir que se necesite un modelo exclusivo para la vista y su estado actual (tamaño de ventana, entre otros), el cual también debe ser observable. Es decir, una vista puede estar escuchando notificaciones de múltiples modelos, incluso uno exclusivo para su estado interno. La identificación y correcta definición del Modelo es vital para un sistema bien diseñado. Es común identificar modelos generales como \"Imagen\", pero un mejor modelo debe considerar los detalles adicionales como \"Imagen con configuraciones\". Una buena técnica es crear modelos según los parámetros de las funciones de la lógica de negocios. Un ejemplo sería un botón asociado a eliminar una selección de archivos. Ésta eliminación de archivos está vinculada a una función que requiere una cantidad de parámetros y valores específicos (como ruta del archivo) para su correcta ejecución. Entonces el Modelo asociado a esta función construiría los parámetros necesarios y sus validaciones (como que el nombre del archivo exista y no sea nulo). Ésta validación puede ser observable por la Vista para habilitar/deshabilitar el botón según si es posible eliminar o no. Éste mismo Modelo puede ser reutilizado en distintas vistas y controladores dentro de la aplicación. La capa modelo (model), es la capa que maneja los datos y la lógica de negocios, independiente de su representación visual. Define qué datos debe contener la aplicación. Si el estado de estos datos cambia, el modelo generalmente notificará a la vista (para que la pantalla pueda cambiar según sea necesario) y, a veces, el controlador (si se necesita una lógica diferente para controlar la vista actualizada). Volviendo a nuestra aplicación de lista de compras, el modelo especificará qué datos deben contener los artículos de la lista (artículo, precio, etc.) y qué artículos de la lista ya están presentes. La capa vista (view) es la que muestra la información al usuario y permite interacciones, independiente de la capa de datos. La vista define cómo se deben mostrar los datos de la aplicación. En nuestra aplicación de lista de compras, la vista definiría cómo se presenta la lista al usuario y recibiría los datos para mostrar desde el modelo. La capa controlador (controller) es la que actúa como puente entre modelo y vista. Almacena y manipula el estado de la aplicación y proporciona datos a las vista, interpreta las acciones del usuario según las reglas de negocio. El controlador contiene una lógica que actualiza el modelo y/o vista en respuesta a las entradas de los usuarios de la aplicación. Entonces, por ejemplo, nuestra lista de compras podría tener formularios de entrada y botones que nos permitan agregar o eliminar artículos. Estas acciones requieren que se actualice el modelo, por lo que la entrada se envía al controlador, que luego manipula el modelo según corresponda, que luego envía datos actualizados a la vista. Sin embargo, es posible que también se desee actualizar la vista para mostrar los datos en un formato diferente, por ejemplo, cambiar el orden de los artículos de menor a mayor precio o en orden alfabético. En este caso, el controlador podría manejar esto directamente sin necesidad de actualizar el modelo. El patrón Modelo-Vista-VistaModelo (MVVM), es un patrón de arquitectura que facilita estructurar la aplicación dividiéndola en tres roles. El modelo (model): representa los datos y lógica de negocio de la aplicación. La vista (view): Muestra la información al usuario y permite la interacción. La vista-modelo (view-model): Actúa como puente entre las capas de vista y modelo. Contiene el estado de la vista y maneja la lógica de interacciones. Al comparar los patrones de MVC y MVVM es notable la similitud y son casi idénticos. La principal diferencia radica en que MVC hace énfasis en los controladores. Encargados de manejar las interacciones para varias vistas. En cambio en MVVM la vista-modelo es un único componente que controla el comportamiento y estado de una única vista. Comúnmente representado como un componente. Otra diferencia es la forma de comunicación entre la vista y su controlador. En MVC la vista y el controlador tienen funciones definidas que son llamadas de forma imperativa para informar sobre una acción o requerir actualizar la información en la vista. Por otra parte en MVVM la vista y la vista-modelo están unidas por un mecanismo de enlazado (binding) que automáticamente informa sobre interacciones realizadas en la vista y cambios ocurridos en la vista-modelo. Estos mecanismos de enlazado varían según la plataforma. Las capas de MVC interactúan y son interpretadas dependiendo de algunos factores como: La plataforma donde se implementa. La experiencia del profesional y su interpretación del patrón. La moda del día (Los devs igual pueden seguir modas). El patrón Modelo-Vista-VistaModelo (MVVM) es principalmente una versión de MVC bajo un nombre diferente. Si bien hay ligeras diferencias, perfectamente se pueden utilizar los conceptos de MVC y MVVM de forma unificada sin problemas. El utilizar un patrón de arquitectura como MVVM con roles claramente definidos nos ayudan cumplir principios de diseño como la separación de conceptos. Lo que es una piedra angular para mantener código bien organizado, fácilmente entendible y que sus pruebas unitarias son viables de implementar. Utilizar patrones de arquitectura como MVVM es sumamente importante. A pesar de que los frameworks otorgen herramientas innovadoras para elaborar aplicaciones, si no utilizamos patrones de arquitectura el código se irá acumulando, aumentando de complejidad, para finalmente crear monolitos masivos que son difíciles de mantener y probar. El hecho de que algunos frameworks manejen automáticamente la actualización de las vistas no justifica abandonar las buenas prácticas en el desarrollo de software que han existido por décadas en múltiples plataformas. Los patrones de arquitectura como MVC y MVVM tienen su foco en aplicaciones donde principalmente tenemos interacciones de usuario (UX), pero muchas veces las aplicaciones deben comunicar con servicios externos y otros elementos que necesitan otras formas de gestionar la arquitectura de código. Para esto se recomienda utilizar patrones como los definidos en el Diseño Orientado a Dominio (Domain Driven Design) y arquitectura Hexagonal. https://developer.mozilla.org/es/docs/Glossary/MVC https://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlador https://matteomanferdini.com/mvvm-swiftui/ https://en.wikipedia.org/wiki/Separation_of_concerns https://en.wikipedia.org/wiki/Coupling_(computer_programming) https://en.wikipedia.org/wiki/Hexagonal_architecture_(software) https://en.wikipedia.org/wiki/Domain-driven_design","title":"Patrones y Arquitecturas de Software","component":"ROOT","version":"","name":"patterns","url":"/swe/patterns.html","titles":[{"text":"Arquitectura en Capas","hash":"arquitectura-en-capas","id":1},{"text":"Monolito","hash":"monolito","id":2},{"text":"Microservicio","hash":"microservicio","id":3},{"text":"Otros tipos de Arquitectura","hash":"otros-tipos-de-arquitectura","id":4},{"text":"Patrón Modelo Vista Controlador","hash":"patrón-modelo-vista-controlador","id":5},{"text":"Modelo","hash":"modelo","id":6},{"text":"Vista","hash":"vista","id":7},{"text":"Controlador","hash":"controlador","id":8},{"text":"Patrón Modelo Vista Vista-Modelo","hash":"patrón-modelo-vista-vista-modelo","id":9},{"text":"¿Diferencias entre MVC y MVVM?","hash":"diferencias-entre-mvc-y-mvvm","id":10},{"text":"La Importancia de MVC y MVVM","hash":"la-importancia-de-mvc-y-mvvm","id":11},{"text":"Más allá de MVC","hash":"más-allá-de-mvc","id":12},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":13}]},"41":{"id":41,"text":"Es un documento que brinda contexto sobre las condiciones necesarias antes de elaborar un producto o solución. La siguiente es una plantilla que permite elaborar un PRD (Product Requirement Document). Problema: ¿Qué problema o necesidad de cliente y negocio se debe resolver?. Hipótesis y supuestos: ¿Qué se espera resolver?, ¿Cuáles son los supuestos en los que la solución se basa?. ¿Qué es el proyecto?, ¿Qué no es el proyecto?, ¿Qué hace el proyecto?, ¿Qué no hace el proyecto?. Objetivos: ¿Qué se desea lograr?, ¿Cuáles son los beneficios obtenidos una vez implementada la solución?. Metas y KPI: ¿Cómo se mide el éxito?, ¿Cuál es el valor esperado que generará la funcionalidad cuando esté disponible a clientes y usuarios?, ¿De dónde se obtiene la información y cómo se hace disponible?. DND metrics: ¿Qué indicadores no se debe afectar negativamente? (Do not disturb metrics). User personas y storybords: ¿Quiénes son los usuarios?, ¿Quiénes no son los usuarios?, ¿Qué comportamiento tienen?. Usar las herramientas de \"personas\" e historias de usuario o storyboards para detallar. Flujos de negocio y operacionales: ¿Cuáles son los procesos involucrados o que son dependencia de la funcionalidad?, ¿Cuáles son las reglas de negocio y operacionales?. Info de investigación: ¿Qué conocimiento (insights) se tiene de los clientes?. Resumen de la solución: ¿Cómo se resuelve la necesidad de clientes y/o negocio?, ¿Cuál es el alcance de la solución?. Requisitos funcionales: ¿Qué funcionalidades específicas debe tener la solución tecnológica para satisfacer las necesidades descritas en el contexto y objetivos?. Incluir comportamientos, operaciones y tareas que la solución debe poder realizar. Restricciones y dependencias: Limitaciones bajo las cuales debe operar la solución, incluyendo tecnologías existentes, regulaciones y dependencias con otros sitemas o proyectos. ¿Qué restricciones presupuestarias, legales u anexas tiene la solución u organización?. Criterios de aceptación: Listado de condiciones que la solución debe cumplir para ser considerada completa y lista para su paso a producción, desde la perspectiva del usuario final y del negocio. Estas pruebas son la base del proceso de aceptación (User Acceptance Testing - UAT). Diagramas de flujo, secuencia, estado y C4, entre otros: Representación de procesos de usuario, operación y negocio implementados en la solución. Recursos (wireframes, diseño, interacciones, UI): Material de referencia de UX que definen la apariencia y la interacción del usuario con la solución, como pantallas, wireframes, prototipos, guías de estilo y especificaciones de diseño. Casos borde: ¿Existe escenarios poco comunes que deben ser considerados en el diseño y pruebas para asegurar una experiencia de usuario completa y sin errores?. Dependencias de negocio: Decisiones, aprobaciones, coordinaciones, apoyo e iniciativas de otras áreas necesarias para el éxito de la solución. Dependencias técnicas: Productos, plataformas, o servicios externos necesarios para el desarrollo, implementación y operación del producto. Estratégia de lanzamiento (release): Plan de cómo y cuándo se hará disponible la solución o funcionalidad a los usuarios, incluyendo fases de lanzamiento, comunicación y alineamiento, y manejo de versiones existentes o anteriores. Áreas impactadas para coodinación: Listado de equipos, áreas, o procesos de negocio que necesitan ser involucrados o informados sobre el lanzamiento para asegurar una puesta en marcha correcta, asegurando la continuidad operacional. Fechas y estimados: Planificación que detalla hitos clave, fechas de entrega esperada y estimaciones a grandes rasgos y generales del esfuerzo necesario para completar el desarrollo. Preguntas abiertas: Lista de interrogantes o definiciones pendientes para el avance del desarrollo. Preguntas frecuentes (FAQ): Preguntas frecuentes acerca de contexto de la iniciativa, reglas de negocio, detalles de la solución, entre otras.","title":"Documento de Requerimiento de Producto (Product Requirement Document - PRD)","component":"ROOT","version":"","name":"prd","url":"/swe/prd.html","titles":[{"text":"Contexto","hash":"contexto","id":1},{"text":"Métricas e impacto","hash":"métricas-e-impacto","id":2},{"text":"Usuarios y clientes","hash":"usuarios-y-clientes","id":3},{"text":"Solución","hash":"solución","id":4},{"text":"Puesta en marcha y lanzamiento","hash":"puesta-en-marcha-y-lanzamiento","id":5},{"text":"Preguntas y respuestas","hash":"preguntas-y-respuestas","id":6}]},"42":{"id":42,"text":"","title":"Roles","component":"ROOT","version":"","name":"roles","url":"/swe/roles.html","titles":[{"text":"Engineer Manager","hash":"engineer-manager","id":1},{"text":"Product Manager","hash":"product-manager","id":2},{"text":"Technical Lead","hash":"technical-lead","id":3},{"text":"Software Engineer","hash":"software-engineer","id":4}]},"43":{"id":43,"text":"El desarrollo de software puede ser difícil de administrar debido a los requisitos cambiantes, los avances de la tecnología y la colaboración interfuncional. La metodología del ciclo de vida del desarrollo de software ofrece un marco de administración sistemático con entregas específicas en cada etapa del proceso de desarrollo de software. Como resultado, todas las partes interesadas establecen por adelantado los objetivos y requisitos de desarrollo del software y también cuentan con una planificación para conseguirlo ([amazon-sdlc]). Los flujos superiores (Upstream) son todo el contexto anterior que ocurre en la organización para llegar a la conclusión de que el proyecto de software debe ser realizado. Ayuda a definir las preguntas: ¿Qué es el proyecto?, ¿Qué no es el proyecto?, ¿Qué hace el proyecto?, ¿Qué no hace el proyecto?. Identificar a los principales stakeholders e interesados, presupuestos, limitaciones previas, como también los encargados de gestionar los procesos de preparación y levantamiento de requerimientos. La utilización de la herramienta \"personas\" (positivas y negativas) puede ayudar identificar el público objetivo de la solución y ayudar a definir características como también evaluar las prioridades. Normalmente está definido en un \"Documento de Requerimiento de Producto\" ver anexo sobre PRD. En la etapa de preparación se debe asegurar que los involucrados estén capacitados con las habilidades y certificaciones necesarias para desarrollar código y artefactos de alta calidad de forma eficiente, reduciendo la probabilidad de un incidente en producción. Proporcionar correcto entrenamiento y capacitaciones respectivas en las prácticas internas de la empresa, como también las buenas prácticas del desarrollo de software. Proporcionar un claro mapa de crecimiento dentro de la organización para los asociados. Velar siempre por mejorar la calidad del producto. Velar por reducir las probabilidades de un incidente en producción. Configurar correctamente los equipos de trabajo, así como dar de alta en los servicios asociados y credenciales de acceso en los canales de comunicación internos. Los requerimientos no funcionales para una aplicación de negocio o servicio técnico incluyen algunos como robustez, escalabilidad, desempeño, operabilidad y otras características que la arquitectura debe soportar. Ayudan a la organización encontrar requisitos legales u otros relacionados. Mejoran la eficiencia en el desarrollo a través de requerimientos claros y estables. Reducen el costo de la arquitectura y el retrabajo de implementación, por medio de reducir las ocurrencias de diseñar y construir requerimientos erróneos. Ayudan a crear software confiable, robuzto y eficiente que satisface a los usuarios finales. Ayuda a reducir los riesgos de incidentes en producción. En el ciclo de desarrollo se debe resolver tempranamente los requerimientos de seguridad, regulaciones, cumplimiento y riesgos asociados. Reducir la probabilidad de una falla de seguridad y sus consecuencias, como pérdida de reputación comercial o multas. Evitar fisuras que permitan liberar información delicada que pueden costar millones de dólares por incidente. Seguir las recomendaciones de seguridad de la última versión del Owasp Top 10. En esta etapa se debe configurar los servicios y datos necesarios para la iteración actual del ciclo de vida del desarrollo de software. Esto significa registrar o actualizar los permisos y asignar los recursos técnicos necesarios para la operación (servidores, bases de datos, procesos de deployment, repositorios git, canales de comunicación, entre otros). También incluye la asignación de roles y datos de contacto actualizados del equipo, al igual que los datos de gestión del proyecto (creación de backlogs con herramientas de priorización de tareas y gestión de proyectos). Tener un panel de control que permita administrar el desarrollo para alcanzar una calidad de producto consistente. Preferir procesos automatizados que permitan un desarrollo más eficiente y de baja fricción. Validación que los requerimientos funcionales y los criterios de aceptación son los suficientemente comprehensivos, claros y estables para tomar decisiones de diseño y la creación de los planes de desarrollo. Evitar retrabajo costoso por requerimientos inestables y cambiantes. Asegurar que el desarrollo esté alienado con las necesidades del negocio y sus clientes. Empoderar a los desarrolladores y arquitectos a determinar si el requerimiento esta listo para ser llevado al diseño e implementación. La etapa de diseño consiste en elaborar los contratos, diagramas y documentación necesaria para cumplir los criterios de aceptación de los requerimientos funcionales y ser usados para la etapa de desarrollo. Se recomiendan las herramientas de Asciidoc (Antora Docs), PlantUML (UML), Diagrama C4 (Arquitectura) y Vega (Histogramas y gráficos) para poder documentar apropiadamente con documentación viva y de fácil actualización. Crear contratos de API de alta calidad que aseguren que las abstracciones que proporcionan ayuden a la evolución y mantención (alta cohesión, bajo acoplamiento), sean simples de usar (fácil adopción) y permitan que los desarrolladores las usen eficientemente. Asegurar que se cumplen los requerimientos funcionales y no funcionales. Priorizar contratos preparados para el futuro, que reducen lo más posible cambios en el lado del cliente cuando las APIs evolucionen. Se recomienda establecer una política de Compatibilidad y Obsolescencia programada. Ver el anexo adjunto sobre Versionado y Política de Compatibilidad y Obsolescencia. Crear APIs amigables con los desarrolladores para impulsar su adopción eficiente. Definir la arquitectura que guíe el desarrollo de la versión actual. De esta forma el desarrollo es coordinado y eficiente y los interesados (stakeholders) estén alineados con las decisiones técnicas tomadas por el equipo. Permitiendo que la organización cree planes de desarrollo y despliegue realistas y apropiados. Asegurar que los productos cumplan los requerimientos no funcionales. Mejorar la velocidad del desarollo al disminuir el tiempo enfocado en diseño. Reducir el riesgo de incidentes en producción al resolver requerimientos no funcionales críticos como disponbilidad, resiliencia, desempeño, seguridad y cumplimiento de licencias requeridas. Los contratos de API son revisados y auditados para detectar posibles mejoras o problemas que no se tomaron en consideración. Normalmente son revisados por personas externas que no elaboraron los contratos inicialmente. Un grupo de interesados clave de múltiples ámbitos que permite validar la definición a implementar para que esté alineada con el alcance y estratégica técnica y la calidad esperada. Permite reducir los tiempos de revisión posterior e implementación. Se pueden generar casos de prueba a tener en consideración. Revisados por los miembros de equipos de implementación, consumidores y otros interesados. La definición de arquitectura es revisada y auditada para detectar posibles mejoras o problemas que no se tomaron en consideración. Normalmente es revisada por personas externas que no elaboraron los contratos inicialmente. Un grupo de interesados clave de múltiples ámbitos que permite validar la definición a implementar para que esté alineada con el alcance y estratégica técnica y la calidad esperada. Permite reducir los tiempos de revisión posterior e implementación. Se pueden generar casos de prueba a tener en consideración. Revisados por los miembros de equipos de implementación, consumidores y otros interesados. Las elecciones de tecnología y soluciones propuestas para completar un proyecto están influenciadas por diversas decisiones tomadas por los miembros del equipo involucrados en el proyecto durante la fase de desarrollo. Las ADR ayudan a nuevos integrantes del equipo a comenzar más rápido y a documentar los factores que jugaron un rol importante para llegar a una decisión, dando contexto y respondiendo las preguntas ¿Qué?, ¿Por qué?, ¿Cómo?, ¿Cuándo? y ¿Dónde? de cada decisión. Ver anexo Arquitecture Decision Records. Ayudan a reducir el número de reuniones. Permiten tener un acervo documental para tomar decisiones más complejas. Dan contexto y permiten analizar distintas opciones para encausar el proyecto al mejor camino de forma más certera. Permiten una conversación abierta a los integrantes del equipo y reducen el tiempo de explicación sobre las deciciones tomadas en un área. En la fase de desarrollo e implementación, el equipo de desarrollo codifica el producto. Se analizan los requisitos para identificar tareas de codificación más pequeñas que puedan hacerse diariamente para conseguir el resultado final ([amazon-sdlc]). Las siguientes subsecciones están ordenadas para seguir los pasos necesarios para crear y validar una funcionalidad. Se construye el artefacto con las herramientas adecuadas y autorizadas, sus repositorios y dependencias. Además de seguir un plan de versionamiento y obsolescencia acordado. Ver anexo Versionado y Política de Compatibilidad y Obsolescencia. Uso de pipelines estandarizados y oficiales para construir el producto mejora la calidad del mismo con validación de artefactos consistente y profunda. Reduce el riesgo de incidentes en producción usando la administración adecuada del versionado de los artefactos construidos. Reuce el tiempo requerido para reparación de defectos usando un versionado y nomenclatura consistente. Los artefactos construidos estan almacenados de forma segura y accesibles. Los artefactos de código están almacenados y respaldados en un repositorio central, el cual tiene normas de higiene establecidas para asegurar la calidad del código que almacena. Siguiendo las buenas prácticas de Trunk Based Development. Ver anexo sobre Trunk Based Development. El desarrollo es rápido y eficiente. Los cambios están administrados correctamente. El código esta respaldado y tiene medidas de seguridad para prevenir filtraciones a terceros no deseados. Las pruebas unitarias son pruebas deterministas que prueban la ejecución de una unidad específica y discreta de la aplicación como una funcion, un método o componente de UI en total aislamiento del resto de componentes para determinar si se comporta como se espera. Verifica la funcionalidad de una unidad (método, clase, función, módulo, etc) en aislamiento. Detecta errores tempranos en el ciclo de desarrollo. Son automatizadas y rápidas de ejecutar. Una prueba funcional o de contrato es una prueba determinista que verifica que los módulos de un sub sistema estén funcionado correctamente. Las pruebas funcionales deben evitar integrar con otros sub sistemas ya que esto reduce el determinismo. Ejemplos son probar el comportamiendo de una interfaz de usuario en la UI o probar la lógica de negocio de un servicio individual por medio de su API. Valida la funcionalidad antes de integrarla con otros sub sistemas. Asegura que los contratos de API estén bien implementados y sean adecuados. Las pruebas de integración es una unidad \"sociable\" de prueba que es determinista y usada para verificar como una unidad interactúa con otras unidades sin acceder directamente a los sub sistemas externos. Valida como una unidad funcionará al ser integrada. Es la mejor forma de validar los contratos entre unidades. Se debe escribir el código usando los lenguajes y frameworks autorizados, siguiendo los estándares y la definición de arquitectura y cumpliendo los criterios de aceptación de los requisitos funcionales y no funcionales. Refactorizando el código para mejorar su calidad, reducir la deuda técnicas y asegurar que el código fuente es mantenible, es decir, que sea simple de modificar en el tiempo siguiendo los principios de alta cohesión y bajo acoplamiento. El código es consistente. El código es eficaz, efectivo, confiable, fácil de ejecutar y seguro. El código es simple de mantener y probar. El código es creado con herramientas complementarias robustas y adecuadas. El código tiene un formato estandarizado. Ejemplo: En Elixir se debe usar el comando mix format. La solución utiliza buenas prácticas como Arquitectura Hexagonal, Domain Driven Design, SOLID y Patrones de Diseño, y otras buenas prácticas relativas a la tecnología usada, según aplique al contexto de la solución. La prueba estática evalúa el código sin compilar o ejecutarlo. Esta pensada para validar las buenas prácticas y verificar la seguridad, estructura y otras posibles causas de fallas. Identifica vulnerabilidades. Verifica el uso de buenas prácticas y estándares. Identifica errores y posibles mejoras. Para Elixir se utiliza Credo. Otras tecnologías pueden usar SonarQube. Para encontrar malas prácticas y corregirlas. Se recomiendan herramientas como OWASP SCAT para encontrar vulnerabilidades. Un miembro del equipo revisa e inspecciona el código para identificar posibles mejoras o defectos a corregir, además de verificar la adherencia a los estándares de calidad de código acordados. Identificar posibles problemas tempranamente para reducir los costos de desarrollo e incrementar la velocidad del mismo. Mejorar la calidad del código y su facilidad de mantención. Reducir la frecuencia y severidad de incidentes en producción. Reducir el tiempo necesario en resolver problemas directamente. Detectar defectos que son difíciles de detectar con pruebas automatizadas. Facilitar compartir información y el aprendizaje de buenas prácticas. El sistema que se ha construido para la versión actual se compara con lo planificado y diseñado. Cualquier discrepancia es resuelta ya sea corrigiendo el artefacto o actualizando los diseños y planes iniciales. Asegura que los requerimientos no funcionales han sido cumplidos. Hace que dar soporte y mantención sea más efectivo. Previene la acumulación de deuda técnica. El despliegue (deploy) es el proceso de pasos necesarios para que el artefacto pueda ejecutarse en su entorno productivo (o de pruebas) y permita ser operado por los involucrados. Este puede ser manual o automatizado. Los sistemas utilizados por los equipos de operaciones para ejecutar todas las actividades operativas deben ser configurados y activados para el artefacto que será liberado. Esto incluye sistemas para monitoreo, alertas automáticas y administración de notificaciones para incidentes productivos. Asegura que el monitoreo esté bien configurado y funcional. Asegura que las alertas estén bien configuradas y funcionales. Asegura que los equipos de operaciones puedan notificar apropiadamente cuando un incidente es detectado. Escribir documentación y desarrollar ejemplos para operar el artefacto liberado, en una forma consistente y metódica, incluyendo como manejar las tareas esperadas, realizar escalamiento horizontal/vertical, estrategias de mitigación de fallos y pasos para lograr alcanzar los objetivos operativos y de control de incidentes (Mean time to deploy, Mean time to escalate, Mean time to recover, entre otras métricas asociadas [atlassian-incidents-metrics-2024]). Permite a los equipos conocer como realizar las tareas más comunes del sistema. Permite a los equipos conocer como responder a incidentes e identificar problemas. Permite a los equipos conocer como restaurar la aplicación en el caso de un desastre o caidas de servicio. Se deben completar todas las tareas relacionadas al despliegue (deploy) tales como: Crear un documento de registro de cambios, Versionar apropiadamente el artefacto. Desplegar el artefacto al ambiente productivo y realizar pruebas de humo. Esta es la validación final de que todas las actividades obligatorias han sido completadas. Los procedimientos de liberación (release) y retrocesos (rollbacks) están en su lugar y habilitados, los procesos y auditorias necesarias para cumplir las normas legales y licencias están listos y funcionales. Finalmente todas los procesos de gestión del cambio están correctamente seguidos y auditados. Disminuye el riesgo durante un despliegue y que los retrocesos (rollbacks) son rápidos y eficientes si son requeridos. Reduce los riesgos legales y de licencias para la organización. Mejora la calidad en la liberación de los artefactos. Las pruebas de humo (smoke test), o también conocidas como verificación de la construcción (build verification testing) o pruebas de confianza (confidence testing), es un tipo de estrategia para asegurar la calidad, el cual consiste en un conjunto no exhaustivo de pruebas enfocadas en asegurar que que las funciones más importantes del artefacto funcionan. El término \"prueba de humo\" viene de la industria del hardware donde al probar un artefacto por primera vez, si este no se prendía fuego y salía humo, se puede considerar como que su construcción fue un éxito. En la industria del software las pruebas de humo es una estrategia liviana y amplia donde todas las áreas de una aplicación (sin profundizar mucho) son probadas. Una suite de pruebas de humo pueden ser automatizadas o en combinación con un proceso manual de pruebas. Pueden ser usadas para descubrir errores de alto nivel. Si una prueba de humo falla se espera que el artefacto construido se considere inestable para mayores pruebas, hasta que la prueba de humo sea exitosa. Si una prueba de humo falla el despliegue debe fallar. Ejemplos: Prueba de conexión a la base de datos. Prueba de conexión al almacenamiento en la nube. Prueba de conexión a Kafka. Figure 1. Flujo de una prueba de humo Las pruebas punto a punto (E2E) prueban y validan que los componentes individuales y las dependencias externas del sistema funcionan adecuadamente para los casos productivos. Validan como todas las dependencias del sistema funcionan en conjunto. Simulan un escenario de producción. Se deben ejecutar de forma paralela a las demás pruebas ya que podrían tomar un tiempo mayor y retardar el proceso de construcción y despliegue. Las pruebas de desempeño son realizadas en un ambiente lo más similar a producción posible y se prueban varios tipos de interacciones con el sistema, los cuales permiten determinar cómo el sistema se comporta durante varias condiciones de carga y estrés. Son pensadas para validar que el sistema cumple con los requerimientos de desempeño a nivel de servicio. Se recomienda realizar un análisis de mapa de calor en los periodos de uso del sistema productivo. Y realizar las pruebas en el ambiente productivo oficial, dentro de una hora de baja o nula utilización con datos apropiadamente marcados que permitan ser eliminados automáticamente una vez terminadas las pruebas. Debido a sus características de servidor, no es obligatorio realizar pruebas de desempeño constantemente. Solo es recomendable hacerlas antes de cambios mayores en los sistemas o cuando se avecina una fecha especial que requiera mayores exigencias en los servidores (navidad, año nuevo, feriados nacionales). La periodicidad de estas pruebas dependerá de las necesidades de cada negocio. Prueba como se comporta el sistema en contextos progresivos de aumento de carga. Prueba como el sistema reacciona a casos de carga abruptos y masivos. Valida como el sistema escala arriba o abajo con cambios de carga. Los stakeholders validan que el sistema cumple los requerimientos y aceptan el artefacto entregado. Existe todo el registro de las pruebas realizadas, como también de los criterios que se han aceptado como cumplidos. El código y el artefacto se considerán \"terminados\" permitiendo a los desarrolladores comenzar a planificar la siguiente iteración.","title":"Etapas del Desarrollo de un Producto de Software","component":"ROOT","version":"","name":"stages","url":"/swe/stages.html","titles":[{"text":"Flujo superior (Upstream)","hash":"flujo-superior-upstream","id":1},{"text":"Preparación","hash":"preparación","id":2},{"text":"Definición de los requerimientos no funcionales","hash":"definición-de-los-requerimientos-no-funcionales","id":3},{"text":"Definición de las prácticas de seguridad y cómo cumplirlas","hash":"definición-de-las-prácticas-de-seguridad-y-cómo-cumplirlas","id":4},{"text":"Registrar los metadatos del desarrollo","hash":"registrar-los-metadatos-del-desarrollo","id":5},{"text":"Revisar los requerimientos funcionales y los criterios de aceptación","hash":"revisar-los-requerimientos-funcionales-y-los-criterios-de-aceptación","id":6},{"text":"Diseño","hash":"diseño","id":7},{"text":"Diseño de los contratos de API","hash":"diseño-de-los-contratos-de-api","id":8},{"text":"Diseño de arquitectura para la versión actual","hash":"diseño-de-arquitectura-para-la-versión-actual","id":9},{"text":"Revisión de los contratos de API","hash":"revisión-de-los-contratos-de-api","id":10},{"text":"Revisión de arquitectura para la versión actual","hash":"revisión-de-arquitectura-para-la-versión-actual","id":11},{"text":"Utilizar ADR para conducir las decisiones de arquitectura","hash":"utilizar-adr-para-conducir-las-decisiones-de-arquitectura","id":12},{"text":"Desarrollo","hash":"desarrollo","id":13},{"text":"Construcción (Build)","hash":"construcción-build","id":14},{"text":"Administración de artefactos de código","hash":"administración-de-artefactos-de-código","id":15},{"text":"Pruebas unitarias","hash":"pruebas-unitarias","id":16},{"text":"Pruebas funcionales (de contrato)","hash":"pruebas-funcionales-de-contrato","id":17},{"text":"Pruebas de integración","hash":"pruebas-de-integración","id":18},{"text":"Escritura y refactorización de código","hash":"escritura-y-refactorización-de-código","id":19},{"text":"Pruebas estáticas","hash":"pruebas-estáticas","id":20},{"text":"Revisión de código","hash":"revisión-de-código","id":21},{"text":"Validación de arquitectura","hash":"validación-de-arquitectura","id":22},{"text":"Despliegue (Deploy)","hash":"despliegue-deploy","id":23},{"text":"Configurar la infraestructura de despliegue y operaciones","hash":"configurar-la-infraestructura-de-despliegue-y-operaciones","id":24},{"text":"Crear documentación y ejemplos sobre operación del sistema","hash":"crear-documentación-y-ejemplos-sobre-operación-del-sistema","id":25},{"text":"Despliegue a producción","hash":"despliegue-a-producción","id":26},{"text":"Validación y monitoreo del despliegue a producción","hash":"validación-y-monitoreo-del-despliegue-a-producción","id":27},{"text":"Pruebas de humo (Smoke Test)","hash":"pruebas-de-humo-smoke-test","id":28},{"text":"Pruebas punto a punto (end to end, E2E)","hash":"pruebas-punto-a-punto-end-to-end-e2e","id":29},{"text":"Pruebas de desempeño (perfomance)","hash":"pruebas-de-desempeño-perfomance","id":30},{"text":"Pruebas alfa/aceptación","hash":"pruebas-alfaaceptación","id":31}]},"44":{"id":44,"text":"El proceso de pruebas de aceptación de usuario (User Aceptance Testing - UAT) para las aplicaciones o herramientas aseguran una evaluación completa y un correcto seguimiento para la resolución de problemas. Es un tipo de prueba funcional o de contrato manual que asegura que los contratos establecidos se cumplen para los casos de uso acordados. El siguiente orden permite estandarizar el proceso y dar una plantilla recomendada. Se debe entender las metas y el propósito de la herramienta, aplicación o característica de la misma y cuánto tiempo se tiene para completar la UAT. Esto incluye obtener información exacta y completa sobre lo que se quiere cumplir con la implementación de la característica, herramienta o aplicación. Determinar quiénes serán los usuarios finales de la solución. Esto incluye detallar los diferentes usuarios y roles entendiendo sus necesidades específicas. Comprender también los interesados (stakeholders) para asegurar que todas las partes involucradas son incluidas durante el proceso de UAT. Identificar los tipos de herramientas y funcionalidades que el usuario necesita. Asegurar que los usuarios tengan los accesos, permisos y herramientas en el ambiente de prueba para ejecutar la UAT. Deben estar correctamente configurados antes de iniciarla. Asegurar que todas las cuentas de prueba estén activas y puedan ser accedidas por los usuarios. Deben estar configuradas apropiadamente. Se debe verificar que todas las cuentas de prueba están configuradas con los roles y permisos necesarios. Asegurar que todas las cuentas de prueba estén configuradas y tengan acceso a las herramientas y ambientes para evitar retrasos en el proceso de pruebas. Asegurar que todo el ambiente de pruebas esté bien configurado antes de iniciar el proceso de UAT. Asegurar que las instrucciones son claras para el proceso de UAT. Esto incluye pasos detallados que necesitan ser seguidos durante el proceso de pruebas. Proporcionar direcciones claras sobre los casos de uso que se deben probar. Seguir el proceso UAT meticulosamente. Usar un sistema de colaboración y seguimiento o una herramienta para documentar el proceso, problemas y retroalimentación. Obtener y compilar todos los comentarios y retroalimentación recibidos durante el proceso de UAT. Determinar los involucrados que se beneficiarán con esta información. Normalmente sería los equipos de ingeniería, producto y proyectos. Identificar cualquier bloqueo o problema que pueda impedir el proceso de UAT. Entender la causa raíz del bloqueo o problema. Determinar posibles soluciones para eliminar los bloqueos. Identificar los equipos que necesitan ser involucrados para resolver los bloqueos. Mantener seguimiento de todo el proceso de resolución. Usar un sistema designado para monitorear el progreso. Definir los acuerdos de servicio (SLA) para las soluciones. Asegurar que el seguimiento y comunicación continua del progreso relacionado a resolver los bloqueos y cualquier retraso que hayan causado. Incorporar el aprendizaje de los bloqueos en futuros lanzamientos (releases) para prevenir incidentes similares. Establecer reuniones con los equipos de ingeniería, producto y negocio para definir el proceso de UAT. Fijar fechas y tiempos para completar el UAT y asegurar que los stakeholders están informados y alineados. Documentar todos los procesos, comentarios y resoluciones obtenidas durante el proceso de UAT. Mantener registros en una ubicación centralizada que este disponible para todos los interesados relevantes. Asegurar la comunicación continua, clara y efectiva en todo el proceso de UAT. Proporcionar actualizaciones constantes a todos los equipos involucrados en el proceso, los problemas encontrados y sus soluciones. Los stakeholders pueden dar un rechazo o una aprobación completa o condicional. Rechazo: Si existen detalles mayores que impactan de forma crítica la funcionalidad o usabilidad. Documentar todos los problemas especificados por los stakeholders y definir un plan con plazos para abordar estos incidentes. Asegurar actualizaciones constantes a los stakeholders en el progreso de resolver estos problemas obstaculizadores. Obtener una aprobación completa una vez que todas los incidentes han sido corregidas satisfactoriamente. Aprobación condicional: Si existen detalles menores que no impactan de forma crítica la funcionalidad o usabilidad. Documentar todas las condiciones especificadas por los stakeholders y definir un plan con plazos para abordar estas condiciones. Asegurar actualizaciones constantes a los stakeholders en el progreso de resolver estas condiciones definidas en la aprobación condicional. Obtener una aprobación completa una vez que todas las condiciones han sido corregidas satisfactoriamente. Aprobación completa: Todos los problemas identificados se han solucionado al aplicar los cambios necesarios. Se prepara un reporte del proceso de UAT incluyendo los comentarios recibidos y cualquier tema pendiente. Presentar un resumen a los stakeholders mostrando los resultados obtenidos y los aprendizajes. Solicitar a los stakeholders la aprobación final confirmando que la herramienta/aplicación/característica cumple con los estándares requeridos y está lista para ser lanzada a producción. La siguiente tabla muestra un ejemplo de los roles en un proceso de UAT. Table 1. Roles y responsabilidades en un proceso de UAT Rol Responsabilidades Project Manager - Asegurar que el UAT tiene objetivos claros y han sido comunicados a los involucrados. - Monitorear el proceso de UAT y asegurar que esté dentro de los plazos. - Coordinar a todos los equipos involucrados. - Preparar y presentar un reporte y resumen para la aprobación de los stakeholders. Usuarios - Participar activamente en el proceso de UAT. - Proporcionar comentarios y retroalimentación detallada de problemas encontrados y dificultades de usabilidad. Equipo de Producto - Proporcionar instrucciones claras y dar soporte al proceso de UAT. - Analizar los comentarios recibidos y priorizar las tareas para resolver problemas encontrados. Equipo de Ingeniería - Resolver cualquier bloqueo técnico y problemas técnicos encontrados durante el proceso UAT. - Resolver los problemas dentro de los acuerdos de servicio comprometidos. Equipo de Negocio - Asegurar que el proceso de UAT esté alineado con los objetivos del negocio y sus requerimientos. - Proporcionar información para ayudar a priorizar tareas y resolver problemas críticos. Stakeholders - Revisar los reportes sumarios del proceso de UAT. - Proporcionar una aprobación condicional o completa basado en las resoluciones y aprendizajes obtenidos en el proceso de UAT. Las siguientes plantillas pueden ser de utilidad al momento de realizar un proceso de UAT. La siguiente tabla muestra las personas involucradas en el proceso de UAT. Table 2. Tabla de involucrados Identificador Nombre Email Equipo y Rol El identificador interno para ser mencionado en los documentos. Normalmente usando un arroba @Persona1 Nombre de la persona Email de contacto Equipo al cual pertenece y su rol dentro del mismo. Se debe tener usuarios que puedan interactuar con todos los flujos necesarios según su rol. De preferencia que su correo pueda recibir emails, si es parte del proceso requerido. Table 3. Tabla de credenciales Rol Email Contraseña Contexto Usuario test1@ejemplo.com 1234 Detallar el contexto en el cual debe ser usada la cuenta. ¿En qué canales se debe probar?, ¿Tiene alguna configuración especial (falta de datos, casos borde)?. ¿Qué versión de la aplicación debe tener?, ¿Qué condiciones de sistema operativo debe tener?. ¿Alguna otra limitante o situación especial?. La siguiente tabla de pruebas nos da una lista de funcionalidades críticas a probar. Los usuarios no están limitados a esta lista, ya que deben probar de forma más exhaustiva, pero como mínimo se debe asegurar el buen funcionamiento y cumplimiento de los contratos críticos acordados. Table 4. Tabla de pruebas críticas Identificador Características críticas a probar Responsables Canales Un número identificador único de la prueba Detalle sobre lo que se debe probar. Una característica específica o casos borde. Adjuntar enlaces a la documentación necesaria. Persona o grupo de personas encargados de supervisar el proceso de UAT Lista de canales a los que se debe aplicar la prueba (Ejemplo: Android Mobile, Android Tablet, iOS Mobile, iOS Tablet (iPad), Web Mobile, Web PC). La siguiente tabla muestra el estado de las pruebas críticas según canal. Una vez ejecutado el proceso UAT. Table 5. Tabla de pruebas críticas por canal Identificador Responsable Estado Comentarios El identificador de la prueba crítica original Responsable de supervisar ésta prueba crítica. Estados: - Fallido: La prueba no cumple con los requisitos mínimos de aceptación. - Éxito: La prueba pasa todos los criterios de aceptación. - Condicional: La prueba pasa los criterios críticos de aceptación, pero se han encontrado detalles menores a corregir. Una lista de comentarios u observaciones realizadas por el supervisor o los involucrados para tener en consideración. La siguiente es una tabla donde se puede establecer pruebas funcionales para tener evidencias y validar que los contratos se cumplen. Normalmente destinados para servicios de nivel T0 o T1. Acción Datos Entrada Salida Esperada Resultado Estado - - - - Aceptado / Condicional / Rechazado Se recomienda tener una tabla por cada canal (Web, Android, iOS, etc) donde la aplicación será ejecutada. Table 6. Tabla de observaciones por canal Responsable Observación Comentarios Estado ¿Quién hizo la observación? @Persona1 Detalle de lo que se ha encontrado. También screenshots demostrando el problema encontrado o pasos a seguir para reproducirlo. Preguntas y personas asociadas que pueden ser relevantes para encontrar o seguir adelante en el proceso. Posibles Medidas de mitigación y contigencia. Recomendaciones para continuar. Pendiente / En revisión / Cerrado Se listan las correcciones y mejoras encontradas asociándolos al sistema de gestión de tareas (Github issues, Jira, otro). Table 7. Tabla de mejoras y correcciones Canal Detalle Ticket Prioridad Comentario Canal asociado (Android, iOS, Web, etc) Breve descripción de la corrección o mejora Enlace al ticket en el sistema de gestión de tareas Nivel de prioridad (1 alta, 2 normal, 3 baja). Un breve comentario por ejemplo: Periodo de implementación, si fue validado y aprobado, etc. Una tabla de aprobaciones de los stakeholders. Table 8. Tabla de aprobaciones Stakeholder Estado de Aprobación Comentarios Nombre del Stakeholder Estado de su aprobación (aceptado, condicional, rechazado) Comentarios y observaciones asociadas por el stakeholder para definir su estado.","title":"Pruebas de Aceptación de Usuario (User Aceptance Testing - UAT)","component":"ROOT","version":"","name":"uat","url":"/swe/uat.html","titles":[{"text":"Definir objetivos y plazos","hash":"definir-objetivos-y-plazos","id":1},{"text":"Identificar usuarios e interesados","hash":"identificar-usuarios-e-interesados","id":2},{"text":"Evaluar los requerimientos de usuario","hash":"evaluar-los-requerimientos-de-usuario","id":3},{"text":"Verificar las cuentas de prueba","hash":"verificar-las-cuentas-de-prueba","id":4},{"text":"Proporcionar instrucciones de UAT","hash":"proporcionar-instrucciones-de-uat","id":5},{"text":"Seguimiento del proceso UAT","hash":"seguimiento-del-proceso-uat","id":6},{"text":"Administrar retroalimentación","hash":"administrar-retroalimentación","id":7},{"text":"Manejar bloqueos o problemas","hash":"manejar-bloqueos-o-problemas","id":8},{"text":"Agendar reuniones","hash":"agendar-reuniones","id":9},{"text":"Documentación","hash":"documentación","id":10},{"text":"Comunicación","hash":"comunicación","id":11},{"text":"Obtener la aprobación de los Stakeholders","hash":"obtener-la-aprobación-de-los-stakeholders","id":12},{"text":"Roles y Responsabilidades","hash":"roles-y-responsabilidades","id":13},{"text":"Plantillas","hash":"plantillas","id":14},{"text":"Tabla de involucrados","hash":"tabla-de-involucrados","id":15},{"text":"Tabla de credenciales","hash":"tabla-de-credenciales","id":16},{"text":"Tabla de pruebas críticas","hash":"tabla-de-pruebas-críticas","id":17},{"text":"Tabla de estados de pruebas críticas por canal","hash":"tabla-de-estados-de-pruebas-críticas-por-canal","id":18},{"text":"Tabla de pruebas funcionales","hash":"tabla-de-pruebas-funcionales","id":19},{"text":"Tablas de observaciones","hash":"tablas-de-observaciones","id":20},{"text":"Tabla de mejoras y correcciones","hash":"tabla-de-mejoras-y-correcciones","id":21},{"text":"Tabla de aprobaciones","hash":"tabla-de-aprobaciones","id":22}]},"45":{"id":45,"text":"Es importante definir la forma de trabajar de un equipo y organización. En específico se recomienda fundamentarse en el flujo continuo para mejorar el desempeño de los equipos, permitiendo una entrega de valor constante. En la siguiente carta gantt se puede apreciar la organización de los distintos hitos en un mes. La jornada laboral no debe exceder las 40 horas semanales en total y entre 8 a 10 horas por día como máximo. Las labores se deben realizar en los siguientes horarios: Lunes a Jueves: 9:30 AM - 18:00 PM (Hora de Almuerzo 13:00 - 14:00 PM). Viernes: 9:30 AM - 13:00 PM. Zona Horaria: Hora de Santiago, Chile (UTC - 3). Nota: Las horas laborales es recomendable que se ajuste a cada zona horaria del colaborador (9 a 18 de cada país u zona horaria), siempre y cuando el colaborador tenga al menos 5 horas de solapamiento con America/Santiago para la coordinación con miembros de otras zonas horarias. Es decir, que hay un margen de al menos 3 horas de diferencia. Por lo que algunas zonas horarias que pueden ser compatibles son todas las que estén entre el rango entre UTC-0 a UTC-6. Gracias a una buena coordinación de zonas horarias y herramientas de comunicación asíncronas como Email, Zoom, Slack, Teams, Telegram, Meet, Signal u otro. El trabajo remoto es totalmente posible y recomendado. Obligar a las personas asistir a una oficina es un sin sentido retrógrado y limitante en una época de comunicación via internet para labores relacionadas a proyectos de software. Por lo que las alternativas \"híbridas\" (obligar asistir a la oficina un día a la semana o mes) solo son un gasto de tiempo y dinero para tanto colaboradores como la empresa. La empresa puede destinar un bono para permitir facilitar el trabajo remoto que cubra gastos de internet o arriendo de espacios de coworking si el colaborador desea ir a un lugar físico distinto a su hogar. Es muy poco probable que una empresa pueda lograr un entorno personalizado para cada necesidad de cada colaborador, por lo que el dinero que se ahorra en no pagar oficinas para \"trabajo\" estandarizadas, puede destinarlo a realizar actividades presenciales esporádicas (opcionales) o invertirlas en mejorar la calidad de vida de sus colaboradores (gym, salud, muebles ergonómicos) o facilitar equipos tecnológicos actualizados. Existe un rol de \"Sherpa\" que se encarga de monitorear los sistemas y resolver problemas en horarios extraordinarios. Los cuales deben ser adecuadamente compensados según acuerdo entre empleador y Sherpa. Referencia: Algunas empresas pagan un bono de 80 USD por semana de sherpaje. La carga laboral mensual es distribuida entre un equipo de 4 personas, es decir un Sherpa por semana. El rol de Sherpa es necesario para brindar un aseguramiento de la calidad de las soluciones, además de que puede asistir para resolver dudas o problemas de todos los sistemas que esté monitoreando. El Sherpa necesariamente debe ser de un miembro del equipo técnico capacitado para levantar los sistemas si estos fallan. La semana laboral es de lunes a viernes. Los sábados, domingos y festivos sólo podrán ser asignados a una labor de Sherpa para abordar situaciones de emergencia. Los viernes no está permitido enviar cambios a producción (salvo excepciones autorizadas), esto con el fin de evitar “sorpresas” durante el fin de semana donde hay menor capacidad de respuesta. Si en la semana se da el caso de un feriado del día viernes. No se podrá pasar a producción el día jueves. Es decir, el congelamiento de los pasos a producción depende de la proximidad del día hábil siguiente. Los días viernes se otorga la facilidad de salir temprano para permitir un mejor descanso de los colaboradores, así como brindar flexibilidad para realizar trámites como visitas al médico u otros menesteres. Esto permite una mejor organización de los calendarios ya que los colaboradores pedirán menor cantidad de días de ausencia justificada dentro de la semana, lo cual puede afectar al flujo del equipo. Se respetarán los días feriados nacionales del país de cada colaborador. Ya que es una oportunidad para reunirse con familiares y amigos que normalmente no se tiene tiempo en un día tradicional. Esto permite mejorar la moral y la calidad de vida de los colaboradores. Para evitar conflictos en los calendarios, la lista de feriados debe ser considerada en la calendarización respectiva y ser de público conocimiento por los miembros del equipo. Solamente las personas que habiten dentro del país podrán acceder a estos feriados. Como cualquier día feriado, se considera como un día trabajado. Si es necesario que el colaborador trabaje ese día de forma extraordinaria, se debe compensar como horas extras y coordinar previamente con el equipo, exceptuando casos de feriados “irrenunciables”. Adicionalmente a los feriados nacionales se consideran los feriados de Año Nuevo (31 de Diciembre al 1 de Enero) y Navidad (24 al 25 de Diciembre) como feriados irrenunciables y globales para toda la empresa. La empresa puede definir fechas específicas como feriados globales según estime conveniente. Por ejemplo, tomar de referencia los feriados de Estados Unidos y también sumarlos a los feriados globales. O realizar actividades recreativas como viajes y similares que permitan mejorar la moral y calidad de vida de los colaboradores. Esto se debe comunicar apropiadamente a los miembros del equipo para que estén sincronizados sus calendarios. Existe un máximo de 2 días al mes de “saldo” en el que un colaborador puede solicitar para realizar trámites, descanso mental u otros menesteres. Estos días se consideran como trabajados. Estos pueden ser solicitados como “solo mañana”, “solo tarde” o “día completo”. Es decir, el colaborador puede solicitar hasta 4 porciones de días de saldo al mes. Estos días deben ser autorizados por el líder del equipo, según acuerdo común con otros miembros del equipo y deben ser solicitados con apropiado tiempo de antelación. No son acumulables y tienen que ser solicitados explícitamente por el colaborador. El cumpleaños de cada trabajador es premiado con un día de descanso especial. El colaborador puede utilizar este día para descansar o preparar su celebración con amigos y familiares. Este día es añadido como un día de saldo adicional durante el mes de cumpleaños (para evitar posibles días de cumpleaños que caigan en fin de semana o feriados). La empresa también puede realizar algún regalo adicional como una tarjeta de prepago para alguna tienda en línea u otro detalle, aunque este detalle adicional es opcional y suplementario al día de saldo especial. Por cada seis meses de trabajo desde el inicio de su contratación, el colaborador tiene derecho a 15 días laborales (3 semanas o 21 días calendario) de vacaciones remuneradas. Estos solo pueden llegar a un máximo de 30 días de vacaciones acumuladas. Las vacaciones pueden ser solicitadas en el periodo que el colaborador estime conveniente y según común acuerdo con el equipo, correctamente coordinados con al menos un mes de antelación. Las vacaciones tienen una solicitud mínima de 10 días (2 semanas). El colaborador al llegar a 30 días de vacaciones acumulados (12 meses trabajados) debe obligatoriamente tomar vacaciones al siguiente inicio de mes de mínimo 10 días. En un mismo equipo no puede haber más de dos colaboradores en el mismo periodo de vacaciones, o una cantidad que afecte el flujo de trabajo. En los días de vacaciones la empresa se compromete a no interrumpir al colaborador con tareas o solicitudes relacionadas al trabajo. En el caso que esto ocurriese se añade un día adicional de vacaciones a sus días acumulados. En el caso de que un colaborador sea desvinculado antes de ocupar todas sus vacaciones pendientes, estos días deben ser considerados como trabajados en su finiquito, también se debe considerar un monto adicional de un mes de sueldo por año trabajado en el caso de la desvinculación (este monto adicional no aplica si el colaborador renuncia voluntariamente). La empresa respetará las leyes nacionales del país de cada colaborador para los días que corresponden a licencias médicas, maternidad o paternidad. Queda a jurisdicción de la empresa si desea añadir días remunerados adicionales para maternidad o paternidad a lo establecido nacionalmente. En casos excepcionales, se puede utilizar los horarios de Viernes de 14 a 18, los cuales no serán considerados como horas extras. Aunque debe ser debidamente justificado y coordinado con el equipo esta determinación. En casos aún más raros en que se debe superar el tiempo de jornada laboral tradicional de 8 horas diarias, se considerará como horas extras y se debe compensar según acuerdo con el empleado. Referencia: Si una persona supera las 8 horas laborales diarias, al día siguiente se le otorga la mañana completa o el día completo libre, dependiendo de la cantidad de horas utilizadas después de la jornada normal, más de 2 horas extras se considera como “mañana libre”, más de 4 horas extras se considera el “día completo libre”. Estos son días de saldo extra. Estas consideraciones solo aplican si la persona no cumple el rol de sherpa. La entrega continua (CD) es una colección de muchas prácticas recomendadas de organización y metodología ágil. Con la CD, una organización se centra en la creación de un proceso de publicación de software sencillo y automatizado. La pieza central de este proceso de publicación es un ciclo de feedback iterativo. El ciclo de feedback gira en torno a la entrega de software al usuario final lo más rápido posible, aprendiendo de la experiencia práctica e incorporando ese feedback en la siguiente publicación (Atlassian, 2025). Los siguientes hitos son los recomendados para lograr el flujo de entrega continua. Además de algunas herramientas de apoyo a dichos procesos. Kanban es un marco de trabajo muy popular a la hora de implementar un desarrollo de software ágil y de DevOps. Requiere una comunicación en tiempo real sobre la capacidad y una total transparencia del trabajo. Los elementos de trabajo se representan visualmente en un tablero de kanban, lo que permite a los miembros del equipo ver el estado de cada uno en cualquier momento. (Atlassian, 2025). Los tableros recomendados son: Backlog: Tareas sin prioridad (bajo, normal, alto, crítico) y sin procesar (añadir detalles), del tipo investigaciones (spikes), fallos (bugs), nuevas características (features), documentación (docs) o mejoras (refactoring). Refinados: Tareas con prioridad ya procesadas (mayor cantidad de detalles), pero sin asignar una épica o persona responsable. Por hacer (To-Do): Tareas pendientes que fueron asignadas a una épica, pero sin persona responsable. En Desarrollo (Doing): Tareas en To-Do que fueron asignadas a una persona responsable dentro de una épica y dentro de un mes específico. Congeladas (Freeze): Tareas que debieron ser pausadas debido alguna emergencia o que requieren esperar el resultado de otra tarea. Se pausan para evitar afectar las métricas del equipo. Como alternativa a un nuevo tablero, también pueden ser marcadas con una bandera (flagged) y un comentario para la trazabilidad del ciclo de vida. Una vez descongeladas las tareas pueden pasar a Doing o Done (si es que no se continuará con la tarea). En Revisión y Pruebas (Testing/In Review): Tareas después de ser implementadas, pasan a pruebas para ser aceptadas. Si no son aceptadas pasan a estado Doing o Freeze. Si son aceptadas pasan a estado Done. Terminadas (Done): La tarea se ha entregado y aceptado. Este estado es final, si se descubren correcciones posteriores debe ser creada una nueva tarea que hace referencia a la anterior. Este estado puede tener categorías como: aceptado, wontfix, rechazado, reemplazado. Bajo: La tarea no es prioritaria, puede ser asignada en cualquier momento según estime el equipo de desarrollo. Normal: La tarea debe ser realizada dentro de este año Q1 al Q4 (12 meses). Alto: La tarea debe ser realizada en el cuatrimestre actual (3 meses). Crítico: La tarea debe ser realizada en el mes actual (1 mes). Spike: La tarea es una investigación para determinar o detallar algo. Normalmente asociados a tareas para descubrir por qué sucede alguna situación, encontrar soluciones técnicas o simplemente una forma de investigación general. Bug: La tarea consiste en reparar un fallo encontrado, corregir un comportamiento erróneo, problemas de seguridad o cualquier reparación necesaria que se ha detectado durante el uso y funcionamiento del sistema. Feature: La tarea consiste en añadir una nueva característica o funcionalidad a la solución. Algo que no existía previamente. Docs: La tarea consiste en la elaboración de documentación tanto técnica como de nivel usuario, puede ser desde la creación de documentos como de la mejora de documentos existentes. Refactoring: La tarea consiste en mejorar el funcionamiento de una característica ya existente. Se diferencia del bug por que el comportamiento se mantiene, por ejemplo mejoras de rendimiento, simplificación del código, reemplazo u eliminación de componentes. Performance: Esta es una subcategoría opcional de refactoring, consiste en tareas relacionadas a mejorar el desempeño y rendimiento de la solución. Tests: La tarea consiste en la elaboración de pruebas o implementación de herramientas de CI/CD o relacionados al aseguramiento de calidad. Para más detalles se puede consultar el estándar de Conventional Commits. El estado de \"Done\" o terminado puede tener distintas categorías. Completed: La tarea fue completada exitosamente y cumplió todos los criterios de aceptación. Wontdo: La tarea no fue realizada por alguna razón de negocio o técnica. Normalmente puede ocurrir cuando la tarea es reemplazada por otra, si es que se detectó que la tarea es demasiado grande como para cumplir el tamaño máximo de 2 semanas. El siguiente diagrama de flujo muestra como una tarea comienza su ciclo de vida desde el Backlog, hasta su aceptación o rechazo final. Si una tarea está congelada más de dos semanas (10 días), se recomienda rechazarla y crear una nueva que la reemplace para cuando se tenga el evento que la descongele. Tareas que se salgan del ciclo de dos semanas deben ser rechazadas y crear una nueva tarea que las reemplace, con una estimación nueva, probablemente su dificultad fue superior a lo previsto y requieran una mayor granularidad. El principal objetivo es crear una cadencia dentro del equipo donde se pueda conocer y mejorar la velocidad y las estimaciones de dificultad de forma progresiva, predecible y sostenible en el tiempo. Los pasos a producción son importantes. Considerar ventanas de \"freeze\" donde no se puede enviar a producción. Normalmente cuando se espera un evento importante como fechas claves. Es un evento semanal de máximo 40 minutos donde la empresa comunica a todos los equipos cualquier novedad relevante, por ejemplo nuevos clientes o colaboradores, planes futuros, felicitaciones a los equipos por un proyecto exitoso. Es una instancia opcional pero recomendada. Normalmente agendado para los días viernes por la mañana. Es una reunión diaria donde el equipo comunica el estado general de avance a los interesados y si han encontrado algún bloqueo o se necesita apoyo adicional para completar una tarea. Normalmente es guiada por el Sherpa de la semana preguntando a cada miembro su estado y moviendo las tarjetas de Kanban a su categoría respectiva. Debe durar 15 minutos como máximo (dependiendo de la cantidad de personas dentro del equipo, recomendado máximo 5 personas). Con un máximo de 3 minutos por persona para decir su estado, mayores detalles en cada tarea se deben coordinar en una instancia de reunión aparte. Pasa también tareas del Doing a Testing o Done. Adicionalmente se puede tener una reunión corta de estado de avance al finalizar el día para cualquier eventualidad que lo requiera, siempre y cuando no supere la carga laboral total del equipo. La Épica (Epic) está separada en cuatro por año. Son metas a cumplir cada tres meses. Q1 (Enero - Marzo), Q2 (Abril - Junio), Q3 (Julio - Septiembre), Q4 (Octubre - Diciembre). El aseo de épica consta de alinear las tareas a realizar para cumplir con los objetivos organizacionales y otras prioridades detectadas durante cada cuatrimestre. El aseo de épica se debe realizar una vez al mes el día lunes (o el primer día hábil del mes) para poder detectar con suficiente tiempo cualquier desviación de cronograma y evitar corrupciones en el alcance. Es una reunión realizada con todo el equipo y debe durar máximo 1 hora. Guiado normalmente por el project manager. Se realiza una vez por semana, normalmente el día martes por la mañana. El equipo selecciona tareas del Backlog y las refina (agregar detalles, estimación de dificultad aproximada, analizar posibles interdependencias y determinar si se necesita mayor información para ser realizada) para ser pasados a la lista de tareas refinadas. Además de las tareas del Backlog, el refinamiento también puede ser para priorizar tareas de la lista de tareas refinadas a la lista de tareas por hacer (To-Do) o mejorar el refinamiento de las tareas ya refinadas. También se puede determinar la lista de tareas que no se realizarán por cambio de prioridades del proyecto. El tiempo estimado de esta reunión es de 1 hora. Guiado normalmente por el sherpa semanal de turno o el project manager. Realizado una vez por semana los días lunes, reemplaza a la Daily del lunes. Se utiliza para priorizar las tareas asignadas semanalmente por el equipo. Es guiada por el project manager o sherpa de turno. El objetivo es priorizar las tareas del To-Do y pasarlas a Doing o tareas del Testing a Done. También es ideal para coordinar cualquier necesidad de los miembros del equipo como no estar durante algún día de la semana, por ejemplo con días de saldo u otra eventualidad a considerar. La coordinación semanal no debería tomar más de 40 minutos. Realizada quincenalmente los días miércoles. Es una oportunidad de revisar las métricas de seguimiento en el equipo para detectar cualquier anomalía o realizar correcciones detectadas en los plazos y cargas laborales acordados. También es una oportunidad de evaluar la moral del equipo y detectar cualquier problema emocional que pudiese afectar al rendimiento general del proyecto. La evaluación no debería tomar más de una hora. Es guiada por el project manager. Responder las preguntas ¿Cómo te sientes?, ¿Qué ha sido lo más difícil hasta ahora?, ¿Qué podríamos hacer para mejorar?, entre otras. La evaluación de métricas también puede ser usada para realizar una entrega parcial o total de los avances presupuestados para el mes. Realizada el último día jueves hábil del mes. Consiste en evaluar las tareas realizadas durante el mes y determinar si se han cumplido las expectativas tanto de estimaciones, calidad y otras métricas para poder considerar dichos conocimientos en futuras iteraciones. También es una buena oportunidad para gestionar cualquier cambio dentro del way of work establecido, herramientas y necesidades encontradas durante el mes. Como se puede apreciar en los hitos y herramientas, existe un plazo mínimo de dos semanas (quincenal) para la revisión de los entregables. Es decir, un entregable no puede tomar más de dos semanas de plazo. Por lo que se debe subdividir si su complejidad es mayor a dos semanas. La serie fibonacci es la recomendada para analizar la dificultad de los entregables: 1, 3, 5, 8. Complejidad Nivel Comentario 1 Bajo La tarea puede ser realizada en un día laboral o menos. 3 Normal La tarea puede ser realizada en una semana (5 días laborables) o menos. 5 Elevado La tarea puede ser realizada en dos semanas (10 días laborables) o menos. 8 Imposible La tarea debe subdividirse y refinarse con mayor granularidad. No es posible realizarla dentro de un plazo de dos semanas. Se estima que el nivel de dificultad 1 equivale en promedio entre 1 a 5 horas de trabajo reales (un día laboral, descontando una hora de almuerzo y una hora de reuniones calendarizada diaria, y una hora de buffer para cualquier inconveniente presentado). Por lo que un ingeniero capacitado debería poder tomar entre 1 a 2 entregables de complejidad baja por día. Asumiendo que la cantidad de horas totales es 40 horas a la semana, pero 25 horas de trabajo real asignado al avance de las tareas comprometidas. La carga laboral debe considerar las horas de reuniones, las horas de colación y las horas disponibles para el avance de cada tarea. La siguiente tabla muestra la equivalencia aproximada entre complejidad y horas necesarias para completarla. Complejidad Horas Estimadas 1 1 a 5 horas (1 día) 3 6 a 25 horas (2 a 5 días) 5 26 a 50 horas (6 a 10 días) La siguiente tabla muestra las posibles combinaciones de carga laboral para un ingeniero capacitado dentro de una semana de 25 horas reales de trabajo. Considerando los valores máximos de horas disponibles por tarea. Combinación Comentario 5 entregables nivel 1 El ingeniero debe ser capaz de entregar 5 tareas nivel 1, si no logra esto quiere decir que las tareas fueron mal estimadas y eran de un nivel superior. (Total de 25 horas a la semana) 2 entregables nivel 3 (parcial) El ingeniero debería ser capaz de trabajar en dos entregables nivel 3 a la semana, pero uno de ellos será completado parcialmente. (Total de 25 horas a la semana). 1 entregable nivel 5 (parcial) El ingeniero debiese ser capaz de avanzar en una tarea nivel 5, aunque solo un avance parcial por semana. (Total de 25 horas a la semana, por dos). 1 entregable nivel 3 y 2 entregables nivel 1 Asumiendo que el entregable nivel 3 sea menor a 5 días (15 horas), se puede combinar con entregables nivel 1. (10 horas). Un ingeniero del equipo de desarrollo puede trabajar en uno o varios proyectos a la vez (aunque lo ideal es siempre un proyecto a la vez), siempre y cuando la cantidad de esfuerzo no supere el máximo de 25 horas laborales reales en conjunción con todos los proyectos que participa. Sin embargo existe un castigo de tiempo al cambiar el contexto. Es probable que las tareas necesiten de mayor cantidad de horas para ser completadas. Se recomienda no más de uno o dos cambios de contexto al día. Por ejemplo en las mañanas puede avanzar en tareas asignadas al proyecto A y en la tarde solamente a tareas asignadas al proyecto B. O también y según prioridades lunes y martes dedicado al proyecto A y miércoles, jueves dedicado al proyecto B. Todo cambio de contexto debe ser coordinado con antelación en el hito de Team Alignment, no es recomendable realizar un cambio de contexto en una semana ya calendarizada y priorizada, a menos que sea una real emergencia. Todo cambio de contexto debe ser avisado al EM para permitir organizar y priorizar la carga semanal. Para evitar que el alcance se corrompa, generando retrasos, disminución de la calidad de los entregables, realización de tareas no prioritarias o aumento de costos por retrabajo. Las tareas asignadas deben pasar siempre por el proceso de backlog → refinamiento → todo, lo que permitirá analizar la pertinencia de las tareas, su dificultad y relevancia para la solución. Algunas tareas pueden ser canceladas o modificadas según el equipo de desarrollo, el PO y el EM estimen convenientes antes de que sean asignadas dentro de una épica determinada. Esto quiere decir que la presentación de los cambios solicitados por el cliente o los stakeholders tienen un plazo mínimo de dos semanas para ser presentados un avance de estado en el hito de Metrics Review. Cualquier cambio que requiera una investigación de factibilidad o aprendizaje del uso de una tecnología en específico, debe ser considerado como una tarea del tipo spike que permita realizar dicha investigación. Los siguientes roles pueden estar presentes en un equipo de desarrollo. Es recomendable que un equipo de desarrollo tenga como máximo 6 personas (4 devs/ux, 1 PO y 1 EM). Cómo mínimo lo recomendable es 4 personas (3 devs/ux y 1 EM/PO), aunque puede llegar a ser viable (según dificultad del proyecto y tiempo disponible) una cantidad mínima de (1 dev/ux y 1 EM/PO). Rol Descripción Responsabilidades Product Owner (PO) Encargado de comunicación con el cliente. Permite conocer el feedback del cliente y determinar las características que el producto debe tener para satisfacer las exigencias y necesidades del cliente. Reuniones directas con el cliente para presentar avances y obtener feedback. Determinar, corregir y aceptar las soluciones propuestas por el equipo. Comunicar al cliente limitaciones y propuestas de solución según limitaciones encontradas. Engineer Manager (EM) Encargado de interactuar con el Product Owner y dirigir el proyecto. Es un ingeniero capacitado tanto en tecnología como en gestión de proyectos. No participa en la elaboración del producto directamente, pero sí ofrece labores de coordinación, priorización y resolución de conflictos o bloqueos que presente el equipo de trabajo. También es el encargado de entrevistar a posibles candidatos para unirse al equipo de trabajo o solicitar movimientos y cambios de colaboradores dentro del equipo. Coordinar con Product Owner para determinar prioridades de tareas e impacto. Coordinar con Tech Lead para definir posibles decisiones técnicas. Solucionar bloqueos y asumir responsabilidad por las decisiones tomadas por el equipo. Definir los miembros del equipo, como también sus responsabilidades y prioridad de tareas. Establece procesos, métricas y ayuda a la gestión general del proyecto. Tech Lead (TL) Ingeniero principal. Es el ingeniero con mayor experticia y conocimiento de la solución o producto. Junto al Engineer Manager toman decisiones técnicas sobre la arquitectura, diseño y elecciones técnicas sobre el desarrollo de la solución. Principal ingeniero de desarrollo. Lidera al equipo técnico, ofreciendo apoyo en resolver problemas técnicos. Toma decisiones de arquitectura junto al Engineer Manager. Asignado a las tareas de mayor dificultad. Alta responsabilidad. Puede apoyar al Engineer Manager para la contratación de nuevos colaboradores. Coordinar con el Product Owner y Engineer Manager sobre priorización de tareas y análisis de factibilidad. Dev Team Member (DEV) Ingeniero del equipo de desarrollo. Desarrollar las características asignadas semanalmente. Elaboración de documentación y otros artefactos relacionados. Participar junto al Tech Lead de completar y aportar en la definición de alternativas de solución para el producto. UI/UX Team Member (UX) Diseñador gráfico del equipo de desarrollo. Puede también ser suplido por un miembro del equipo de Dev con principalmente tareas de diseño de interfaces. Elaboración de interfaces gráficas y soluciones de usabilidad para los sistemas y productos de software solicitados. Coordinación junto al Product Owner para implementación de la retroalimentación. Interesados (Stakeholders) Los interesados son cualquier otra persona con interés en que el proyecto sea elaborado. La estrategia comunicacional con ellos es a través de reportes escritos y reuniones de estado (metrics review). Aportar feedback al PO y al EM sobre otras consideraciones adicionales que el proyecto debe tener. Proporcionar recursos que el equipo de desarrollo necesite, tanto de información como de adquisiciones. Acordar con el PO y EM restricciones de plazos e hitos a cumplir dentro de límites razonables de la calendarización y esfuerzo estimado. Toda solicitud de cambio de un interesado debe pasar por la aprobación del PO primero y comunicada al EM. Para permitir una mejor comunicación entre los miembros del equipo y todos los interesados. Se recomiendan los siguientes canales, los cuales pueden ser implementados dentro de cualquier plataforma de colaboración como Slack, Teams, Zulip, Mattermost, entre otras. Adicionalmente se recomienda la presencia de un chatbot que permita automatizar ciertas operaciones, tanto de gestión del canal como de facilidad para realizar tareas rutinarias. Para permitir mejor la separación de los canales, se definirán los siguientes conceptos: Proyecto: El proyecto es una solución compuesta por uno o más productos de software. Producto: El producto de software es un elemento específico como backend, frontend o varios subproductos combinados. Esto depende de la organización y el equipo de desarrollo que elementos son considerados como un producto. Artefacto: El artefacto es un componente del producto, puede ser código, documentación o herramienta asociada. Los canales conversacionales son necesarios para ayudar en la coordinación de distintos colaboradores e interesados. Queda a criterio de la empresa determinar si se necesita otros adicionales, pero como mínimo se recomiendan los siguientes: Canal General del Proyecto (#): En este canal estarán los EM, los PO, los Stakeholders y si es viable también un representante directo del cliente. Este es un canal para discutir eventos relacionados al proyecto como hitos, reuniones o detalles necesarios que afecten a todos los equipos del proyecto. Canal de Todos los Equipos de Desarrollo del Proyecto (#-devs): Este canal estarán solamente los equipos asociados al desarrollo del proyecto, los stakeholders y los PO. Puede haber miembros de equipos distintos para backend, frontend, qa, etc. Normalmente utilizado para compartir novedades y lineamientos pertinentes a todos los equipos relacionados al proyecto en específico. Son todos los equipos asociados a varios productos. Por lo que también sirve como contacto principal entre los distintos equipos para solicitar información adicional. Canal de Un Equipo en Específico (#): Este canal solo estarán los miembros del equipo de desarrollo y su EM respectivo. Ideal para reuniones y coordinación interna. Se recomienda que cada equipo contribuya para tener un nombre común (Los Cóndores, Los Huemules, etc) y generar un sentido de identidad y pertenencia. Un equipo puede tener uno o más productos a su cargo y estar asociado a uno o más proyectos. Canal de un Producto Específico (#-): En este canal están presentes el PO, El EM y el Equipo de Desarollo asociado al producto. También puede ser usado como principal fuente de resolver dudas acerca del producto que miembros de otros equipos necesiten. Adicionalmente a los canales conversacionales donde los colaboradores interactúan entre sí, debe existir canales de notificaciones pensados para enviar alertas y mensajes asociados a un proyecto y producto en específico. Estas alertas son enviadas por los procesos de monitoreo y herramientas de CI/CD. #--deployments: Notificaciones relacionadas a un producto específico. Puede ser un backend o un frontend o la combinación de varios subproductos en uno solo. La idea es recibir todo lo relativo a los despliegues (dev, staging, prod) y poder tener una trazabilidad de su estado o autorizar los pasos a producción. #--warnings: Notificaciones relacionadas a un producto específico. Son advertencias que deben ser monitoreadas por el Sherpa asociada al estado de servidores o servicios. Por ejemplo puede salir un alerta de que el CPU esta pasando el 70% de saturación. No son críticas, pero se debe prestar atención. #--alerts: Notificaciones Críticas. Se ha detectado un fallo que debe ser reparado lo más pronto posible. Se ha notificado al Sherpa y al EM. Para comprender mejor los despliegues y sus notificaciones se definirán a continuación: No se realiza despliegue, por lo que no hay notificaciones, ya que solo son cambios en el computador local del colaborador. Se realiza un despliegue al servidor develop cada vez que se crea un nuevo Pull Request en Github. Se realizan las pruebas automáticas y si son válidas, se crea una nueva instancia de servidor con recursos limitados y mínimos (URL única, dura 1 hora) que permite validar los cambios por los interesados. Una vez aprobado el estado de dev, puede ser pasado a staging según resultados de la revisión (utilizando un Squash Merge a main, pasando todas las pruebas automáticas y code reviews). La notificación de \"Nuevo Servidor de Dev para PR #1234\" se envía al canal deployments. Los cambios pasan a un ambiente de staging donde se pueden validar en conjunción con otros cambios de otros miembros del equipo. Una vez aprobado el estado de staging debe ser pasado a prod. Solamente el código de la rama main que ha pasado todas las pruebas automaticas puede pasar cambios a staging, es decir cada vez que se haga un cambio en la rama main se despliega a staging y se envía una notificación. Es el estado productivo donde el cliente final puede usar el sistema. Solo puede ser modificado mediante un despliegue desde staging y una aprobación manual por alguien con la autorización necesaria. La notificación anterior de despliegue a staging puede contener un botón para \"Promover a Producción\". Lo que gatillará una nueva notificación con la trazabilidad del despliegue. También considerar que se puede realizar un \"Rollback\" de los despliegues a una versión estable anterior en el caso de que una versión de producción cause conflictos o se detecte problemas graves. Considerar que los despliegues a producción pueden ser \"congelados\" por un periodo de tiempo determinado según los criterios de la organización y el equipo de desarrollo estimen convenientes. También considerar la estrategia de despliegue, por ejemplo en una estrategia de despliegue del tipo \"Canary\" los servidores productivos son desplegados en partes pequeñas (nodos) y si se detecta un margen de error considerable se realiza un rollback automático. El despliegue a prod, crea un nuevo tag en los repositorios de los artefactos relacionados. Lo que permite volver a una versión anterior si es necesario. La versión utiliza SemVer con un número final incrementado automáticamente por cada commit a main.","title":"Way of Work","component":"ROOT","version":"","name":"wow","url":"/swe/wow.html","titles":[{"text":"Horarios Laborales","hash":"horarios-laborales","id":1},{"text":"Trabajo Remoto","hash":"trabajo-remoto","id":2},{"text":"Sherpa","hash":"sherpa","id":3},{"text":"Semana Laboral","hash":"semana-laboral","id":4},{"text":"Días Viernes","hash":"días-viernes","id":5},{"text":"Días Feriados Nacionales","hash":"días-feriados-nacionales","id":6},{"text":"Días Feriados Globales","hash":"días-feriados-globales","id":7},{"text":"Días Feriados de la Empresa","hash":"días-feriados-de-la-empresa","id":8},{"text":"Días de Saldo","hash":"días-de-saldo","id":9},{"text":"Día de Cumpleaños","hash":"día-de-cumpleaños","id":10},{"text":"Días de Vacaciones","hash":"días-de-vacaciones","id":11},{"text":"Días por Maternidad, Paternidad o Situación Médica","hash":"días-por-maternidad-paternidad-o-situación-médica","id":12},{"text":"Excepciones","hash":"excepciones","id":13},{"text":"Flujo de Entrega Continua","hash":"flujo-de-entrega-continua","id":14},{"text":"Kanban","hash":"kanban","id":15},{"text":"Prioridad de Tareas","hash":"prioridad-de-tareas","id":16},{"text":"Tipos de Tareas","hash":"tipos-de-tareas","id":17},{"text":"Categorías de Done","hash":"categorías-de-done","id":18},{"text":"Diagrama de Flujo","hash":"diagrama-de-flujo","id":19},{"text":"Pasos a producción","hash":"pasos-a-producción","id":20},{"text":"Noticias (News)","hash":"noticias-news","id":21},{"text":"Reunión Diaria (Daily)","hash":"reunión-diaria-daily","id":22},{"text":"Aseo de Épica (Epic Grooming)","hash":"aseo-de-épica-epic-grooming","id":23},{"text":"Refinamiento (Refinement)","hash":"refinamiento-refinement","id":24},{"text":"Coordinación del Equipo (Team Alignment)","hash":"coordinación-del-equipo-team-alignment","id":25},{"text":"Evaluación de Métricas (Metrics Review)","hash":"evaluación-de-métricas-metrics-review","id":26},{"text":"Retrospectiva (Retrospective)","hash":"retrospectiva-retrospective","id":27},{"text":"Estimación de Entregables","hash":"estimación-de-entregables","id":28},{"text":"Cambios de Contexto","hash":"cambios-de-contexto","id":29},{"text":"Protección de Corrupción del Alcance","hash":"protección-de-corrupción-del-alcance","id":30},{"text":"Roles","hash":"roles","id":31},{"text":"Estrategia Comunicacional","hash":"estrategia-comunicacional","id":32},{"text":"Canales Convesacionales","hash":"canales-convesacionales","id":33},{"text":"Canales de Notificaciones","hash":"canales-de-notificaciones","id":34},{"text":"Despliegues","hash":"despliegues","id":35},{"text":"local","hash":"local","id":36},{"text":"dev","hash":"dev","id":37},{"text":"staging","hash":"staging","id":38},{"text":"prod","hash":"prod","id":39}]},"46":{"id":46,"text":"El diseño del sistema es el proceso de diseñar la arquitectura, los componentes y las interfaces de un sistema para que cumpla con los requisitos del usuario final. Se refiere al proceso de definir la arquitectura, los módulos, las interfaces y los datos para que un sistema satisfaga requisitos específicos. Es un campo multidisciplinario que implica análisis de compensaciones, equilibrio de requisitos conflictivos y toma de decisiones sobre opciones de diseño que impactar el sistema en general. En las últimas dos décadas, ha habido muchos avances en aplicaciones web a gran escala. Estos avances han redefinido la forma en que pensamos sobre el desarrollo de software. Todas las aplicaciones y servicios que usamos a diario, como Facebook, Instagram y Twitter. , son sistemas escalables. Miles de millones de personas en todo el mundo acceden a estos sistemas simultáneamente, por lo que deben diseñarse para manejar grandes cantidades de tráfico y datos. Aquí es donde entra en juego el diseño del sistema. Como desarrollador de software, se espera cada vez más que comprenda los conceptos de diseño de sistemas y cómo aplicarlos. En las primeras etapas de su carrera, aprender diseño de sistemas le permitirá abordar problemas de diseño de software con más confianza y aplicar principios de diseño a sus proyectos. El diseño de sistemas es un tema enorme. Cada uno tiene un enfoque diferente ya que no existen pautas paso a paso. Una estimación es un ejercicio de calcular los costos y requerimientos de un sistema de forma que se pueda tener una idea y referencia sobre el funcionamiento y costos futuros del mismo. Estimar nos permite validar si la solución está dentro de los parámetros aceptables y analizar su factibilidad técnica y económica. La estimación es suficiente con que sea cercana al valor real, debido a que muchas variables pueden afectar los costos en el futuro. Para poder estimar se necesitan algunas nociones y métricas básicas que pueden ser aplicadas a cualquier sistema. El almacenamiento y transferencia de datos comunmente se mide en Bytes y potencias de 2, debido a que un caracter ASCII es 1 byte (8 bits). La siguiente tabla muestra la unidad de volumen de datos. Potencia Valor Aproximado Nombre Abreviación 1 1 Uno (bit) Bit b 8 8 Ocho (bits) Byte B 10 1 Mil (bits) Kilobyte 1 KB 20 1 Millón (bits) Megabyte 1 MB 30 1 Mil Millón (bits) Gigabyte 1 GB 40 1 Billón (bits) Terabyte 1 TB 50 1 Cuatrillón (bits) Petabyte 1 PB Los tipos de datos que pueden ser usados en una base de datos tienen una cantidad de almacenamiento definido. Va a cambiar dependiendo del motor de base de datos usado. La siguiente tabla muestra un aproximado de los tipos de datos más comunes. Tipo de Dato Tamaño de Almacenamiento Descripción boolean (booleano) 1 byte verdadero o falso. smallint (entero pequeño) 2 bytes Un entero con valores acotados. integer (entero) 4 bytes Un número entero tradicional. bigint (entero grande) 8 bytes Un número entero con mayor capacidad. Para números aún más grandes. float (decimal) 4 bytes Un número decimal con 6 decimales de precisión. double (decimal con doble precisión) 8 bytes Un número decimal con 15 decimales de precisión. varchar (caracteres variable) (4 + n) byte Se suma la cantidad de caracteres más 4 para obtener el total de espacio requerido. blob (binario) variable Un archivo binario almacenado. El tamaño dependerá de cada archivo. La latencia nos indica cuánto se demora un proceso desde que se hace la petición hasta recibir una respuesta. A mayor cantidad de latencia, mayor será el tiempo que necesitemos esperar para obtener una respuesta. El tiempo de retraso de las latencias puede crear ineficiencias, especialmente en las operaciones en tiempo real. Los siguientes gráficos contienen números aproximados, ya que según el avance tecnológico pueden variar con los años. Basado en los números de Jeff Dean y Peter Norvig (http://norvig.com/21-days.html#answers). Operation ns µs ms note L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000 ns 3 µs Send 1K bytes over 1 Gbps network 10,000 ns 10 µs Read 4K randomly from SSD* 150,000 ns 150 µs ~1GB/sec SSD Read 1 MB sequentially from memory 250,000 ns 250 µs Round trip within same datacenter 500,000 ns 500 µs Read 1 MB sequentially from SSD* 1,000,000 ns 1,000 µs 1 ms ~1GB/sec SSD, 4X memory Disk seek 10,000,000 ns 10,000 µs 10 ms 20x datacenter roundtrip Read 1 MB sequentially from disk 20,000,000 ns 20,000 µs 20 ms 80x memory, 20X SSD Send packet CA → Netherlands → CA 150,000,000 ns 150,000 µs 150 ms 1 ns = 10^-9 segundos 1 us = 10^-6 segundos = 1,000 ns 1 ms = 10^-3 segundos = 1,000 us = 1,000,000 ns Normalmente están integrados en el chip del microprocesador. A menos que trabaje directamente con hardware, probablemente no necesite preocuparse por ellos. Se necesitan alrededor de 100 ns para leer datos de la memoria. Redis es un almacén de datos en memoria, por lo que se necesitan unos 100 ns para leer datos de Redis. Se necesitan alrededor de 10 usuarios para enviar 1 KB de datos desde Memcached a través de la red. RocksDB es un almacén K/V basado en disco, por lo que la latencia de lectura es de alrededor de 100 us en SSD. La confirmación de Postgresql puede tardar 1 ms. La base de datos necesita almacenar los datos, crear el índice y vaciar los registros. Todas estas acciones toman tiempo. Si tenemos una llamada de larga distancia por Zoom, la latencia podría rondar los 100 ms. En un sistema de monitoreo, el intervalo de actualización generalmente se establece en 5 a 10 segundos (valor predeterminado en Grafana). Al leer los datos se puede concluir las siguientes cosas: Leer de la memoria es más rápido que leer de un disco duro. Leer del disco duro solo cuando sea obligatorio. Los algoritmos de compresión son rápidos y se recomienda su utilización al enviar los datos por la red. Los centros de datos de diferentes regiones requerirán más tiempo para transferir datos entre ellos. El primer paso en el proceso de estimación es definir los objetivos. Nivel mínimo: Objetivo que no tiene grandes exigencias. ¿Cuánto es lo mínimo que el sistema necesitaría para funcionar correctamente?. Nivel promedio: Objetivo que busca definir el comportamiento normal de un sistema. ¿Cuánto es lo que necesitaría el sistema en un día normal?. Nivel crítico: Objetivo que busca definir el comportamiento exigente de un sistema. ¿Cuánto es lo que necesitaría el sistema en un día de alta exigencia?. Una vez definido el objetivo y los supuestos a cumplir, se debe transformar a datos como tamaño de almacenamiento o tamaño de transferencia. Ya que normalmente son los necesarios para comparar con la tabla de precios de un proveedor de servicios. Al tener el tamaño de almacenamiento o transferencia, se puede estimar los costos monetarios necesarios para lograr los objetivos planteados. La cantidad de usuarios diarios nos ayudará a definir cuán grande es el volumen de consultas por segundo de un sistema, teniendo en consideración las operaciones que los usuarios realicen. Una métrica común es ¿Cúantas consultas tendrá por segundo la aplicación?. Esto nos permite determinar la cantidad de almacenamiento y datos necesarios en los casos hipotéticos acordados. Una red microblogging similar a sistemas como Mastodon o X (Twitter). 300 millones de usuarios activos mensuales. 50% utiliza el sistema diariamente. Se realizan 2 posts por día en promedio. 10% de los posts contienen imagenes (media). Los datos se almacenan por 5 años. El primer paso es obtener la cantidad de usuarios diarios (CUD), para esto obtenemos el 50% de 300 millones. 300 millones (Usuarios Mensuales) * 50% (Uso diario) = 150 millones (Usuarios Diarios) Sabemos que con 150 millones de usuarios diarios, cada usuario realiza 2 posts por día. Esto lo debemos transformar a segundos. posts_por_dia = 150 millones usuarios * 2 posts horas_por_dia = 24 segundos_por_dia = 3600 QPS = posts_por_dia / horas_por_dia / segundos_por_dia QPS = ~3500 Queries por Segundo. Ahora si tomamos la cantidad total de usuarios y asumiendo que todos los usuarios realizan dos posts en un mismo día QPS_MAX = 2 * QPS = ~7000 Queries por Segundo. Ahora si definimos que cada post contiene la siguiente información: id varchar(64) -- cadena de caracteres de 64 bytes text varchar(140) -- cadena de caracteres de 140 bytes media blob(1MB) -- imagen de 1 MegaByte Utilizando la QPS podemos calcular cuánto espacio de almacenamiento necesitamos. peso_imagen = 10% * 1 MB posts_por_dia * peso_imagen terabytes_por_dia = 30 terabytes_en_5_anios = terabytes_por_dia * 365 * 5 // 55 PetaBytes https://www.linkedin.com/posts/alexxubyte_systemdesign-coding-interviewtips-activity-7126968760971714560-aZ7T?trk=public_profile_like_view https://gist.github.com/jboner/2841832 Los servidores pueden estar configurados de distinta forma dependiendo de las necesidades de la aplicación y las capacidades técnicas requeridas. En el ciclo de vida de la aplicación se puede dar situaciones en las que se deba aumentar los recursos disponibles y de que forma son distribuidos. Este es una configuración inicial. Todos los servicios de la aplicación (servidor web, base de datos, almacenamiento de archivos, etc). Están dentro de una sola máquina y comparten recursos de red, procesador, memoria y almacenamiento. Ventajas Es fácil de configurar. Es relativamente barato. Ideal para aplicaciones pequeñas y de poco alcance. Desventajas Propenso a errores por agotamiento de memoria o disco. Solamente un servidor, si este es atacado o comprometido en seguridad, puede significar una brecha total o caida total del servicio. Puede tener mayor latencia para usuarios lejos de la región donde está ubicado el servidor. El siguiente nivel en la configuración es separar el servidor de la base de datos, dandole una instancia propia del servidor de aplicaciones. Ventajas La base de datos tiene sus recursos separados del servidor de aplicaciones. Permite escalar individualmente cada servidor según necesidades. La seguridad es mayor al no compartir la misma máquina. Desventajas Aumenta los costos de mantenimiento al tener más máquinas funcionando. Una vez que las necesidades de la aplicación lo requieran, se puede buscar la configuración a través de la separación de una máquina por servicio. Por ejemplo si la aplicación tiene: servidor web, base de datos, almacenamiento de archivos y procesamiento de datos. Se podría tener una máquina por cada elemento del sistema, una máquina para el servidor web, otra máquina para la base de datos, otra para el sistema de almacenamiento y otra para el procesamiento de datos. Ventajas Cada componente es separado y puede escalar individualmente. Desventajas Los costos aumentan considerablemente. La escalabilidad se refiere a la capacidad de una aplicación para manejar y soportar una mayor carga de trabajo sin sacrificar la latencia. Una aplicación necesita una potencia informática sólida para escalar bien. Los servidores deben ser lo suficientemente potentes para manejar mayores cargas de tráfico. Hay dos formas principales de escalar una aplicación: horizontalmente y verticalmente. El escalamiento horizontal, o ampliación, significa agregar más hardware al conjunto de recursos de hardware existente. Aumenta la potencia computacional del sistema en su conjunto. En el escalado horizontal, agrega más máquinas en paralelo para hacer frente a los requisitos crecientes. Necesitará equilibrio de carga para distribuir la carga en todo el sistema. Si alguna máquina falla, las solicitudes se redirigen a las otras máquinas y se escala bien cuando su Los usuarios aumentan y la inconsistencia de los datos es un inconveniente. El escalamiento vertical, o ampliación, significa agregar más potencia a su servidor. Aumenta la potencia de el hardware que ejecuta la aplicación. El escalado vertical utiliza una máquina enorme que maneja todas sus solicitudes y mejora el tiempo de respuesta y el rendimiento. Aunque ofrece llamadas de red más rápidas, coherencia de datos y sin equilibrio de carga, tiene un único punto de falla y limitaciones de hardware. El balanceador de carga nos permite distribuir el tráfico de red entrante entre múltiples recursos, lo que garantiza una alta disponibilidad y confiabilidad al enviar solicitudes solo a los recursos que están en línea, lo que brinda la flexibilidad de agregar o restar recursos según lo requiera la demanda. Los sitios web modernos con mucho tráfico deben atender cientos de miles, si no millones, de solicitudes simultáneas de usuarios o clientes. Para escalar de manera rentable y satisfacer estos grandes volúmenes, las mejores prácticas informáticas modernas generalmente requieren agregar más servidores. Un balanceador de carga puede ubicarse frente a los servidores y enrutar las solicitudes de los clientes a través de todos los servidores capaces de satisfacer esas solicitudes de una manera que maximice la velocidad y la utilización de la capacidad. Esto garantiza que ningún servidor tenga exceso de trabajo, lo que podría degradar el rendimiento. se cae, el balanceador de carga redirige el tráfico a los servidores en línea restantes. Cuando se agrega un nuevo servidor al grupo de servidores, el balanceador de carga comienza automáticamente a enviarle solicitudes. La replicación es el proceso de compartir información para garantizar la coherencia entre recursos redundantes. Puede replicar componentes de software o hardware para mejorar la confiabilidad, la tolerancia a fallas o la accesibilidad. La replicación se utiliza en muchos sistemas de administración de bases de datos (DBMS), generalmente con una réplica primaria. La relación entre el original y sus copias. El servidor primario recibe todas las actualizaciones, y esas actualizaciones pasan a través de los servidores de réplica. Cada servidor de réplica genera un mensaje cuando recibe correctamente la actualización. La fragmentación de bases de datos es una técnica para el escalado horizontal de bases de datos, donde los datos se dividen en múltiples instancias de bases de datos, o fragmentos, para mejorar el rendimiento y reducir el impacto de grandes cantidades de datos en una sola base de datos. Una cola de mensajes es una cola que enruta mensajes desde un origen a un destino, o desde el remitente al receptor. Sigue la política FIFO (primero en entrar, primero en salir). El mensaje que se envía primero se entrega primero. Las colas de mensajes facilitan la asincronía. Comportamiento, que permite que los módulos se comuniquen entre sí en segundo plano sin obstaculizar las tareas primarias. También facilitan la comunicación entre módulos y proporcionan almacenamiento temporal para los mensajes hasta que sean procesados y consumidos por el consumidor. Las más conocidas son Kafka o RabbitMQ. El almacenamiento en caché es un concepto de diseño de sistema que implica almacenar datos a los que se accede con frecuencia en una ubicación a la que se puede acceder fácil y rápidamente. El propósito del almacenamiento en caché es mejorar el rendimiento y la eficiencia de un sistema al reducir la cantidad de tiempo que lleva acceder a los datos a los que se accede con frecuencia. El almacenamiento en caché se puede utilizar en una variedad de sistemas diferentes, incluidas aplicaciones web, bases de datos y sistemas operativos. En cada caso, el almacenamiento en caché funciona almacenando datos a los que se accede con frecuencia en una ubicación más cercana al usuario o la aplicación. Esto puede incluir el almacenamiento datos en la memoria o en un disco duro local. https://www.geeksforgeeks.org/caching-system-design-concept-for-beginners/ https://www.geeksforgeeks.org/system-design-tutorial/ https://www.educative.io/blog/complete-guide-to-system-design https://github.com/karanpratapsingh/system-design https://www.educative.io/blog/system-design-primer https://www.educative.io/courses/grokking-modern-system-design-interview-for-engineers-managers https://www.educative.io/courses/web-application-software-architecture-101 https://www.geeksforgeeks.org/database-sharding-a-system-design-concept/ https://www.educative.io/path/scalability-system-design https://aws.amazon.com/es/what-is/latency/ Libro System Design Interview [systemdesign].","title":"","component":"ROOT","version":"","name":"chapter","url":"/systemd/chapter.html","titles":[{"text":"Diseño de Sistemas (System Design)","hash":"diseño-de-sistemas-system-design","id":1},{"text":"Estimación de Costos","hash":"estimación-de-costos","id":2},{"text":"Unidad de Volumen de Datos","hash":"unidad-de-volumen-de-datos","id":3},{"text":"Tipos de Datos","hash":"tipos-de-datos","id":4},{"text":"Números de Latencia","hash":"números-de-latencia","id":5},{"text":"Cachés L1 y L2: 1 ns, 10 ns","hash":"cachés-l1-y-l2-1-ns-10-ns","id":6},{"text":"Acceso a RAM: 100 ns","hash":"acceso-a-ram-100-ns","id":7},{"text":"Envía 1K bytes a través de una red de 1 Gbps: 10 us","hash":"envía-1k-bytes-a-través-de-una-red-de-1-gbps-10-us","id":8},{"text":"Leer desde SSD: 100 us","hash":"leer-desde-ssd-100-us","id":9},{"text":"Operación de inserción de base de datos: 1 ms.","hash":"operación-de-inserción-de-base-de-datos-1-ms","id":10},{"text":"Enviar paquete CA→Países Bajos→CA: 100 ms","hash":"enviar-paquete-capaíses-bajosca-100-ms","id":11},{"text":"Reintentar/actualizar interno: 1-10s","hash":"reintentaractualizar-interno-1-10s","id":12},{"text":"Resumen","hash":"resumen","id":13},{"text":"Estimación General","hash":"estimación-general","id":14},{"text":"Cantidad de Usuarios Diarios (CUD)","hash":"cantidad-de-usuarios-diarios-cud","id":15},{"text":"Consultas por Segundo (QPS: Queries per Second)","hash":"consultas-por-segundo-qps-queries-per-second","id":16},{"text":"Ejemplo: Red Microblogging","hash":"ejemplo-red-microblogging","id":17},{"text":"Objetivos y Supuestos","hash":"objetivos-y-supuestos","id":18},{"text":"Obtención de las QPS (Querys per Second)","hash":"obtención-de-las-qps-querys-per-second","id":19},{"text":"Almacenamiento Estimado","hash":"almacenamiento-estimado","id":20},{"text":"Enlaces","hash":"enlaces","id":21},{"text":"Tipos de Configuración de Servidores","hash":"tipos-de-configuración-de-servidores","id":22},{"text":"Servidor Único","hash":"servidor-único","id":23},{"text":"Servidor de Base de Datos Separado","hash":"servidor-de-base-de-datos-separado","id":24},{"text":"Una Máquina por Servicio","hash":"una-máquina-por-servicio","id":25},{"text":"Escalado horizontal y vertical","hash":"escalado-horizontal-y-vertical","id":26},{"text":"Escalado Horizontal","hash":"escalado-horizontal","id":27},{"text":"Escalado Vertical","hash":"escalado-vertical","id":28},{"text":"Balanceo de Carga (Load Balancer)","hash":"balanceo-de-carga-load-balancer","id":29},{"text":"Redundancia y Replicación","hash":"redundancia-y-replicación","id":30},{"text":"Base de datos Fragmentada (Database Sharding)","hash":"base-de-datos-fragmentada-database-sharding","id":31},{"text":"Colas de mensajes","hash":"colas-de-mensajes","id":32},{"text":"Caché","hash":"caché","id":33},{"text":"Lectura Complementaria","hash":"lectura-complementaria","id":34}]}},"components":{},"componentVersions":{"ROOT/":{"displayVersion":"Spanish","title":"Elixir Full-Stack","version":"","name":"ROOT","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"Elixir Full-Stack","site-url":"https://elixircl.github.io/elixir-fullstack","kroki-fetch-diagram":true,"experimental":"","idprefix":"","idseparator":"-","page-pagination":"","highlightjs-theme":"monokai","highlightjs-languages":"js, elixir, sql, yaml, html, css, php","page-home":"Inicio"},"sourcemap":false,"extensions":[{},{}]},"url":"/index.html","navigation":[{"content":"Historia","items":[{"content":"Historia de la World Wide Web y Aplicaciones Móviles","url":"/history/chapter.html","urlType":"internal"}],"root":true,"order":1},{"content":"Ecosistema Tecnológico y Laboral","items":[{"content":"Mundo Laboral y su Estado del Arte","url":"/ecosystem/jobs.html","urlType":"internal"},{"content":"Ecosistema Web","url":"/ecosystem/web.html","urlType":"internal"},{"content":"Large Language Models (LLM)","url":"/ecosystem/llm.html","urlType":"internal"}],"root":true,"order":2},{"content":"Ingeniería en Software","items":[{"content":"Etapas del Desarrollo de un Producto de Software","url":"/swe/stages.html","urlType":"internal"},{"content":"Patrones y Arquitecturas de Software","url":"/swe/patterns.html","urlType":"internal"},{"content":"Arquitecture Decision Records","url":"/swe/adr.html","urlType":"internal"},{"content":"Documento de Requerimiento de Producto (Product Requirement Document - PRD)","url":"/swe/prd.html","urlType":"internal"},{"content":"Way of Work","url":"/swe/wow.html","urlType":"internal"},{"content":"Pruebas de Aceptación de Usuario (User Aceptance Testing - UAT)","url":"/swe/uat.html","urlType":"internal"},{"content":"Versionado y Política de Compatibilidad y Obsolescencia","url":"/swe/deprecation.html","urlType":"internal"}],"root":true,"order":3},{"content":"Github","items":[{"content":"Github, Static Site Generators, Markdown, Linux y Vim","url":"/github/chapter.html","urlType":"internal"}],"root":true,"order":5},{"content":"Hostings","items":[{"content":"Hosting, Dominios y Cpanel","url":"/hosting/chapter.html","urlType":"internal"}],"root":true,"order":6},{"content":"Networking","items":[{"content":"Redes e Internet","url":"/networking/chapter.html","urlType":"internal"}],"root":true,"order":7},{"content":"HTTP","items":[{"content":"HTTP, JSON y APIS","url":"/http/chapter.html","urlType":"internal"}],"root":true,"order":8},{"content":"Seguridad","items":[{"content":"Seguridad de las Aplicaciones","url":"/security/security.html","urlType":"internal"},{"content":"Criptografía y Autenticación","url":"/security/cryptography.html","urlType":"internal"}],"root":true,"order":9},{"content":"HTML","items":[{"content":"HTML, CSS y GIT","url":"/html/chapter.html","urlType":"internal"}],"root":true,"order":10},{"content":"Javascript","items":[{"content":"Frontend con Javascript","url":"/javascript/chapter.html","urlType":"internal"}],"root":true,"order":11},{"content":"Elixir","items":[{"content":"El Lenguaje Elixir","url":"/elixir/elixir.html","urlType":"internal"},{"content":"REST: Stoic API","url":"/elixir/apirest.html","urlType":"internal"},{"content":"LiveView: Stoic API","url":"/elixir/liveview.html","urlType":"internal"},{"content":"Testing: Stoic API","url":"/elixir/testing.html","urlType":"internal"},{"content":"Ash: Stoic API","url":"/elixir/ash.html","urlType":"internal"},{"content":"Makefiles","url":"/elixir/commands.html","urlType":"internal"}],"root":true,"order":12},{"content":"Aplicaciones Móviles","items":[{"content":"Aplicaciones Móviles","url":"/mobile/chapter.html","urlType":"internal"},{"content":"Progresive Web Apps","url":"/mobile/pwa.html","urlType":"internal"}],"root":true,"order":13},{"content":"Videojuegos","items":[{"content":"Videojuegos","url":"/games/games.html","urlType":"internal"}],"root":true,"order":14},{"content":"DevOps","items":[{"content":"Ambientes de Desarrollo","url":"/devops/devenvs.html","urlType":"internal"},{"content":"Observabilidad e Instrumentación","url":"/devops/observability.html","urlType":"internal"},{"content":"Métricas DORA","url":"/devops/dora.html","urlType":"internal"},{"content":"Golden Signals","url":"/devops/golden.html","urlType":"internal"}],"root":true,"order":15}]}}}}) \ No newline at end of file diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 553be40..1c4dc04 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -2,186 +2,186 @@ https://elixircl.github.io/elixir-fullstack/abstract.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/afterword.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/authors.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/bibliography.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/book.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/colophon.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/dedication.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/devops/devenvs.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/devops/dora.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/devops/golden.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/devops/observability.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/ecosystem/jobs.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/ecosystem/llm.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/ecosystem/web.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/elixir/apirest.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/elixir/ash.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/elixir/commands.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/elixir/elixir.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/elixir/liveview.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/elixir/testing.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/foreword.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/games/games.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/github/chapter.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/glossary.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/history/chapter.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/hosting/chapter.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/html/chapter.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/http/chapter.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/index.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/javascript/chapter.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/mobile/chapter.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/mobile/punteo.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/mobile/pwa.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/networking/chapter.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/security/cryptography.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/security/security.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/swe/adr.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/swe/deprecation.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/swe/patterns.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/swe/prd.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/swe/roles.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/swe/stages.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/swe/uat.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/swe/wow.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/syllabus.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z https://elixircl.github.io/elixir-fullstack/systemd/chapter.html -2025-12-08T18:03:02.377Z +2025-12-08T19:51:24.668Z diff --git a/modules/elixir/pages/ash.adoc b/modules/elixir/pages/ash.adoc index dfb0995..4f4a9bc 100644 --- a/modules/elixir/pages/ash.adoc +++ b/modules/elixir/pages/ash.adoc @@ -532,6 +532,164 @@ defmodule StoicQuotes.Ash.QuoteTest do end ---- +== Cómo usar SQLite en vez de Postgres + +=== 1. Cambiar el Repo + +En `.lib/stoic_quotes/repo.ex`, reemplazar: + +[source,elixir] +---- +use AshPostgres.Repo, + otp_app: :stoic_quotes +---- + +Por: + +[source,elixir] +---- +use AshSqlite.Repo, + otp_app: :stoic_quotes +---- + +Eliminar las funciones `prefer_transaction?` y `installed_extensions` si existen en el módulo. + +=== 2. Instalar la extensión de SQLite + +[source,bash] +---- +mix igniter.install ash_sqlite +---- + +=== 3. Actualizar configuraciones + +En `config/dev.exs`, cambiar: + +[source,elixir] +---- +config :stoic_quotes, StoicQuotes.Repo, + username: "postgres", + password: "postgres", + hostname: "localhost", + database: "stoic_quotes_dev", + stacktrace: true, + show_sensitive_data_on_connection_error: true, + pool_size: 10 +---- + +Por: + +[source,elixir] +---- +config :stoic_quotes, StoicQuotes.Repo, + database: Path.join(__DIR__, "../data.db"), + show_sensitive_data_on_connection_error: true, + pool_size: 10 +---- + +En `config/test.exs`, cambiar: + +[source,elixir] +---- +config :stoic_quotes, StoicQuotes.Repo, + username: "postgres", + password: "postgres", + hostname: "localhost", + database: "stoic_quotes_test#{System.get_env("MIX_TEST_PARTITION")}", + pool: Ecto.Adapters.SQL.Sandbox, + pool_size: System.schedulers_online() * 2 +---- + +Por: + +[source,elixir] +---- +config :stoic_quotes, StoicQuotes.Repo, + database: Path.join(__DIR__, "../data_#{System.get_env("MIX_TEST_PARTITION")}.db"), + pool: Ecto.Adapters.SQL.Sandbox, + pool_size: 10 +---- + +=== 4. Actualizar el Recurso + +En el archivo del Recurso (`lib/stoic_quotes/resources/quote.ex` o similar), hacer dos cambios: + +1. *Reemplazar el bloque `postgres` por `sqlite`:* + +De: + +[source,elixir] +---- +postgres do + table "quotes" + repo StoicQuotes.Repo +end +---- + +A: + +[source,elixir] +---- +sqlite do + table "quotes" + repo StoicQuotes.Repo +end +---- + +2. *Cambiar el `data_layer` de Postgres a SQLite:* + +De: + +[source,elixir] +---- +use Ash.Resource, + otp_app: :stoic_quotes, + domain: StoicQuotes.Ash, + extensions: [AshGraphql.Resource], + data_layer: AshPostgres.DataLayer +---- + +A: + +[source,elixir] +---- +use Ash.Resource, + otp_app: :stoic_quotes, + domain: StoicQuotes.Ash, + extensions: [AshGraphql.Resource], + data_layer: AshSqlite.DataLayer +---- + +=== 5. Limpiar migraciones antiguas y generar nuevas + +[source,bash] +---- +# Eliminar directorios de migraciones anteriores +rm -rf priv/resource_snapshots +rm -rf priv/repo/migrations + +# Generar nuevas migraciones compatibles con SQLite +mix ash_sqlite.generate_migrations --name migrate_to_sqlite + +# Ejecutar las migraciones +mix ecto.migrate +---- + +=== 6. Remover dependencia de Postgres + +Finalmente, eliminar la dependencia de `ash_postgres` en el archivo `mix.exs`: + +[source,elixir] +---- +# Remover de la lista de dependencias: +{:ash_postgres, "~> 2.0"}, +---- + +Y correr: +[source,bash] +---- +mix deps.get +---- == Referencias